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

📄 qqw.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

		ORG  0000h
                JMP  START
                ORG  000BH
                JMP  TIMER0
                ORG  0100H

START:

                MOV   KEYFLAG,#0

                MOV  SP,#6FH

               ; MOV DISPBUF+9,#0
              ;  MOV DISPBUF+0AH,#0

                CLR  LS164_AB
	        CLR  LS164_CLK

	 	MOV  TMOD,#01H ; 方式1

	 	MOV  TH0,#0BDH  ;初值
           	MOV  TL0,#0C0H

	 	SETB TR0
	 	SETB EA
	 	SETB ET0
		MOV  MSCNT,#16H

LOOP:
                 LCALL    DISP
                 JMP   LOOP


TIMER0:
	 	  PUSH  PSW
	 	  PUSH  ACC
                  SETB  PSW.3
		 MOV   TH0,#0BDH
		 MOV   TL0,#0C0H
		 MOV   A,MSCNT
		 DEC   A
		 MOV   MSCNT,A
		 JNZ   RET1
                 MOV   MSCNT,#16
                 MOV   R0,#DISPBUF+0AH
                 LCALL DAAD
               ;    MOV   A,R2
               ;    XRL   A,#60H

                ;  JNZ RET0
                ;   ACALL CLR0
;RET0:
;LCALL  DISP
RET1:             POP   ACC
                  POP   PSW
	         RETI
CLR0:
                CLR     A
                MOV     @R0,A
                DEC     R0
                MOV     @R0,A
                RET

DAAD:
                MOV	A,@R0
	        SWAP	A
                DEC	R0
	        ORL	A,@R0
	        INC     A
	        DA 	A
	        MOV	R2,A
	        ANL	A,#0Fh
	        MOV	@R0,A
	        MOV	A,R2
	        ANL	A,#0F0h
         	SWAP	A
                INC	R0
	        MOV	@R0,A
                RET



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 + -