附件:时钟.LST
附件:时钟.LST
附件:时钟.LST
今天看了旧硬盘,看到07年做的用51驱动16X64的点阵模块显示时钟,用汇编编写的,对汇编有兴趣可以看看,附源程序,之前用STC12编译实测过可以正常运行,图片和视频已经找不到,大概的原理图如附图

汇编程序:
;30H为秒数值个位
;31H为秒数值十位
;32H为小数点
;33H为分数值个位
;34H为分数值十位
;35H为小数点
;36H为时数值个位
;37H为时数值十位
;38H-3FH为下面的地址数据
ORG 00H
LJMP 100H
ORG 0BH
LJMP INT
ORG 100H
START:
MOV SP,#70H
MOV 2AH,#11H
MOV 2BH,#40H
MOV 2CH,#00H
MOV 32H,#10
MOV 35H,#10
MOV TMOD,#00000001B
MOV TH0,#HIGH(65536-36864)
MOV TL0,#LOW(65536-36864)
MOV IE,#10000010B
MOV R4,#25
SETB TR0
MOV 20H,#01
MOV 38H,#11
MOV 39H,#11
MOV 3AH,#11
MOV 3BH,#11
MOV 3CH,#11
MOV 3DH,#11
MOV 3EH,#11
MOV 3FH,#11
MOV 40H,#1
MOV 41H,#1
LOOP:
LCALL DIS
JMP LOOP
INT:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-36864)
MOV TL0,#LOW(65536-36864)
SETB TR0
PUSH PSW
PUSH ACC
PUSH DPL
PUSH DPH
PUSH B
DJNZ R4,X2
MOV R4,#25
LCALL CLOCK
X2:
POP B
POP DPH
POP DPL
POP ACC
POP PSW
RETI
CLOCK:
MOV A,2CH
ADD A,#1
DA A
MOV 2CH,A
CJNE A,#60H,X4
MOV 2CH,#00
MOV A,2BH
ADD A,#1
DA A
MOV 2BH,A
CJNE A,#60H,X4
MOV 2BH,#00
MOV A,2AH
ADD A,#1
DA A
MOV 2AH,A
CJNE A,#24H,X4
MOV 2AH,#00
X4:
MOV A,#00
CJNE A,20H,X5
MOV 32H,#10
MOV 35H,#10
MOV 20H,#01
JMP X6
X5:
MOV 32H,#11
MOV 35H,#11
MOV 20H,#00
X6:
RET
DIS:
MOV A,2CH
MOV B,#10H
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,2BH
MOV B,#10H
DIV AB
MOV 33H,B
MOV 34H,A
MOV A,2AH
MOV B,#10H
DIV AB
MOV 36H,B
CJNE A,#00H,CL1
MOV 37H,#11
JMP DD1
CL1:MOV 37H,A
DD1:
MOV R0,#41H
CJNE @R0,#1,ZY2
LCALL XH
ZY2:
CJNE @R0,#02,ZY3
LCALL XL
ZY3:
MOV R0,#3FH
MOV R1,#16
MOV R3,#00H
MOV R5,#00H;P2的初始值
MOV R2,#16
DD2:MOV A,@R0
MOV DPTR,#DDD
MOV B,#16
MUL AB
CLR C
ADD A,R3 ;时十位第一个字节
ADDC A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI $
CLR TI
DEC R0
DJNZ R2,DD2
MOV R2,#16
MOV R0,#3FH
CLR P2.4
SETB P2.4
MOV P2,R5
INC R3
LCALL DELAY
SETB P2.5
INC R5
DJNZ R1,DD2
RET
DELAY:
MOV R6,#2
D1:MOV R7,#100
DJNZ R7,$
DJNZ R6,D1
RET
XH:
MOV A,40H
CJNE A,#1,XH1
INC 3FH
MOV A,3FH
CJNE A,#20,XH9
MOV 3FH,#11
MOV 40H,#2
XH1:
MOV A,40H
CJNE A,#2,XH3
INC 3EH
MOV A,3EH
CJNE A,#20,XH9
MOV 3EH,#11
MOV 40H,#3
XH3:
MOV A,40H
CJNE A,#3,XH4
INC 3DH
MOV A,3DH
CJNE A,#20,XH9
MOV 3DH,#11
MOV 40H,#4
SJMP XH4
XH9:
SJMP XH10
XH4:
MOV A,40H
CJNE A,#4,XH5
INC 3CH
MOV A,3CH
CJNE A,#20,XH10
MOV 3CH,#11
MOV 40H,#5
XH5:
MOV A,40H
CJNE A,#5,XH6
INC 3BH
MOV A,3BH
CJNE A,#20,XH10
MOV 3BH,#11
MOV 40H,#6
XH6:
MOV A,40H
CJNE A,#6,XH7
INC 3AH
MOV A,3AH
CJNE A,#20,XH10
MOV 3AH,#11
MOV 40H,#7
XH7:
MOV A,40H
CJNE A,#7,XH8
INC 39H
MOV A,39H
CJNE A,#20,XH10
MOV 39H,#11
MOV 40H,#8
XH8:
MOV A,40H
CJNE A,#8,XH10
INC 38H
MOV A,38H
CJNE A,#20,XH10
MOV 40H,#1
MOV 41H,#2
XH10:
RET
XL:
MOV A,40H
CJNE A,#1,XL1
DEC 38H
MOV A,38H
CJNE A,#11,XL9
MOV 39H,#20
MOV 40H,#2
XL1:
MOV A,40H
CJNE A,#2,XL3
DEC 39H
MOV A,39H
CJNE A,#11,XL9
MOV 40H,#3
MOV 3AH,#20
XL3:
MOV A,40H
CJNE A,#3,XL4
DEC 3AH
MOV A,3AH
CJNE A,#11,XL9
MOV 40H,#4
MOV 3BH,#20
SJMP XL4
XL9:
SJMP XL10
XL4:
MOV A,40H
CJNE A,#4,XL5
DEC 3BH
MOV A,3BH
CJNE A,#11,XL10
MOV 40H,#5
MOV 3CH,#20
XL5:
MOV A,40H
CJNE A,#5,XL6
DEC 3CH
MOV A,3CH
CJNE A,#11,XL10
MOV 40H,#6
MOV 3DH,#20
XL6:
MOV A,40H
CJNE A,#6,XL7
DEC 3DH
MOV A,3DH
CJNE A,#11,XL10
MOV 40H,#7
MOV 3EH,#20
XL7:
MOV A,40H
CJNE A,#7,XL8
DEC 3EH
MOV A,3EH
CJNE A,#11,XL10
MOV 40H,#8
MOV 3FH,#20
XL8:
MOV A,40H
CJNE A,#8,XL10
DEC 3FH
MOV A,3FH
CJNE A,#11,XL10
MOV 40H,#1
MOV 41H,#1
XL10:
RET
DDD:
;-- 文字: 0 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0E7H,0DBH,0BDH,0BDH,0BDH,0BDH,0BDH,0BDH,0BDH,0DBH,0E7H,0FFH,0FFH
;-- 文字: 1 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0F7H,0F1H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0C1H,0FFH,0FFH
;-- 文字: 2 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0C3H,0BDH,0BDH,0BDH,0DFH,0DFH,0EFH,0F7H,0FBH,0BDH,81H,0FFH,0FFH
;-- 文字: 3 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0C3H,0BDH,0BDH,0DFH,0E7H,0DFH,0BFH,0BFH,0BDH,0DDH,0E3H,0FFH,0FFH
;-- 文字: 4 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0DFH,0CFH,0D7H,0DBH,0DBH,0DDH,0DDH,81H,0DFH,0DFH,87H,0FFH,0FFH
;-- 文字: 5 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,81H,0FDH,0FDH,0FDH,0E5H,0D9H,0BFH,0BFH,0BDH,0DDH,0E3H,0FFH,0FFH
;-- 文字: 6 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0C7H,0DBH,0FDH,0FDH,0E5H,0D9H,0BDH,0BDH,0BDH,0DBH,0E7H,0FFH,0FFH
;-- 文字: 7 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,81H,0DDH,0DDH,0EFH,0EFH,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0FFH,0FFH
;-- 文字: 8 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0C3H,0BDH,0BDH,0BDH,0DBH,0E7H,0DBH,0BDH,0BDH,0BDH,0C3H,0FFH,0FFH
;-- 文字: 9 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0E7H,0DBH,0BDH,0BDH,0BDH,9BH,0A7H,0BFH,0BFH,0DBH,0E3H,0FFH,0FFH
;-- 文字: : --
;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0E7H,0E7H,0FFH,0FFH,0FFH,0FFH,0E7H,0E7H,0FFH,0FFH
;--FF-- 11
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
;-01111111- 12
DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH
;-10111111- 13
DB 0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH
;-11011111- 14
DB 0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH
;-11101111- 15
DB 0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H
;-11110111- 16
DB 0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH
;-11111011- 17
DB 0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH
;-11111101- 18
DB 0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH
;-11111110- 19
DB 7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH
;-11111100- 20
DB 3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH
;-11111000- 21
DB 1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH
;-11110000- 22
DB 0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH
;-11100000- 23
DB 07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H
;-11000000-; 24
DB 03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H
;-10000000- 25
DB 01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H
;-00000000- 26
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H