📄 key.lst
字号:
246 04C0 l22
247 ;key.c: 155: }
248 04C0 0847 movf ?a_RangeKeyValue+1,w
249 04C1 3E36 addlw _KeyInput^(0+256)
250 04C2 0084 movwf 4
251 04C3 1783 bsf 3,7
252 04C4 1D80 btfss 0,3
253 04C5 2CE7 goto l23
254 ;key.c: 158: {
255 04C6 0848 movf ?a_RangeKeyValue+2,w
256 04C7 3E12 addlw 18
257 04C8 00C9 movwf ?a_RangeKeyValue+3
258 ;key.c: 160: KeyUnitCou++;
259 04C9 0ACA incf ?a_RangeKeyValue+4
260 ;key.c: 161: KeyBitValueStruct.allbits |= 1 <<
+ (keyvalue_a - 1);
261 04CA 0349 decf ?a_RangeKeyValue+3,w
262 04CB 00F2 movwf btemp+2
263 04CC 3001 movlw 1
264 04CD 00F0 movwf btemp
265 04CE 3000 movlw 0
266 04CF 01F1 clrf btemp+1
267 04D0 0AF2 incf btemp+2
268 04D1 2CD5 goto u84
269 04D2 u85
270 04D2 1003 bcf 3,0
271 04D3 0DF0 rlf btemp
272 04D4 0DF1 rlf btemp+1
273 04D5 u84
274 04D5 0BF2 decfsz btemp+2
275 04D6 2CD2 goto u85
276 04D7 0870 movf btemp,w
277 04D8 00F0 movwf btemp
278 04D9 0871 movf btemp+1,w
279 04DA 3000 movlw 0
280 04DB 1BF1 btfsc btemp+1,7
281 04DC 30FF movlw 255
282 04DD 00F2 movwf btemp+2
283 04DE 00F3 movwf btemp+3
284 04DF 0870 movf btemp,w
285 04E0 04CD iorwf ?a_RangeKeyValue+7
286 04E1 0871 movf btemp+1,w
287 04E2 04CE iorwf ?a_RangeKeyValue+8
288 04E3 0872 movf btemp+2,w
289 04E4 04CF iorwf ?a_RangeKeyValue+9
290 04E5 0873 movf btemp+3,w
291 04E6 04D0 iorwf ?a_RangeKeyValue+10
292 04E7 l23
293 ;key.c: 162: }
294 04E7 0AC7 incf ?a_RangeKeyValue+1
295 04E8 l17
296 ;key.c: 164: }
297 04E8 3007 movlw 7
298 04E9 0AC8 incf ?a_RangeKeyValue+2
299 04EA 0248 subwf ?a_RangeKeyValue+2,w
300 04EB 1C03 btfss 3,0
301 04EC 2C4C goto l18
302 ;key.c: 168: if(0 == KeyUnitCou)
303 04ED 08CA movf ?a_RangeKeyValue+4
304 04EE 1D03 btfss 3,2
305 04EF 2CF3 goto l24
306 ;key.c: 169: {
307 04F0 01CB clrf ?a_RangeKeyValue+5
308 04F1 01CC clrf ?a_RangeKeyValue+6
309 ;key.c: 171: }
310 04F2 2D34 goto l25
311 04F3 l24
312 04F3 0B4A decfsz ?a_RangeKeyValue+4,w
313 04F4 2CFC goto l26
314 ;key.c: 173: {
315 04F5 0849 movf ?a_RangeKeyValue+3,w
316 04F6 00CB movwf ?a_RangeKeyValue+5
317 ;key.c: 175: KeyValueStructTemp.bits.Status = 1
+ ;
318 04F7 084C movf ?a_RangeKeyValue+6,w
319 04F8 390F andlw -241
320 04F9 3810 iorlw 16
321 04FA 00CC movwf ?a_RangeKeyValue+6
322 ;key.c: 176: }
323 04FB 2D34 goto l25
324 04FC l26
325 04FC 3002 movlw 2
326 04FD 024A subwf ?a_RangeKeyValue+4,w
327 ;key.c: 178: {
328 04FE 084C movf ?a_RangeKeyValue+6,w
329 04FF 1C03 btfss 3,0
330 0500 2D35 goto L1
331 0501 390F andlw -241
332 0502 3830 iorlw 48
333 0503 00CC movwf ?a_RangeKeyValue+6
334 ;key.c: 181: if(KeyBitValueStruct.bits.KeyValue
+ _1)
335 0504 184D btfsc ?a_RangeKeyValue+7,0
336 ;key.c: 182: {
337 0505 1CCD btfss ?a_RangeKeyValue+7,1
338 0506 2D14 goto l29
339 ;key.c: 184: {
340 0507 1DCD btfss ?a_RangeKeyValue+7,3
341 0508 2D14 goto l29
342 ;key.c: 186: {
343 0509 084C movf ?a_RangeKeyValue+6,w
344 050A 39F0 andlw -16
345 050B 3801 iorlw 1
346 050C 00CC movwf ?a_RangeKeyValue+6
347 ;key.c: 189: KeyValueStructTemp.bits.Status = 2
+ ;
348 050D 390F andlw -241
349 050E 3820 iorlw 32
350 050F 00CC movwf ?a_RangeKeyValue+6
351 ;key.c: 190: return KeyValueStructTemp;
352 0510 00F1 movwf btemp+1
353 0511 084B movf ?a_RangeKeyValue+5,w
354 0512 00F0 movwf btemp
355 0513 0008 return
356 0514 l29
357 ;key.c: 195: if(KeyBitValueStruct.bits.KeyValue
+ _1)
358 0514 184D btfsc ?a_RangeKeyValue+7,0
359 ;key.c: 196: {
360 0515 1CCD btfss ?a_RangeKeyValue+7,1
361 0516 2D24 goto l32
362 ;key.c: 198: {
363 0517 1D4D btfss ?a_RangeKeyValue+7,2
364 0518 2D24 goto l32
365 ;key.c: 200: {
366 0519 084C movf ?a_RangeKeyValue+6,w
367 051A 39F0 andlw -16
368 051B 3802 iorlw 2
369 051C 00CC movwf ?a_RangeKeyValue+6
370 ;key.c: 203: KeyValueStructTemp.bits.Status = 2
+ ;
371 051D 390F andlw -241
372 051E 3820 iorlw 32
373 051F 00CC movwf ?a_RangeKeyValue+6
374 ;key.c: 204: return KeyValueStructTemp;
375 0520 00F1 movwf btemp+1
376 0521 084B movf ?a_RangeKeyValue+5,w
377 0522 00F0 movwf btemp
378 0523 0008 return
379 0524 l32
380 ;key.c: 209: if(KeyBitValueStruct.bits.KeyValue
+ _1)
381 0524 184D btfsc ?a_RangeKeyValue+7,0
382 ;key.c: 210: {
383 0525 1F4D btfss ?a_RangeKeyValue+7,6
384 0526 2D34 goto l25
385 ;key.c: 212: {
386 0527 1E4E btfss ?a_RangeKeyValue+8,4
387 0528 2D34 goto l25
388 ;key.c: 214: {
389 0529 084C movf ?a_RangeKeyValue+6,w
390 052A 39F0 andlw -16
391 052B 3803 iorlw 3
392 052C 00CC movwf ?a_RangeKeyValue+6
393 ;key.c: 216: KeyValueStructTemp.bits.Status = 2
+ ;
394 052D 390F andlw -241
395 052E 3820 iorlw 32
396 052F 00CC movwf ?a_RangeKeyValue+6
397 ;key.c: 217: return KeyValueStructTemp;
398 0530 00F1 movwf btemp+1
399 0531 084B movf ?a_RangeKeyValue+5,w
400 0532 00F0 movwf btemp
401 0533 0008 return
402 0534 l25
403 0534 084C movf ?a_RangeKeyValue+6,w
404 0535 L1
405 0535 00F1 movwf btemp+1
406 0536 084B movf ?a_RangeKeyValue+5,w
407 0537 00F0 movwf btemp
408 ;key.c: 223: }
409 0538 0008 return
410 0539 _key_scan
411 ; _bufporta assigned to ?a_key_scan+0
412 0000 _key_scan$bufporta set ?a_key_scan
413 ; _bufportb assigned to ?a_key_scan+1
414 0000 _key_scan$bufportb set ?a_key_scan+1
415 ;key.c: 17: char bufportb,bufporta;
416 0539 0183 clrf 3 ;select bank 0
417 053A 0806 movf 6,w ;volatile
418 053B 00C7 movwf ?a_key_scan+1
419 ;key.c: 19: bufporta = PORTA;
420 053C 0805 movf 5,w ;volatile
421 053D 00C6 movwf ?a_key_scan
422 ;key.c: 20: TRISA |= 0b00011111;
423 053E 301F movlw 31
424 053F 1683 bsf 3,5
425 0540 0485 iorwf 5 ;volatile
426 ;key.c: 21: TRISB |= 0b11111001;
427 0541 30F9 movlw -7
428 0542 0486 iorwf 6 ;volatile
429 ;key.c: 22: asm("nop");
430 0543 0000 nop ;#
431 ;key.c: 23: asm("nop");
432 0544 0000 nop ;#
433 ;key.c: 27: TRISB0 = 0;
434 0545 1006 bcf 6,0
435 ;key.c: 28: asm("nop");
436 0546 0000 nop ;#
437 ;key.c: 29: asm("nop");
438 0547 0000 nop ;#
439 ;key.c: 30: RB0 = 0;
440 0548 1283 bcf 3,5
441 0549 1006 bcf 6,0
442 ;key.c: 31: asm("nop");
443 054A 0000 nop ;#
444 ;key.c: 32: asm("nop");
445 054B 0000 nop ;#
446 ;key.c: 33: asm("nop");
447 054C 0000 nop ;#
448 ;key.c: 34: KeyInput[0].allbits = PORTA;
449 054D 0805 movf 5,w ;volatile
450 054E 1703 bsf 3,6
451 054F 00B6 movwf _KeyInput^(0+256) ;volatile
452 ;key.c: 36: KeyInput[0].allbits |= 0xf0;
453 0550 30F0 movlw -16
454 0551 04B6 iorwf _KeyInput^(0+256) ;volatile
455 ;key.c: 37: TRISB0 = 1;
456 0552 1683 bsf 3,5
457 0553 1303 bcf 3,6 ;carry unused
458 0554 1406 bsf 6,0
459 ;key.c: 38: KeyInput[0].allbits ^= 0xff;
460 0555 30FF movlw -1
461 0556 1283 bcf 3,5
462 0557 1703 bsf 3,6
463 0558 06B6 xorwf _KeyInput^(0+256) ;volatile
464 ;key.c: 40: TRISB3 = 0;
465 0559 1683 bsf 3,5
466 055A 1303 bcf 3,6 ;carry unused
467 055B 1186 bcf 6,3
468 ;key.c: 41: asm("nop");
469 055C 0000 nop ;#
470 ;key.c: 42: asm("nop");
471 055D 0000 nop ;#
472 ;key.c: 43: RB3 = 0;
473 055E 1283 bcf 3,5
474 055F 1186 bcf 6,3
475 ;key.c: 44: asm("nop");
476 0560 0000 nop ;#
477 ;key.c: 45: asm("nop");
478 0561 0000 nop ;#
479 ;key.c: 46: asm("nop");
480 0562 0000 nop ;#
481 ;key.c: 47: KeyInput[1].allbits = PORTA;
482 0563 0805 movf 5,w ;volatile
483 0564 1703 bsf 3,6
484 0565 00B7 movwf (_KeyInput+1)^(0+256) ;volatile
485 ;key.c: 49: KeyInput[1].allbits |= 0xf0;
486 0566 30F0 movlw -16
487 0567 04B7 iorwf (_KeyInput+1)^(0+256) ;volatile
488 ;key.c: 50: TRISB3 = 1;
489 0568 1683 bsf 3,5
490 0569 1303 bcf 3,6 ;carry unused
491 056A 1586 bsf 6,3
492 ;key.c: 51: KeyInput[1].allbits ^= 0xff;
493 056B 30FF movlw -1
494 056C 1283 bcf 3,5
495 056D 1703 bsf 3,6
496 056E 06B7 xorwf (_KeyInput+1)^(0+256) ;volatile
497 ;key.c: 53: TRISB4 = 0;
498 056F 1683 bsf 3,5
499 0570 1303 bcf 3,6 ;carry unused
500 0571 1206 bcf 6,4
501 ;key.c: 54: asm("nop");
502 0572 0000 nop ;#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -