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

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

  DISPBUF   EQU  20H

  BEEP   BIT  p1.0

  MSCNT  EQU  30H


		ORG  0000h
		JMP  MAIN
	        ORG  000Bh
                JMP  TIMER0
                ORG  0100H


MAIN:

INIT:
                MOV  SP,#50H
CLRDISPBUF: ; 清4个显示缓冲区               
                MOV  R1,#4
                MOV  R0,#DISPBUF+1
CLRDISPBUFLOOP:          
                MOV  @R0,#0  
                INC  R0
                DJNZ R1,CLRDISPBUFLOOP
                 
                CLR  LS164_AB
	        CLR  LS164_CLK

		MOV  TMOD,#01H ; 方式1

		MOV  TH0,#0BH  ;初值
		MOV  TL0,#0DCH

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


	        MOV	 65H,#1
                MOV      64H,#2
                MOV      63H,#0
                MOV      62H,#0
                LCALL    DISP0
LOOP:

                LCALL KEYINPUT
                 ;LCALL DISP
                 JMP   LOOP

TIMER0:
		 PUSH  PSW
		 PUSH  ACC
		 MOV   TH0,#0BH
		 MOV   TL0,#0DCH
		 MOV   A,MSCNT
		 DEC   A
		 MOV   MSCNT,A
		 JNZ   RET1
                 MOV   R0,#DISPBUF+1
                 LCALL DAAD
                 
                                

RET1:           POP   ACC
                POP   PSW
		 RETI




KEYINPUT:       ;按键扫描
K1:	        JB  KEY1,K2    ;?????
                LCALL DELAY20MS
                LCALL ADD1
                LJMP  NOKEY

K2:             JB  KEY2,NOKEY   ;??????
                LCALL DELAY20MS
                LCALL L2
                ;LJMP  NOKEY


ADD1:
       CLR BEEP
       RET
L2:  ;月,日,时,分

       RET
IFUP:   ;是否松开
       ; JB  KEY1,

NOKEY:
                RET
DISP0:
                MOV    R0,#DISPBUF+1
	 	MOV    DPTR,#SAG_LED234
		MOV    A,@R0
	 	MOVC   A,@A+DPTR

                LCALL Send74LS164
                LCALL SELECT_LED4

		RET

DAAD: ;+1 十进制调整
                MOV  A,@R0
                INC  A
                
                RET

DISP:  

	 	MOV    R0,#65H
	 	MOV    DPTR,#SAG_LED1
		MOV    A,@R0
	 	MOVC   A,@A+DPTR

                LCALL Send74LS164
                LCALL SELECT_LED1
                LCALL DELAY20MS


                MOV    R0,#64H
	 	MOV    DPTR,#SAG_LED234
		MOV    A,@R0
	 	MOVC   A,@A+DPTR

                LCALL Send74LS164
                ;LCALL SELECT_LED2
                LCALL DELAY20MS

                MOV    R0,#63H
	 	MOV    DPTR,#SAG_LED234
		MOV    A,@R0
	 	MOVC   A,@A+DPTR

                LCALL Send74LS164
                LCALL SELECT_LED3
                LCALL DELAY20MS


                MOV    R0,#62H
	 	MOV    DPTR,#SAG_LED234
		MOV    A,@R0
	 	MOVC   A,@A+DPTR

                LCALL Send74LS164
                LCALL SELECT_LED4
                LCALL DELAY20MS
                RET

; 74LS164芯片工作原理程序
Send74LS164:
		MOV	R1,#8
Send2LS164_Loop:
		RLC  A
	        MOV  LS164_AB,C
	        SETB LS164_CLK
	        CLR  LS164_CLK
	        DJNZ r1,Send2LS164_Loop
                RET

SELECT_LED1:;选通数码管1
CLR   LED1
SETB  LED2
SETB  LED3
SETB  LED4
RET

SELECT_LED2:;选通数码管1
CLR   LED2
SETB  LED1
SETB  LED3
SETB  LED4
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毫秒
PUSH PSW
SETB RS0
MOV R7,#17
D51: MOV R6,#200
NOP
NOP
NOP
NOP
NOP
D52:
DJNZ R6,D52
DJNZ R7,D51
POP PSW
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 + -