⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 daima25.asm

📁 51单片机底层开发人员的有力武器。 ASM文档
💻 ASM
字号:
	ORG		2006H
	DCW		HSOINT
	ORG		2080H
MAIN:	LD		SP,#00C0H
	CLRB	INT_PENDING
	LDB		INT_MASK,#08H    ;开HSO中断
	ORG	200AH
	DCW	SOFTINT
	ORG	2080H
	LD	SP,#00C0H
	DI
	CLRB	INT_PENDING
	LDB	INT_MASK,#20H  ;允许软件定时器中断
	LDB	REG1,REG2  ;软件定时器0的溢出次数赋给REG1
	LDB	REG3,REG4  ;软件定时器2的溢出次数赋给REG3
	LDB	HSO_COMMAND,#38H  ;允许软件定时器0中断
	ADD	HSO_TIME,TIMER1,#5000
	NOP
	NOP
	LDB	HSO_COMMAND,#3AH  ;允许软件定时器2中断
	ADD	HSO_TIME,TIMER1,#0FFFFH
	NOP
	NOP
	EI
	LDB	P2,##21H
HERE:	SJMP	HERE
SOFTINT:NOP              ;软件中断子程序
	LDB	REG5,IOS1
	JBS	REG5,0,STIMER0
	JBS	REG5,2,STIMER2
	SJMP	RETURN
STIMER0:DI
	LDB	HSO_COMMAND,#38H
	ADD	HSO_TIME,TIMER1,#5000
	DJNZ	REG1,ENAB
	LDB	REG1,REG2
	XORB	P2,#01H
	SJMP	ENAB
STIMER2:DI
	LDB	HSO_COMMAND,#3AH
	ADD	HSO_TIME,TIMER1,#0FFFFH
	DJNZ	REG3,ENAB
	LDB	REG3,REG4
	XORB	P2,#20H
ENAB:	EI
RETURN:	RET
	END
HSO两个软件定时器同时运行,程序中,用P2.0和P2.5引脚上接的LED状态变化来表示软件定时器0和软件定时器2的定时时刻已到。程序运行后,软件定时器0和软件定时器2同时工作,由于所有的软件定时器的中断入口是共用的,因此,在中断服务程序中,要先检测IOS1寄存器,以判别是哪一个软件定时器产生了中断。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -