📄 main.lst
字号:
0149 08 183 inc r0
014A 08 184 inc r0
014B E6 185 mov a,@r0
014C 540F 186 anl a,#0fh
014E 8018 187 jmp digital_display
0150 22 188 ret
0151 7809 189 digital_check6: mov r0,#digital_byte
0153 08 190 inc r0
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:56:46 PAGE 4
0154 08 191 inc r0
0155 08 192 inc r0
0156 E6 193 mov a,@r0
0157 C4 194 swap a
0158 540F 195 anl a,#0fh
015A 800C 196 jmp digital_display
015C 22 197 ret
015D 7809 198 digital_check7: mov r0,#digital_byte
015F 08 199 inc r0
0160 08 200 inc r0
0161 08 201 inc r0
0162 E6 202 mov a,@r0
0163 540F 203 anl a,#0fh
0165 8001 204 jmp digital_display
0167 22 205 ret
0168 90017C 206 digital_display: mov dptr,#data_tab_digital
016B 93 207 movc a,@a+dptr
016C F4 208 cpl a
016D 75A000 209 mov p2,#0
0170 F580 210 mov p0,a
0172 E508 211 mov a,digital_bit
0174 F5A0 212 mov p2,a
0176 23 213 rl a
0177 F508 214 mov digital_bit,a
0179 514B 215 call time2_5ms
017B 22 216 ret
217
218 ;*****************************************************
219 ;共阴数码管显示数据
220 ;排列为:0-F, 0.-F.
221 ;端口排列:p07 p06 p05 p04 p03 p02 p01 p00
222 ;段排列为: d dp e c g b f a
223 ;*****************************************************
224
017C B714AD9D 225 data_tab_digital: db 0b7h,014h,0adh,09dh,01eh,09bh,0bbh,015h
0180 1E9BBB15
0184 BF9F3FBA 226 db 0bfh,09fh,03fh,0bah,0a8h,0bch,0abh,02bh
0188 A8BCAB2B
018C F754EDDD 227 db 0f7h,054h,0edh,0ddh,05eh,0dbh,0fbh,055h
0190 5EDBFB55
0194 FFDF7FFA 228 db 0ffh,0dfh,07fh,0fah,0e8h,0fch,0ebh,06bh
0198 E8FCEB6B
229 ;*****************************************************
230 ;键盘中断处理程序
231 ;*****************************************************
232
019C C2AF 233 keys_int: clr ea
019E C28B 234 clr ie1
01A0 75A000 235 mov p2,#0
01A3 E590 236 mov a,p1
01A5 F4 237 cpl a
01A6 540F 238 anl a,#0fh
01A8 B40005 239 cjne a,#0,keys_reader
01AB C28B 240 clr ie1
01AD D2AF 241 setb ea
01AF 32 242 reti
01B0 5154 243 keys_reader: call time10ms
01B2 E590 244 mov a,p1
01B4 F4 245 cpl a
01B5 540F 246 anl a,#0fh
01B7 F50D 247 mov keys_byte,a
01B9 E590 248 keys_reader_0: mov a,p1
01BB F4 249 cpl a
01BC 540F 250 anl a,#0fh
01BE B400F8 251 cjne a,#0,keys_reader_0
01C1 C28B 252 clr ie1
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:56:46 PAGE 5
01C3 D2AF 253 setb ea
01C5 32 254 reti
255
256 ;*****************************************************
257 ;按键处理程序
258 ;*****************************************************
259
01C6 B40102 260 keys_management: cjne a,#01h,keys_check_2
01C9 8010 261 sjmp keys_1
01CB B40202 262 keys_check_2: cjne a,#02h,keys_check_3
01CE 800E 263 sjmp keys_2
01D0 B40402 264 keys_check_3: cjne a,#04h,keys_check_4
01D3 800C 265 sjmp keys_3
01D5 B40802 266 keys_check_4: cjne a,#08h,keys_check_err
01D8 800A 267 sjmp keys_4
01DA 22 268 keys_check_err: ret
269
01DB 0201E7 270 keys_1: ljmp keys_manage_1
01DE 0201EB 271 keys_2: ljmp keys_manage_2
01E1 0201EF 272 keys_3: ljmp keys_manage_3
01E4 020208 273 keys_4: ljmp keys_manage_4
274
275 ;*****************************************************
276 ;1键处理
277 ;*****************************************************
278
01E7 120070 279 keys_manage_1: lcall beep1
01EA 22 280 ret
281
282 ;*****************************************************
283 ;2键处理
284 ;*****************************************************
285
01EB 1200AA 286 keys_manage_2: lcall beep3
01EE 22 287 ret
288
289 ;*****************************************************
290 ;3键处理
291 ;*****************************************************
292
01EF 120070 293 keys_manage_3: lcall beep1
01F2 1200FB 294 lcall digital
01F5 1200FB 295 lcall digital
01F8 1200FB 296 lcall digital
01FB 1200FB 297 lcall digital
01FE 1200FB 298 lcall digital
0201 1200FB 299 lcall digital
0204 1200AA 300 lcall beep3
0207 22 301 ret
302
303 ;*****************************************************
304 ;4键处理
305 ;*****************************************************
306
0208 1200AA 307 keys_manage_4: lcall beep3
020B 1200FB 308 lcall digital
020E 1200FB 309 lcall digital
0211 1200FB 310 lcall digital
0214 1200FB 311 lcall digital
0217 1200FB 312 lcall digital
021A 1200FB 313 lcall digital
021D 1200AA 314 lcall beep3
0220 22 315 ret
316 ;*****************************************************
317 ;延时10uS
318 ;*****************************************************
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:56:46 PAGE 6
319
0221 7D05 320 time10us: mov r5,#05h ;11us
0223 DDFE 321 djnz r5,$
0225 22 322 ret
323
324 ;*****************************************************
325 ;延时50uS
326 ;*****************************************************
327
0226 7D19 328 time50us: mov r5,#19h ;51us
0228 DDFE 329 djnz r5,$
022A 22 330 ret
331
332 ;*****************************************************
333 ;延时100uS
334 ;*****************************************************
335
022B 7D31 336 time100us: mov r5,#31h ;99.6us
022D DDFE 337 djnz r5,$
022F 22 338 ret
339
340 ;*****************************************************
341 ;延时200uS
342 ;*****************************************************
343
0230 7D64 344 time200us: mov r5,#64h ;201us
0232 DDFE 345 djnz r5,$
0234 22 346 ret
347
348 ;*****************************************************
349 ;延时250uS
350 ;*****************************************************
351
0235 7D7C 352 time250us: mov r5,#7ch ;249.6us
0237 DDFE 353 djnz r5,$
0239 22 354 ret
355
356 ;*****************************************************
357 ;延时350uS
358 ;*****************************************************
359
023A 7DAF 360 time350us: mov r5,#0afh ;351us
023C DDFE 361 time350us_1: djnz r5,time350us_1
023E 22 362 ret
363
364 ;*****************************************************
365 ;延时500uS
366 ;*****************************************************
367
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -