📄 motorpasso.lst
字号:
00C6: BSF F83.1
.................... delay_cycles(1);
00C8: NOP
.................... lcd.rw = 0;
00CA: BCF F83.2
.................... delay_cycles(1);
00CC: NOP
.................... lcd.enable = 0;
00CE: BCF F83.0
.................... lcd_send_nibble(n >> 4);
00D0: SWAPF 0D,W
00D2: MOVWF 0E
00D4: MOVLW 0F
00D6: ANDWF 0E,F
00D8: MOVFF 0E,0F
00DC: RCALL 0056
.................... lcd_send_nibble(n & 0xf);
00DE: MOVF 0D,W
00E0: ANDLW 0F
00E2: MOVWF 0E
00E4: MOVWF 0F
00E6: RCALL 0056
.................... }
00E8: RETLW 00
....................
....................
.................... void lcd_init() {
.................... BYTE i;
.................... set_tris_lcd(LCD_WRITE);
00EA: MOVLW 00
00EC: MOVWF F95
.................... lcd.rs = 0;
00EE: BCF F83.1
.................... lcd.rw = 0;
00F0: BCF F83.2
.................... lcd.enable = 0;
00F2: BCF F83.0
.................... delay_ms(15);
00F4: MOVLW 0F
00F6: MOVWF 08
00F8: RCALL 0030
.................... for(i=1;i<=3;++i) {
00FA: MOVLW 01
00FC: MOVWF 06
00FE: MOVF 06,W
0100: SUBLW 03
0102: BNC 0114
.................... lcd_send_nibble(3);
0104: MOVLW 03
0106: MOVWF 0F
0108: RCALL 0056
.................... delay_ms(5);
010A: MOVLW 05
010C: MOVWF 08
010E: RCALL 0030
.................... }
0110: INCF 06,F
0112: BRA 00FE
.................... lcd_send_nibble(2);
0114: MOVLW 02
0116: MOVWF 0F
0118: RCALL 0056
.................... for(i=0;i<=3;++i)
011A: CLRF 06
011C: MOVF 06,W
011E: SUBLW 03
0120: BNC 013E
.................... lcd_send_byte(0,LCD_INIT_STRING[i]);
0122: CLRF 03
0124: MOVF 06,W
0126: MOVFF FF2,07
012A: BCF FF2.7
012C: RCALL 0004
012E: BTFSC 07.7
0130: BSF FF2.7
0132: MOVWF 08
0134: CLRF 0C
0136: MOVWF 0D
0138: RCALL 00B4
013A: INCF 06,F
013C: BRA 011C
.................... }
013E: GOTO 01EC (RETURN)
....................
....................
.................... void lcd_gotoxy( BYTE x, BYTE y) {
.................... BYTE address;
....................
.................... if(y!=1)
0142: DECFSZ 09,W
0144: BRA 0148
0146: BRA 014E
.................... address=lcd_line_two;
0148: MOVLW 40
014A: MOVWF 0A
.................... else
014C: BRA 0150
.................... address=0;
014E: CLRF 0A
.................... address+=x-1;
0150: MOVLW 01
0152: SUBWF 08,W
0154: ADDWF 0A,F
.................... lcd_send_byte(0,0x80|address);
0156: MOVF 0A,W
0158: IORLW 80
015A: MOVWF 0B
015C: CLRF 0C
015E: MOVWF 0D
0160: RCALL 00B4
.................... }
0162: GOTO 01A6 (RETURN)
....................
.................... void lcd_putc( char c) {
.................... switch (c) {
0166: MOVF 07,W
0168: XORLW 0C
016A: BZ 0176
016C: XORLW 06
016E: BZ 0186
0170: XORLW 02
0172: BZ 0190
0174: BRA 019A
.................... case '\f' : lcd_send_byte(0,1);
0176: CLRF 0C
0178: MOVLW 01
017A: MOVWF 0D
017C: RCALL 00B4
.................... delay_ms(2);
017E: MOVLW 02
0180: MOVWF 08
0182: RCALL 0030
.................... break;
0184: BRA 01A6
.................... case '\n' : lcd_gotoxy(1,2); break;
0186: MOVLW 01
0188: MOVWF 08
018A: MOVLW 02
018C: MOVWF 09
018E: BRA 0142
.................... case '\b' : lcd_send_byte(0,0x10); break;
0190: CLRF 0C
0192: MOVLW 10
0194: MOVWF 0D
0196: RCALL 00B4
0198: BRA 01A6
.................... default : lcd_send_byte(1,c); break;
019A: MOVLW 01
019C: MOVWF 0C
019E: MOVFF 07,0D
01A2: RCALL 00B4
01A4: BRA 01A6
.................... }
.................... }
01A6: GOTO 01FC (RETURN)
....................
.................... 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);
.................... }
....................
....................
....................
.................... void main()
.................... {
01AA: CLRF FF8
01AC: BCF FD0.7
01AE: CLRF FEA
01B0: CLRF FE9
01B2: BSF FC1.0
01B4: BSF FC1.1
01B6: BSF FC1.2
01B8: BCF FC1.3
....................
.................... setup_adc_ports(NO_ANALOGS);
01BA: BSF FC1.0
01BC: BSF FC1.1
01BE: BSF FC1.2
01C0: BCF FC1.3
.................... setup_adc(ADC_OFF);
01C2: BCF FC2.0
.................... setup_psp(PSP_DISABLED);
01C4: BCF F96.4
.................... setup_spi(FALSE);
01C6: BCF FC6.5
01C8: BCF F94.5
01CA: BSF F94.4
01CC: BCF F94.3
01CE: MOVLW 00
01D0: MOVWF FC6
01D2: MOVWF FC7
.................... setup_wdt(WDT_OFF);
01D4: BCF FD1.0
.................... setup_timer_0(RTCC_INTERNAL);
01D6: MOVLW 80
01D8: MOVWF FD5
.................... setup_timer_1(T1_DISABLED);
01DA: CLRF FCD
.................... setup_timer_2(T2_DISABLED,0,1);
01DC: MOVLW 00
01DE: MOVWF FCA
01E0: MOVLW 00
01E2: MOVWF FCB
.................... setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
01E4: MOVF FB1,W
01E6: ANDLW 48
01E8: MOVWF FB1
.................... lcd_init();
01EA: BRA 00EA
.................... setup_oscillator(False);
01EC: CLRF FD3
.................... printf(LCD_PUTC, "n=shit");
01EE: CLRF 06
01F0: MOVF 06,W
01F2: RCALL 0018
01F4: INCF 06,F
01F6: MOVWF 00
01F8: MOVWF 07
01FA: BRA 0166
01FC: MOVLW 06
01FE: SUBWF 06,W
0200: BNZ 01F0
....................
.................... }
0202: SLEEP
Configuration Fuses:
Word 1: 2100 XT NOOSCSEN
Word 2: 0E0F BROWNOUT WDT128 NOWDT BORV20 NOPUT
Word 3: 0100 CCP2C1
Word 4: 0085 STVREN NODEBUG LVP
Word 5: C00F NOPROTECT NOCPD NOCPB
Word 6: E00F NOWRT NOWRTD NOWRTB NOWRTC
Word 7: 400F NOEBTR NOEBTRB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -