📄 daojishi.asm
字号:
; 该程序是89C51_D板实验演示程序,100S倒计时(12M)
;
LD1 BIT P2.0
LD2 BIT P2.1
LD3 BIT P2.2
LD4 BIT P2.3
LED1 BIT P2.4
LED2 BIT P2.5
LED3 BIT P2.6
LED4 BIT P2.7
BEEP BIT P3.6
SUB BIT 01H ;减数标志位
BUF_LED1 EQU 24H ;LED1缓存
BUF_LED2 EQU 25H ;LED2缓存
BUF_LED3 EQU 26H ;LED3缓存
BUF_LED4 EQU 27H ;LED4缓存
BIN_LED1 EQU 28H
BIN_LED2 EQU 29H
BIN_LED3 EQU 2AH
BIN_LED4 EQU 2BH
BUFF_LP EQU 2CH
ORG 0000H
LJMP MAIN
ORG 00BH
LJMP TT0
ORG 0100H
MAIN: MOV SP, #40H
MOV A, #00H
MOV IE, #00H
MOV R6, #50H
MOV R0, #20H
STR0: MOV @R0, A
INC R0
NOP
DJNZ R6, STR0
MOV P1,#0FFH
MOV P0,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV BUFF_LP, #00H
MOV TH0, #0FCH ;LED扫描周期1MS
MOV TL0, #18H
MOV TMOD,#01H
mov buf_led1,#90h
mov buf_led2,#90h
mov buf_led3,#90h
mov buf_led4,#90h
MOV BIN_LED1,#9
MOV BIN_LED2,#9
MOV BIN_LED3,#9
MOV BIN_LED4,#9
SETB EA ;1MS
SETB ET0
SETB TR0
WAIT: JB SUB,SUB_L1
LJMP WAIT
SUB_L1:MOV A,BIN_LED1
CLR SUB
CJNE A,#00H,SUB_EN
LJMP SUB_LED2
SUB_EN:DEC BIN_LED1
MOV A,BIN_LED1
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV BUF_LED1,A
SUB_EN1:LJMP WAIT
SUB_LED2:MOV BIN_LED1,#09
MOV BUF_LED1,#90H
MOV A,BIN_LED2
CJNE A,#00H,SUB_EN2
LJMP SUB_LED3
SUB_EN2:DEC BIN_LED2
MOV A,BIN_LED2
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV BUF_LED2,A
LJMP WAIT
SUB_LED3:MOV BIN_LED2,#09
MOV BUF_LED2,#90H
MOV A,BIN_LED3
CJNE A,#00H,SUB_EN3
LJMP SUB_LED4
SUB_EN3:DEC BIN_LED3
MOV A,BIN_LED3
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV BUF_LED3,A
LJMP WAIT
SUB_LED4:MOV BIN_LED3,#09
MOV BUF_LED3,#90H
MOV A,BIN_LED4
CJNE A,#00H,SUB_EN4
LJMP SUB_LED5
SUB_EN4:DEC BIN_LED4
MOV A,BIN_LED4
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV BUF_LED4,A
LJMP WAIT
SUB_LED5:LJMP MAIN
LJMP MAIN
;================================================定时器0,扫描LED
TT0: MOV TH0, #0FCH
MOV TL0, #18H
PUSH ACC
PUSH PSW
INC BUFF_LP
MOV A, BUFF_LP
CJNE A, #04H, TT0_01
MOV BUFF_LP, #00H
TT0_01: MOV A, BUFF_LP
RL A
MOV DPTR,#LED_LOOP
JMP @A+DPTR
LED_LOOP: AJMP LED_L1
AJMP LED_L2
AJMP LED_L3
AJMP LED_L4
LED_L1: CLR LED1
SETB LED2
SETB LED3
SETB LED4
MOV P0, BUF_LED1
JMP TT0_END
LED_L2: SETB LED1
CLR LED2
SETB LED3
SETB LED4
MOV P0, BUF_LED2
JMP TT0_END
LED_L3: SETB LED1
SETB LED2
CLR LED3
SETB LED4
MOV P0, BUF_LED3
JMP TT0_END
LED_L4: SETB LED1
SETB LED2
SETB LED3
CLR LED4
MOV P0, BUF_LED4
JMP TT0_END
TT0_END: INC R2
CJNE R2,#100,TT0_END1
MOV R2,#00H
SETB SUB
TT0_END1: POP PSW
POP ACC
RETI
NOP
NOP
LJMP 000H
LED_CODE:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -