亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? picnic.asm

?? PIC單片機(jī)實(shí)現(xiàn)的一種網(wǎng)絡(luò)單片機(jī)
?? ASM
?? 第 1 頁 / 共 5 頁
字號(hào):
        MOVLW   0x05
        CALL    assert_wr
        MOVLW   0xB4
        CALL    assert_wr

        CALL    calc_tcp_sum			;計(jì)算TCP的SUM

        MOVLW   0x04
        MOVWF   PORTC
        MOVLW   PAGE_BEGIN
        CALL    assert_wr0

        MOVLW   0x05
        MOVWF   PORTC
        MOVLW   0x3C
        CALL    assert_wr0

        MOVLW   0x06
        MOVWF   PORTC
        dw	0x100
        CALL    assert_wr0
        CALL    transmit
        CALL    next_seq_no			;seq_no ++
        RETURN

;-----------------------------------------------------------------------------------
;		計(jì)算Checksum
calc_tcp_sum:
        CLRF    bytes				;調(diào)整2byte對齊

        MOVLW   this_ip				;計(jì)算自己的IP地址
        MOVWF   FSR
        MOVF    INDF,W
        CALL    calc_sum
        INCF    FSR,F
        MOVF    INDF,W
        CALL    calc_sum
        INCF    FSR,F
        MOVF    INDF,W
        CALL    calc_sum
        INCF    FSR,F
        MOVF    INDF,W
        CALL    calc_sum

        MOVF    ip_src,W			;計(jì)算對方的IP地址
        CALL    calc_sum
        MOVF    ip_src+1,W
        CALL    calc_sum
        MOVF    ip_src+2,W
        CALL    calc_sum
        MOVF    ip_src+3,W
        CALL    calc_sum

        dw	0x100					;計(jì)算協(xié)議號(hào)
        CALL    calc_sum
        MOVLW   TCP_PROTO
        CALL    calc_sum

        MOVF    remote_len+1,W			;計(jì)算byte數(shù)量
        CALL    calc_sum
        MOVF    remote_len,W
        CALL    calc_sum

        MOVLW   0x32				;PACKET_SIZE + IP_SIZE + 16
        MOVWF   remote_adr
        MOVLW   PAGE_BEGIN
        MOVWF   remote_adr+1
        CALL    set_checksum			;設(shè)置到RTL8019的Buffer
        RETURN

;===================================================================================
;		初始化NIC
;===================================================================================
initialize:
        CALL    init_nic			;Reset NIC
        CALL    getmac				;取得MAC地址
        CALL    setmac				;設(shè)置MAC地址
;	初始化RingBuffer
        BSF     STATUS,RP0
        MOVLW   fifo_top
        MOVWF   fifo_buff & 0x7F
        MOVWF   fifo_poi & 0x7F
        MOVWF   fifo_bottom & 0x7F

        CLRF    fifo_cn & 0x7F
        CLRF    fifo_line_cn & 0x7F
        BCF     STATUS,RP0

        RETURN

;-----------------------------------------------------------------------------------
;		RTL8019的Reset
;-----------------------------------------------------------------------------------
reset_nic:
        CLRF    PORTC
        MOVLW   0x21
        CALL    assert_wr0			;STOP OPERATION

        MOVLW   0x1F
        MOVWF   PORTC
        CALL    assert_rd			;讀入1Fh

        MOVLW   0x1F
        MOVWF   PORTC
        MOVF    mdata,W
        CALL    assert_wr0			;回寫1Fh
reset_nic0:
        MOVLW   0x07
        MOVWF   PORTC
        CALL    assert_rd			;讀入Status
        BTFSS   mdata,7
        GOTO    reset_nic0			;檢查Reset是否已經(jīng)結(jié)束
        RETURN

;-----------------------------------------------------------------------------------
;		初始化RTL8019
;-----------------------------------------------------------------------------------
init_nic:
        CALL    reset_nic

        MOVLW   0x0E
        MOVWF   PORTC				;DCR(Data Configuration Register)
        MOVLW   0x68
        CALL    assert_wr0

        MOVLW   0x0A
        MOVWF   PORTC
        dw	0x100
        CALL    assert_wr0			;for over flow

        MOVLW   0x0B
        MOVWF   PORTC
        dw	0x100
        CALL    assert_wr0			;for over flow

        MOVLW   0x01
        MOVWF   PORTC
        MOVLW   PAGE_START			;PAGE START
        CALL    assert_wr0

        MOVLW   0x02
        MOVWF   PORTC
        MOVLW   PAGE_STOP			;PAGE STOP
        CALL    assert_wr0

        MOVLW   0x03
        MOVWF   PORTC
        MOVLW   PAGE_START			;BDRY
        CALL    assert_wr0

        MOVLW   0x0C
        MOVWF   PORTC				;RCR
        MOVLW   0x00
        CALL    assert_wr0

        MOVLW   0x0D
        MOVWF   PORTC				;TCR
        MOVLW   0x02				;Loop Back
        CALL    assert_wr0

        MOVLW   0x0F				;IMR
        MOVWF   PORTC
        MOVLW   0x1F
        CALL    assert_wr0

        MOVLW   0x07				;ISR
        MOVWF   PORTC
        MOVLW   0xFF
        CALL    assert_wr0

        CLRF    PORTC				;CR(Command Register)
        MOVLW   0x22				;START OPERATION with L/B
        CALL    assert_wr0
        RETURN

;-----------------------------------------------------------------------------------
;		取得MAC地址
;-----------------------------------------------------------------------------------
getmac:
        CLRF    PORTC
        MOVLW   0x22
        CALL    assert_wr0

        CLRF    remote_adr
        CLRF    remote_adr+1
        MOVLW   .12				;讀12個(gè)bytes
        MOVWF   remote_len
        CLRF    remote_len+1
        CALL    remote_read

        MOVLW   0x06
        MOVWF   gcn1				;MAC地址是6 bytes
        MOVLW   mymac				;設(shè)置mymac的地址
        MOVWF   FSR
get_mac0:
        MOVLW   0x10
        MOVWF   PORTC
        CALL    assert_rd			;開始讀
        CALL    assert_rd

        MOVF    mdata,W				;將MAC地址讀入PIC
        MOVWF   INDF
        INCF    FSR,F
        DECFSZ  gcn1,F
        GOTO    get_mac0
        RETURN

;-----------------------------------------------------------------------------------
;		設(shè)置MAC地址
;-----------------------------------------------------------------------------------
setmac:
; PAGE 1
        CLRF    PORTC
        MOVLW   b'01100010'
        CALL    assert_wr0

        MOVLW   0x01
        MOVWF   PORTC
        MOVLW   mymac
        MOVWF   FSR
        MOVLW   0x06
        MOVWF   gcn1				;MAC地址的長度是6
set_mac0:
        MOVF    INDF,W
        CALL    assert_wr0			;設(shè)置MAC地址
        INCF    FSR,F
        INCF    PORTC,F
        DECFSZ  gcn1,F
        GOTO    set_mac0

        MOVLW   0x07
        MOVWF   PORTC
        MOVLW   PAGE_START+1
        CALL    assert_wr0

        MOVLW   0x08
        MOVWF   PORTC
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0
        INCF    PORTC,F
        dw	0x100
        CALL    assert_wr0

        CLRF    PORTC
        MOVLW   0x22
        CALL    assert_wr0
        RETURN

;-----------------------------------------------------------------------------------
;		準(zhǔn)備Remote DMA寫入
;-----------------------------------------------------------------------------------
remote_write:
        MOVLW   0x08
        MOVWF   PORTC
        MOVF    remote_adr,W
        CALL    assert_wr0

        MOVLW   0x09
        MOVWF   PORTC
        MOVF    remote_adr+1,W
        CALL    assert_wr0

        MOVLW   0x0A
        MOVWF   PORTC
        MOVF    remote_len,W
        CALL    assert_wr0

        MOVLW   0x0B
        MOVWF   PORTC
        MOVF    remote_len+1,W
        CALL    assert_wr0

        CLRF    PORTC
        MOVLW   b'00010010'
        CALL    assert_wr0			;可以開始寫入了

        MOVLW   0x10
        MOVWF   PORTC
        RETURN

;-----------------------------------------------------------------------------------
;		準(zhǔn)備Remote DMA讀取
;-----------------------------------------------------------------------------------
remote_read:
        MOVLW   0x08
        MOVWF   PORTC
        MOVF    remote_adr,W
        CALL    assert_wr0

        MOVLW   0x09
        MOVWF   PORTC
        MOVF    remote_adr+1,W
        CALL    assert_wr0

        MOVLW   0x0A
        MOVWF   PORTC
        MOVF    remote_len,W
        CALL    assert_wr0

        MOVLW   0x0B
        MOVWF   PORTC
        MOVF    remote_len+1,W
        CALL    assert_wr0

        CLRF    PORTC
        MOVLW   0x0A
        CALL    assert_wr0			;可以開始讀取了

        MOVLW   0x10
        MOVWF   PORTC
        RETURN

;-----------------------------------------------------------------------------------
;		計(jì)算Checksum
;-----------------------------------------------------------------------------------
calc_sum:
        BTFSS   bytes,0				;檢查對齊方式
        GOTO    calc_sum_high
; Low Byte
        ADDWF   sum,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   sum+1,F
        BTFSC   STATUS,C
        ADDWF   sum,F
        BTFSC   STATUS,C
        ADDWF   sum+1,F
        INCF    bytes,F
        RETURN
; High Byte
calc_sum_high:
        ADDWF   sum+1,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   sum,F
        BTFSC   STATUS,C
        ADDWF   sum+1,F
        INCF    bytes,F
        RETURN

assert_wr2times:
        dw	0x100
        CALL    assert_wr
        dw	0x100
        GOTO    assert_wr

;-----------------------------------------------------------------------------------
;	送信數(shù)據(jù)=mdata
assert_wr2x:
        MOVLW   0x01
        ADDWF   remote_len,F
        BTFSC   STATUS,C
        INCF    remote_len+1,F
        MOVF    mdata,W
        GOTO    assert_wr
;	送信數(shù)據(jù)=W
assert_wr2
        MOVWF   mdata
        MOVLW   0x01
        ADDWF   remote_len,F
        BTFSC   STATUS,C
        INCF    remote_len+1,F
        MOVF    mdata,W

;-----------------------------------------------------------------------------------
;		向RTL8019寫入(考慮Checksum)
;-----------------------------------------------------------------------------------
assert_wr:
        MOVWF   PORTD
assert_wr_2
        BTFSS   bytes,0
        GOTO    assert_wr_high

        ADDWF   sum,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   sum+1,F
        BTFSC   STATUS,C
        ADDWF   sum,F
        BTFSC   STATUS,C
        ADDWF   sum+1,F
        INCF    bytes,F
        GOTO    assert_wr0_2
assert_wr_high:
        ADDWF   sum+1,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   sum,F
        BTFSC   STATUS,C
        ADDWF   sum+1,F
        INCF    bytes,F
        GOTO    assert_wr0_2

;-----------------------------------------------------------------------------------
;		單純的向RTL8019寫入
;-----------------------------------------------------------------------------------
assert_wr0:
        MOVWF   PORTD
assert_wr0_2:
        BSF     STATUS,RP0
        CLRF    TRISD & 0x7F
        BCF     STATUS,RP0

        BCF     WRITE

        BTFSS   RDY
        GOTO    $-1

        BSF     WRITE

        BSF     STATUS,RP0
        MOVLW   0xFF
        MOVWF   TRISD & 0x7F
        BCF     STATUS,RP0
        RETURN

assert_rd:
        BCF     READ

        BTFSS   RDY				;~Wait
        GOTO    $-1

        MOVF    PORTD,W
        MOVWF   mdata

        BSF     READ
        RETURN

;-----------------------------------------------------------------------------------
;		Packet送信的相關(guān)處理
;-----------------------------------------------------------------------------------
transmit_this_ip:
        MOVLW   this_ip
        MOVWF   FSR
        MOVLW   0x04
transmit_nbytes:
        MOVWF   gcn1
        MOVLW   0x10
        MOVWF   PORTC
transmit0:
        MOVF    INDF,W
        CALL    assert_wr
        INCF    FSR,F
        DECFSZ  gcn1,F
        GOTO    transmit0
        RETURN

transmit_nbytes2:
        MOVWF   gcn1
        MOVLW   0x10
        MOVWF   PORTC
transmit2_0
        MOVF    INDF,W
        CALL    assert_wr2
        INCF    FSR,F
        DECFSZ  gcn1,F
        GOTO    transmit2_0
        RETURN

;-----------------------------------------------------------------------------------
;		Packet送信
;-----------------------------------------------------------------------------------
transmit:
retry:
        CLRF    PORTC
        CALL    assert_rd

        BTFSC   mdata,2				;檢查送信bit
        GOTO    transmit			;等待送信

        CLRF    PORTC
        MOVLW   b'00100110'			;設(shè)立送信bit
        CALL    assert_wr0			;送信!
trans100:
        MOVLW   0x04
        MOVWF   PORTC
        CALL    assert_rd

        BTFSC   mdata,0
        GOTO    transmit9			;送信完了?
        BTFSC   mdata,3
        GOTO    retry

        GOTO    trans100
transmit9:
        RETURN

;-----------------------------------------------------------------------------------
;		準(zhǔn)備Ethernet Header
;-----------------------------------------------------------------------------------
prepare_ether2:
        MOVLW   PACKET_SIZE + ARP_SIZE
        MOVWF   remote_len
        GOTO    prepare_ether1
prepare_ether:
        MOVLW   PACKET_SIZE + IP_SIZE
        MOVWF   remote_len
prepare_ether1:
        CLRF    remote_len+1
        CLRF    remote_adr
        MOVLW   PAGE_BE

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情一二三区| 欧美日韩一区二区三区高清 | 日韩av网站在线观看| 一区二区欧美视频| 亚洲午夜三级在线| 视频一区二区中文字幕| 日产国产高清一区二区三区| 视频一区欧美日韩| 美女视频一区在线观看| 精品亚洲免费视频| 国产精品资源网| 国产xxx精品视频大全| 成人一区二区在线观看| 色综合中文字幕国产| 欧美亚洲一区二区在线观看| 欧美精品久久一区二区三区 | 亚洲成人综合网站| 亚洲动漫第一页| 日韩国产一二三区| 国产乱码精品一区二区三区忘忧草 | 91麻豆精品国产无毒不卡在线观看 | 欧美日韩高清不卡| 日韩精品影音先锋| 日本一区二区免费在线观看视频| 欧美大片一区二区| 国产日韩欧美激情| 一区二区三区四区五区视频在线观看| 亚洲综合免费观看高清完整版| 亚洲精品日韩综合观看成人91| 亚洲福利视频一区| 久久丁香综合五月国产三级网站| 国产激情一区二区三区四区| 色综合久久综合网| 日韩欧美在线综合网| 国产日韩欧美一区二区三区综合| 国产精品日韩成人| 五月天激情小说综合| 国产一区视频网站| 欧美系列在线观看| 国产亚洲福利社区一区| 亚洲黄色小视频| 全国精品久久少妇| 成人一级黄色片| 欧美肥妇free| 国产精品国产三级国产有无不卡 | 久久精品999| av亚洲精华国产精华| 欧美一区二区三区精品| 国产日产欧美一区二区视频| 亚洲成国产人片在线观看| 国产精品一品视频| 欧美日韩国产a| 国产精品进线69影院| 日本va欧美va欧美va精品| 成人动漫一区二区在线| 91精品国产综合久久久久久| 国产精品美女久久久久高潮| 日韩高清在线观看| 91蝌蚪porny| 国产情人综合久久777777| 亚洲成av人影院| 99久久国产综合精品女不卡| 欧美videossexotv100| 一区二区三区精品在线| 岛国精品在线播放| 日韩欧美中文字幕制服| 亚洲永久精品大片| 不卡影院免费观看| 久久人人97超碰com| 丝袜脚交一区二区| 日本国产一区二区| 国产精品伦一区| 国产一区二区三区在线看麻豆| 欧美日韩aaaaaa| 亚洲愉拍自拍另类高清精品| www.欧美.com| 久久精品在线免费观看| 久久黄色级2电影| 在线成人av网站| 亚洲一卡二卡三卡四卡五卡| 91一区二区三区在线观看| 欧美国产视频在线| 国产乱人伦偷精品视频不卡| 日韩午夜小视频| 日韩va亚洲va欧美va久久| 欧美丝袜第三区| 亚洲一区在线免费观看| 在线精品亚洲一区二区不卡| 亚洲三级在线播放| 91玉足脚交白嫩脚丫在线播放| 中文字幕免费不卡| 成人精品gif动图一区| 欧美激情资源网| 成人免费看的视频| 国产精品美女久久久久aⅴ | 久久精品人人做人人爽97| 麻豆视频一区二区| 欧美一区二区在线看| 天天免费综合色| 777亚洲妇女| 久久精品国产久精国产| 日韩精品在线一区| 狠狠色狠狠色综合| 久久久久青草大香线综合精品| 国内不卡的二区三区中文字幕| 精品日本一线二线三线不卡| 久久精品国内一区二区三区| 精品福利在线导航| 国产成人在线看| 日韩理论在线观看| 在线观看亚洲一区| 三级成人在线视频| 日韩欧美卡一卡二| 国内久久婷婷综合| 国产精品丝袜在线| 色94色欧美sute亚洲线路二| 亚洲高清免费观看高清完整版在线观看 | 在线一区二区三区| 亚洲国产一二三| 日韩欧美一二三四区| 久久国产精品72免费观看| 国产日韩欧美精品电影三级在线| 成人黄色a**站在线观看| 亚洲精品视频一区| 日韩一区国产二区欧美三区| 国产一区高清在线| 国产精品久久久久一区| 欧美在线看片a免费观看| 日韩激情中文字幕| 亚洲国产精品成人综合色在线婷婷| 91亚洲午夜精品久久久久久| 亚洲福利一区二区三区| 欧美精品一区在线观看| 91在线小视频| 日韩1区2区日韩1区2区| 久久久精品天堂| 欧美伊人久久久久久午夜久久久久| 日韩电影免费一区| 欧美国产日产图区| 欧美日本一区二区| 丁香桃色午夜亚洲一区二区三区| 亚洲欧美国产高清| 日韩欧美一卡二卡| 91美女在线看| 久久精品噜噜噜成人88aⅴ| 国产精品国产三级国产aⅴ入口| 欧美日产国产精品| 成人av影院在线| 美女一区二区三区| 亚洲免费av高清| 久久久久久97三级| 欧美日韩成人综合| 不卡的电视剧免费网站有什么| 视频一区欧美精品| 亚洲欧洲日韩在线| 精品国一区二区三区| 欧美午夜精品免费| 夫妻av一区二区| 麻豆成人综合网| 亚洲黄一区二区三区| 国产亚洲污的网站| 日韩视频免费观看高清完整版| 99久久国产综合精品色伊| 老司机精品视频在线| 亚洲精品欧美激情| 欧美国产1区2区| 亚洲精品一区二区三区影院| 欧美性生活大片视频| 成人av电影免费在线播放| 久久精品久久综合| 石原莉奈一区二区三区在线观看| 国产精品大尺度| 26uuu色噜噜精品一区| 欧美日韩国产首页| 在线视频欧美区| 99国产精品久久久| 国产91色综合久久免费分享| 美国一区二区三区在线播放| 亚洲一区二区美女| 亚洲精选视频在线| 国产精品视频观看| 国产喂奶挤奶一区二区三区| 日韩精品自拍偷拍| 欧美人与性动xxxx| 91九色02白丝porn| 一本高清dvd不卡在线观看| 高清国产一区二区三区| 国内精品久久久久影院色| 麻豆精品新av中文字幕| 日欧美一区二区| 亚洲人成伊人成综合网小说| 日韩女优视频免费观看| 欧美一区二区三区在线观看| 欧美亚洲高清一区二区三区不卡| 99免费精品视频| 制服丝袜中文字幕一区| 欧美日韩一级黄| 欧美人伦禁忌dvd放荡欲情| 色老汉av一区二区三区| 色久优优欧美色久优优|