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

📄 成功版时钟.asm

📁 我变的时钟程序
💻 ASM
字号:
OE EQU P3.0
DIR EQU P3.7
E EQU P3.5
RS EQU P2.1
RW EQU P2.0
         ORG 0000H
         AJMP   MAIN
         ORG     001BH
         AJMP    SERVE
MAIN:    MOV     TMOD,#01H
         MOV     20H,#0AH       ;中断次数
         CLR     A
         MOV     30H,A          ;时单元置零
         MOV     31H,A          ;分单元置零
         MOV     32H,A          ;秒单元置零
         MOV     B,#0AH
         SETB    ET1
         SETB    EA
         MOV     TH1,#3CH
         MOV     TL1,#0B0H
         SETB    TR1
         SJMP    $

SERVE:   PUSH   PSW
         PUSH   ACC
         MOV    TH1,#3CH
         MOV    TL1,#0B0H
         DJNZ   20H,RETUNT
         MOV    20H,#0AH

         MOV    A,#01H
         ADD    A,32H            ;秒位加1
         MOV    32H,A
         ACALL   DISPLAY
         MOV    A,32H
         CJNE   A,#60,RETUNT
         MOV    32H,#00H

         MOV    A,#01H
         ADD    A,31H
         MOV    31H,A
         ACALL   DISPLAY
         MOV    A,31H
         CJNE   A,#60,RETUNT
         MOV    31H,#00H

         MOV    A,#01H
         ADD    A,30H
         MOV    30H,A
         ACALL   DISPLAY
         MOV    A,30H
         CJNE   A,#24,RETUNT
         MOV    30H,#00H

RETUNT:  POP    ACC
         POP    PSW
         RETI
;************************************************************************************************************
DISPLAY:    ACALL    SET0
            SETB E
                
            MOV  A,#01H
            ACALL WR_COM        
             CLR E
             SETB E     
            MOV  A,#00H
            ACALL WR_DATA
              CLR E


            ACALL    DELAY            ;延时
            SETB E
            MOV      A,#30H           ;功能设置,8位接口,1行显示,5*7点阵
            ACALL WR_COM
            CLR E
            SETB E     
            MOV A,#00H
             ACALL WR_DATA
             CLR E
             SETB E 


            ACALL    DELAY
              
            MOV      A,#0EH           ;开显示,有光标,有闪烁
             ACALL WR_COM
             CLR E
              SETB E
            MOV      A,#00H
            ACALL WR_DATA
           CLR E


            ACALL    DELAY
              ;PA口地址
              SETB E
            MOV      A,#06H          ;显示移位,AC为增量方式
            ACALL WR_COM
            CLR E
            SETB E
            MOV      A,#00H
            ACALL WR_DATA
            CLR E
            


;*******************************************************************************************************显示时位

            ACALL    DELAY
            MOV      B,#0AH
            MOV      A,30H
            DIV      AB
            CLR      PSW.6
            DA       A
            ADD      A,#30H
            SETB E
            ACALL WR_DATA
             CLR E
          SETB E
            MOV  A,#00H
            ACALL WR_DATA
            CLR E

            ACALL    DELAY
           
            MOV      A,B
            DA       A
            ADD      A,#30H
            SETB E
          ACALL WR_DATA
          CLR E
           SETB E       ;FEFF SHUJU
            MOV      A,#00H
           ACALL WR_DATA
           CLR E

;****************************************************************************************显示短线
            ACALL   DELAY
            SETB E
            MOV      A,#2DH
            ACALL WR_DATA
           CLR E
                 
            MOV      A,#00H
           ACALL WR_DATA
           CLR E
;*********************************************************************显示分位
            ACALL    DELAY
            MOV      B,#0AH
            MOV      A,31H
            DIV      AB
            DA       A
            ADD      A,#30H
            SETB E
           ACALL WR_DATA
           CLR E
           SETB E
                 
            MOV      A,#00H
            ACALL WR_DATA
            CLR E
            

            ACALL    DELAY
          
            MOV      A,B
            DA       A
            ADD      A,#30H
            SETB E
            ACALL WR_DATA
            CLR E
            SETB E                    ;7EFF SHUJU
            MOV      A,#00H
            ACALL WR_DATA
            CLR E
           

;********************************************************************************************显示短线
            ACALL     DELAY
            SETB E
            MOV      A,#2DH
            ACALL WR_DATA
            CLR E
              ;选通lcd
            MOV      A,#00H
            SETB E
            ACALL WR_DATA
            CLR E
;**********************************************************************显示秒位
            ACALL    DELAY
            MOV      B,#0AH
            MOV      A,32H            ;8的ASCII码
            DIV      AB
            DA     A
            ADD      A,#30H
            SETB E
            ACALL WR_DATA
           
            CLR E
            SETB E     ;选通lcd
            MOV      A,#00H
            ACALL WR_DATA
            CLR E

            ACALL    DELAY
         
            MOV      A,B
            DA       A
            ADD      A,#30H
            SETB E
            ACALL WR_DATA
            CLR E
            SETB E      ; 选通lcd的数据寄存器
            MOV A,#00H
            ACALL WR_DATA
            CLR E
            RET
;********************************************************            
   WR_DATA:
        CLR OE
        SETB DIR
        SETB RS
        CLR RW
        MOV DPTR,#0FF7CH
        MOVX @DPTR,A
        RET
    WR_COM:
        CLR OE
        SETB DIR
        CLR RS
        CLR RW
        MOV DPTR,#0FF7CH
        MOVX @DPTR,A
        RET          
;*************************************************************************************************

;设定下8255的工作方式

SET0:      MOV      A,#80H
           MOV      DPTR,#0FF7FH
           MOVX     @DPTR,A
           RET

;延时
  ;DELAY:     MOV       R1,#02H
;LOOP1:     MOV       R2,#0F9H
;LOOP2:     NOP
          ; NOP
           ;DJNZ      R2,LOOP2
           ;DJNZ      R1,LOOP1
           ;RET
           ;END




⌨️ 快捷键说明

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