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

📄 时钟程序.txt

📁 基于单片机开发系统的lcd时钟显示汇编程序
💻 TXT
字号:
ORG 0000H
AJMP MAIN
MAIN:                     ;对LCD进行初始化
ACALL DELAY5MS             
ACALL JIANCE38H
ACALL DELAY15MS
ACALL JIANCE38H
ACALL DELAY15MS
ACALL JIANCE38H
ACALL F_BUSY
ACALL JIANCE38H
ACALL F_BUSY
ACALL JIANCE08H
ACALL F_BUSY
ACALL QINGPING
ACALL F_BUSY
ACALL JIANCE06H
ACALL F_BUSY
ACALL JIANCE0CH

START:ACALL QINGPING            ;时钟初始值设为00 00 00
ACALL F_BUSY
ACALL GONGNENG
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,#30H                      ;第一位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H                      ;第二位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#20H                      ;第三位显示空
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H                      ;第四位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H                      ;第五位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#20H                      ;第六位显示空
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H                      ;第七位显示0
MOVX @DPTR,A
ACALL F_BUSY
MOV A,#30H                      ;第八位显示0
MOVX @DPTR,A
ACALL DELAY1S
MOV R2,#30H
MOV R3,#30H
MOV R4,#30H
MOV R5,#30H
MOV R6,#30H
MOV R7,#30H
 

LOOP7:
MOV DPTR,#0000H
MOV A,#87H
MOVX @DPTR,A            ;开始计时  第八位显示秒的个位
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R2
MOVX @DPTR,A 
ACALL F_BUSY
ACALL DELAY1S
INC R2
CJNE R2,#3AH,LOOP7
ACALL F_BUSY     
MOV R2,#30H


PANDUANR3:
INC R3
CJNE R3,#36H,LOOP8
MOV R3,#30H
ACALL PANDUANR4
ACALL LOOP7

LOOP8:
MOV DPTR,#0000H             ;第七位显示秒的十位
MOV A,#86H
ACALL F_BUSY
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R3
MOVX @DPTR,A
ACALL F_BUSY
ACALL LOOP7

PANDUANR4:
INC R4
CJNE R4,#3AH,LOOP9
MOV R4,#30H
ACALL PANDUANR5
ACALL LOOP7

LOOP9:
MOV DPTR,#0000H
MOV A,#84H
ACALL F_BUSY                               ;第五位显示分的个位
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R4
MOVX @DPTR,A
ACALL F_BUSY
ACALL LOOP7

PANDUANR5:
INC R5
CJNE R5,#36H,LOOP10
MOV R5,#30H
ACALL PANDUANR6
ACALL LOOP7

LOOP10:
MOV DPTR,#0000H
MOV A,#83H
ACALL F_BUSY
MOVX @DPTR,A                                ;第四位显示分的十位
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R5
MOVX @DPTR,A
ACALL F_BUSY
ACALL LOOP7

PANDUANR6:
INC R6
MOV 30H,R6
MOV R0,30H
CJNE R6,#3AH,LOOP11
MOV R6,#30H
ACALL PANDUANR7
ACALL LOOP7

LOOP11:
MOV DPTR,#0000H
MOV A,#81H
ACALL F_BUSY
                               ;第二位显示时的个位
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R6
MOVX @DPTR,A
ACALL F_BUSY
CJNE R6,#3AH,LOOP7
CJNE R7,#32H,LOOP7
CJNE R6,#34H,START

PANDUANR7:
INC R7
CJNE R7,#32H,LOOP12
CJNE R0,#34H,LOOP12
AJMP START


LOOP12
MOV DPTR,#0000H
MOV A,#80H
ACALL F_BUSY
                              ;第一位显示时的十位
MOVX @DPTR,A
ACALL F_BUSY
MOV DPTR,#0200H
MOV A,R7
ACALL F_BUSY
MOVX @DPTR,A
ACALL LOOP7





         

QINGPING: MOV DPTR,#0000H           ;清屏子程序程序
MOV A,#01H
MOVX @DPTR,A
RET           
GONGNENG:MOV A,#30H                 ;功能设置子程序
           MOVX @DPTR,A
           ACALL F_BUSY
           MOV A,#0EH
           MOVX @DPTR,A
           ACALL F_BUSY
           MOV A,#06H
           MOVX @DPTR,A
RET
           
DELAY5MS:MOV R0,#05H       ;延时5MS
LOOP1:MOV R1,#0F9H
LOOP2:NOP
NOP
DJNZ R1,LOOP2
DJNZ R0,LOOP1
RET

DELAY15MS:MOV R0,#0FH      ;延时15MS
LOOP3:MOV R1,#0F9H
LOOP4:NOP
NOP
DJNZ R1,LOOP4
DJNZ R0,LOOP3
RET

DELAY250MS:MOV R0,#0FDH       ;延时250MS
LOOP5:MOV R1,#0F9H
LOOP6:NOP
NOP
DJNZ R1,LOOP6
DJNZ R0,LOOP5
RET

DELAY1S:ACALL DELAY250MS      ;延时1S
ACALL DELAY250MS
ACALL DELAY250MS
ACALL DELAY250MS
RET

F_BUSY:PUSH DPH              ;判忙程序   
PUSH DPL
PUSH PSW
PUSH A
LOOP:MOV DPTR,#0100H
MOVX A,@DPTR
JB ACC.7,LOOP
POP A
POP PSW
POP DPL
POP DPH
RET

JIANCE38H:MOV DPTR,#0000H     ;初始化子程序
MOV A,#38H
MOVX @DPTR,A
RET

JIANCE08H:MOV DPTR,#0000H     ;初始化子程序
MOV A,#08H
MOVX @DPTR,A
RET

JIANCE06H:MOV DPTR,#0000H     ;初始化子程序
MOV A,#06H
MOVX @DPTR,A
RET

JIANCE0CH:MOV DPTR,#0000H    ;初始化子程序
MOV A,#0CH
MOVX @DPTR,A
RET
    END

⌨️ 快捷键说明

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