⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zmd.asm

📁 用汇编语言编程
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		 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,控制刷新次数,即停留在没一状态的时间
D81:	MOV SI_3,#01   ;#08控制每次显示的位数
;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,控制刷新次数,即停留在没一状态的时间
D91:	MOV SI_3,#08   ;#08控制每次显示的位数
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,控制刷新次数,即停留在没一状态的时间
DA1:	MOV SI_3,#08   ;#08控制每次显示的位数
;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,控制刷新次数,即停留在没一状态的时间
DB1:	MOV SI_3,#01   ;#08控制每次显示的位数
	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,控制刷新次数,即停留在没一状态的时间
DC1:	MOV SI_3,#02   ;#08控制每次显示的位数
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,控制刷新次数,即停留在没一状态的时间
DDA1:	MOV SI_3,#08   ;#08控制每次显示的位数
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,控制刷新次数,即停留在没一状态的时间
DDB1:	MOV SI_3,#08   ;#08控制每次显示的位数
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,控制刷新次数,即停留在没一状态的时间
DISE1:	MOV SI_3,#08  ;#08控制每次显示的位数
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,控制刷新次数,即停留在没一状态的时间
DF1:	MOV SI_3,#1  ;#08控制每次显示的位数
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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -