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

📄 daima7.asm

📁 <MCS-51系列单片机应用及接口技术>书中的源代码
💻 ASM
字号:
	ORG	2000H
	DCW	T1INT            ;定义T1中断入口
	ORG	2080H
	LD	SP,#00C0H
	DI
	CLRB	INT_PENDING
	LDB	INT_MASK,#01H  ;开放T1溢出中断
	LDB	IOC0,#86H        ;将HSI.1作为时钟源,复位T2
LOW:	LDB	AX,HSI_STATUS   ;读HSI状态
	LD	BX,HSI_TIME     ;读HSI时间
	JBS	AX,1,FIRHI       ;判断是否有按键按下
	SJMP	LOW
FIRHI:	LD	REG1,TIMER1
	CLR	REG3
	LDB	IOC1,#04H
	EI                       ;允许中断
	JBC	P0,7,COUNT
LOAGAI:	LDB	AX,HSI_STATUS
	LD	BX,HSI_TIME
	JBC	AX,1,LOAGAI     ;判断有否抖动
	LD	REG4,REG3
	LD	REG2,TIMER1
	LD	REG5,TIMER2
	INC	REG5
	SHR	REG5,#01H
	SJMP	LOAGAI
T1INT:	PUSHF                     ;T1溢出中断服务子程序
	INC	REG
	POPF
	RET
	END
利用T1和T2记录开关按下的抖动时间和次数,用T1来记录开关抖动时间,第一次抖动时刻存放在REG1寄存器中,最后一次抖动时间存放在REG2寄存器中,T1溢出次数存放在REG4寄存器中,那么抖动时间就可以计算了。用T2来记录开关抖动次数,由于开关每次跳变都要使定时器T2计数,因此,开关的抖动次数应为T2的值再加1除2,所得到的结果存放在REG5中,开关接在HSI.1引脚。

⌨️ 快捷键说明

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