?? up51s010.lst
字號:
138 ; END OF timer0
139
140 ;===============================================================================
006A 141 UPDATE_DISBUF:
142 USING 1
143
006A AF8D 144 MOV R7,TH1
006C AE8B 145 MOV R6,TL1
006E 120000 F 146 LCALL BIN16BCD
147
0071 900000 F 148 MOV DPTR, #DIS_CODE
149
0074 EC 150 MOV A,R4
0075 03 151 RR A
0076 03 152 RR A
0077 03 153 RR A
0078 03 154 RR A
0079 540F 155 ANL A,#0FH
007B 93 156 MOVC A,@A+DPTR
007C F500 F 157 MOV DIS_BUF,A
158
007E EC 159 MOV A,R4
007F 540F 160 ANL A,#0FH
0081 93 161 MOVC A,@A+DPTR
0082 F500 F 162 MOV DIS_BUF+1,A
163
0084 EB 164 MOV A,R3
0085 03 165 RR A
0086 03 166 RR A
0087 03 167 RR A
0088 03 168 RR A
0089 540F 169 ANL A,#0FH
008B 93 170 MOVC A,@A+DPTR
008C F500 F 171 MOV DIS_BUF+2,A
172
008E EB 173 MOV A,R3
008F 540F 174 ANL A,#0FH
0091 93 175 MOVC A,@A+DPTR
0092 F500 F 176 MOV DIS_BUF+3,A
177
0094 22 178 RET
179 ; END OF UPDATE_DISBUF
180
181
182 ;===============================================================================
0095 183 BIN16BCD:
184 ; 將16位二進制數轉化為5位壓縮的BCD碼
185 ; 傳入參數: R7:R6 --- 16位二進數; R7 --- MSB; R6 --- LSB
186 ; 返回參數: R5:R4:R3 --- 5位壓縮的BCD碼; R5 --- MSB; R3 --- LSB
187 ;
188
0095 E4 189 CLR A
0096 FB 190 MOV R3,A ;
A51 MACRO ASSEMBLER UP51S010 01/06/2005 15:17:35 PAGE 4
0097 FC 191 MOV R4,A
0098 FD 192 MOV R5,A
193
0099 7810 194 MOV R0,#16 ; 共需左移16次
195
009B 196 BIN16BCD_LP:
009B EE 197 MOV A,R6 ; 將R6左移一位到R7
009C 33 198 RLC A
009D FE 199 MOV R6,A
009E EF 200 MOV A,R7 ; 將R6的高位移入到R7
009F 33 201 RLC A ; 將R7的高位移出到C
00A0 FF 202 MOV R7,A
203
204 ;-------------------------------
00A1 EB 205 MOV A,R3 ; 將C移入到目標數(BCD)的最低位
00A2 3B 206 ADDC A,R3 ; 這里用ADDC進行移位,而沒有使用RLC,
207 ; 是為下面能正確的使用十進制調整指令DA
00A3 D4 208 DA A ; 十進制調整
00A4 FB 209 MOV R3,A ; 存回
210
00A5 EC 211 MOV A,R4 ; 將R3的高位移入
00A6 3C 212 ADDC A,R4 ;
00A7 D4 213 DA A ; 十進制調整
00A8 FC 214 MOV R4,A ; 存回
215
00A9 ED 216 MOV A,R5 ; 將R4的高位移入
00AA 3D 217 ADDC A,R5
00AB D4 218 DA A ; 十進制調整
00AC FD 219 MOV R5,A ; 存回
220
00AD D8EC 221 DJNZ R0,BIN16BCD_LP
222
00AF 22 223 RET
224
00B0 225 DIS_CODE:
00B0 C0 226 DB 0C0H
00B1 F9 227 DB 0F9H
00B2 A4 228 DB 0A4H
00B3 B0 229 DB 0B0H
00B4 99 230 DB 099H
00B5 92 231 DB 092H
00B6 82 232 DB 082H
00B7 F8 233 DB 0F8H
00B8 80 234 DB 080H
00B9 90 235 DB 090H
00BA FF 236 DB 0FFH
237
238 END
A51 MACRO ASSEMBLER UP51S010 01/06/2005 15:17:35 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
BIN16BCD . . . . . C ADDR 0095H R SEG=CODE_SEG
BIN16BCD_LP. . . . C ADDR 009BH R SEG=CODE_SEG
CODE_SEG . . . . . C SEG 00BBH REL=UNIT
DATA_SEG . . . . . D SEG 0007H REL=UNIT
DIS_BUF. . . . . . D ADDR 0002H R SEG=DATA_SEG
DIS_CODE . . . . . C ADDR 00B0H R SEG=CODE_SEG
DIS_DIGIT. . . . . D ADDR 0000H R SEG=DATA_SEG
DIS_INDEX. . . . . D ADDR 0001H R SEG=DATA_SEG
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
END_TIMER0 . . . . C ADDR 0061H R SEG=CODE_SEG
IE . . . . . . . . D ADDR 00A8H A
MAIN . . . . . . . C ADDR 0000H R SEG=CODE_SEG
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
PSW. . . . . . . . D ADDR 00D0H A
SP . . . . . . . . D ADDR 0081H A
STACK. . . . . . . I ADDR 0000H R SEG=STACK_SEG
STACK_SEG. . . . . I SEG 0014H REL=UNIT
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TIMER0 . . . . . . C ADDR 0031H R SEG=CODE_SEG
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TMP. . . . . . . . D ADDR 0006H R SEG=DATA_SEG
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
UPDATE_DISBUF. . . C ADDR 006AH R SEG=CODE_SEG
WL012. . . . . . . N NUMB -----
REGISTER BANK(S) USED: 0 1
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -