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

📄 qw.asm

📁 一个本人编写的时钟程序
💻 ASM
字号:

  LED1        BIT  p1.3  ;4位数码管选通引脚
  LED2        BIT  p1.4
  LED3        BIT  p1.6
  LED4        BIT  p1.7
  LED2DZ      BIT  P1.5  ;小数点

  LS164_AB    BIT  p3.0 ;74LS164数据线
  LS164_CLK   BIT  p3.1 ;74LS164时钟线

  KEY1      BIT  p3.5 ;按键1
  KEY2      BIT  p3.7 ;按键2
  KEYFLAG   EQU  40H  ;按键标识

  DISPBUF   EQU  20H

  BEEP   BIT  p1.0

  MSCNT  EQU  30H
  
  SECONDBUF EQU 31H
  MINUTEBUF EQU 32H
  HOURBUF   EQU 33H
  

		ORG  0000h
                JMP  START
   
                ORG  0100H

START:


	 	  PUSH  PSW
	 	  PUSH  ACC

                  
                MOV     A,      SECONDBUF 
                 CJNE    A,      #59,SADD1
                 MOV     SECONDBUF, #0
                
                 MOV     A,      MINUTEBUF
                 CJNE    A,      #59,MADD1
                 MOV     MINUTEBUF, #0
                AJMP    RET1


SADD1:  ;秒加1
                INC   SECONDBUF 
                AJMP    RET1
MADD1:
                INC   MINUTEBUF
                
RET1:
                MOV     A,              SECONDBUF 
                MOV     B,              #10
                DIV     AB
                MOV     DISPBUF+1,         B
                MOV     DISPBUF+2,       A
                
                MOV     A,              MINUTEBUF
                MOV     B,              #10
                DIV     AB
                MOV     DISPBUF+3,         B
                MOV     DISPBUF+4,         A
                
                POP   ACC
                POP   PSW
	        RETI
                 

                
                
GET_LED234:
	 	MOV    DPTR,#SAG_LED234
		MOV    A,@R0
	 	MOVC   A,@A+DPTR
                RET

DISP:
                CLR LED3
                MOV    R0,#DISPBUF+0AH
	 	LCALL GET_LED234
                LCALL Send74LS164
               ; LCALL SELECT_LED3
                LCALL DELAY20MS

                 SETB LED3
                 CLR LED4
                ;LCALL SELECT_LED4
                MOV    R0,#DISPBUF+9
	 	LCALL GET_LED234
                LCALL Send74LS164
                LCALL DELAY20MS
                SETB LED4
                RET

Send74LS164:
		MOV	R1,#8
Send2LS164_Loop:
		RLC  A
	        MOV  LS164_AB,C
	        SETB LS164_CLK
	        CLR  LS164_CLK
	        DJNZ r1,Send2LS164_Loop
                RET
SELECT_LED3:;选通数码管1
                CLR   LED3
                SETB  LED1
                SETB  LED2
                SETB  LED4
                RET

SELECT_LED4:;选通数码管1
                CLR   LED4
                SETB  LED1
                SETB  LED2
                SETB  LED3
                RET
DELAY20MS:  ;延时20毫秒
                MOV     R0, #0DFH
          D1:   MOV     R1, #2
          D2:   DJNZ    R1, D2
                DJNZ    R0, D1

RET
SAG_LED1: ;LED1段码
DB  01010000b,11111001b,00110100b,10110000b,10011001b,10010010b,00010010b,11111000b,00010000b,10010000b,0ffh
SAG_LED234: ;LED234段码
DB  11000000b,11111001b,10100100b,10110000b,10011001b,10010010b,10000010b,11111000b,10000000b,10010000b,0ffh
  ;  0         1         2         3         4         5         6         7         8         9
TABLE_extra:
DB  11111110B,11111101B,11111011B,11110111B,11101111B,11011111B,10111111B,0h,0ffh,0ffh,0ffh
               END

⌨️ 快捷键说明

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