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

📄 ver1.lst

📁 This is a device for use by RC hobbysts: it transforms a servo from proportional to integrative. For
💻 LST
📖 第 1 页 / 共 3 页
字号:
0021   1DA3           00198 tmns1   btfss   mystat3                 ;
0022   282B           00199                 goto    tmns3                   ;
                      00200                 prepare0                                ;
                          M                 resetout
0023   1085               M                 bcf             GPIO,   0x01;
0024   30C9               M                 movlw   intv0           ; intv0 is the state0 timeout
0025   0081               M                 movwf   TMR0
0026   110B               M                 bcf     INTCON, T0IF    ;
                      00201                 setstate0                               ;
0027   30F0               M                 movlw   0xf0    ;
0028   05A3               M                 andwf   MYSTAT, f       ;
0029   1423               M                 bsf             mystat0         ;
                      00202                 exitint                                 ;
002A   287C               M                 goto    reti            ;
                      00203 
002B   1C23           00204 tmns3   btfss   mystat0                 ;
002C   2835           00205                 goto    tmns0                   ;
                      00206                 prepare1                                ;
                          M                 resetout
002D   1085               M                 bcf             GPIO,   0x01;
002E   30EE               M                 movlw   intv1           ; intv1 is the state1 timeout
002F   0081               M                 movwf   TMR0
0030   110B               M                 bcf     INTCON, T0IF    ;
                      00207                 setstate1                               ;
0031   30F0               M                 movlw   0xf0    ;
0032   05A3               M                 andwf   MYSTAT, f       ;
0033   14A3               M                 bsf             mystat1         ;
                      00208                 exitint                                 ;
0034   287C               M                 goto    reti            ;
                      00209 
                      00210 tmns0   prepare2                                ;
                          M                 setout
0035   1485               M                 bsf             GPIO,   0x01;
0036   0827               M                 movf    psout,  w               ; psout is the state2 timeout
0037   0081               M                 movwf   TMR0                    ; aka the pulse out
0038   110B               M                 bcf     INTCON, T0IF    ;
                      00211                 setstate2                               ;
0039   30F0               M                 movlw   0xf0    ;
003A   05A3               M                 andwf   MYSTAT, f       ;
003B   1523               M                 bsf             mystat2         ;
                      00212                 exitint                                 ;
003C   287C               M                 goto    reti            ;
                      00213 
003D   1C0B           00214 notm    btfss   INTCON, GPIF    ;
003E   287B           00215                 goto    exitinti                ;
003F   0805           00216                 movf    GPIO,   w               ;
0040   100B           00217                 bcf             INTCON, GPIF    ; clear the int source
MPASM  4.00 Released                                 VER1.ASM   4-4-2005  23:14:04         PAGE  6


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0041   0805           00218                 movf    GPIO,   w               ; read the port
0042   3901           00219                 andlw   0x01                    ; isolate lsb, in
0043   1903           00220                 btfsc   STATUS, Z               ;
0044   284F           00221                 goto    ntmin0                  ;
0045   1C23           00222 ntmin1  btfss   mystat0                 ;
0046   287B           00223                 goto    exitinti                ;
                      00224                 prepare1                                ;
                          M                 resetout
0047   1085               M                 bcf             GPIO,   0x01;
0048   30EE               M                 movlw   intv1           ; intv1 is the state1 timeout
0049   0081               M                 movwf   TMR0
004A   110B               M                 bcf     INTCON, T0IF    ;
                      00225                 setstate1                               ;
004B   30F0               M                 movlw   0xf0    ;
004C   05A3               M                 andwf   MYSTAT, f       ;
004D   14A3               M                 bsf             mystat1         ;
                      00226                 exitint                                 ;
004E   287C               M                 goto    reti            ;
                      00227 
004F   1CA3           00228 ntmin0  btfss   mystat1                 ;
0050   287B           00229                 goto    exitinti                ;
                      00230                 docalculus                              ;
                          M 
0051   0BA8               M                 decfsz  tctr,   f       ; decrement it
0052   2872               M                 goto    exitc           ;
                          M 
0053   300F               M                 movlw   sltick          ; back again
0054   00A8               M                 movwf   tctr            ; 
                          M 
0055   0801               M                 movf    TMR0,   w       ; load it
0056   00A6               M                 movwf   psin            ; to psin       
                          M                 
0057   0826               M                 movf    psin,   w       ;
0058   3E0A               M                 addlw   th0                     ;
0059   1C03               M                 btfss   STATUS, C       ; it should be some carry to carry on
005A   2872               M                 goto    exitc           ; pulse too short
                          M                 
005B   0826               M                 movf    psin,   w       ;
005C   3E07               M                 addlw   th1                     ;
005D   1C03               M                 btfss   STATUS, C       ; it should be some carry to carry on
005E   2868               M                 goto    calmin          ; minimal pulse detected
                          M 
005F   0826               M                 movf    psin,   w       ;
0060   3E05               M                 addlw   th2                     ;
0061   1C03               M                 btfss   STATUS, C       ; it should be some carry to carry on
0062   2872               M                 goto    exitc           ; pulse is neutral
                          M                 
0063   0826               M                 movf    psin,   w       ;
0064   3E02               M                 addlw   th3                     ;
0065   1C03               M                 btfss   STATUS, C       ; it should be some carry to carry on
0066   286D               M                 goto    calmax          ; maximal pulse detected
                          M                 
0067   2872               M                 goto    exitc           ; pulse is too long
MPASM  4.00 Released                                 VER1.ASM   4-4-2005  23:14:04         PAGE  7


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                          M                 
0068   3008               M calmin  movlw   thmax           ; test for minimal pulse (maximal couter0 value)
0069   0727               M                 addwf   psout,  w       ; 
006A   1C03               M                 btfss   STATUS, C       ;
006B   0AA7               M                 incf    psout,  f       ; increment if the overflow was not generated                   
006C   2872               M                 goto    exitc           ;
                          M 
006D   3010               M calmax  movlw   thmin           ; test for minimal pulse (maximal couter0 value)
006E   0727               M                 addwf   psout,  w       ; 
006F   1803               M                 btfsc   STATUS, C       ;
0070   03A7               M                 decf    psout,  f       ; increment if the overflow was not generated                   
0071   2872               M                 goto    exitc           ;
                          M                 
0072   0000               M exitc   nop;
                      00231                 prepare2                                ;
                          M                 setout
0073   1485               M                 bsf             GPIO,   0x01;
0074   0827               M                 movf    psout,  w               ; psout is the state2 timeout
0075   0081               M                 movwf   TMR0                    ; aka the pulse out
0076   110B               M                 bcf     INTCON, T0IF    ;
                      00232                 setstate2                               ;
0077   30F0               M                 movlw   0xf0    ;
0078   05A3               M                 andwf   MYSTAT, f       ;
0079   1523               M                 bsf             mystat2         ;
                      00233                 exitint                                 ;
007A   287C               M                 goto    reti            ;
                      00234 
                      00235 exitinti        exitint                         ;
007B   287C               M                 goto    reti            ;
                      00236 
                      00237 
007C   0E21           00238 reti    SWAPF   STATUS_TEMP ,W  ;swap STATUS_TEMP register into W, sets bank to original state
007D   0083           00239                 MOVWF   STATUS          ;move W into STATUS register
007E   0EA0           00240                 SWAPF   W_TEMP, F       ;swap W_TEMP
007F   0E20           00241                 SWAPF W_TEMP,W          ;swap W_TEMP into W
                      00242         
0080   0009           00243                 retfie                  ; exit general ISR
                      00244 
                      00245 
                      00246 
                      00247 ; INIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                      00248 
0081   138B           00249 init    bcf     INTCON, GIE     ; disable all interrupts
                      00250 
0082   1683           00251                 bsf     STATUS, RP0     ; Bank 1
0083   23FF           00252                 call    3FFh            ; Get the cal value
0084   0090           00253                 movwf   OSCCAL          ; Calibrate
0085   1283           00254                 bcf     STATUS, RP0     ; Bank 0
                      00255         
0086   1283           00256                 bcf     STATUS, RP0     ;
0087   1303           00257                 bcf     STATUS, RP1     ; bank0
0088   0185           00258                 clrf    GPIO            ; clear port
0089   3007           00259                 movlw   0x07            ; all digital
MPASM  4.00 Released                                 VER1.ASM   4-4-2005  23:14:04         PAGE  8


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

008A   0099           00260                 movwf   CMCON
                      00261 
008B   3000           00262                 movlw   0x00                    
008C   0085           00263                 movwf   GPIO            ;
                      00264 
008D   1683           00265                 bsf     STATUS, RP0     ; bank1
                      00266 
                      00267 
008E   30FD           00268 dirset  movlw   b'11111101'     ; all inputs but GP1
008F   0085           00269                 movwf   TRISIO          ; configure them
                      00270 
0090   3000           00271 anaset  movlw   b'00000000'     ; all digital 
0091   009F           00272                 movwf   ANSEL           ; 
                      00273 
0092   3001           00274                 movlw   b'00000001'     ; enable only gp0 IOCB
0093   0096           00275                 movwf   IOCB            ;
                      00276 
0094   1283           00277                 bcf     STATUS, RP0     ; return to
0095   1303           00278                 bcf     STATUS, RP1     ; bank0
                      00279 
0096   3000           00280                 movlw   b'00000000'     ; disable ADC, 
0097   009F           00281                 movwf   ADCON0          ;
                      00282 
                      00283 
0098   3028           00284                 movlw   b'00101000'     ; 
0099   008B           00285                 movwf   INTCON          ; enable TMR0 and IOCB
                      00286         
009A   1683           00287                 bsf     STATUS, RP0     ; bank1
009B   3000           00288                 movlw   b'00000000'     ;
009C   008C           00289                 movwf   PIE1            ; 
009D   1283           00290                 bcf     STATUS, RP0     ; return to
009E   1303           00291                 bcf     STATUS, RP1     ; bank0
                      00292         
009F   3000           00293         movlw   b'00000000'     ;
00A0   0090           00294         movwf   T1CON           ; timer, not enabled yet, no prescaler
                      00295 
00A1   0064           00296         clrwdt                  ;Clear WDT
00A2   0181           00297         clrf    TMR0            ;and tmr0
                      00298 
00A3   1683           00299         bsf     STATUS, RP0     ; bank1
00A4   3046           00300         movlw   b'01000110'     ; 128x prescaler, to TMR0 as timer, GP2 positive interr
00A5   0081           00301         movwf   OPTION_REG      ; 
00A6   303C           00302         movlw   b'00111100'     ; WPU 
00A7   0095           00303         movwf   WPU             ;
00A8   1283           00304         bcf     STATUS, RP0     ; return to
00A9   1303           00305         bcf     STATUS, RP1     ; bank0
                      00306         
00AA   3001           00307         movlw   0x01            ;
00AB   00A3           00308         movwf   MYSTAT          ;
00AC   30F4           00309         movlw   psstart         ;
00AD   00A7           00310         movwf   psout           ;
00AE   3005           00311         movlw   0x05            ;
00AF   00A8           00312         movwf   tctr            ;
MPASM  4.00 Released                                 VER1.ASM   4-4-2005  23:14:04         PAGE  9


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00313 
00B0   178B           00314         bsf     INTCON, GIE     ; 
                      00315         
                      00316 ; the
00B1   28B1           00317 mloop   goto    mloop           ;
                      00318         
                      00319 
                      00320 
                      00321         end     
MPASM  4.00 Released                                 VER1.ASM   4-4-2005  23:14:04         PAGE 10


SYMBOL TABLE
  LABEL                             VALUE 

ADCON0                            0000001F
ADCS0                             00000004
ADCS1                             00000005

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -