📄 6-1.asm
字号:
;简单的输入输出控制实验程序
ORG 1000H
AJMP LOOP ;开始主循环
LOOP: MOV A ,#0FFH
MOV P1,A ;将所有的灯关掉
ANL A,#0EFH ;点第1个灯,EFH表示成二进制为11101111。
SETB C ;初始化C的值为1
LIGHT:MOV P1,A ;点第1个灯(P1.4对应的灯)
ACALL DELAY ;开始延时
RLC A ;将A右移1位,将A的最低位移出给C
JC LIGHT ;判断C的值,如果不为0,标志一个点灯循环还没有结束
MOV P1,A ;如果C为0,表示4个灯已经点亮,A=0xFF,关闭所有的灯
ACALL DELAY ;调用延时
CLR P1.4 ;点亮第1个灯
CPL P1.5 ;点亮第2个灯
ANL P1,#3F ;点亮第3个灯和第4个灯
ACALL DELAY ;调用延时
AJMP LOOP ;重新循环
;延时子程序
DELAY: MOV R6,#20 ;设置R6的初始值
TIMER1: MOV R5,#0FF ;设置R5的初始值
TIMER2: MOV R4,#0FF ;设置R4的初始值
DJNZ R4,$ ;检查R4是否已经递减为0?
DJNZ R5,TIMER2 ;检查R5是否已经递减为0?
DJNZ R6,TIMER1 ;检查R6是否已经递减为0?
RET ;返回
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -