📄 cpu_io1.asm
字号:
;实验一、P1口亮灯实验
;文件名称: CPU_IO1.ASM
TIMER0 EQU 30H
TIMER1 EQU 31H
ORG 0000H
START: PUSH ACC
PUSH B
MOV B,#08H ;移动 8 次
MOV A,#11111110B ;单一灯向左移
LOOP$: MOV P1,A ;从 P1 输出到 LCD
RL A
LCALL DELAY500 ;延时0.5秒
DJNZ B,LOOP$ ;移动 8 次了吗?
POP B
POP ACC
SJMP START
;延时子程序
DELAY: PUSH TIMER1; 延时TIMER1*1 ms for 12MHz
PUSH TIMER0
DELAY1: MOV TIMER0,#250 ;循环一次需要4个机器周期,时间为4*1μS
DELAY2: NOP ; 1个周期
NOP ; 1个周期
DJNZ TIMER0,DELAY2 ;2个周期
DJNZ TIMER1,DELAY1
POP TIMER0
POP TIMER1
RET
DELAY500: NOP; 延时 500 ms
PUSH TIMER1
MOV TIMER1,#250
LCALL DELAY
LCALL DELAY
POP TIMER1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -