?? zmd.asm
字號:
CLR keystate
CALL keytest
JB keystate,DISPLAY7END
MOV A,R3
RL A
MOV R3,A
MOV A,@R0
DEC A
DEC R0
MOV @R0,A
AJMP D70B
DEND7:
JMP DISPLAY7
DISPLAY7END: LJMP MAIN
DATA7: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
;"0" "1" "2" "3" "4" "5" "6" "7"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按08鍵時的花樣------------------------------------------
;--------------------DISPLAY8----------------------
DISPLAY8:
MOV SI_4,#0FH
D83: MOV SI_2,#10 ;#29H,控制TAB表中的移位
D82: MOV SI_1,#5fH ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
D81: MOV SI_3,#01 ;#08控制每次顯示的位數(shù)
;D80:
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TAB8
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_4
; ADD A,SI_3
MOV DPTR,#DATA8
MOVC A,@A+DPTR
; MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
; DJNZ SI_3,D80
DJNZ SI_1,D81
CALL keytest
JB keystate,DISPLAY8END
; DEC SI_2
; CALL DELAY0
DJNZ SI_2,D82
DJNZ SI_4,D83
;RET
JMP DISPLAY8
DISPLAY8END: LJMP MAIN
;--------------------------------------------------
TAB8: DB 00H,00H,08H,10H,04H,20H,02H,40H,01H,80H,00H,00H
DATA8:DB 71H,79H,5EH,39H,7CH,77H,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按09鍵時的花樣------------------------------------------
;--------------------DISPLAY9----------------------
DISPLAY9:
MOV SI_4,#0FH
D93: MOV SI_2,#31 ;#29H,控制TAB表中的移位
D92: MOV SI_1,#50 ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
D91: MOV SI_3,#08 ;#08控制每次顯示的位數(shù)
D90: MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TAB9
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_4
; ADD A,SI_3
MOV DPTR,#DATA9
MOVC A,@A+DPTR
; MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
DJNZ SI_3,D90
DJNZ SI_1,D91
CALL keytest
JB keystate,DISPLAY9END
; DEC SI_2
; CALL DELAY0
DJNZ SI_2,D92
DJNZ SI_4,D93
;RET
JMP DISPLAY9
DISPLAY9END: LJMP MAIN
;--------------------------------------------------
TAB9: DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 80H,40H,20H,10H,08H,04H,02H,01H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DATA9:DB 71H,79H,5EH,39H,7CH,77H,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按10鍵時的花樣------------------------------------------
;--------------------DISPLAYA----------------------
DISPLAYA:
MOV SI_4,#0FH
DA3: MOV SI_2,#32 ;#29H,控制TAB表中的移位
DA2: MOV SI_1,#0CFH ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DA1: MOV SI_3,#08 ;#08控制每次顯示的位數(shù)
;D90:
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABA
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_4
; ADD A,SI_3
MOV DPTR,#DATAA
MOVC A,@A+DPTR
; MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
; DJNZ SI_3,D90
DJNZ SI_1,DA1
CALL keytest
JB keystate,DISPLAYAEND
; DEC SI_2
; CALL DELAY0
DJNZ SI_2,DA2
DJNZ SI_4,DA3
;RET
JMP DISPLAYA
DISPLAYAEND: LJMP MAIN
;--------------------------------------------------
TABA: DB 00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 80H,40H,20H,10H,08H,04H,02H,01H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DATAA:DB 71H,79H,5EH,39H,7CH,77H,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按11鍵時的花樣------------------------------------------
;--------------------DISPLAYB----------------------
DISPLAYB:
MOV SI_2,#104 ;#29H,控制TAB表中的移位
DB2: MOV SI_1,#0DFH ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DB1: MOV SI_3,#01 ;#08控制每次顯示的位數(shù)
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABB
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#DATAB
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
; DJNZ SI_3,DB0
DJNZ SI_1,DB1
CALL keytest
JB keystate,DISPLAYBEND
DJNZ SI_2,DB2
;RET
JMP DISPLAYB
DISPLAYBEND: LJMP MAIN
;--------------------------------------------------
TABB:
DB 00H,00H,80H,80H,80H,80H,80H,80H
DB 80H,80H,40H,40H,40H,40H,80H,80H
DB 80H,80H,40H,20H,20H,20H,20H,40H,80H,80H
DB 80H,80H,40H,20H,10H,10H,10H,10H,20H,40H,80H,80H
DB 80H,80H,40H,20H,10H,08H,08H,08H,08H,10H,20H,40H,80H,80H
DB 80H,80H,40H,20H,10H,08H,04H,04H,04H,04H,08H,10H,20H,40H,80H,80H
DB 80H,80H,40H,20H,10H,08H,04H,02H,02H,02H,02H,04H,08H,10H,20H,40H,80H,80H
DB 80H,80H,40H,20H,10H,08H,04H,02H,01H,01H,01H,01H,02H,04H,08H,10H,20H,40H,80H,80H
DATAB:
DB 00H,00H,20H,01H,02H,04H,08H,10H
DB 20H,01H,01H,02H,04H,08H,08H,10H
DB 20H,01H,01H,01H,02H,04H,08H,08H,08H,10H
DB 20H,01H,01H,01H,01H,02H,04H,08H,08H,08H,08H,10H
DB 20H,01H,01H,01H,01H,01H,02H,04H,08H,08H,08H,08H,08H,10H
DB 20H,01H,01H,01H,01H,01H,01H,02H,04H,08H,08H,08H,08H,08H,08H,10H
DB 20H,01H,01H,01H,01H,01H,01H,01H,02H,04H,08H,08H,08H,08H,08H,08H,08H,10H
DB 20H,01H,01H,01H,01H,01H,01H,01H,01H,02H,04H,08H,08H,08H,08H,08H,08H,08H,08H,10H
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按12鍵時的花樣------------------------------------------
;--------------------DISPLAYC----------------------
DISPLAYC:
MOV SI_2,#103;#29H,控制TAB表中的移位
DC2: MOV SI_1,#80 ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DC1: MOV SI_3,#02 ;#08控制每次顯示的位數(shù)
DC0: MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABC
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#DATAC
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
DJNZ SI_3,DC0
DJNZ SI_1,DC1
CALL keytest
JB keystate,DISPLAYCEND
DJNZ SI_2,DC2
;RET
JMP DISPLAYC
DISPLAYCEND: LJMP MAIN
;--------------------------------------------------
TABC:
DB 00H,00H,01H,01H,01H,01H,01H,01H
DB 01H,01H,02H,02H,02H,02H,01H,01H
DB 01H,01H,02H,04H,04H,04H,04H,02H,01H,01H
DB 01H,01H,02H,04H,08H,08H,08H,08H,04H,02H,01H,01H
DB 01H,01H,02H,04H,08H,10H,10H,10H,10H,08H,04H,02H,01H,01H
DB 01H,01H,02H,04H,08H,10H,20H,20H,20H,20H,10H,08H,04H,02H,01H,01H
DB 01H,01H,02H,04H,08H,10H,20H,40H,40H,40H,40H,20H,10H,08H,04H,02H,01H,01H
DB 01H,01H,02H,04H,08H,10H,20H,40H,80H,80H,80H,80H,40H,20H,10H,08H,04H,02H,01H,01H
DATAC:
DB 00H,00H,02H,01H,20H,10H,08H,04H
DB 02H,01H,01H,20H,10H,08H,08H,04H
DB 02H,01H,01H,01H,20H,10H,08H,08H,08H,04H
DB 02H,01H,01H,01H,01H,20H,10H,08H,08H,08H,08H,04H
DB 02H,01H,01H,01H,01H,01H,20H,10H,08H,08H,08H,08H,08H,04H
DB 02H,01H,01H,01H,01H,01H,01H,20H,10H,08H,08H,08H,08H,08H,08H,04H
DB 02H,01H,01H,01H,01H,01H,01H,01H,20H,10H,08H,08H,08H,08H,08H,08H,08H,04H
DB 02H,01H,01H,01H,01H,01H,01H,01H,01H,20H,10H,08H,08H,08H,08H,08H,08H,08H,08H,04H
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按13鍵時的花樣------------------------------------------
;--------------------DISPLAYD----------------------
DISPLAYD:
MOV SI_2,#1;#29H,控制TAB表中的移位
DDA2: MOV SI_1,#100 ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DDA1: MOV SI_3,#08 ;#08控制每次顯示的位數(shù)
DDA0:
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABD
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#DATADA
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
DJNZ SI_3,DDA0
DJNZ SI_1,DDA1
CALL keytest
JB keystate,DISPLAYDEND
DJNZ SI_2,DDA2
; CALL DELAY0
MOV SI_2,#1;#29H,控制TAB表中的移位
DDB2: MOV SI_1,#0FFH ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DDB1: MOV SI_3,#08 ;#08控制每次顯示的位數(shù)
DDB0:
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABD
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#DATADB
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
DJNZ SI_3,DDB0
DJNZ SI_1,DDB1
CALL keytest
JB keystate,DISPLAYDEND
DJNZ SI_2,DDB2
;RET
JMP DISPLAYD
DISPLAYDEND: LJMP MAIN
;--------------------------------------------------
TABD:
DB 00H,00H,01H,02H,04H,08H,10H,20H,40H,80H
DATADA:
DB 00H,00H,05H,08H,01H,08H,01H,08H,01H,28H
DATADB:
DB 00H,00H,0AH,01H,08H,01H,08H,01H,08H,11H
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按14鍵時的花樣------------------------------------------
;--------------------DISPLAYE----------------------
DISPLAYE:
MOV SI_2,#12H ;#29H,控制TAB表中的移位
DISE2: MOV SI_1,#100 ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DISE1: MOV SI_3,#08 ;#08控制每次顯示的位數(shù)
DISE0: MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABE
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#DATAE
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY
DJNZ SI_3,DISE0
DJNZ SI_1,DISE1
CALL keytest
JB keystate,DISPLAYEEND
DJNZ SI_2,DISE2
;RET
JMP DISPLAYE
DISPLAYEEND: LJMP MAIN
;--------------------------------------------------
TABE:
DB 00H,00H,80H,40H,20H,10H,08H,04H,02H,01H,01H
DB 01H,02H,04H,08H,10H,20H,40H,80H,80H,00H,00H,00H
DATAE:
DB 00H,00H,09H,09H,09H,09H,09H,09H,09H,09H,06H
DB 40H,40H,40H,40H,40H,40H,40H,40H,30H,00H,00H,00H
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按15鍵時的花樣------------------------------------------
;--------------------DISPLAYF----------------------
DISPLAYF:
MOV SI_2,#25 ;#29H,控制TAB表中的移位
DF2: MOV SI_1,#80 ;#50,控制刷新次數(shù),即停留在沒一狀態(tài)的時間
DF1: MOV SI_3,#1 ;#08控制每次顯示的位數(shù)
DF0: MOV A,SI_2
ADD A,SI_3
MOV DPTR,#TABF
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,SI_2
ADD A,SI_3
MOV DPTR,#DATAF
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#9FFFH
MOVX @DPTR,A
LCALL DELAY2
DJNZ SI_3,DF0
DJNZ SI_1,DF1
CALL keytest
JB keystate,DISPLAYFEND
DJNZ SI_2,DF2
;RET
JMP DISPLAYF
DISPLAYFEND: LJMP MAIN
;--------------------------------------------------
DATAF: DB 00H,04H,20H,08H,01H,08H,01H
DB 08H,01H,08H,01H,10H,02H
DB 20H,04H,01H,08H,01H,08H
DB 01H,08H,01H,08H,02H,10H,00H
TABF:DB 00H,01H,80H,01H,80H,02H,40H
DB 04H,20H,08H,10H,08H,10H
DB 08H,10H,08H,10H,04H,20H
DB 02H,40H,01H,80H,01H,80H,00H
;---------------------------------------------------------------------------------------------------------
;-------------------------------------------------------按16鍵時的花樣------------------------------------------
;--------------------DISPLAYG----------------------
SHOWG:
MOV R2,#150
SHG1: MOV R4,#0
SHG0: MOV A,R5
ADD A,R4
MOV DPTR,#TAB0
MOVC A,@A+DPTR
MOV DPTR,#8FFFH
MOVX @DPTR,A
MOV A,R4
MOV DPTR,#DATAG
MOVC A,@A+DPTR
MOV DPTR,#9FFFH
MOVX @DPTR,A
CALL DELAY
INC R4
CJNE R4,#8,SHG0
DJNZ R2,SHG1
CLR keystate
CALL keytest
JB keystate,SHOWGEND
RET
SHOWGEND:LJMP MAIN
DISPLAYG:
MOV R5,#0
DG0:CALL SHOWG
INC R5
CJNE R5,#7,DG0
CLR keystate
CALL keytest
JB keystate,DISPLAYGEND
DG1:CALL SHOWG
INC R5
CJNE R5,#15,DG1
CLR keystate
CALL keytest
JB keystate,DISPLAYGEND
JMP DISPLAYG
DISPLAYGEND: LJMP MAIN
;--------------------------------------------------
DATAG:
DB 80H,79H,7EH,7CH,5EH,5CH,5CH,3DH
;---------------------------------------------------------------------------------------------------------
;---------------------------------------------------------公用DELAY----------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY: MOV R7,#01H
DE: MOV R6,#45H
DELY: DJNZ R6,DELY
DJNZ R7,DE
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY0: MOV R7,#0FFH
DE0: MOV R6,#0FFH
DELY0: DJNZ R6,DELY0
DJNZ R7,DE0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY1: MOV R7,#0FH
DE1: MOV R6,#0FFH
DELY1: DJNZ R6,DELY1
DJNZ R7,DE1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY2: MOV R7,#02H
DE2: MOV R6,#45H
DELY2: DJNZ R6,DELY2
DJNZ R7,DE2
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;---------------------------------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;公用TAB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
;"0" "1" "2" "3" "4" "5" "6" "7"
DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
;"8" "9" "A" "B" "C" "D" "E" "F"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ENDE:
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -