⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motorpasso.lst

📁 Step motor functions for PIC microcontrollers written in C
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -