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

📄 key.asm

📁 关于51单片机学习的基本样例程序
💻 ASM
字号:
;-----------------------------------
;                   受控输出实例2
;功能:中断方式检测按键状态,8只LED显示按键被按下次数的二进制值
;-----------------------------------
KEY_PIN		EQU			P3.2
COUNT			DATA		30H

ORG	0000H			;伪指令,指定程序从0000H开始存放
LJMP	MAIN			;跳转指令,程序跳转到MAIN处
ORG	0003H			;伪指令,外部中断0中断程序入口地址
LJMP	KEY_INT			;跳转指令,程序跳转到KEY_INT处

ORG	0100H			;伪指令,指定以下程序从0100H开始存放
MAIN:
	MOV	SP,#60H		;给堆栈指针赋初值
	SETB	KEY_PIN		;置一P3.2,初始化输入口
	MOV	COUNT,#0FFH	;给计数变量COUNT赋初值
	MOV	P1,COUNT	;给P1赋初值,LED全灭

	LCALL	X0_INIT		;调用外部中断0初始化子程序

	SJMP	$			;程序原地跳转,等待中断

;延时10MS子程序
DELAY10MS:
	MOV	R7,#20
DELAY0:
	MOV	R6,#250
	DJNZ	R6,$
	DJNZ	R7,DELAY0
	RET

X0_INIT:
;---------------------------------
;     外部中断0初始化子程序
;---------------------------------
	MOV	TCON,#01H	;外部中断0为下降沿触发
	MOV	IP,#01H		;外部中断0为高优先级
	MOV	IE,#81H		;允许外部中断0
	RET

KEY_INT:
;---------------------------------
;     外部中断0服务程序
;---------------------------------
	PUSH	PSW
	SETB	RS1
	LCALL	DELAY10MS	;延时10MS,按键抖动消除
	MOV	C,KEY_PIN
	JC		KEY_INT_EXIT
	DEC		COUNT		;按键被按下,计数加一
	MOV	P1,COUNT	;LED输出显示 
KEY_INT_EXIT:
	POP	PSW
	RETI

END 

⌨️ 快捷键说明

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