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

📄 12864.asm

📁 12864 数字钟
💻 ASM
📖 第 1 页 / 共 4 页
字号:
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV     R1,#0A0H               ;空1格日个位
                LCALL	wdatsz
                MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV     R1,#64                 ;写入日
                LCALL	wdatnyr
m0:             lcall   xszsfm    
                lcall   xsznyr
                lcall   xszxq
                lcall   zh              
                lcall   dz
                SJMP    m0
;***************************************************显示星期子程序<占用区0>
xszxq:          push    dph                    ;保护现场
                push    dpl
                push    acc
                push    psw
                clr     psw.3                  ;进入第0组工作寄存器
                clr     psw.4
                CLR	CS2
                SETB	CS1
                MOV	33H,#0C0H              ;设行单元初值
                MOV	34H,#0BAH              ;设页单元初值
                MOV	35H,#58H               ;设列单元初值
                MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV     A,25H
                CJNE    A,#1,LOOP16
                MOV     R1,#0
                LCALL	Wxqsz
                LJMP	xxxx
LOOP16:         CJNE    A,#2,LOOP17
                MOV     R1,#24
                LCALL	Wxqsz
                LJMP	xxxx
LOOP17:         CJNE    A,#3,LOOP18
                MOV     R1,#48
                LCALL	Wxqsz
                LJMP	xxxx
LOOP18:         CJNE    A,#4,LOOP19
                MOV     R1,#72
                LCALL	Wxqsz
                LJMP	xxxx
LOOP19:         CJNE    A,#5,LOOP20
                MOV     R1,#96
                LCALL	Wxqsz
                LJMP	xxxx
LOOP20:         CJNE    A,#6,LOOP21
                MOV     R1,#120
                LCALL	Wxqsz
                LJMP	xxxx
LOOP21:         MOV     R1,#144
                LCALL	Wxqsz
xxxx:           pop     psw                    ;回复现场
                pop     acc
                pop     dph
                pop     dpl
                RET
;***************************************************显示月日子程序<占用区0>
xsznyr:         push    dph                    ;保护现场
                push    dpl
                push    acc
                push    psw
                clr     psw.3                  ;进入第0组工作寄存器
                clr     psw.4
                CLR	CS1
                SETB	CS2
                MOV	33H,#0C0H              ;设行单元初值
                MOV	34H,#0B8H              ;设页单元初值
                MOV	35H,#78H               ;设列单元初值
                MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV	A,27H
                ANL     A,#0F0h
                CJNE    A,#0,LOOP10
                MOV     R1,#0A0H
                LCALL	WDATSZ
                SJMP    LOOP11                 ;月十位为0时消隐
LOOP10:         MOV     R1,A                   ;否则月十位输出数字
                LCALL	WDATSZ               
LOOP11:         CLR	CS2
                SETB	CS1
                MOV	33H,#0C0H              ;设行单元初值
                MOV	34H,#0B8H              ;设页单元初值
                MOV	35H,#40H               ;设列单元初值
                MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV	A,27H
                ANL     A,#0Fh
                SWAP    A
                MOV     R1,A                   ;写月个位
                LCALL	WDATSZ
                MOV	33H,#0C0H              ;设行单元初值
                MOV	34H,#0B8H              ;设页单元初值
                MOV	35H,#58H               ;设列单元初值
                MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV	A,26H
                ANL     A,#0F0h
                CJNE    A,#0,LOOP12
                MOV     R1,#0A0H
                LCALL	WDATSZ
                SJMP    LOOP13                 ;日十位为0时消隐
LOOP12:         MOV     R1,A                   ;否则日十位输出数字
                LCALL	WDATSZ               
LOOP13:         MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV	A,26H
                ANL     A,#0Fh
                SWAP    A
                MOV     R1,A                   ;写日个位
                LCALL	WDATSZ
                pop     psw                    ;回复现场
                pop     acc
                pop     dph
                pop     dpl
                RET
;***************************************************显示时分秒子程序<占用区0>
xszsfm:         push    dph                    ;保护现场
                push    dpl
                push    acc
                push    psw
                clr     psw.3                  ;进入第0组工作寄存器
                clr     psw.4
                CLR	CS1
                SETB	CS2
                MOV	33H,#0C0H              ;设行单元初值
                MOV	34H,#0BCH              ;设页单元初值
                MOV	35H,#60H               ;设列单元初值
                MOV     com,33H                ;设置起始为第1行 
                LCALL	Wcom
                MOV     com,34H                ;设置第1行0页
                LCALL	Wcom
                MOV     com,35H                ;设置第1行0列   
                LCALL	Wcom
                MOV     A,2fh                  ;写入时十位
                swap    A
                MOV     R1,A
                LCALL	WDATSZ
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom
                MOV	A,2eH
                swap	A
                MOV     R1,A                   ;写入时个位
                LCALL	WDATSZ
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom
                MOV     R1,#0B0H               ;写入冒号:
                LCALL	WDATSZ
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom 
                MOV     A,2dh                  ;写入分十位
                swap    A
                MOV     R1,A
                LCALL	WDATSZ
                SETB	CS1
                CLR	CS2
                MOV	33H,#0C0H              ;设行单元初值
                MOV	34H,#0BCH              ;设页单元初值
                MOV	35H,#40H               ;设列单元初值
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom
                MOV     A,2cH                  ;写入分个位
                swap    A
                MOV     r1,A
                LCALL	WDATSZ
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom
                MOV     R1,#0B0H               ;写入冒号:
                LCALL	WDATSZ
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom
                MOV     A,2bH                  ;写入秒十位
                swap    A
                MOV     R1,A
                LCALL	WDATSZ
                MOV	com,33H                ;重新设行单元
                LCALL	Wcom
                MOV	com,34H                ;重新设页单元
                LCALL	Wcom
                MOV	com,35H                ;重新设列单元
                LCALL	Wcom
                MOV     A,2aH
                swap    A
                MOV     R1,A                   ;写入秒个位
                LCALL	WDATSZ
                pop     psw                    ;回复现场
                pop     acc
                pop     dph
                pop     dpl
                RET
;***************************************************写屏wxqsz12X12
Wxqsz:          push    dph                      ;保护现场
                push    dpl
                push    acc
                push    psw
                MOV     R2,#12                   ;写汉字的上半部分
LOOP14:         MOV     A,R1
                MOV     DPTR,#TABxqsz
                MOVC    A,@A+DPTR
                MOV     DAT,A
                CALL    WDAT
                INC     R1
                DJNZ    R2,LOOP14
                INC     34H                      ;移到下一页
                MOV     com,34h
                LCALL	Wcom
                MOV     com,35h
                LCALL	Wcom        
                MOV     R2,#12                   ;写汉字的下半部分
LOOP15:         MOV     A,R1
                MOVC    A,@A+DPTR
                MOV     DAT,A
                CALL    WDAT
                INC     R1
                DJNZ    R2,LOOP15
                DEC     34H                      ;再退回到上一页
                MOV	com,34H
                LCALL	Wcom
                MOV     A,35H
                ADD     A,#12                    ;加当前字的宽度
                MOV     35H,A
                pop     psw                      ;回复现场
                pop     acc 
                pop     dph
                pop     dpl
                RET
;***************************************************写屏lxazz12X12        
lxazzz:         PUSH    Acc
                MOV     R2,#12                   ;写汉字的上半部分
LOOP8:          MOV     A,R1
                MOV     DPTR,#lxazz
                MOVC    A,@A+DPTR
                MOV     DAT,A
                CALL    WDAT
                INC     R1
                DJNZ    R2,LOOP8
                INC     34H                      ;移到下一页
                MOV     com,34h
                LCALL	Wcom
                MOV     com,35h
                LCALL	Wcom        
                MOV     R2,#12                   ;写汉字的下半部分
LOOP9:          MOV     A,R1
                MOVC    A,@A+DPTR
                MOV     DAT,A
                CALL    WDAT
                INC     R1
                DJNZ    R2,LOOP9
                DEC     34H                      ;再退回到上一页
                MOV	com,34H
                LCALL	Wcom
                MOV     A,35H
                ADD     A,#12                    ;加当前字的宽度
                MOV     35H,A

⌨️ 快捷键说明

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