用汇编语言编程,当按键为学号末位时(0号等同于1号,9号等同于8号)控制B口的发光二极管,初始D0~D3亮,其余不亮,延时一段时间后D4~D7亮,如此循环5次。
时间: 2023-12-02 13:06:24 浏览: 93
利用按键触发中断方式循环控制发光二极管
好的,这是一个简单的控制程序,下面是汇编代码:
```
ORG 0000H
MOV P1,#0F0H ;设置P1口为输出,D0~D3亮
MOV P2,#0FFH ;设置P2口为输入,等待按键
MOV R1,#05H ;循环5次
LOOP:
MOV A,P2 ;读取P2口的值
ANL A,#0FH ;屏蔽高4位,保留低4位
CJNE A,#0DH,SKIP ;如果不是学号末位,跳过
MOV P1,#0F0H ;控制B口的发光二极管,D0~D3亮
ACALL DELAY ;延时
MOV P1,#00FH ;D4~D7亮
ACALL DELAY ;延时
SJMP LOOP
SKIP:
DJNZ R1,LOOP ;循环5次
DELAY:
MOV R2,#0FFH
DELAY1:
NOP
NOP
NOP
DJNZ R2,DELAY1
DJNZ R0,DELAY
RET
```
程序的思路是,先设置P1口为输出,将D0~D3亮起来,P2口为输入,等待按键。然后进入循环,每次读取P2口的值,如果是学号末位,则控制B口的发光二极管,延时一段时间后D4~D7亮,否则跳过。循环5次后结束程序。
延时函数使用的是简单的循环计数,可以根据需要调整延时时间。
阅读全文