📄 key3a.lst
字号:
251 0311 0829 movf _key_bak,w
252 0312 00A6 movwf _current_key
253 ;KEY3A.C: 133: scan_key_state = 0;
254 0313 01AD clrf _scan_key_state
255 ;KEY3A.C: 134: }
256 ;KEY3A.C: 135: }else
257 0314 0008 return
258 0315 l22
259 ;KEY3A.C: 136: {
260 0315 0828 movf _key,w
261 0316 0629 xorwf _key_bak,w
262 0317 1903 btfsc 3,2
263 0318 0008 return
264 ;KEY3A.C: 138: {
265 0319 0829 movf _key_bak,w
266 031A 00A6 movwf _current_key
267 ;KEY3A.C: 140: scan_key_state = 0;
268 031B 01AD clrf _scan_key_state
269 ;KEY3A.C: 141: }
270 ;KEY3A.C: 143: break;
271 031C 0008 return
272 031D l33
273 ;KEY3A.C: 144: case 3:
274 ;KEY3A.C: 145: if (key == key_bak)
275 031D 0828 movf _key,w
276 031E 0629 xorwf _key_bak,w
277 031F 1D03 btfss 3,2
278 0320 2B29 goto l34
279 ;KEY3A.C: 146: {
280 0321 08AC movf _repeat_key_timer
281 0322 1D03 btfss 3,2
282 0323 0008 return
283 ;KEY3A.C: 148: {
284 0324 3014 movlw 20
285 0325 00AC movwf _repeat_key_timer
286 ;KEY3A.C: 150: current_key = repeat_key;
287 0326 082B movf _repeat_key,w
288 0327 00A6 movwf _current_key
289 ;KEY3A.C: 151: }
290 0328 0008 return
291 0329 l34
292 ;KEY3A.C: 153: {
293 0329 01AD clrf _scan_key_state
294 ;KEY3A.C: 155: }
295 ;KEY3A.C: 156: break;
296 032A 0008 return
297 032B l37
298 ;KEY3A.C: 157: case 4:
299 ;KEY3A.C: 158: if (key!= key_bak)
300 032B 0828 movf _key,w
301 032C 0629 xorwf _key_bak,w
302 032D 1D03 btfss 3,2
303 ;KEY3A.C: 159: {
304 032E 01AD clrf _scan_key_state
305 ;KEY3A.C: 161: }
306 032F 0008 return
307 0330 l13
308 0330 082D movf _scan_key_state,w
309 0331 1903 btfsc 3,2
310 0332 2AD4 goto l14
311 0333 3A01 xorlw 1
312 0334 1903 btfsc 3,2
313 0335 2ADF goto l17
314 0336 3A03 xorlw 3
315 0337 1903 btfsc 3,2
316 0338 2AED goto l21
317 0339 3A01 xorlw 1
318 033A 1903 btfsc 3,2
319 033B 2B1D goto l33
320 033C 3A07 xorlw 7
321 033D 1D03 btfss 3,2
322 033E 0008 return
323 033F 2B2B goto l37
324
325 psect text3
326 ;KEY3A.C: 182: void KEYINT(void)
327 ;KEY3A.C: 183: {
328 0EED _KEYINT
329 ;KEY3A.C: 184: T0CS=0;
330 0EED 1683 bsf 3,5
331 0EEE 1303 bcf 3,6 ;carry unused
332 0EEF 1281 bcf 1,5
333 ;KEY3A.C: 185: ledadr=0;
334 0EF0 1283 bcf 3,5
335 0EF1 01AA clrf _ledadr
336 ;KEY3A.C: 186: tmint();
337 0EF2 120A 158A 26D6 fcall _tmint
+ 120A 158A
338 ;KEY3A.C: 187: GIE=1;
339 0EF7 178B bsf 11,7
340 ;KEY3A.C: 190: }
341 0EF8 0008 return
342
343 psect text4
344 ;KEY3A.C: 192: void Key( )
345 ;KEY3A.C: 193: {
346 010D _Key
347 ; _Buf assigned to ?a_Key+0
348 0000 _Key$Buf set ?a_Key
349 ;KEY3A.C: 194: unsigned long int Buf;
350 010D 300A movlw 10
351 010E 00F3 movwf btemp+1
352 010F 1283 bcf 3,5
353 0110 1303 bcf 3,6 ;carry unused
354 0111 083E movf _KeyBuf,w
355 0112 120A 158A 26E1 fcall lbmul
356 0115 073F addwf _KeyBuf+1,w
357 0116 00F2 movwf btemp
358 0117 300A movlw 10
359 0118 00F3 movwf btemp+1
360 0119 0872 movf btemp,w
361 011A 120A 158A 26E1 fcall lbmul
362 011D 0740 addwf _KeyBuf+2,w
363 011E 00BB movwf _BJCardBuf
364 ;KEY3A.C: 196: asm("nop");
365 011F 0000 nop ;#
366 ;KEY3A.C: 197: Buf=(KeyBuf[3]*10000+KeyBuf[4]*1
+ 000+KeyBuf[5]*100)+KeyBuf[6]*10+KeyBuf[7];
367 0120 300A movlw 10
368 0121 00F4 movwf btemp+2
369 0122 01F5 clrf btemp+3
370 0123 0841 movf _KeyBuf+3,w
371 0124 00F2 movwf btemp
372 0125 01F3 clrf btemp+1
373 0126 120A 158A 26F9 fcall awmul
374 0129 0842 movf _KeyBuf+4,w
375 012A 00F2 movwf btemp
376 012B 01F3 clrf btemp+1
377 012C 0876 movf btemp+4,w
378 012D 07F2 addwf btemp
379 012E 1803 btfsc 3,0
380 012F 0AF3 incf btemp+1
381 0130 0877 movf btemp+5,w
382 0131 07F3 addwf btemp+1
383 0132 300A movlw 10
384 0133 00F4 movwf btemp+2
385 0134 3000 movlw 0
386 0135 01F5 clrf btemp+3
387 0136 120A 158A 26F9 fcall awmul
388 0139 0843 movf _KeyBuf+5,w
389 013A 00F2 movwf btemp
390 013B 01F3 clrf btemp+1
391 013C 0876 movf btemp+4,w
392 013D 07F2 addwf btemp
393 013E 1803 btfsc 3,0
394 013F 0AF3 incf btemp+1
395 0140 0877 movf btemp+5,w
396 0141 07F3 addwf btemp+1
397 0142 300A movlw 10
398 0143 00F4 movwf btemp+2
399 0144 3000 movlw 0
400 0145 01F5 clrf btemp+3
401 0146 120A 158A 26F9 fcall awmul
402 0149 0844 movf _KeyBuf+6,w
403 014A 00F2 movwf btemp
404 014B 01F3 clrf btemp+1
405 014C 0876 movf btemp+4,w
406 014D 07F2 addwf btemp
407 014E 1803 btfsc 3,0
408 014F 0AF3 incf btemp+1
409 0150 0877 movf btemp+5,w
410 0151 07F3 addwf btemp+1
411 0152 300A movlw 10
412 0153 00F4 movwf btemp+2
413 0154 3000 movlw 0
414 0155 01F5 clrf btemp+3
415 0156 120A 158A 26F9 fcall awmul
+ 120A 118A
416 015B 0845 movf _KeyBuf+7,w
417 015C 00F2 movwf btemp
418 015D 01F3 clrf btemp+1
419 015E 0876 movf btemp+4,w
420 015F 07F2 addwf btemp
421 0160 1803 btfsc 3,0
422 0161 0AF3 incf btemp+1
423 0162 0877 movf btemp+5,w
424 0163 07F3 addwf btemp+1
425 0164 0872 movf btemp,w
426 0165 0873 movf btemp+1,w
427 0166 3000 movlw 0
428 0167 1BF3 btfsc btemp+1,7
429 0168 30FF movlw 255
430 0169 00F4 movwf btemp+2
431 016A 00F5 movwf btemp+3
432 016B 0872 movf btemp,w
433 016C 00E2 movwf ?a_Key
434 016D 0873 movf btemp+1,w
435 016E 00E3 movwf ?a_Key+1
436 016F 0874 movf btemp+2,w
437 0170 00E4 movwf ?a_Key+2
438 0171 0875 movf btemp+3,w
439 0172 00E5 movwf ?a_Key+3
440 ;KEY3A.C: 198: asm("nop");
441 0173 0000 nop ;#
442 ;KEY3A.C: 199: BJCardBuf[2]=Buf%256;
443 0174 0862 movf ?a_Key,w
444 0175 00BD movwf _BJCardBuf+2
445 ;KEY3A.C: 200: BJCardBuf[1]=Buf>>8;
446 0176 0863 movf ?a_Key+1,w
447 0177 00BC movwf _BJCardBuf+1
448 ;KEY3A.C: 202: asm("nop");
449 0178 0000 nop ;#
450 ;KEY3A.C: 203: }
451 0179 0008 return
452
453 psect text5
454 0000
455 0000
456 0000
457 0000
458 0000
459 0000
460 0000
461 0000
462 0000
463 0000
464 0000
465 0000
466 0000
467 0000
468 0000
469 0000
470 0000
471 0000
472 0000
473 0000
474 0000
475 0000
476 0000
477 0000
478 0000
479 0000
480 0000
481 0000
482 0000
483 0000
484 0000
485 0000
486 0000
487 0000
488 0000
489 0000
490 0000
491 0000
492 0000
493 0000
494 0000
495 0000
496 0000
497 0000
498 0000
499 0000
500 0000
501 0000
502 0000
503 0000
504 0000
505 0000
506 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -