📄 5_1_6_1.s43
字号:
BIS.B # 07H , &P1DIR
BIC.B # 07H , &P1OUT ;先输出低电平
BIC.B # 07H, &P1DIR ;P1.0、P1.1、P1.2为输入模式
BIS.B #07H, &P1IE ;P1.0、P1.1、P1.2中断使能
BIC.B # 07H, &P1IES ;P1.0、P1.1、P1.2上升沿触发中断
EINT ;总中断使能
;中断服务程序:
P1KEY3 CALL #KEYJ3 ;出口参数:按键键值在R5中
JNC KEYEND ;判断是否有按键
CALL #DELAY10MS ;没有则退出
CALL #KEYJ3 ;如有,则延时10毫秒 消抖动
JNC KEYEND ;再判键
CALL #KEYCODE3 ;如没有按下则退出
PUSH R5 ;如有,则调认键程序得到键值
KEYLOOP CALL #KEYJ3 ;保护键值
JC KEYLOOP ;等待按键松开
POP R5 ;没有松开,则继续等待
KEYEND RETI ;按键松开之后,恢复键值
KEYJ3 BIT.B #07H, &P1IN ;判断有无按键按下,如果有,则C=1
RET ;如果没有按键按下,则C=0
KEYCODE BIT.B #1, &P1IN ;判断3个按键中是哪一个被按下
JNC K2
MOV #0, R5 ;如果是接到P1.0的按键,则输出R5=0
RET
K2 BIT.B #2, &P1IN
JNC K3
MOV #1, R5 ;如果是接到P1.1的按键,则输出R5=1
RET
K3 BIT.B #4, &P1IN
JNC K4
MOV #2, R5 ;如果是接到P1.2的按键,则输出R5=2
K4 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -