📄 test.asm
字号:
;----------------------start-----------------------
KEY_NUM EQU 30H
MD EQU 31H
ORG 000H
JMP MAIN
ORG 0023H
LJMP RX_INT
ORG 100H
MAIN:MOV SP ,#60H
MOV P1,#00H ;TEST
MOV P0,#00H
MOV P2,#00H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P1,#0FFH ;INIT
MOV P2,#0FFH
MOV P0,#0FFH
MOV P3,#0FFH
CLR A
MOV MD ,#00H
MOV A,P3
CPL A
ANL A,#0F0H
SWAP A
MOV MD,A
RL A
MOV DPTR,#JUMP
JMP @A+DPTR
JUMP: AJMP MOD0
AJMP MOD1
AJMP MOD2
AJMP MOD3
AJMP MOD4
AJMP MOD5
AJMP MOD6
AJMP MOD7
AJMP MOD8
AJMP MOD9
AJMP MOD10
AJMP MOD11
AJMP MOD12
AJMP MOD13
AJMP MOD14
AJMP MOD15
;----------P0:KEY INTO BIN-------------
MOD0: MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
M0:LCALL KEY
MOV P0,#0FFH
MOV A,KEY_NUM
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV P2,A
MOV A,KEY_NUM
SWAP A
CPL A
MOV P1,A
JMP M0
;---------P1 KEY INTO BCD------------
MOD1:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
M1:LCALL KEY
MOV P0,#0FFH
MOV A,KEY_NUM
DA A
LCALL DISP1
MOV A,KEY_NUM
SWAP A
CPL A
MOV P1,A
JMP M1
;------------P2 SEC_WATCH_TABLE---------------
MOD2:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
JB P3.1,$
MOV R0,#00H
MOV A,#00H
MOV P0,#0C0H
MOV P2,#0C0H
M21:MOV R3,#09H
M22:LCALL DELAY ;SEC-LOOP
CPL P1.4
DJNZ R3,M22
CPL P1.7
MOV A,R0
ADD A,#01H
DA A
MOV R0,A
LCALL DISP1
CJNE R0,#60H,M21
CLR P2.7
LCALL DELAY
SETB P2.7
JMP MOD2
;-----------P3 TRAFFIC------------
MOD3:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
JB P3.1,$
CLR P1.4
M30:MOV R0,#30H
MOV A,#30H
MOV P0,#0B0H
MOV P2,#0C0H
M31:MOV R3,#09h
M32:LCALL DELAY ;SEC_LOOP
DJNZ R3,M32
MOV A,R0
ADD A,#99H
DA A
MOV R0,A
LCALL DISP1
CJNE R0,#05h,M31
M33:CPL P1.3
MOV R3,#05H
M34:LCALL DELAY
DJNZ R3,M34
CPL P1.3
MOV R3,#04H
M35:LCALL DELAY
DJNZ R3,M35
MOV A,R0
ADD A,#99H
DA A
MOV R0,A
LCALL DISP1
CJNE R0,#00H,M33
CPL P1.4
CPL P1.2
SETB P1.3
JMP M30
;--------P4 DISPLAY_DEMO1------------
MOD4: MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.1,$ ;a
MOV P2,#0FFH
MOV P0,#88H
M41:CPL P2.0
LCALL DELAY
LCALL DELAY
JB P3.1,M41
SETB P2.0
MOV P0,#83H ;b
M42:CPL P2.1
LCALL DELAY
LCALL DELAY
JB P3.1,M42
SETB P2.1
MOV P0,#0C6H
M43:CPL P2.2
LCALL DELAY ;C
LCALL DELAY
JB P3.1,M43
SETB P2.2
MOV P0,#0A1H ;D
M44:CPL P2.3
LCALL DELAY
LCALL DELAY
JB P3.1,M44
SETB P2.3
MOV P0,#86H ;E
M45:CPL P2.4
LCALL DELAY
LCALL DELAY
JB P3.1,M45
SETB P2.4
MOV P0,#8EH ;F
M46:CPL P2.5
LCALL DELAY
LCALL DELAY
JB P3.1,M46
SETB P2.5
MOV P0,#90H ;G
M47:CPL P2.6
LCALL DELAY
LCALL DELAY
JB P3.1,M47
SETB P2.6
MOV P0,#89H ;H
M48:CPL P2.7
LCALL DELAY
LCALL DELAY
JB P3.1,M48
SETB P2.7
JMP MOD4
;---------P5,DISP_DEMO2------------------
MOD5: MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.1,$
MOV P0,#0FFH
MOV P2,#0FFH
CLR P2.0
CLR P0.0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P2.1
CLR P0.5
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P2.2
CLR P0.4
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P2.3
CLR P0.3
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P2.4
CLR P0.2
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P2.5
CLR P0.1
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P2.6
CLR P0.6
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P2,#0FFH
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P2,#00H
MOV P0,#00H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P2,#0FFH
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P2,#0FFH
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
JMP MOD5
;---------P6 DISP_DEMO3-------------------------
MOD6: MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.1,$
MOV R0,#00H
M6: MOV A,R0
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV P0,A
MOV P2,A
MOV A,R0
SWAP A
CPL A
MOV P1,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
INC R0
CJNE R0,#10H,M6
MOV R0,#00H
JMP M6
;------------P7 DISP_DEMO4----------------
MOD7: MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.1,$
MOV R0,#00H
MOV P0,#0FFH
MOV P2,#0FFH
M7: MOV A,R0
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P0,A
INC R0
CJNE R0,#10H,M7
MOV P2,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
JMP MOD7
;---------P8 LED_DEMO1------------------
MOD8: MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.1,$
MOV A,#0FEH
M8: MOV P1,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
JMP M8
;---------P9 LED_DEMO2----------
MOD9:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.1,$
M91: MOV P1,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
mov p1,#0e7h
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P1,#0dbH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
mov p1,#0bdh
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P1,#7eH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
mov p1,#00h
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P1,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
mov p1,#7eh
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P1,#0bdH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
mov p1,#0dbh
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P1,#0e7H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
mov p1,#00h
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
JMP M91
;----------P10 KEY_DEMO------------
MOD10:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
m10: lcall key
jnz bp
setb p2.7
jmp m10
bp: clr p2.7
lcall delay
jmp m10
;----------P11 ADD_DEMO---------
MOD11:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P0,#0C0H
MOV P2,#0C0H
JB P3.1,$
MOV R0,#01H
M111:LCALL DISP2
JNB P3.1,$
M112:JB P3.1,$
LCALL DELAY
JB P3.1,M112
INC R0
JMP M111
;---------P12 DEC_DEMO-----------
MOD12:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P0,#0C0H
MOV P2,#0C0H
JB P3.1,$
MOV R0,#0FFH
M121:LCALL DISP2
JNB P3.1,$
M122:JB P3.1,$
LCALL DELAY
JB P3.1,M122
DEC R0
JMP M121
;---------P13,CALC_DEMO-----------
MOD13:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P0,#0C0H
MOV P2,#0C0H
MOV R0,#00H
M132:JB P3.1, M131
LCALL DELAY
JB P3.1,M132
MOV A,R0
ADD A,#01H
DA A
MOV R0,A
LCALL DISP1
JNB P3.1,$
JMP M131
M131:JB P3.2,M132
LCALL DELAY
JB P3.2,M131
MOV A,R0
ADD A,#99H
DA A
MOV R0,A
LCALL DISP1
JNB P3.2,$
JMP M132
;---------P14,TUNSUN_DEMO 1-----------
MOD14:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.2,$
MOV TMOD,#20H
MOV TL1,#0E6H
MOV TH1,#0E6H
CLR ET1
SETB TR1
MOV SCON,#40H
MOV PCON,#00H
MOV P1,#0FFH
MOV R2,#20H
CLR A
TSTART:MOV R3,#09H
CPL A
MOV P1,A
CPL A
MOV SBUF,A
WAIT:JBC TI,CONT1
SJMP WAIT
CONT1:LCALL DELAY
DJNZ R3,CONT1
INC A
DJNZ R2,TSTART
CLR P2.7
LCALL DELAY
LCALL DELAY
SETB P2.7
JMP MOD14
;---------P15,TUNSUN_DEMO 2-----------
MOD15:MOV A,MD
LCALL DISP0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
JB P3.2,$
MOV TMOD,#20H
MOV TL1,#0E6H
MOV TH1,#0E6H
CLR ET1
SETB TR1
MOV SCON,#50H
MOV PCON,#00H
MOV P1,#0FFH
MOV R2,#10H
SETB ES
SETB EA
JB P2.7,$
LCALL DELAY
LCALL DELAY
SETB P2.7
JMP MOD15
;----------------rx----------
RX_INT:PUSH ACC
PUSH PSW
CONT2:JNB RI,$
CLR RI
MOV A,SBUF
MOV SBUF,A
CPL A
MOV P1,A
JNB TI,$
CLR TI
DJNZ R2,CONT2
CLR P2.7
POP PSW
POP ACC
RETI
DISP0: PUSH ACC
MOV P0,#8CH ;"P"
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV P2,A
POP ACC
RET
DISP1:;DA A
PUSH ACC
ANL A,#0FH
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV P2,A
POP ACC
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
RET
DISP2:MOV A,R0
PUSH ACC
ANL A,#0F0H
SWAP A
MOV DPTR,#LED_CODE
MOVC A,@A+DPTR
MOV P0,A
POP ACC
ANL A,#0FH
MOVC A,@A+DPTR
MOV P2,A
RET
DELAY: MOV R6,#0F0H ;0.111S
DL1: MOV R7,#0E6H
DJNZ R7,$
DJNZ R6,DL1
RET
KEY: MOV A,P3 ;jianpian
ANL A,#0FH
MOV KEY_NUM,A
LCALL DELAY
MOV A,P3
ANL A,#0FH
CJNE A,KEY_NUM,KEY
CPL A
ANL A,#0FH
MOV KEY_NUM,A
RET
ORG 0A00H
LED_CODE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;"0-F"
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -