📄 sz616.lst
字号:
A51 MACRO ASSEMBLER SZ616 06/16/2008 12:46:24 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN SZ616.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE SZ616.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
0093 2 LED1 BIT p1.3 ;4位数码管选通引脚
0094 3 LED2 BIT p1.4
0096 4 LED3 BIT p1.6
0097 5 LED4 BIT p1.7
0095 6 LED2DZ BIT P1.5 ;小数点
7
00B0 8 LS164_AB BIT p3.0 ;74LS164数据线
00B1 9 LS164_CLK BIT p3.1 ;74LS164时钟线
10
00B5 11 KEY1 BIT p3.5 ;按键1
00B7 12 KEY2 BIT p3.7 ;按键2
0040 13 DISPFLAG EQU 40H ;显示标识
14
0020 15 DISPBUF EQU 20H
0050 16 DISPBUF1 EQU 50H ;定时缓冲
17
0090 18 BEEP BIT p1.0
19
0030 20 MSCNT EQU 30H ;中断次数
21
0031 22 SECONDBUF EQU 31H
0032 23 MINUTEBUF EQU 32H
0033 24 HOURBUF EQU 33H
0034 25 MONTHBUF EQU 34H
0035 26 DAYBUF EQU 35H
0036 27 MINUTEBUF1 EQU 36H
0037 28 HOURBUF1 EQU 37H
29
0000 30 ORG 0000h
0000 2100 31 JMP START
000B 32 ORG 000Bh
000B 212C 33 JMP TIMER0
0100 34 ORG 0100H
35
36
0100 37 START:
0100 758150 38 MOV SP,#50H
0103 C295 39 CLR LED2DZ
0105 40 CLRDISPBUF: ; 清显示缓冲区
0105 7A0F 41 MOV R2,#0FH
0107 7821 42 MOV R0,#DISPBUF+1
0109 43 CLRDISPBUFLOOP:
0109 7600 44 MOV @R0,#0H
010B 08 45 INC R0
010C DAFB 46 DJNZ R2,CLRDISPBUFLOOP
47
010E 754000 48 MOV DISPFLAG,#0;初始时显示"时,分"
49
0111 C2B0 50 CLR LS164_AB
0113 C2B1 51 CLR LS164_CLK
52
0115 758901 53 MOV TMOD,#01H ; 方式1
54
0118 758C1F 55 MOV TH0,#1FH ;初值
011B 758A00 56 MOV TL0,#00H
57
011E 753010 58 MOV MSCNT,#16
A51 MACRO ASSEMBLER SZ616 06/16/2008 12:46:24 PAGE 2
0121 D2AF 59 SETB EA
0123 D2A9 60 SETB ET0
0125 D28C 61 SETB TR0
62
0127 63 LOOP: ; LCALL KEYINPUT
0127 120221 64 LCALL DISP
012A 2127 65 AJMP LOOP
012C 66 TIMER0:
012C C0D0 67 PUSH PSW
012E C0E0 68 PUSH ACC
0130 D2D3 69 SETB PSW.3
0132 758C1F 70 MOV TH0,#1FH
0135 758A00 71 MOV TL0,#00H
0138 E530 72 MOV A,MSCNT
013A 14 73 DEC A
013B F530 74 MOV MSCNT,A
013D 7031 75 JNZ RET1
76 ; 微调
013F C2AF 77 CLR EA
0141 758C1F 78 MOV TH0,#1FH
0144 758A00 79 MOV TL0,#00H
0147 D2AF 80 SETB EA
0149 75300F 81 MOV MSCNT,#15
82
83 ; 秒走
014C E531 84 MOV A, SECONDBUF
014E B43B15 85 CJNE A, #59,SADD1
0151 753100 86 MOV SECONDBUF, #0
87 ; 分走
0154 E532 88 MOV A, MINUTEBUF
0156 B43B11 89 CJNE A, #59,MADD1
0159 753200 90 MOV MINUTEBUF, #0
91 ; 小时走
015C E533 92 MOV A, HOURBUF
015E B4170D 93 CJNE A, #23,HADD1
0161 753300 94 MOV HOURBUF, #0
95
96 ; MOV A, DAYBUF
97 ; CJNE A, #31,HADD1
98 ; MOV DAYBUF, #0
99
0164 2170 100 AJMP RET1
0166 101 SADD1: ; 秒加1
0166 0531 102 INC SECONDBUF
0168 2170 103 AJMP RET1
016A 104 MADD1: ; 分加1
016A 0532 105 INC MINUTEBUF
016C 2170 106 AJMP RET1
016E 107 HADD1: ; 小时加1
016E 0533 108 INC HOURBUF
109
0170 120184 110 RET1: LCALL KEYINPUT
0173 D0E0 111 POP ACC
0175 D0D0 112 POP PSW
0177 32 113 RETI
114
115 ; 74LS164芯片工作原理程序
0178 116 Send74LS164:
0178 7908 117 MOV R1,#8
017A 118 Send2LS164_Loop:
017A 33 119 RLC A
017B 92B0 120 MOV LS164_AB,C
017D D2B1 121 SETB LS164_CLK
017F C2B1 122 CLR LS164_CLK
0181 D9F7 123 DJNZ r1,Send2LS164_Loop
0183 22 124 RET
A51 MACRO ASSEMBLER SZ616 06/16/2008 12:46:24 PAGE 3
125
0184 126 KEYINPUT:
127
0184 20D52A 128 JB F0,K1RET
129
0187 20B529 130 K1: JB KEY1,K2
018A 120400 131 LCALL DELAY10MS
018D 20B523 132 JB KEY1,K2
0190 120400 133 LCALL DELAY10MS
0193 E540 134 MOV A,DISPFLAG
135
0195 B40105 136 CJNE A,#1,CLRSECONDBUF
0198 4120 137 AJMP KEYRET
138
019A B40203 139 CJNE A,#2,DISPFLAGADD
019D 140 CLRSECONDBUF:
019D 753100 141 MOV SECONDBUF,#0
142
01A0 143 DISPFLAGADD:
01A0 2403 144 ADD A,#3
01A2 F540 145 MOV DISPFLAG,A
01A4 D2D5 146 SETB F0
01A6 30B5FD 147 WAIT: JNB KEY1,WAIT
01A9 B41574 148 CJNE A,#15H,KEYRET
01AC 754000 149 MOV DISPFLAG,#0
01AF C2D5 150 CLR F0
01B1 151 K1RET:
01B1 806D 152 JMP KEYRET
153
154
155
156
01B3 157 K2:
01B3 20B76A 158 JB KEY2,KEYRET
01B6 12040E 159 LCALL DELAY10US
01B9 20B764 160 JB KEY2,KEYRET
01BC 12040E 161 LCALL DELAY10US
01BF E540 162 MOV A,DISPFLAG
163
01C1 B40006 164 K2X: CJNE A,#0,DISP1
01C4 2401 165 ADD A,#1
01C6 F540 166 MOV DISPFLAG,A
01C8 8056 167 JMP KEYRET
168
01CA B40106 169 DISP1: CJNE A,#1,DISP2
01CD 2401 170 ADD A,#1
01CF F540 171 MOV DISPFLAG,A
01D1 804D 172 JMP KEYRET
173
01D3 B40206 174 DISP2: CJNE A,#2,MONADD1
01D6 7400 175 MOV A,#0
01D8 F540 176 MOV DISPFLAG,A
01DA 8044 177 JMP KEYRET
178
179
01DC 180 MONADD1: ; 月加1
01DC B4030E 181 CJNE A,#3,DAYADD1
01DF AD34 182 MOV R5, MONTHBUF
01E1 BD0C05 183 CJNE R5,#12,MONADD
01E4 753401 184 MOV MONTHBUF,#1
01E7 4120 185 AJMP KEYRET
01E9 186 MONADD:
01E9 0534 187 INC MONTHBUF
01EB 4120 188 AJMP KEYRET
189
01ED 190 DAYADD1: ; 日加1
A51 MACRO ASSEMBLER SZ616 06/16/2008 12:46:24 PAGE 4
01ED B4060E 191 CJNE A,#6,HOURADD1
01F0 AD35 192 MOV R5,DAYBUF
01F2 BD1F05 193 CJNE R5,#31,DAYADD
01F5 753501 194 MOV DAYBUF,#1
01F8 4120 195 AJMP KEYRET
01FA 196 DAYADD:
01FA 0535 197 INC DAYBUF
01FC 4120 198 AJMP KEYRET
199
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -