?? led.asm
字號:
ORG 0000H ;程序執行開始地址
LJMP START ;跳至START執行
ORG 0003H ;外中斷0中斷入口地址
RETI ;中斷返回(不開中斷)
ORG 000BH ;定時器T0中斷入口地址
LJMP INTT0 ;進入定時器中斷程序
ORG 0013H ;外中斷1中斷入口地址
RETI ;中斷返回(不開中斷)
ORG 001BH ;定時器T1中斷入口地址
LJMP INTT1 ;中斷返回(不開中斷)
ORG 0023H ;串行口中斷入口地址
RETI ;中斷返回(不開中斷)
ORG 002BH ;定時器T2中斷入口地址
RETI ;中斷返回(不開中斷)
ORG 0100H
START: MOV TMOD,#21H
MOV TL1,#3CH
MOV TH1,#0B0H
MOV TH0,#0B1H
MOV TL0,#0E0H
;MOV SP,#70H
SETB EA
SETB ET0
SETB TR0
;SETB ET1
;SETB TR1
START0: LCALL XSKJ ;調顯示控制
;LCALL TIMEXS
SJMP START0
;進入定時器0中斷程序
INTT0: MOV TH0,#0B1H
MOV TL0,#0E0H
PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
SETB RS0 ;選擇工作寄存器1
LCALL DSP ;掃描顯示
;時間計數器
POP DPH
POP DPL
POP PSW
POP ACC
RETI
INTT1: MOV TH1,#3CH
MOV TL1,#0B0H
PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
SETB RS1
DJNZ 6EH,INTT10
;LCALL GET1302
MOV 6EH,#10
INTT10:
CLR RS1
POP DPH
POP DPL
POP PSW
POP ACC
RETI
;顯示控制
XSKJ: MOV R0,#0A0H ;直接顯示"歡迎"
MOV DPTR,#TAB1
LCALL ZJXS
MOV R0,#0A2H
MOV DPTR,#TAB2
LCALL ZJXS
;LJMP $
XSKJ0: MOV 60H,#2
LCALL DELY ;延時1S
MOV R7,#10H ;計數
XSKJ1: LCALL ZBPZY ;左半屏左移
LCALL YBPYY ;右半屏右移
MOV 60H,#1
LCALL DELY
DJNZ R7,XSKJ1
;MOV 60H,#1
;LCALL DELY
;MOV 6EH,#10H
XSKJ2: ;LCALL ZPSY ;整屏上移
;MOV 60H,#1
;LCALL DELY
;DJNZ 6EH,XSKJ2
LCALL TIMEXS
MOV R7,#0AH ;左移顯示 鄭州加工業學院歡迎您
MOV DPTR,#TAB6
LCALL ZYXSDZ
MOV R7,#10H
XSKJ3: LCALL ZPSY
MOV 60H,#1
LCALL DELY
DJNZ R7,XSKJ3
RET
;=====================================================
TIMEXS: LCALL Get1302
LCALL FLBCD
LCALL FLBCD
MOV SHUHC,41H
LCALL SHUXJ
MOV R0,#0A2H
LCALL ZJXS8
MOV SHUHC,40H
LCALL SHUXJ
MOV R0,#0A3H
LCALL ZJXS8
MOV SHUHC,43H
LCALL SHUXJ
MOV R0,#0A0H
LCALL ZJXS8
MOV SHUHC,42H
LCALL SHUXJ
MOV R0,#0A1H
LCALL ZJXS8
RET
;掃描顯示
DSP:
MOV R0,#0A0H
MOV R1,#0FEH
DSP0: MOV DPTR,#7FFFH
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#0BFFFH
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0DFFFH
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR,#0EFFFH
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR,#0F7FFH
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR,#0FBFFH
MOV A,@R0
MOVX @DPTR,A
INC R0
LCALL DELAY
MOV A,R1
RL A
MOV R1,A
CJNE R0,#0C0H,DSP0
MOV R1,#0FEH
DSP1: MOV DPTR,#7FFFH
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0BFFFH
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#0DFFFH
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR,#0EFFFH
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR,#0F7FFH
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR,#0FBFFH
MOV A,@R0
MOVX @DPTR,A
INC R0
LCALL DELAY
MOV A,R1
RL A
MOV R1,A
CJNE R0,#0E0H,DSP1
RET
;送數右緩沖
;調用前先給R3,DPTR賦值
XSYHC: MOV R1,#70H
XSYHC0: MOV A,R3
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC R3
INC R3
CJNE R1,#80H,XSYHC0
RET
;送數左緩沖
;調用前先給R3,DPTR賦值
XSZHC: MOV R1,#80H
XSZHC0: MOV A,R3
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC R3
INC R3
CJNE R1,#90H,XSZHC0
RET
;直接顯示
;調用前先給R0,DPTR賦值
ZJXS: MOV R3,#00H
ZJXS0: MOV A,R3
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC R3
MOV A,R3
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC R0
INC R0
INC R3
CJNE R3,#20H,ZJXS0
RET
;整屏左移
ZPZY: MOV R0,#0DFH
MOV R1,#7FH
MOV R2,#04H
ZPZY1: CLR C
MOV A,@R1
RLC A
MOV @R1,A
ZPZY0: MOV A,@R0
RLC A
MOV @R0,A
DEC R0
DJNZ R2,ZPZY0
DEC R1
MOV R2,#04H
CJNE R0,#9FH,ZPZY1
RET
;整屏右移
ZPYY: MOV R0,#0A0H
MOV R1,#80H
MOV R2,#04H
ZPYY1: CLR C
MOV A,@R1
RRC A
MOV @R1,A
ZPYY0: MOV A,@R0
RRC A
MOV @R0,A
INC R0
DJNZ R2,ZPYY0
INC R1
MOV R2,#04H
CJNE R0,#0E0H,ZPYY1
RET
;整屏上移
ZPSY: MOV R0,#0A0H
MOV R1,#0A4H
ZPSY0: MOV A,@R1
MOV @R0,A
INC R0
INC R1
CJNE R0,#0E0H,ZPSY0
RET
;整屏下移
ZPXY: MOV R0,#0DFH
MOV R1,#0DBH
ZPXY0: MOV A,@R1
MOV @R0,A
INC R0
INC R1
CJNE R0,#9FH,ZPXY0
RET
;半屏上移
;調用前先給R0,R1賦值
BPSY: MOV R3,#10H
MOV A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R1
MOV @R0,A
INC R0
INC R1
INC R0
INC R1
INC R0
INC R1
DJNZ R3,BPSY
RET
;半屏下移
;調用前先給R0,R1賦值
BPXY: MOV R3,#10H
MOV A,@R1
MOV @R0,A
DEC R0
DEC R1
MOV A,@R1
MOV @R0,A
DEC R0
DEC R1
DEC R0
DEC R1
DEC R0
DEC R1
DJNZ R3,BPXY
RET
;半半屏上移
;調用前先給R0,R1賦值
BBPSY: MOV R3,#10H
MOV A,@R1
MOV @R0,A
INC R0
INC R1
INC R0
INC R1
INC R0
INC R1
INC R0
INC R1
DJNZ R3,BBPSY
RET
;半半屏下移
;調用前先給R0,R1賦值
BBPXY: MOV R3,#10H
MOV A,@R1
MOV @R0,A
DEC R0
DEC R1
DEC R0
DEC R1
DEC R0
DEC R1
DEC R0
DEC R1
DJNZ R3,BBPXY
RET
;半屏左移
;調用前先給R0,R1賦值
BPZY: MOV R3,#08H
MOV R2,#04H
BPZY1: CLR C
MOV A,@R1
RLC A
MOV @R1,A
BPZY0: MOV A,@R0
RLC A
MOV @R0,A
DEC R0
DJNZ R2,BPZY0
DEC R1
MOV R2,#04H
DJNZ R3,BPZY1
RET
;半屏右移
;調用前先給R0,R1賦值
BPYY: MOV R3,#08H
MOV R2,#04H
BPYY1: CLR C
MOV A,@R1
RRC A
MOV @R1,A
BPYY0: MOV A,@R0
RRC A
MOV @R0,A
INC R0
DJNZ R2,BPYY0
INC R1
MOV R2,#04H
DJNZ R3,BPYY1
RET
;送數下緩沖一
;調用前先給R0,R2,DPTR 賦值
XSSXHCY: MOV A,R2
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC R2
MOVC A,@A+DPTR
MOV @R0,A
RET
;送數下緩沖二
;調用前先給R1,R3,DPTR 賦值
XSSXHCE: MOV A,R3
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC R3
MOVC A,@A+DPTR
MOV @R1,A
RET
;左半屏左移
ZBPZY: MOV R0,#0DDH
MOV R1,#8FH
ZBPZY0: MOV A,@R1
CLR C
RLC A
MOV @R1,A
MOV A,@R0
RLC A
MOV @R0,A
DEC R0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -