📄 picc_keyboard.lst
字号:
254 072F 0085 movwf 5 ;volatile
255 0730 3006 movlw 6
256 0731 0088 movwf 8 ;volatile
257 0732 0185 clrf 5 ;volatile
258 0733 2684 fcall _delay
259 0734 301F movlw 31
260 0735 0085 movwf 5 ;volatile
261 0736 3006 movlw 6
262 0737 0088 movwf 8 ;volatile
263 0738 0185 clrf 5 ;volatile
264 0739 2E84 ljmp _delay
265 073A l40
266 ;PICC_Keyboard.c: 135: case 12:
267 ;PICC_Keyboard.c: 136: PORTA=0X2f; PORTD=0x5b;P
+ ORTA=0X00;delay();PORTA=0X1f;PORTD=0x06;PORTA=0
+ X00;delay();break;
268 073A 302F movlw 47
269 073B 0085 movwf 5 ;volatile
270 073C 305B movlw 91
271 073D 0088 movwf 8 ;volatile
272 073E 0185 clrf 5 ;volatile
273 073F 2684 fcall _delay
274 0740 301F movlw 31
275 0741 0085 movwf 5 ;volatile
276 0742 3006 movlw 6
277 0743 0088 movwf 8 ;volatile
278 0744 0185 clrf 5 ;volatile
279 0745 2E84 ljmp _delay
280 0746 l41
281 ;PICC_Keyboard.c: 137: case 13:
282 ;PICC_Keyboard.c: 138: PORTA=0X2f; PORTD=0x4f;P
+ ORTA=0X00;delay();PORTA=0X1f;PORTD=0x06;PORTA=0
+ X00;delay();break;
283 0746 302F movlw 47
284 0747 0085 movwf 5 ;volatile
285 0748 304F movlw 79
286 0749 0088 movwf 8 ;volatile
287 074A 0185 clrf 5 ;volatile
288 074B 2684 fcall _delay
289 074C 301F movlw 31
290 074D 0085 movwf 5 ;volatile
291 074E 3006 movlw 6
292 074F 0088 movwf 8 ;volatile
293 0750 0185 clrf 5 ;volatile
294 0751 2E84 ljmp _delay
295 0752 l42
296 ;PICC_Keyboard.c: 139: case 14:
297 ;PICC_Keyboard.c: 140: PORTA=0X2f; PORTD=0x66;P
+ ORTA=0X00;delay();PORTA=0X1f;PORTD=0x06;PORTA=0
+ X00;delay();break;
298 0752 302F movlw 47
299 0753 0085 movwf 5 ;volatile
300 0754 3066 movlw 102
301 0755 0088 movwf 8 ;volatile
302 0756 0185 clrf 5 ;volatile
303 0757 2684 fcall _delay
304 0758 301F movlw 31
305 0759 0085 movwf 5 ;volatile
306 075A 3006 movlw 6
307 075B 0088 movwf 8 ;volatile
308 075C 0185 clrf 5 ;volatile
309 075D 2E84 ljmp _delay
310 075E l43
311 ;PICC_Keyboard.c: 141: case 15:
312 ;PICC_Keyboard.c: 142: PORTA=0X2f; PORTD=0x6d;P
+ ORTA=0X00;delay();PORTA=0X1f;PORTD=0x06;PORTA=0
+ X00;delay();break;
313 075E 302F movlw 47
314 075F 0085 movwf 5 ;volatile
315 0760 306D movlw 109
316 0761 0088 movwf 8 ;volatile
317 0762 0185 clrf 5 ;volatile
318 0763 2684 fcall _delay
319 0764 301F movlw 31
320 0765 0085 movwf 5 ;volatile
321 0766 3006 movlw 6
322 0767 0088 movwf 8 ;volatile
323 0768 0185 clrf 5 ;volatile
324 0769 2E84 ljmp _delay
325 076A l44
326 ;PICC_Keyboard.c: 143: case 16:
327 ;PICC_Keyboard.c: 144: PORTA=0X2f; PORTD=0x8e;P
+ ORTA=0X00;delay(); PORTA=0X1f;PORTD=0x8e; PORTA
+ =0X00; delay();break;
328 076A 302F movlw 47
329 076B 0085 movwf 5 ;volatile
330 076C 308E movlw -114
331 076D 0088 movwf 8 ;volatile
332 076E 0185 clrf 5 ;volatile
333 076F 2684 fcall _delay
334 0770 301F movlw 31
335 0771 0085 movwf 5 ;volatile
336 0772 308E movlw -114
337 0773 0088 movwf 8 ;volatile
338 0774 0185 clrf 5 ;volatile
339 0775 2E84 ljmp _delay
340 0776 l27
341 0776 1283 bcf 3,5
342 0777 1303 bcf 3,6 ;carry unused
343 0778 0821 movf _result+1,w
344 0779 00F3 movwf btemp+3
345 077A 0820 movf _result,w
346 077B 00F2 movwf btemp+2
347 077C 0873 movf btemp+3,w
348 077D 1D03 btfss 3,2
349 077E 0008 return
350 077F 0872 movf btemp+2,w
351 0780 00F0 movwf btemp
352 0781 3EEF addlw -17
353 0782 1803 btfsc 3,0
354 0783 0008 return
355 0784 3E11 addlw 17
356 0785 1C03 btfss 3,0
357 0786 0008 return
358 0787 3007 movlw S30008 shr (0+8)
359 0788 008A movwf 10
360 0789 308E movlw S30008& (0+255)
361 078A 0770 addwf btemp,w
362 078B 1803 btfsc 3,0
363 078C 0A8A incf 10
364 078D 0082 movwf 2
365 078E S30008
366 078E 2EAA goto l28
367 078F 2EB6 goto l29
368 0790 2EC2 goto l30
369 0791 2ECE goto l31
370 0792 2EDA goto l32
371 0793 2EE6 goto l33
372 0794 2EF2 goto l34
373 0795 2EFE goto l35
374 0796 2F0A goto l36
375 0797 2F16 goto l37
376 0798 2F22 goto l38
377 0799 2F2E goto l39
378 079A 2F3A goto l40
379 079B 2F46 goto l41
380 079C 2F52 goto l42
381 079D 2F5E goto l43
382 079E 2F6A goto l44
383 ;PICC_Keyboard.c: 76: void scan()
384 ;PICC_Keyboard.c: 77: {
385 079F _scan
386 ; _k assigned to ?a_scan+0
387 0000 _scan$k set ?a_scan
388 ; _key assigned to ?a_scan+1
389 0000 _scan$key set ?a_scan+1
390 ; _s assigned to ?a_scan+2
391 0000 _scan$s set ?a_scan+2
392 ; _c assigned to ?a_scan+3
393 0000 _scan$c set ?a_scan+3
394 ;PICC_Keyboard.c: 78: unsigned char key,s,k,c;
395 079F 2FE5 goto l12
396 07A0 l13
397 ;PICC_Keyboard.c: 80: {
398 07A0 30FE movlw -2
399 07A1 0087 movwf 7 ;volatile
400 ;PICC_Keyboard.c: 82: k=0xfe;
401 07A2 00A2 movwf ?a_scan
402 ;PICC_Keyboard.c: 83: for(c=0;c!=4;c++)
403 07A3 01A5 clrf ?a_scan+3
404 07A4 l15
405 ;PICC_Keyboard.c: 84: {
406 ;PICC_Keyboard.c: 85: s=PORTC&0xf0;
407 07A4 0807 movf 7,w ;volatile
408 07A5 39F0 andlw -16
409 07A6 00A4 movwf ?a_scan+2
410 ;PICC_Keyboard.c: 86: if(s==0x70)key=4*c+0;
411 07A7 3A70 xorlw 112
412 07A8 1D03 btfss 3,2
413 07A9 2FB1 goto l18
414 07AA 0825 movf ?a_scan+3,w
415 07AB 00F0 movwf btemp
416 07AC 1003 bcf 3,0
417 07AD 0DF0 rlf btemp
418 07AE 1003 bcf 3,0
419 07AF 0D70 rlf btemp,w
420 07B0 00A3 movwf ?a_scan+1
421 07B1 l18
422 ;PICC_Keyboard.c: 87: if(s==0xb0)key=4*c+1;
423 07B1 0824 movf ?a_scan+2,w
424 07B2 3AB0 xorlw -80
425 07B3 1D03 btfss 3,2
426 07B4 2FBE goto l19
427 07B5 0825 movf ?a_scan+3,w
428 07B6 00F0 movwf btemp
429 07B7 1003 bcf 3,0
430 07B8 0DF0 rlf btemp
431 07B9 1003 bcf 3,0
432 07BA 0D70 rlf btemp,w
433 07BB 00F0 movwf btemp
434 07BC 0A70 incf btemp,w
435 07BD 00A3 movwf ?a_scan+1
436 07BE l19
437 ;PICC_Keyboard.c: 88: if(s==0xd0)key=4*c+2;
438 07BE 0824 movf ?a_scan+2,w
439 07BF 3AD0 xorlw -48
440 07C0 1D03 btfss 3,2
441 07C1 2FCA goto l20
442 07C2 0825 movf ?a_scan+3,w
443 07C3 00F0 movwf btemp
444 07C4 1003 bcf 3,0
445 07C5 0DF0 rlf btemp
446 07C6 1003 bcf 3,0
447 07C7 0D70 rlf btemp,w
448 07C8 3E02 addlw 2
449 07C9 00A3 movwf ?a_scan+1
450 07CA l20
451 ;PICC_Keyboard.c: 89: if(s==0xe0)key=4*c+3;
452 07CA 0824 movf ?a_scan+2,w
453 07CB 3AE0 xorlw -32
454 07CC 1D03 btfss 3,2
455 07CD 2FD6 goto l21
456 07CE 0825 movf ?a_scan+3,w
457 07CF 00F0 movwf btemp
458 07D0 1003 bcf 3,0
459 07D1 0DF0 rlf btemp
460 07D2 1003 bcf 3,0
461 07D3 0D70 rlf btemp,w
462 07D4 3E03 addlw 3
463 07D5 00A3 movwf ?a_scan+1
464 07D6 l21
465 ;PICC_Keyboard.c: 98: k=(k<<1)|0x01;
466 07D6 1403 bsf 3,0
467 07D7 0DA2 rlf ?a_scan
468 ;PICC_Keyboard.c: 99: PORTC=k;
469 07D8 0822 movf ?a_scan,w
470 07D9 0087 movwf 7 ;volatile
471 ;PICC_Keyboard.c: 100: }
472 07DA 0AA5 incf ?a_scan+3
473 07DB 0825 movf ?a_scan+3,w
474 07DC 3A04 xorlw 4
475 07DD 1D03 btfss 3,2
476 07DE 2FA4 goto l15
477 ;PICC_Keyboard.c: 101: while(pkey());result=key
+ ;
478 07DF l22
479 07DF 2697 fcall _pkey
480 07E0 1803 btfsc 3,0
481 07E1 2FDF goto l22
482 07E2 0823 movf ?a_scan+1,w
483 07E3 00A0 movwf _result
484 07E4 01A1 clrf _result+1
485 07E5 l12
486 ;PICC_Keyboard.c: 102: }
487 07E5 2697 fcall _pkey
488 07E6 1C03 btfss 3,0
489 07E7 0008 return
490 07E8 2FA0 goto l13
491 ;PICC_Keyboard.c: 46: void init()
492 ;PICC_Keyboard.c: 47: {
493 07E9 _init
494 ;PICC_Keyboard.c: 48: TRISB=0X00;
495 07E9 1683 bsf 3,5
496 07EA 1303 bcf 3,6 ;carry unused
497 07EB 0186 clrf 6 ;volatile
498 ;PICC_Keyboard.c: 49: ADCON1=0X07;
499 07EC 3007 movlw 7
500 07ED 009F movwf 31 ;volatile
501 ;PICC_Keyboard.c: 50: TRISA=0X0f;
502 07EE 300F movlw 15
503 07EF 0085 movwf 5 ;volatile
504 ;PICC_Keyboard.c: 51: TRISC=0XF0;
505 07F0 30F0 movlw -16
506 07F1 0087 movwf 7 ;volatile
507 ;PICC_Keyboard.c: 52: TRISD=0X00;
508 07F2 0188 clrf 8 ;volatile
509 ;PICC_Keyboard.c: 53: PORTA=0Xff;
510 07F3 30FF movlw -1
511 07F4 1283 bcf 3,5
512 07F5 0085 movwf 5 ;volatile
513 ;PICC_Keyboard.c: 54: PORTD=0Xff;
514 07F6 0088 movwf 8 ;volatile
515 ;PICC_Keyboard.c: 55: }
516 07F7 0008 return
517 07F8 _main
518 ;PICC_Keyboard.c: 33: init();
519 07F8 27E9 fcall _init
520 07F9 l3
521 ;PICC_Keyboard.c: 34: while(1)
522 ;PICC_Keyboard.c: 35: {
523 07F9 279F 120A 118A fcall _scan
524 ;PICC_Keyboard.c: 38: display();
525 07FC 26A9 120A 118A fcall _display
526 ;PICC_Keyboard.c: 39: }
527 07FF 2FF9 goto l3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -