📄 vmeter.lst
字号:
267 0583 2D8E goto l35
268 ;HD44780.h: 206: DelayMs(5);
269 0584 3005 movlw 5
270 0585 2507 fcall _DelayMs
271 ;HD44780.h: 207: PORTD = 0x2;
272 0586 3002 movlw 2
273 0587 0088 movwf 8 ;volatile
274 ;HD44780.h: 208: RA1 = 1; asm("nop"); asm("nop"
+ ); RA1 = 0;
275 0588 1485 bsf 5,1
276 0589 0000 nop ;#
277 058A 0000 nop ;#
278 058B 1085 bcf 5,1
279 ;HD44780.h: 209: SetCommand(0x28);
280 058C 3028 movlw 40
281 058D 2D8F goto L3
282 ;HD44780.h: 210: }else{
283 058E l35
284 ;HD44780.h: 211: SetCommand(0x38);
285 058E 3038 movlw 56
286 058F L3
287 058F 251B fcall _SetCommand
288 ;HD44780.h: 212: }
289 ;HD44780.h: 213: SetCommand(0xC);
290 0590 300C movlw 12
291 0591 251B fcall _SetCommand
292 ;HD44780.h: 214: SetCommand(0x1);
293 0592 3001 movlw 1
294 0593 251B fcall _SetCommand
295 ;HD44780.h: 215: SetCommand(0x6);
296 0594 3006 movlw 6
297 0595 251B fcall _SetCommand
298 ;HD44780.h: 216: SetCommand((0x7f+1)|((1>>1)<<6
+ ));;
299 0596 3080 movlw -128
300 0597 251B fcall _SetCommand
301 ;HD44780.h: 218: ADCON1=0x07;
302 0598 3007 movlw 7
303 0599 1683 bsf 3,5
304 059A 009F movwf 31 ;volatile
305 ;HD44780.h: 219: }
306 059B 1283 bcf 3,5
307 059C 0008 return
308 059D _PutString
309 ; _x assigned to ?a_PutString+0
310 0000 _PutString$x set ?a_PutString
311 ;_x stored from w
312 059D 0183 clrf 3 ;select bank 0
313 059E 00A8 movwf ?a_PutString
314 ;HD44780.h: 158: SetCommand((0x7f+y)|((x>>1)<<6
+ ));;
315 059F 1003 bcf 3,0
316 05A0 0C28 rrf ?a_PutString,w
317 05A1 00F0 movwf btemp
318 05A2 3006 movlw 6
319 05A3 00F1 movwf btemp+1
320 05A4 u75
321 05A4 1003 bcf 3,0
322 05A5 0DF0 rlf btemp
323 05A6 0BF1 decfsz btemp+1
324 05A7 2DA4 goto u75
325 05A8 0870 movf btemp,w
326 05A9 00F0 movwf btemp
327 05AA 0825 movf ?_PutString,w
328 05AB 3E7F addlw 127
329 05AC 0470 iorwf btemp,w
330 05AD 251B fcall _SetCommand
331 ;HD44780.h: 159: while(*s)
332 05AE l22
333 05AE 0827 movf ?_PutString+2,w
334 05AF 00BA movwf code_ptr+1
335 05B0 0826 movf ?_PutString+1,w
336 05B1 120A 118A 202D fcall string_table
+ 120A 118A
337 05B6 3800 iorlw 0
338 05B7 1903 btfsc 3,2
339 05B8 0008 return
340 ;HD44780.h: 160: SetData(*s++);
341 05B9 0827 movf ?_PutString+2,w
342 05BA 00BA movwf code_ptr+1
343 05BB 0826 movf ?_PutString+1,w
344 05BC 0AA6 incf ?_PutString+1
345 05BD 1903 btfsc 3,2
346 05BE 0AA7 incf ?_PutString+2
347 05BF 120A 118A 202D fcall string_table
+ 120A 118A
348 05C4 2537 fcall _SetData
349 05C5 2DAE goto l22
350 ;Vmeter.c: 21: bit step;
351 ;Vmeter.c: 23: void Display(void)
352 ;Vmeter.c: 24: {
353 05C6 _Display
354 ;Vmeter.c: 25: volts[0]=V/1000;
355 05C6 30E8 movlw 232
356 05C7 00F2 movwf btemp+2
357 05C8 3003 movlw 3
358 05C9 00F3 movwf btemp+3
359 05CA 1283 bcf 3,5
360 05CB 1303 bcf 3,6 ;carry unused
361 05CC 0838 movf _V+1,w
362 05CD 00F1 movwf btemp+1
363 05CE 0837 movf _V,w
364 05CF 00F0 movwf btemp
365 05D0 120A 118A 27AB fcall lwdiv
366 05D3 0874 movf btemp+4,w
367 05D4 00AC movwf _volts
368 ;Vmeter.c: 26: volts[2]=(V-volts[0]*1000)/100;
369 05D5 30E8 movlw 232
370 05D6 00F2 movwf btemp+2
371 05D7 3003 movlw 3
372 05D8 00F3 movwf btemp+3
373 05D9 082C movf _volts,w
374 05DA 00F0 movwf btemp
375 05DB 01F1 clrf btemp+1
376 05DC 120A 118A 24F2 fcall lwmul
377 05DF 0838 movf _V+1,w
378 05E0 00F1 movwf btemp+1
379 05E1 0837 movf _V,w
380 05E2 00F0 movwf btemp
381 05E3 0874 movf btemp+4,w
382 05E4 02F0 subwf btemp
383 05E5 1C03 btfss 3,0
384 05E6 03F1 decf btemp+1
385 05E7 0875 movf btemp+5,w
386 05E8 02F1 subwf btemp+1
387 05E9 3064 movlw 100
388 05EA 00F2 movwf btemp+2
389 05EB 3000 movlw 0
390 05EC 01F3 clrf btemp+3
391 05ED 120A 118A 27AB fcall lwdiv
392 05F0 0874 movf btemp+4,w
393 05F1 00AE movwf _volts+2
394 ;Vmeter.c: 27: volts[3]=(V-volts[0]*1000-volts[
+ 2]*100)/10;
395 05F2 3064 movlw 100
396 05F3 00F2 movwf btemp+2
397 05F4 01F3 clrf btemp+3
398 05F5 082E movf _volts+2,w
399 05F6 00F0 movwf btemp
400 05F7 01F1 clrf btemp+1
401 05F8 120A 118A 24F2 fcall lwmul
402 05FB 0874 movf btemp+4,w
403 05FC 00A3 movwf ?a_Display
404 05FD 0875 movf btemp+5,w
405 05FE 00A4 movwf ?a_Display+1
406 05FF 30E8 movlw 232
407 0600 00F2 movwf btemp+2
408 0601 3003 movlw 3
409 0602 00F3 movwf btemp+3
410 0603 082C movf _volts,w
411 0604 00F0 movwf btemp
412 0605 01F1 clrf btemp+1
413 0606 120A 118A 24F2 fcall lwmul
414 0609 0838 movf _V+1,w
415 060A 00F1 movwf btemp+1
416 060B 0837 movf _V,w
417 060C 00F0 movwf btemp
418 060D 0874 movf btemp+4,w
419 060E 02F0 subwf btemp
420 060F 1C03 btfss 3,0
421 0610 03F1 decf btemp+1
422 0611 0875 movf btemp+5,w
423 0612 02F1 subwf btemp+1
424 0613 0823 movf ?a_Display,w
425 0614 02F0 subwf btemp
426 0615 1C03 btfss 3,0
427 0616 03F1 decf btemp+1
428 0617 0824 movf ?a_Display+1,w
429 0618 02F1 subwf btemp+1
430 0619 300A movlw 10
431 061A 00F2 movwf btemp+2
432 061B 3000 movlw 0
433 061C 01F3 clrf btemp+3
434 061D 120A 118A 27AB fcall lwdiv
+ 120A 118A
435 0622 0874 movf btemp+4,w
436 0623 00AF movwf _volts+3
437 ;Vmeter.c: 29: volts[0]|=0x30;
438 0624 3030 movlw 48
439 0625 04AC iorwf _volts
440 ;Vmeter.c: 30: volts[2]|=0x30;
441 0626 04AE iorwf _volts+2
442 ;Vmeter.c: 31: volts[3]|=0x30;
443 0627 04AF iorwf _volts+3
444 ;Vmeter.c: 33: volts[1]='.';
445 0628 302E movlw 46
446 0629 00AD movwf _volts+1
447 ;Vmeter.c: 35: PutString(1,3,volts);
448 062A 3003 movlw 3
449 062B 00A5 movwf ?_PutString
450 062C 302C movlw _volts
451 062D 00A6 movwf ?_PutString+1
452 062E 3080 movlw 128
453 062F 00A7 movwf ?_PutString+2
454 0630 3001 movlw 1
455 0631 2D9D ljmp _PutString
456 ;Vmeter.c: 38: }
457 0632 0008 return
458 0000
459 0633 _SetChar
460 ; _addres assigned to ?a_SetChar+0
461 0000 _SetChar$addres set ?a_SetChar
462 ; _n assigned to ?a_SetChar+1
463 0000 _SetChar$n set ?a_SetChar+1
464 ;_n stored from w
465 0633 0183 clrf 3 ;select bank 0
466 0634 00A6 movwf ?a_SetChar+1
467 ;HD44780.h: 166: unsigned char addres=0x40;
468 0635 3040 movlw 64
469 0636 00A5 movwf ?a_SetChar
470 ;HD44780.h: 167: n<<=3;
471 0637 1003 bcf 3,0
472 0638 0DA6 rlf ?a_SetChar+1
473 0639 1003 bcf 3,0
474 063A 0DA6 rlf ?a_SetChar+1
475 063B 1003 bcf 3,0
476 063C 0DA6 rlf ?a_SetChar+1
477 ;HD44780.h: 169: while(n--)
478 063D 2E4D goto l26
479 063E l27
480 ;HD44780.h: 170: {
481 063E 0AA5 incf ?a_SetChar
482 063F 0325 decf ?a_SetChar,w
483 0640 251B fcall _SetCommand
484 ;HD44780.h: 172: SetData(*c++);
485 0641 0824 movf ?_SetChar+1,w
486 0642 00BA movwf code_ptr+1
487 0643 0823 movf ?_SetChar,w
488 0644 0AA3 incf ?_SetChar
489 0645 1903 btfsc 3,2
490 0646 0AA4 incf ?_SetChar+1
491 0647 120A 118A 202D fcall string_table
+ 120A 118A
492 064C 2537 fcall _SetData
493 064D l26
494 ;HD44780.h: 173: }
495 064D 03A6 decf ?a_SetChar+1
496 064E 0F26 incfsz ?a_SetChar+1,w
497 064F 2E3E goto l27
498 0650 0008 return
499 ;Vmeter.c: 40: void main(void)
500 ;Vmeter.c: 41: {
501 0651 _main
502 ;Vmeter.c: 42: TRISA0=1;
503 0651 1683 bsf 3,5
504 0652 1303 bcf 3,6 ;carry unused
505 0653 1405 bsf 5,0
506 ;Vmeter.c: 43: TRISB=0x00;
507 0654 0186 clrf 6 ;volatile
508 ;Vmeter.c: 44: TRISE0=0;
509 0655 1009 bcf 9,0
510 ;Vmeter.c: 46: LCD_Begin(0);
511 0656 3000 movlw 0
512 0657 2554 120A 118A fcall _LCD_Begin
513 ;Vmeter.c: 48: ADCON0=0x41;
514 065A 3041 movlw 65
515 065B 009F movwf 31 ;volatile
516 ;Vmeter.c: 49: ADCON1=0x8e;
517 065C 308E movlw -114
518 065D 1683 bsf 3,5
519 065E 009F movwf 31 ;volatile
520 ;Vmeter.c: 51: SetChar(8,own);
521 065F 306D movlw low _own
522 0660 1283 bcf 3,5
523 0661 00A3 movwf ?_SetChar
524 0662 3000 movlw high _own
525 0663 00A4 movwf ?_SetChar+1
526 0664 3008 movlw 8
527 0665 2633 fcall _SetChar
528 ;Vmeter.c: 53: PutString(1,1,string);
529 0666 01A5 clrf ?_PutString
530 0667 0AA5 incf ?_PutString
531 0668 0831 movf _string,w
532 0669 00A6 movwf ?_PutString+1
533 066A 0832 movf _string+1,w
534 066B 00A7 movwf ?_PutString+2
535 066C 3001 movlw 1
536 066D 259D fcall _PutString
537 ;Vmeter.c: 54: PutString(2,4,"\xb\xc\xc\xd\xa\x
+ b\x9\xe\xf");
538 066E 3004 movlw 4
539 066F 00A5 movwf ?_PutString
540 0670 3062 movlw low u49
541 0671 00A6 movwf ?_PutString+1
542 0672 3000 movlw high u49
543 0673 00A7 movwf ?_PutString+2
544 0674 3002 movlw 2
545 0675 259D fcall _PutString
546 0676 l40
547 ;Vmeter.c: 56: while(1)
548 ;Vmeter.c: 57: {
549 0676 151F bsf 31,2
550 ;Vmeter.c: 59: while(ADGO==1){;}
551 0677 l42
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -