📄 taximetro1.lst
字号:
00ED: GOTO 35C (RETURN)
....................
....................
.................... void lcd_gotoxy( BYTE x, BYTE y) {
.................... BYTE address;
....................
.................... if(y!=1)
00EE: DECFSZ 3D,W
00EF: GOTO 0F1
00F0: GOTO 0F4
.................... address=lcd_line_two;
00F1: MOVLW 40
00F2: MOVWF 3E
.................... else
00F3: GOTO 0F5
.................... address=0;
00F4: CLRF 3E
.................... address+=x-1;
00F5: MOVLW 01
00F6: SUBWF 3C,W
00F7: ADDWF 3E,F
.................... lcd_send_byte(0,0x80|address);
00F8: MOVF 3E,W
00F9: IORLW 80
00FA: MOVWF 3F
00FB: CLRF 40
00FC: MOVF 3F,W
00FD: MOVWF 41
00FE: CALL 088
.................... }
00FF: RETLW 00
....................
.................... void lcd_putc( char c) {
.................... switch (c) {
0100: MOVF 3B,W
0101: XORLW 0C
0102: BTFSC 03.2
0103: GOTO 10B
0104: XORLW 06
0105: BTFSC 03.2
0106: GOTO 113
0107: XORLW 02
0108: BTFSC 03.2
0109: GOTO 119
010A: GOTO 11E
.................... case '\f' : lcd_send_byte(0,1);
010B: CLRF 40
010C: MOVLW 01
010D: MOVWF 41
010E: CALL 088
.................... delay_ms(2);
010F: MOVLW 02
0110: MOVWF 3C
0111: CALL 067
.................... break;
0112: GOTO 124
.................... case '\n' : lcd_gotoxy(1,2); break;
0113: MOVLW 01
0114: MOVWF 3C
0115: MOVLW 02
0116: MOVWF 3D
0117: CALL 0EE
0118: GOTO 124
.................... case '\b' : lcd_send_byte(0,0x10); break;
0119: CLRF 40
011A: MOVLW 10
011B: MOVWF 41
011C: CALL 088
011D: GOTO 124
.................... default : lcd_send_byte(1,c); break;
011E: MOVLW 01
011F: MOVWF 40
0120: MOVF 3B,W
0121: MOVWF 41
0122: CALL 088
0123: GOTO 124
.................... }
.................... }
0124: RETLW 00
....................
.................... char lcd_getc( BYTE x, BYTE y) {
.................... char value;
....................
.................... lcd_gotoxy(x,y);
.................... while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low
.................... lcd.rs=1;
.................... value = lcd_read_byte();
.................... lcd.rs=0;
.................... return(value);
.................... }
....................
....................
.................... #use fast_io(a)
....................
.................... int Contador = 250;
*
0352: MOVLW FA
0353: BCF 03.5
0354: MOVWF 28
.................... float cuenta=0;
0355: CLRF 29
0356: CLRF 2A
0357: CLRF 2B
0358: CLRF 2C
.................... void main()
.................... {
*
0347: CLRF 04
0348: BCF 03.7
0349: MOVLW 1F
034A: ANDWF 03,F
034B: BSF 03.5
034C: BSF 1F.0
034D: BSF 1F.1
034E: BSF 1F.2
034F: BCF 1F.3
0350: MOVLW 07
0351: MOVWF 1C
.................... lcd_init();
*
035B: GOTO 0C2
....................
....................
....................
.................... setup_adc_ports(NO_ANALOGS);
035C: BSF 03.5
035D: BSF 1F.0
035E: BSF 1F.1
035F: BSF 1F.2
0360: BCF 1F.3
.................... setup_adc(ADC_OFF);
0361: BCF 03.5
0362: BCF 1F.0
.................... setup_psp(PSP_DISABLED);
0363: BSF 03.5
0364: BCF 09.4
.................... setup_spi(FALSE);
*
0359: MOVLW FF
035A: MOVWF 2D
*
0365: BCF 03.5
0366: BCF 14.5
0367: BCF 2D.5
0368: MOVF 2D,W
0369: BSF 03.5
036A: MOVWF 07
036B: BCF 03.5
036C: BSF 2D.4
036D: MOVF 2D,W
036E: BSF 03.5
036F: MOVWF 07
0370: BCF 03.5
0371: BCF 2D.3
0372: MOVF 2D,W
0373: BSF 03.5
0374: MOVWF 07
0375: MOVLW 00
0376: BCF 03.5
0377: MOVWF 14
0378: BSF 03.5
0379: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
037A: MOVF 01,W
037B: ANDLW C7
037C: IORLW 08
037D: MOVWF 01
.................... setup_timer_1(T1_DISABLED);
037E: BCF 03.5
037F: CLRF 10
.................... setup_timer_2(T2_DISABLED,0,1);
0380: MOVLW 00
0381: MOVWF 78
0382: MOVWF 12
0383: MOVLW 00
0384: BSF 03.5
0385: MOVWF 12
.................... setup_comparator(NC_NC_NC_NC);
0386: MOVLW 07
0387: MOVWF 1C
0388: MOVF 05,W
0389: MOVLW 03
038A: MOVWF 77
038B: DECFSZ 77,F
038C: GOTO 38B
038D: MOVF 1C,W
038E: BCF 03.5
038F: BCF 0D.6
.................... setup_vref(FALSE);
0390: BSF 03.5
0391: CLRF 1D
....................
.................... lcd_gotoxy(1,1);
0392: MOVLW 01
0393: BCF 03.5
0394: MOVWF 3C
0395: MOVWF 3D
0396: CALL 0EE
.................... lcd_putc("Mi nombre es Andersen");
0397: CLRF 2E
0398: MOVF 2E,W
0399: CALL 03B
039A: IORLW 00
039B: BTFSC 03.2
039C: GOTO 3A1
039D: INCF 2E,F
039E: MOVWF 3B
039F: CALL 100
03A0: GOTO 398
.................... delay_ms(2000);
03A1: MOVLW 08
03A2: MOVWF 2E
03A3: MOVLW FA
03A4: MOVWF 3C
03A5: CALL 067
03A6: DECFSZ 2E,F
03A7: GOTO 3A3
.................... lcd_putc("\f");
03A8: CLRF 2E
03A9: MOVF 2E,W
03AA: CALL 055
03AB: IORLW 00
03AC: BTFSC 03.2
03AD: GOTO 3B2
03AE: INCF 2E,F
03AF: MOVWF 3B
03B0: CALL 100
03B1: GOTO 3A9
.................... delay_ms(1000);
03B2: MOVLW 04
03B3: MOVWF 2E
03B4: MOVLW FA
03B5: MOVWF 3C
03B6: CALL 067
03B7: DECFSZ 2E,F
03B8: GOTO 3B4
....................
.................... /*while(input(PIN_A1)!=1){
.................... if (input(PIN_B0)==1){
.................... cuenta+=1.6;
.................... delay_ms(300);
.................... }
.................... }*/
....................
.................... set_tris_a(0xFE);output_low(PIN_A0);
03B9: MOVLW FE
03BA: BSF 03.5
03BB: MOVWF 05
03BC: BCF 03.5
03BD: BCF 05.0
.................... setup_counters(RTCC_INTERNAL,RTCC_DIV_16);
03BE: MOVLW 03
03BF: MOVWF 77
03C0: BTFSS 77.3
03C1: GOTO 3CB
03C2: MOVLW 07
03C3: CLRF 01
03C4: MOVLW 81
03C5: MOVWF 04
03C6: BCF 03.7
03C7: MOVF 00,W
03C8: ANDLW C0
03C9: IORLW 0F
03CA: MOVWF 00
03CB: CLRWDT
03CC: MOVLW 81
03CD: MOVWF 04
03CE: MOVF 00,W
03CF: ANDLW C0
03D0: IORWF 77,W
03D1: MOVWF 00
.................... set_timer0(6);
03D2: MOVLW 06
03D3: MOVWF 01
.................... enable_interrupts(GLOBAL);
03D4: MOVLW C0
03D5: IORWF 0B,F
.................... enable_interrupts(INT_TIMER0);
03D6: BSF 0B.5
.................... do {} while (TRUE);
.................... lcd_gotoxy(1,1);
03D7: GOTO 3D7
03D8: MOVLW 01
03D9: MOVWF 3C
03DA: MOVWF 3D
03DB: CALL 0EE
.................... printf(lcd_putc"%f",cuenta);
03DC: MOVLW 89
03DD: MOVWF 04
03DE: MOVF 2C,W
03DF: MOVWF 31
03E0: MOVF 2B,W
03E1: MOVWF 30
03E2: MOVF 2A,W
03E3: MOVWF 2F
03E4: MOVF 29,W
03E5: MOVWF 2E
03E6: MOVLW 02
03E7: MOVWF 32
03E8: GOTO 1FF
.................... lcd_gotoxy(1,2);
03E9: MOVLW 01
03EA: MOVWF 3C
03EB: MOVLW 02
03EC: MOVWF 3D
03ED: CALL 0EE
.................... printf(lcd_putc"%d",get_rtcc());
03EE: MOVF 01,W
03EF: MOVWF 2E
03F0: MOVF 2E,W
03F1: MOVWF 2F
03F2: MOVLW 1F
03F3: MOVWF 30
03F4: GOTO 2E0
.................... delay_ms(2000);
03F5: MOVLW 08
03F6: MOVWF 2E
03F7: MOVLW FA
03F8: MOVWF 3C
03F9: CALL 067
03FA: DECFSZ 2E,F
03FB: GOTO 3F7
.................... }
.................... #
.................... #INT_TIMER0
....................
03FC: SLEEP
.................... void interruption()
.................... {
.................... set_timer0(6);
*
005B: MOVLW 06
005C: MOVWF 01
.................... Contador--;
005D: DECFSZ 28,F
.................... if (Contador == 0)
005E: GOTO 063
.................... {
.................... output_toggle(PIN_A0);
005F: MOVLW 01
0060: XORWF 05,F
.................... Contador = 250;
0061: MOVLW FA
0062: MOVWF 28
.................... }
.................... }
0063: BCF 0B.2
0064: BCF 0A.3
0065: BCF 0A.4
0066: GOTO 01D
Configuration Fuses:
Word 1: 3F3A HS NOWDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -