📄 复件 灯.asm
字号:
ORG 0000H
LJMP START
ORG 001BH
LJMP DELAY
ORG 0030H
START:MOV SP,#60H
MOV A,#00H
MOV 20H,#00
MOV B,#0AH ;以下为延时中断10次,为0.5s
MOV TMOD,#10H ;定时器1工作于模式1
MOV TH1,#3CH ;每次中断50ms
MOV TL1,#0B0H
SETB TR1
SETB ET1
SETB EA
MOV R1,#20H
RR A ;对灯的操作,右移首位取反
CPL ACC.7
MOV P1,A
CJNE @R1,#01,$
LOOP:;CLR 20.1H
RR A ;对灯的操作,右移首位取反
CPL ACC.7
MOV P1,A
SETB TR1
CJNE @R1,#01,$
clr 00h
;LCALL DELAY
JZ ALLON
LJMP LOOP
ALLON:MOV A,#0FFH ;全亮
MOV P1,A
SETB TR1
CJNE @R1,#01,$
;LCALL DELAY
ALLOFF: MOV A,#00H ;全灭
MOV P1,A
SETB TR1
CJNE @R1,#01,$
; LCALL DELAY
LJMP LOOP
;SJMP $
;中断服务程序
DELAY: MOV TH1,#3CH ;重新装入初值
MOV TL1,#0B0H
DJNZ B,LOOP1 ;
CLR TR1 ;0.5s定时到,停止T1工作
SETB 00H
LOOP1: RETI ;中断返回
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -