找回密码
 立即注册
查看: 1393|回复: 12

07年做的用51驱动16X64的点阵模块显示时钟,用汇编编写的

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-3 18:01:30 | 显示全部楼层 |阅读模式

upload 附件:时钟.LSTupload 附件:时钟.LSTupload 附件:时钟.LST

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

汇编程序:

;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

专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-3 18:14:14 | 显示全部楼层

编译:

8051 Assembler Version 1.00 06/16/107 18:52:46 Page 1 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

1 0000              ;30H为秒数值个位
2 0000              ;31H为秒数值十位
3 0000              ;32H为小数点
4 0000              ;33H为分数值个位
5 0000              ;34H为分数值十位
6 0000              ;35H为小数点
7 0000              ;36H为时数值个位
8 0000              ;37H为时数值十位
9 0000              ;38H-3FH为下面的地址数据

10 0000 ORG 00H 11 0000 020100 LJMP 100H 12 000B ORG 0BH 13 000B 020149 LJMP INT 14 0100 ORG 100H 15 0100 START: 16 0100 758170 MOV SP,#70H 17 0103 752A11 MOV 2AH,#11H 18 0106 752B40 MOV 2BH,#40H 19 0109 752C00 MOV 2CH,#00H 20 010C 75320A MOV 32H,#10 21 010F 75350A MOV 35H,#10 22 0112 758901 MOV TMOD,#00000001B 23 0115 758C70 MOV TH0,#HIGH(65536-36864) 24 0118 758A00 MOV TL0,#LOW(65536-36864) 25 011B 75A882 MOV IE,#10000010B 26 011E 7C19 MOV R4,#25 27 0120 D28C SETB TR0 28 0122 752001 MOV 20H,#01 29 0125 75380B MOV 38H,#11 30 0128 75390B MOV 39H,#11 31 012B 753A0B MOV 3AH,#11 32 012E 753B0B MOV 3BH,#11 33 0131 753C0B MOV 3CH,#11 34 0134 753D0B MOV 3DH,#11 35 0137 753E0B MOV 3EH,#11 36 013A 753F0B MOV 3FH,#11 37 013D 754001 MOV 40H,#1 38 0140 754101 MOV 41H,#1 39 0143 LOOP: 40 0143 1201B2 LCALL DIS 41 0146 020143 JMP LOOP 42 0149 43 0149 INT: 44 0149 758901 MOV TMOD,#01H 45 014C 758C70 MOV TH0,#HIGH(65536-36864) 46 014F 758A00 MOV TL0,#LOW(65536-36864) 47 0152 D28C SETB TR0 48 0154 C0D0 PUSH PSW 49 0156 C0E0 PUSH ACC 50 0158 C082 PUSH DPL 51 015A C083 PUSH DPH 52 015C C0F0 PUSH B 53 015E DC05 DJNZ R4,X2 54 0160 7C19 MOV R4,#25 55 0162 120170 LCALL CLOCK 56 0165 X2: 57 0165 D0F0 POP B 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 2 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

58 0167 D083 POP DPH 59 0169 D082 POP DPL 60 016B D0E0 POP ACC 61 016D D0D0 POP PSW 62 016F 32 RETI 63 0170 CLOCK: 64 0170 E52C MOV A,2CH 65 0172 2401 ADD A,#1 66 0174 D4 DA A 67 0175 F52C MOV 2CH,A 68 0177 B4601D CJNE A,#60H,X4 69 017A 752C00 MOV 2CH,#00 70 017D E52B MOV A,2BH 71 017F 2401 ADD A,#1 72 0181 D4 DA A 73 0182 F52B MOV 2BH,A 74 0184 B46010 CJNE A,#60H,X4 75 0187 752B00 MOV 2BH,#00 76 018A E52A MOV A,2AH 77 018C 2401 ADD A,#1 78 018E D4 DA A 79 018F F52A MOV 2AH,A 80 0191 B42403 CJNE A,#24H,X4 81 0194 752A00 MOV 2AH,#00 82 0197 X4: 83 0197 7400 MOV A,#00 84 0199 B5200C CJNE A,20H,X5 85 019C 75320A MOV 32H,#10 86 019F 75350A MOV 35H,#10 87 01A2 752001 MOV 20H,#01 88 01A5 0201B1 JMP X6 89 01A8 X5: 90 01A8 75320B MOV 32H,#11 91 01AB 75350B MOV 35H,#11 92 01AE 752000 MOV 20H,#00 93 01B1 X6: 94 01B1 22 RET 95 01B2 DIS: 96 01B2 E52C MOV A,2CH 97 01B4 75F010 MOV B,#10H 98 01B7 84 DIV AB 99 01B8 85F030 MOV 30H,B 100 01BB F531 MOV 31H,A 101 01BD E52B MOV A,2BH 102 01BF 75F010 MOV B,#10H 103 01C2 84 DIV AB 104 01C3 85F033 MOV 33H,B 105 01C6 F534 MOV 34H,A 106 01C8 E52A MOV A,2AH 107 01CA 75F010 MOV B,#10H 108 01CD 84 DIV AB 109 01CE 85F036 MOV 36H,B 110 01D1 B40006 CJNE A,#00H,CL1 111 01D4 75370B MOV 37H,#11 112 01D7 0201DC JMP DD1 113 01DA F537 CL1:MOV 37H,A 114 01DC 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 3 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

115 01DC DD1: 116 01DC 7841 MOV R0,#41H 117 01DE B60103 CJNE @R0,#1,ZY2 118 01E1 120231 LCALL XH 119 01E4 120 01E4 ZY2: 121 01E4 B60203 CJNE @R0,#02,ZY3 122 01E7 1202C6 LCALL XL 123 01EA 124 01EA ZY3: 125 01EA 126 01EA 783F MOV R0,#3FH 127 01EC 7910 MOV R1,#16 128 01EE 7B00 MOV R3,#00H 129 01F0 7D00 MOV R5,#00H;P2的初始值 130 01F2 7A10 MOV R2,#16 131 01F4 E6 DD2:MOV A,@R0 132 01F5 90035B MOV DPTR,#DDD 133 01F8 75F010 MOV B,#16 134 01FB A4 MUL AB 135 01FC C3 CLR C 136 01FD 2B ADD A,R3 ;时十位第一个字节 137 01FE 3582 ADDC A,DPL 138 0200 F582 MOV DPL,A 139 0202 E5F0 MOV A,B 140 0204 3583 ADDC A,DPH 141 0206 F583 MOV DPH,A 142 0208 E4 CLR A 143 0209 93 MOVC A,@A+DPTR 144 020A F599 MOV SBUF,A 145 020C 3099FD JNB TI $ 146 020F C299 CLR TI 147 0211 18 DEC R0 148 0212 DAE0 DJNZ R2,DD2 149 0214 7A10 MOV R2,#16 150 0216 783F MOV R0,#3FH 151 0218 C2A4 CLR P2.4 152 021A D2A4 SETB P2.4 153 021C 8DA0 MOV P2,R5 154 021E 0B INC R3 155 021F 120228 LCALL DELAY 156 0222 D2A5 SETB P2.5 157 0224 0D INC R5 158 0225 D9CD DJNZ R1,DD2 159 0227 22 RET 160 0228 DELAY: 161 0228 7E02 MOV R6,#2 162 022A 7F64 D1:MOV R7,#100 163 022C DFFE DJNZ R7,$ 164 022E DEFA DJNZ R6,D1 165 0230 22 RET 166 0231 XH: 167 0231 E540 MOV A,40H 168 0233 B4010D CJNE A,#1,XH1 169 0236 053F INC 3FH 170 0238 E53F MOV A,3FH 171 023A B4142C CJNE A,#20,XH9 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 4 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

172 023D 753F0B MOV 3FH,#11 173 0240 754002 MOV 40H,#2 174 0243 XH1: 175 0243 E540 MOV A,40H 176 0245 B4020D CJNE A,#2,XH3 177 0248 053E INC 3EH 178 024A E53E MOV A,3EH 179 024C B4141A CJNE A,#20,XH9 180 024F 753E0B MOV 3EH,#11 181 0252 754003 MOV 40H,#3 182 0255 XH3: 183 0255 E540 MOV A,40H 184 0257 B40311 CJNE A,#3,XH4 185 025A 053D INC 3DH 186 025C E53D MOV A,3DH 187 025E B41408 CJNE A,#20,XH9 188 0261 753D0B MOV 3DH,#11 189 0264 754004 MOV 40H,#4 190 0267 8002 SJMP XH4 191 0269 XH9: 192 0269 805A SJMP XH10 193 026B XH4: 194 026B E540 MOV A,40H 195 026D B4040D CJNE A,#4,XH5 196 0270 053C INC 3CH 197 0272 E53C MOV A,3CH 198 0274 B4144E CJNE A,#20,XH10 199 0277 753C0B MOV 3CH,#11 200 027A 754005 MOV 40H,#5 201 027D XH5: 202 027D E540 MOV A,40H 203 027F B4050D CJNE A,#5,XH6 204 0282 053B INC 3BH 205 0284 E53B MOV A,3BH 206 0286 B4143C CJNE A,#20,XH10 207 0289 753B0B MOV 3BH,#11 208 028C 754006 MOV 40H,#6 209 028F XH6: 210 028F E540 MOV A,40H 211 0291 B4060D CJNE A,#6,XH7 212 0294 053A INC 3AH 213 0296 E53A MOV A,3AH 214 0298 B4142A CJNE A,#20,XH10 215 029B 753A0B MOV 3AH,#11 216 029E 754007 MOV 40H,#7 217 02A1 XH7: 218 02A1 E540 MOV A,40H 219 02A3 B4070D CJNE A,#7,XH8 220 02A6 0539 INC 39H 221 02A8 E539 MOV A,39H 222 02AA B41418 CJNE A,#20,XH10 223 02AD 75390B MOV 39H,#11 224 02B0 754008 MOV 40H,#8 225 02B3 XH8: 226 02B3 E540 MOV A,40H 227 02B5 B4080D CJNE A,#8,XH10 228 02B8 0538 INC 38H 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 5 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

229 02BA E538 MOV A,38H 230 02BC B41406 CJNE A,#20,XH10 231 02BF 754001 MOV 40H,#1 232 02C2 754102 MOV 41H,#2 233 02C5 XH10: 234 02C5 22 RET 235 02C6 236 02C6 237 02C6 XL: 238 02C6 E540 MOV A,40H 239 02C8 B4010D CJNE A,#1,XL1 240 02CB 1538 DEC 38H 241 02CD E538 MOV A,38H 242 02CF B40B2C CJNE A,#11,XL9 243 02D2 753914 MOV 39H,#20 244 02D5 754002 MOV 40H,#2 245 02D8 XL1: 246 02D8 E540 MOV A,40H 247 02DA B4020D CJNE A,#2,XL3 248 02DD 1539 DEC 39H 249 02DF E539 MOV A,39H 250 02E1 B40B1A CJNE A,#11,XL9 251 02E4 754003 MOV 40H,#3 252 02E7 753A14 MOV 3AH,#20 253 02EA XL3: 254 02EA E540 MOV A,40H 255 02EC B40311 CJNE A,#3,XL4 256 02EF 153A DEC 3AH 257 02F1 E53A MOV A,3AH 258 02F3 B40B08 CJNE A,#11,XL9 259 02F6 754004 MOV 40H,#4 260 02F9 753B14 MOV 3BH,#20 261 02FC 8002 SJMP XL4 262 02FE XL9: 263 02FE 805A SJMP XL10 264 0300 XL4: 265 0300 E540 MOV A,40H 266 0302 B4040D CJNE A,#4,XL5 267 0305 153B DEC 3BH 268 0307 E53B MOV A,3BH 269 0309 B40B4E CJNE A,#11,XL10 270 030C 754005 MOV 40H,#5 271 030F 753C14 MOV 3CH,#20 272 0312 XL5: 273 0312 E540 MOV A,40H 274 0314 B4050D CJNE A,#5,XL6 275 0317 153C DEC 3CH 276 0319 E53C MOV A,3CH 277 031B B40B3C CJNE A,#11,XL10 278 031E 754006 MOV 40H,#6 279 0321 753D14 MOV 3DH,#20 280 0324 XL6: 281 0324 E540 MOV A,40H 282 0326 B4060D CJNE A,#6,XL7 283 0329 153D DEC 3DH 284 032B E53D MOV A,3DH 285 032D B40B2A CJNE A,#11,XL10 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 6 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

286 0330 754007 MOV 40H,#7 287 0333 753E14 MOV 3EH,#20 288 0336 XL7: 289 0336 E540 MOV A,40H 290 0338 B4070D CJNE A,#7,XL8 291 033B 153E DEC 3EH 292 033D E53E MOV A,3EH 293 033F B40B18 CJNE A,#11,XL10 294 0342 754008 MOV 40H,#8 295 0345 753F14 MOV 3FH,#20 296 0348 XL8: 297 0348 E540 MOV A,40H 298 034A B4080D CJNE A,#8,XL10 299 034D 153F DEC 3FH 300 034F E53F MOV A,3FH 301 0351 B40B06 CJNE A,#11,XL10 302 0354 754001 MOV 40H,#1 303 0357 754101 MOV 41H,#1 304 035A XL10: 305 035A 22 RET 306 035B DDD: 307 035B ;-- 文字: 0 -- 308 035B ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 309 035B FF FF FF DB 0FFH,0FFH,0FFH,0E7H,0DBH,0BDH,0BDH,0BDH,0BDH,0BDH,0BDH,0BDH,0DBH,0E7H,0FFH,0FFH 035E E7 DB BD 0361 BD BD BD 0364 BD BD BD 0367 DB E7 FF 036A FF 310 036B 311 036B ;-- 文字: 1 -- 312 036B ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 313 036B FF FF FF DB 0FFH,0FFH,0FFH,0F7H,0F1H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0C1H,0FFH,0FFH 036E F7 F1 F7 0371 F7 F7 F7 0374 F7 F7 F7 0377 F7 C1 FF 037A FF 314 037B 315 037B ;-- 文字: 2 -- 316 037B ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 317 037B FF FF FF DB 0FFH,0FFH,0FFH,0C3H,0BDH,0BDH,0BDH,0DFH,0DFH,0EFH,0F7H,0FBH,0BDH,81H,0FFH,0FFH 037E C3 BD BD 0381 BD DF DF 0384 EF F7 FB 0387 BD 81 FF 038A FF 318 038B 319 038B ;-- 文字: 3 -- 320 038B ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 321 038B FF FF FF DB 0FFH,0FFH,0FFH,0C3H,0BDH,0BDH,0DFH,0E7H,0DFH,0BFH,0BFH,0BDH,0DDH,0E3H,0FFH,0FFH 038E C3 BD BD 0391 DF E7 DF 0394 BF BF BD 0397 DD E3 FF 039A FF 322 039B 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 7 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

323 039B ;-- 文字: 4 -- 324 039B ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 325 039B FF FF FF DB 0FFH,0FFH,0FFH,0DFH,0CFH,0D7H,0DBH,0DBH,0DDH,0DDH,81H,0DFH,0DFH,87H,0FFH,0FFH 039E DF CF D7 03A1 DB DB DD 03A4 DD 81 DF 03A7 DF 87 FF 03AA FF 326 03AB 327 03AB ;-- 文字: 5 -- 328 03AB ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 329 03AB FF FF FF DB 0FFH,0FFH,0FFH,81H,0FDH,0FDH,0FDH,0E5H,0D9H,0BFH,0BFH,0BDH,0DDH,0E3H,0FFH,0FFH 03AE 81 FD FD 03B1 FD E5 D9 03B4 BF BF BD 03B7 DD E3 FF 03BA FF 330 03BB 331 03BB ;-- 文字: 6 -- 332 03BB ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 333 03BB FF FF FF DB 0FFH,0FFH,0FFH,0C7H,0DBH,0FDH,0FDH,0E5H,0D9H,0BDH,0BDH,0BDH,0DBH,0E7H,0FFH,0FFH 03BE C7 DB FD 03C1 FD E5 D9 03C4 BD BD BD 03C7 DB E7 FF 03CA FF 334 03CB 335 03CB ;-- 文字: 7 -- 336 03CB ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 337 03CB FF FF FF DB 0FFH,0FFH,0FFH,81H,0DDH,0DDH,0EFH,0EFH,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0FFH,0FFH 03CE 81 DD DD 03D1 EF EF F7 03D4 F7 F7 F7 03D7 F7 F7 FF 03DA FF 338 03DB 339 03DB ;-- 文字: 8 -- 340 03DB ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 341 03DB FF FF FF DB 0FFH,0FFH,0FFH,0C3H,0BDH,0BDH,0BDH,0DBH,0E7H,0DBH,0BDH,0BDH,0BDH,0C3H,0FFH,0FFH 03DE C3 BD BD 03E1 BD DB E7 03E4 DB BD BD 03E7 BD C3 FF 03EA FF 342 03EB 343 03EB ;-- 文字: 9 -- 344 03EB ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 345 03EB FF FF FF DB 0FFH,0FFH,0FFH,0E7H,0DBH,0BDH,0BDH,0BDH,9BH,0A7H,0BFH,0BFH,0DBH,0E3H,0FFH,0FFH 03EE E7 DB BD 03F1 BD BD 9B 03F4 A7 BF BF 03F7 DB E3 FF 03FA FF 346 03FB 347 03FB ;-- 文字: : -- 348 03FB ;-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -- 349 03FB FF FF FF DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0E7H,0E7H,0FFH,0FFH,0FFH,0FFH,0E7H,0E7H,0FFH,0FFH 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 8 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

  03FE FF FF FF
  0401 E7 E7 FF
  0404 FF FF FF
  0407 E7 E7 FF
  040A FF

350 040B 351 040B 352 040B ;--FF-- 11 353 040B FF FF FF DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH 040E FF FF FF 0411 FF FF FF 0414 FF FF FF 0417 FF FF FF 041A FF 354 041B ;-01111111- 12 355 041B FE FE FE DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH 041E FE FE FE 0421 FE FE FE 0424 FE FE FE 0427 FE FE FE 042A FE 356 042B ;-10111111- 13 357 042B FD FD FD DB 0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH 042E FD FD FD 0431 FD FD FD 0434 FD FD FD 0437 FD FD FD 043A FD 358 043B ;-11011111- 14 359 043B FB FB FB DB 0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH 043E FB FB FB 0441 FB FB FB 0444 FB FB FB 0447 FB FB FB 044A FB 360 044B ;-11101111- 15 361 044B F7 F7 F7 DB 0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H,0F7H 044E F7 F7 F7 0451 F7 F7 F7 0454 F7 F7 F7 0457 F7 F7 F7 045A F7 362 045B ;-11110111- 16 363 045B EF EF EF DB 0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH 045E EF EF EF 0461 EF EF EF 0464 EF EF EF 0467 EF EF EF 046A EF 364 046B ;-11111011- 17 365 046B DF DF DF DB 0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH 046E DF DF DF 0471 DF DF DF 0474 DF DF DF 0477 DF DF DF 047A DF 366 047B ;-11111101- 18 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 9 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

367 047B BF BF BF DB 0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH,0BFH 047E BF BF BF 0481 BF BF BF 0484 BF BF BF 0487 BF BF BF 048A BF 368 048B ;-11111110- 19 369 048B 7F 7F 7F DB 7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH 048E 7F 7F 7F 0491 7F 7F 7F 0494 7F 7F 7F 0497 7F 7F 7F 049A 7F 7F 7F 049D 7F 7F 370 049F 371 049F 372 049F 373 049F ;-11111100- 20 374 049F 3F 3F 3F DB 3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH 04A2 3F 3F 3F 04A5 3F 3F 3F 04A8 3F 3F 3F 04AB 3F 3F 3F 04AE 3F 3F 3F 04B1 3F 3F 375 04B3 ;-11111000- 21 376 04B3 1F 1F 1F DB 1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH 04B6 1F 1F 1F 04B9 1F 1F 1F 04BC 1F 1F 1F 04BF 1F 1F 1F 04C2 1F 1F 1F 04C5 1F 1F 377 04C7 ;-11110000- 22 378 04C7 0F 0F 0F DB 0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH 04CA 0F 0F 0F 04CD 0F 0F 0F 04D0 0F 0F 0F 04D3 0F 0F 0F 04D6 0F 0F 0F 04D9 0F 0F 379 04DB ;-11100000- 23 380 04DB 07 07 07 DB 07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H,07H 04DE 07 07 07 04E1 07 07 07 04E4 07 07 07 04E7 07 07 07 04EA 07 07 07 04ED 07 07 381 04EF ;-11000000-; 24 382 04EF 03 03 03 DB 03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H,03H 04F2 03 03 03 04F5 03 03 03 04F8 03 03 03 04FB 03 03 03 04FE 03 03 03 0501 03 03 8051 Assembler Version 1.00 06/16/107 18:52:46 Page 10 D:\SPEC\单片机\汇编\时钟\NEW\时钟.a51

383 0503 ;-10000000- 25 384 0503 01 01 01 DB 01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H 0506 01 01 01 0509 01 01 01 050C 01 01 01 050F 01 01 01 0512 01 01 01 0515 01 01 385 0517 ;-00000000- 26 386 0517 00 00 00 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00 051A 00 00 00 051D 00 00 00 0520 00 00 00 0523 00 00 00 0526 00 00 00 0529 00 00

Defined Symbols:

Defined Labels: CL1 0001DA 474 CLOCK 000170 368 D1 00022A 554 DD1 0001DC 476 DD2 0001F4 500 DDD 00035B 859 DELAY 000228 552 DIS 0001B2 434 INT 000149 329 LOOP 000143 323 START 000100 256 X2 000165 357 X4 000197 407 X5 0001A8 424 X6 0001B1 433 XH 000231 561 XH1 000243 579 XH10 0002C5 709 XH3 000255 597 XH4 00026B 619 XH5 00027D 637 XH6 00028F 655 XH7 0002A1 673 XH8 0002B3 691 XH9 000269 617 XL 0002C6 710 XL1 0002D8 728 XL10 00035A 858 XL3 0002EA 746 XL4 000300 768 XL5 000312 786 XL6 000324 804 XL7 000336 822 XL8 000348 840 XL9 0002FE 766 ZY2 0001E4 484 ZY3 0001EA 490

专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-3 18:15:57 | 显示全部楼层
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:156
  • 最近打卡:2025-04-29 00:51:09

24

主题

229

回帖

1281

积分

金牌会员

积分
1281
发表于 2024-12-3 21:01:53 | 显示全部楼层

点评

不错  发表于 2024-12-4 13:21
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-3 21:44:05 | 显示全部楼层
这么多汇编代码,没有注释还能维护吗

用AI帮忙看了一下代码,大概了解了功能

这段汇编代码是用于51单片机的,它实现了一个简单的时钟功能,包括时、分、秒的显示和计数。下面是对代码的逐段解释:

初始化和跳转指令:

ORG 00H 和 LJMP 100H 表示程序启动后会跳转到地址100H开始执行。
ORG 0BH 和 LJMP INT 设置了一个中断向量,当定时器中断发生时,会跳转到INT标签处执行。
主程序(START):

设置堆栈指针(SP)和一些寄存器的初始值。
配置定时器模式(TMOD),并设置定时器初值(TH0和TL0)。
使能定时器中断(IE)并启动定时器(TR0)。
初始化显示数据和控制变量。
主循环(LOOP)不断调用显示函数(DIS)。
中断服务程序(INT):

重新加载定时器初值并启动定时器。
保存和恢复现场(PSW, ACC, DPL, DPH, B)。
计数器R4递减,每25次中断调用一次时钟更新函数(CLOCK)。
时钟更新函数(CLOCK):

更新秒(2CH)、分(2BH)和时(2AH)的值。
处理进位,例如秒满60进位到分,时分满60进位到时。
根据时钟值更新显示控制变量(20H)。
显示函数(DIS):

将时、分、秒的值分解为个位和十位,并存储在相应的寄存器中。
根据显示控制变量选择显示模式(XH或XL)。
通过查表(DDD)将数字转换为点阵显示数据,并通过串行通信发送到显示设备。
延时函数(DELAY):

提供简单的软件延时。
显示模式切换函数(XH和XL):

根据当前的显示模式,增加或减少显示数据,实现滚动效果。
点阵数据(DDD):

存储了数字0-9和冒号(:)的点阵数据,用于显示。
整体来看,这段代码实现了一个简单的时钟显示功能,包括时钟的计数和显示。代码中使用了定时器中断来实现时钟的精确计时,并通过查表的方式将数字转换为点阵数据进行显示。


联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-4 08:05:37 来自手机 | 显示全部楼层
CyberHamster 发表于 2024-12-3 21:01
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=12346

{:5_272:}
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-4 08:06:23 来自手机 | 显示全部楼层
VCC 发表于 2024-12-3 21:44
这么多汇编代码,没有注释还能维护吗

用AI帮忙看了一下代码,大概了解了功能

{:5_332:}
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:504
  • 最近打卡:2025-05-01 07:50:30

9

主题

193

回帖

552

积分

高级会员

积分
552
发表于 2024-12-4 08:51:21 | 显示全部楼层
之前我也写过汇编,但后面发现C比汇编好用多了,就再也没用过汇编了,

点评

me too  发表于 2024-12-4 10:20
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-4 09:21:08 | 显示全部楼层
stb*** 发表于 2024-12-4 08:51
之前我也写过汇编,但后面发现C比汇编好用多了,就再也没用过汇编了,

是的,最早是学汇编,C51是后来自学的,汇编都快忘了
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:504
  • 最近打卡:2025-05-01 07:50:30

9

主题

193

回帖

552

积分

高级会员

积分
552
发表于 2024-12-4 12:18:18 | 显示全部楼层
VECEN*** 发表于 2024-12-4 09:21
是的,最早是学汇编,C51是后来自学的,汇编都快忘了

我所有的编程语言都是自学的,学过汇编,C,php,python,java,js,nodejs,vue,太多了,都会一点,没有一个学精通的,包括硬件知识也是自学的。

点评

厉害  发表于 2024-12-4 13:20
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:27 , Processed in 0.155662 second(s), 117 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表