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

📄 picnic.lst

📁 PIC单片机实现的一种网络单片机
💻 LST
📖 第 1 页 / 共 5 页
字号:
00B4   07D4           00237         ADDWF   tcp_seq_no+3,F
00B5   1803           00238         BTFSC   STATUS,C
00B6   07D3           00239         ADDWF   tcp_seq_no+2,F
00B7   1803           00240         BTFSC   STATUS,C
00B8   07D2           00241         ADDWF   tcp_seq_no+1,F
00B9   1803           00242         BTFSC   STATUS,C
00BA   07D1           00243         ADDWF   tcp_seq_no,F
00BB   28D1           00244         GOTO    copy_ack_no
                      00245 
                      00246 ;-----------------------------------------------------------------------------------
                      00247 ;               计算TCP的ack_no加上ip_length的值
                      00248 ;
00BC                  00249 add_ack_no
00BC   3028           00250         MOVLW   0x28                                    ; 20+20
00BD   02BC           00251         SUBWF   ip_length+1,F
00BE   3001           00252         MOVLW   0x01
00BF   1C03           00253         BTFSS   STATUS,C
00C0   02BB           00254         SUBWF   ip_length,F
                      00255 
00C1   083C           00256         MOVF    ip_length+1,W
00C2   07D4           00257         ADDWF   tcp_seq_no+3,F
00C3   3001           00258         MOVLW   0x01
00C4   1803           00259         BTFSC   STATUS,C
00C5   07D3           00260         ADDWF   tcp_seq_no+2,F
00C6   1803           00261         BTFSC   STATUS,C
00C7   07D2           00262         ADDWF   tcp_seq_no+1,F
00C8   1803           00263         BTFSC   STATUS,C
00C9   07D1           00264         ADDWF   tcp_seq_no,F
                      00265 
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 14


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00CA   083B           00266         MOVF    ip_length,W
00CB   07D3           00267         ADDWF   tcp_seq_no+2,F
00CC   3001           00268         MOVLW   0x01
00CD   1803           00269         BTFSC   STATUS,C
00CE   07D2           00270         ADDWF   tcp_seq_no+1,F
00CF   1803           00271         BTFSC   STATUS,C
00D0   07D1           00272         ADDWF   tcp_seq_no,F
00D1                  00273 copy_ack_no:
00D1   0878           00274         MOVF    com_fsr,W
00D2   0084           00275         MOVWF   FSR
00D3   300C           00276         MOVLW   .12
00D4   0784           00277         ADDWF   FSR,F
00D5   1783           00278         BSF     STATUS,IRP
00D6   0851           00279         MOVF    tcp_seq_no,W
00D7   0080           00280         MOVWF   INDF
00D8   0A84           00281         INCF    FSR,F
00D9   0852           00282         MOVF    tcp_seq_no+1,W
00DA   0080           00283         MOVWF   INDF
00DB   0A84           00284         INCF    FSR,F
00DC   0853           00285         MOVF    tcp_seq_no+2,W
00DD   0080           00286         MOVWF   INDF
00DE   0A84           00287         INCF    FSR,F
00DF   0854           00288         MOVF    tcp_seq_no+3,W
00E0   0080           00289         MOVWF   INDF
00E1   1383           00290         BCF     STATUS,IRP
00E2   0008           00291         RETURN
                      00292 
                      00293 ;-----------------------------------------------------------------------------------
                      00294 ;               清除checksum值
                      00295 ;
00E3                  00296 clear_sum:
00E3   01A7           00297         CLRF    sum
00E4   01A8           00298         CLRF    sum+1
00E5   01A9           00299         CLRF    bytes
00E6   0008           00300         RETURN
                      00301 
                      00302 
                      00303 ;-----------------------------------------------------------------------------------
                      00304 ;               Error Recovery Routing
                      00305 ;-----------------------------------------------------------------------------------
00E7                  00306 overflow2
00E7                  00307 overflow:
00E7   0183           00308         CLRF    STATUS
00E8   0187           00309         CLRF    PORTC
00E9   3021           00310         MOVLW   0x21                            ; RTL8019AS STOP
00EA   2760           00311         CALL    assert_wr0
00EB   300C           00312         MOVLW   HIGH wait_ms
00EC   008A           00313         MOVWF   PCLATH
00ED   3002           00314         MOVLW   0x02
00EE   00A0           00315         MOVWF   wait_cn
00EF   24F0           00316         CALL    wait_ms & 0x7ff                 ; 10ms wait
00F0   018A           00317         CLRF    PCLATH
                      00318 
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 15


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00F1   300A           00319         MOVLW   0x0A
00F2   0087           00320         MOVWF   PORTC
00F3   0100           00321         dw      0x100
00F4   2760           00322         CALL    assert_wr0
                      00323 
00F5   300B           00324         MOVLW   0x0B
00F6   0087           00325         MOVWF   PORTC
00F7   0100           00326         dw      0x100
00F8   2760           00327         CALL    assert_wr0
                      00328 
00F9   266B           00329         CALL    initialize                      ; 初始化RTL8019
                      00330 
00FA   300C           00331         MOVLW   0x0C
00FB   0087           00332         MOVWF   PORTC                           ; RCR
00FC   3004           00333         MOVLW   b'00000100'
00FD   2760           00334         CALL    assert_wr0                      ; MONITOR解除
                      00335 
00FE   300D           00336         MOVLW   0x0D
00FF   0087           00337         MOVWF   PORTC                           ; TCR
0100   0100           00338         dw      0x100                                   ; L/B解除
0101   2760           00339         CALL    assert_wr0
                      00340 
0102   2925           00341         GOTO    main0                           ; 返回通常的处理
                      00342 
                      00343 ;-----------------------------------------------------------------------------------
                      00344 ;               Main Routing
                      00345 ;-----------------------------------------------------------------------------------
0103                  00346 main:
0103   0187           00347         CLRF    PORTC
0104   3022           00348         MOVLW   0x22
0105   2760           00349         CALL    assert_wr0                      ;返回PAGE0
                      00350 
0106   300C           00351         MOVLW   0x0C
0107   0087           00352         MOVWF   PORTC
0108   3004           00353         MOVLW   b'00000100'
0109   2760           00354         CALL    assert_wr0
010A   300D           00355         MOVLW   0x0D
010B   0087           00356         MOVWF   PORTC                           ;TCR
010C   0100           00357         dw      0x100                                   ;L/B解除
010D   2760           00358         CALL    assert_wr0
                      00359 
010E   300C           00360         MOVLW   HIGH wait_ms
010F   008A           00361         MOVWF   PCLATH
0110   3064           00362         MOVLW   .100
0111   00A0           00363         MOVWF   wait_cn
0112   24F0           00364         CALL    wait_ms & 0x7ff                 ; 100ms Wait
0113   018A           00365         CLRF    PCLATH
                      00366 
0114   30A0           00367         MOVLW   this_ip
0115   0084           00368         MOVWF   FSR
0116   0800           00369         MOVF    INDF,W
0117   0A84           00370         INCF    FSR,F
0118   0400           00371         IORWF   INDF,W
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 16


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0119   0A84           00372         INCF    FSR,F
011A   0400           00373         IORWF   INDF,W
011B   0A84           00374         INCF    FSR,F
011C   0400           00375         IORWF   INDF,W
011D   1D03           00376         BTFSS   STATUS,Z
011E   2925           00377         GOTO    main0                           ;自己的IP地址是0.0.0.0 ?
011F                  00378 do_dhcp:
011F   0183           00379         CLRF    STATUS
0120   3010           00380         MOVLW   HIGH dhcp
0121   008A           00381         MOVWF   PCLATH
0122   2076           00382         CALL    dhcp & 0x7ff
0123   3001           00383         MOVLW   HIGH $
0124   008A           00384         MOVWF   PCLATH
                      00385 ;-----------------------------------------------------------------------------------
                      00386 ;               Main Loop
                      00387 ;-----------------------------------------------------------------------------------
0125                  00388 main0:
0125   1683           00389         BSF     STATUS,RP0
0126   3000           00390         MOVLW   0x00
0127   023D           00391         SUBWF   fifo_cn & 0x7F,W
0128   1D03           00392         BTFSS   STATUS,Z                        ;RS232C受信?
0129   293B           00393         GOTO    receive232c
012A   3080           00394         MOVLW   0x80
012B   0232           00395         SUBWF   dhcp_done & 0x7F,W
012C   1903           00396         BTFSC   STATUS,Z                        ;DHCP Timeout?
012D   291F           00397         GOTO    do_dhcp
012E   1283           00398         BCF     STATUS,RP0
                      00399 
012F   018A           00400         CLRF    PCLATH
0130   3007           00401         MOVLW   0x07
0131   0087           00402         MOVWF   PORTC
0132   276D           00403         CALL    assert_rd                       ;RCR Lead
                      00404 
0133   1A7C           00405         BTFSC   mdata,4
0134   28E7           00406         GOTO    overflow
0135   19FC           00407         BTFSC   mdata,3
0136   28E7           00408         GOTO    overflow
0137   197C           00409         BTFSC   mdata,2
0138   28E7           00410         GOTO    overflow
0139   293F           00411         GOTO    get_packet                      ;有收到Packet
013A                  00412 main99:
013A   2925           00413         GOTO    main0
                      00414 
013B                  00415 receive232c:
013B   1283           00416         BCF     STATUS,RP0
013C   3011           00417         MOVLW   HIGH serial_tx
013D   008A           00418         MOVWF   PCLATH
013E   294E           00419         GOTO    serial_tx & 0x7ff               ;转到RS232收信处理
                      00420 
                      00421 ;-----------------------------------------------------------------------------------
                      00422 ;               Packet收信处理
                      00423 ;-----------------------------------------------------------------------------------
013F                  00424 get_packet:
MPASM 03.20 Released           PICNIC.ASM   2-9-2003  15:33:59         PAGE 17


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00425 ;       PAGE 1
013F   0187           00426         CLRF    PORTC
0140   3062           00427         MOVLW   b'01100010'
0141   2760           00428         CALL    assert_wr0                      ;设置为Page1
                      00429 
0142   3007           00430         MOVLW   0x07
0143   0087           00431         MOVWF   PORTC
0144   276D           00432         CALL    assert_rd
0145   087C           00433         MOVF    mdata,W
0146   00B1           00434         MOVWF   curr                            ;取得当前的Page
                      00435 ;       PAGE 0
0147   0187           00436         CLRF    PORTC
0148   3022           00437         MOVLW   b'00100010'
0149   2760           00438         CALL    assert_wr0                      ;返回Page0
                      00439 
014A   3003           00440         MOVLW   0x03
014B   0087           00441         MOVWF   PORTC
014C   276D           00442         CALL    assert_rd                       ;读入BNDY
                      00443 
014D   0AFC           00444         INCF    mdata,F                         ;BNDY++
014E   3080           00445         MOVLW   PAGE_STOP
014F   027C           00446         SUBWF   mdata,W
0150   1C03           00447         BTFSS   STATUS,C
0151   2954           00448         GOTO    packet1                         ;计算overlap
0152   3046           00449         MOVLW   PAGE_START
0153   00FC           00450         MOVWF   mdata
0154                  00451 packet1:
0154   0831           00452         MOVF    curr,W
0155   027C           00453         SUBWF   mdata,W
0156   1903           00454         BTFSC   STATUS,Z                        ;如果(BNDY+1)==CURR的话,则没有新数据
0157   2925           00455         GOTO    main0                           ;中断
                      00456 
                      00457 
                      00458 ;-----------------------------------------------------------------------------------

⌨️ 快捷键说明

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