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

📄 picnic.lst

📁 PIC单片机实现的一种网络单片机
💻 LST
📖 第 1 页 / 共 5 页
字号:
0004                  00020         ORG     0x0004
                      00021 ;
0004                  00022 interrupt:
0004   00F0           00023         MOVWF   w_save
0005   0E03           00024         SWAPF   STATUS,W
0006   0183           00025         CLRF    STATUS
0007   00F2           00026         MOVWF   status_save
0008   080A           00027         MOVF    PCLATH,W
0009   00F1           00028         MOVWF   pclath_save
000A   018A           00029         CLRF    PCLATH
000B   1383           00030         BCF     STATUS,IRP
000C   0804           00031         MOVF    FSR,W
000D   00F3           00032         MOVWF   fsr_save
                      00033 
                      00034 ;-----------------------------------------------------------------------------------
                      00035 ;               ◆RB0中断处理
000E   1E0B           00036         BTFSS   INTCON,INTE
000F   2818           00037         GOTO    int_next2
0010   1C8B           00038         BTFSS   INTCON,INTF
0011   2818           00039         GOTO    int_next2
0012   108B           00040         BCF     INTCON,INTF
0013   1683           00041         BSF     STATUS,RP0
0014   1703           00042         BSF     STATUS,RP1
0015   179D           00043         BSF     on_flow,7                       ; 232数据请求
0016   1303           00044         BCF     STATUS,RP1
0017   1283           00045         BCF     STATUS,RP0
                      00046 
                      00047 ;-----------------------------------------------------------------------------------
                      00048 ;               ◆定时器中断处理(10ms)
0018                  00049 int_next2:
0018   180C           00050         BTFSC   PIR1,TMR1IF
0019   281B           00051         GOTO    int_tmr1
001A   2828           00052         GOTO    int_next1
001B                  00053 int_tmr1:
001B   100C           00054         BCF     PIR1,TMR1IF
001C   1683           00055         BSF     STATUS,RP0
001D   0832           00056         MOVF    dhcp_done & 0x7F,W
001E   397F           00057         ANDLW   0x7F
001F   1D03           00058         BTFSS   STATUS,Z
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 10


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0020   03B2           00059         DECF    dhcp_done & 0x7F,F
0021   1283           00060         BCF     STATUS,RP0
0022                  00061 int_tmr2:
0022   1683           00062         BSF     STATUS,RP0
0023   3001           00063         MOVLW   0x01
0024   07B0           00064         ADDWF   timer & 0x7F,F
0025   1803           00065         BTFSC   STATUS,C
0026   2856           00066         GOTO    dec_tm
0027                  00067 dec_tm9:
0027   0183           00068         CLRF    STATUS
                      00069 
                      00070 ;-----------------------------------------------------------------------------------
                      00071 ;               ◆USART中断处理
0028                  00072 int_next1:
0028   1F0B           00073         BTFSS   INTCON,PEIE
0029   2848           00074         GOTO    int2
002A   1E8C           00075         BTFSS   PIR1,RCIF                       ; RS232C受信?
002B   2848           00076         GOTO    int2
002C   1683           00077         BSF     STATUS,RP0
002D   301E           00078         MOVLW   fifo_bottom - fifo_top
002E   023D           00079         SUBWF   fifo_cn & 0x7F,W                ; buffer overflow ?
002F   1803           00080         BTFSC   STATUS,C
0030   2852           00081         GOTO    rec_over
                      00082 
0031   083C           00083         MOVF    fifo_buff & 0x7F,W
0032   0084           00084         MOVWF   FSR
0033   1283           00085         BCF     STATUS,RP0
0034   081A           00086         MOVF    RCREG,W
0035   0080           00087         MOVWF   INDF
0036   1683           00088         BSF     STATUS,RP0
0037   0ABC           00089         INCF    fifo_buff & 0x7F,F
0038   30DC           00090         MOVLW   fifo_bottom
0039   023C           00091         SUBWF   fifo_buff & 0x7F,W
003A   1C03           00092         BTFSS   STATUS,C
003B   283E           00093         GOTO    int1_1
003C   30BE           00094         MOVLW   fifo_top
003D   00BC           00095         MOVWF   fifo_buff & 0x7F
003E                  00096 int1_1:
003E   0ABD           00097         INCF    fifo_cn & 0x7F,F
003F   300F           00098         MOVLW   (fifo_bottom - fifo_top)/2
0040   023D           00099         SUBWF   fifo_cn & 0x7F,W
0041   1C03           00100         BTFSS   STATUS,C
0042   2848           00101         GOTO    int2
0043   1703           00102         BSF     STATUS,RP1
0044   1C1D           00103         BTFSS   on_flow,0
0045   2848           00104         GOTO    int2
0046   0183           00105         CLRF    STATUS
0047   1486           00106         BSF     PORTB,1
                      00107 ;       bsf     PORTB,7                         ; for debug
0048                  00108 int2:
0048   0183           00109         CLRF    STATUS
                      00110 ;-----------------------------------------------------------------------
                      00111 ;       Context恢复处理
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 11


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0049   0873           00112         MOVF    fsr_save,W
004A   0084           00113         MOVWF   FSR
004B   0871           00114         MOVF    pclath_save,W
004C   008A           00115         MOVWF   PCLATH
004D   0E72           00116         SWAPF   status_save,W
004E   0083           00117         MOVWF   STATUS
004F   0EF0           00118         SWAPF   w_save,F
0050   0E70           00119         SWAPF   w_save,W
0051   0009           00120         RETFIE
                      00121 ;-----------------------------------------------------------------------------------
                      00122 ;               RS232C收信缓冲区溢出
0052                  00123 rec_over:
0052   1283           00124         BCF     STATUS,RP0
0053   081A           00125         MOVF    RCREG,W
0054   1283           00126         BCF     STATUS,RP0
0055   2848           00127         GOTO    int2
                      00128 ;-----------------------------------------------------------------------------------
                      00129 ;               Socket的超时检查
0056                  00130 dec_tm:
0056   1783           00131         BSF     STATUS,IRP
0057   3004           00132         MOVLW   SOCKETS
0058   00B1           00133         MOVWF   timer_cn & 0x7F
0059   30A1           00134         MOVLW   skb+1
005A   0084           00135         MOVWF   FSR
005B                  00136 dec_tm0:
005B   0800           00137         MOVF    INDF,W
005C   39F0           00138         ANDLW   0xF0
005D   1903           00139         BTFSC   STATUS,Z
005E   2868           00140         GOTO    dec_tm1
005F   3010           00141         MOVLW   0x10
0060   0280           00142         SUBWF   INDF,F
0061   0800           00143         MOVF    INDF,W
0062   39F0           00144         ANDLW   0xF0
0063   1D03           00145         BTFSS   STATUS,Z
0064   2868           00146         GOTO    dec_tm1
0065   0384           00147         DECF    FSR,F
0066   0180           00148         CLRF    INDF
0067   0A84           00149         INCF    FSR,F
0068                  00150 dec_tm1:
0068   3010           00151         MOVLW   0x10
0069   0784           00152         ADDWF   FSR,F
006A   0BB1           00153         DECFSZ  timer_cn & 0x7F,F
006B   285B           00154         GOTO    dec_tm0
006C   1383           00155         BCF     STATUS,IRP
006D   2827           00156         GOTO    dec_tm9
                      00157 
                      00158 ;-----------------------------------------------------------------------------------
                      00159 ;               取得16进制的文字
                      00160 ;
006E                  00161 getascii:
006E   390F           00162         ANDLW   0x0F
006F   0782           00163         ADDWF   PCL,F
0070   3430 3431 3432 00164         DT      "0123456789ABCDEF"
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 12


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

       3433 3434 3435 
       3436 3437 3438 
       3439 3441 3442 
       3443 3444 3445 
       3446 
                      00165 
                      00166 ;-----------------------------------------------------------------------------------
                      00167 ;               决定seq_no的初始化值
0080                  00168 next_seq_no:
0080   1683           00169         BSF     STATUS,RP0
0081   3001           00170         MOVLW   0x01
0082   07AC           00171         ADDWF   seq_no+2,F
0083   1803           00172         BTFSC   STATUS,C
0084   07AD           00173         ADDWF   seq_no+3,F
0085   1283           00174         BCF     STATUS,RP0
0086   0008           00175         RETURN
                      00176 
                      00177 ;-----------------------------------------------------------------------------------
                      00178 ;               递增TCP的seq_no
0087                  00179 inc_seq_no:
0087   1783           00180         BSF     STATUS,IRP
0088   3003           00181         MOVLW   0x03
0089   0784           00182         ADDWF   FSR,F
008A   3001           00183         MOVLW   0x01
008B   0780           00184         ADDWF   INDF,F
008C   0384           00185         DECF    FSR,F
008D   1803           00186         BTFSC   STATUS,C
008E   0780           00187         ADDWF   INDF,F
008F   0384           00188         DECF    FSR,F
0090   1803           00189         BTFSC   STATUS,C
0091   0780           00190         ADDWF   INDF,F
0092   0384           00191         DECF    FSR,F
0093   1803           00192         BTFSC   STATUS,C
0094   0780           00193         ADDWF   INDF,F
0095   1383           00194         BCF     STATUS,IRP
0096   0008           00195         RETURN
                      00196 
                      00197 ;-----------------------------------------------------------------------------------
                      00198 ;               计算TCP的seq_no加ip_length
                      00199 ;
0097                  00200 add_seq_no
0097   1783           00201         BSF     STATUS,IRP
0098   3003           00202         MOVLW   0x03
0099   0784           00203         ADDWF   FSR,F
                      00204 
009A   083C           00205         MOVF    ip_length+1,W
009B   0780           00206         ADDWF   INDF,F
009C   0384           00207         DECF    FSR,F
009D   3001           00208         MOVLW   0x01
009E   1803           00209         BTFSC   STATUS,C
009F   0780           00210         ADDWF   INDF,F
00A0   0384           00211         DECF    FSR,F
00A1   1803           00212         BTFSC   STATUS,C
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 13


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00A2   0780           00213         ADDWF   INDF,F
00A3   0384           00214         DECF    FSR,F
00A4   1803           00215         BTFSC   STATUS,C
00A5   0780           00216         ADDWF   INDF,F
                      00217 
00A6   3002           00218         MOVLW   0x02
00A7   0784           00219         ADDWF   FSR,F
00A8   083B           00220         MOVF    ip_length,W
00A9   0780           00221         ADDWF   INDF,F
00AA   0384           00222         DECF    FSR,F
00AB   3001           00223         MOVLW   0x01
00AC   1803           00224         BTFSC   STATUS,C
00AD   0780           00225         ADDWF   INDF,F
00AE   0384           00226         DECF    FSR,F
00AF   1803           00227         BTFSC   STATUS,C
00B0   0780           00228         ADDWF   INDF,F
00B1   1383           00229         BCF     STATUS,IRP
00B2   0008           00230         RETURN
                      00231 
                      00232 ;-----------------------------------------------------------------------------------
                      00233 ;               递增TCP的ack_no
                      00234 ;
00B3                  00235 inc_ack_no:
00B3   3001           00236         MOVLW   0x01

⌨️ 快捷键说明

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