No.100101 作者:hysi2005 邮件:wut1984@sohu.com ID:64422 登陆:1次 文章数:1篇 最后登陆IP:61.183.72.25 最后登陆:2006/11/30 10:16:06 注册:2006/11/30 10:12:20 财富:105 发帖时间:2006/11/30 10:16:06 发贴者IP:61.183.72.25 标题:hysi2005:哪位大哥作过用8019做以太网通讯的啊 看看我这个程序有什么问题啊 摘要:No.100101哪位大哥作过用8019做以太网通讯的啊 看看我这个程序有什么问题啊 这个只是UDP发送的程序 直接调试板子和PC之间的通讯 #include <reg51.h> #include <absacc.h> #define uchar unsigned char #define uint unsigned int #define reg00 XBYTE [0x8000] #define reg01 XBYTE [0x8100] #define reg02 XBYTE [0x8200] #define reg03 XBYTE [0x8300] #define reg04 XBYTE [0x8400] #define reg05 XBYTE [0x8500] #define reg06 XBYTE [0x8600] #define reg07 XBYTE [0x8700] #define reg08 XBYTE [0x8800] #define reg09 XBYTE [0x8900] #define reg0a XBYTE [0x8a00] #define reg0b XBYTE [0x8b00] #define reg0c XBYTE [0x8c00] #define reg0d XBYTE [0x8d00] #define reg0e XBYTE [0x8e00] #define reg0f XBYTE [0x8f00] #define reg10 XBYTE [0x9000] #define reg11 XBYTE [0x9100] #define reg12 XBYTE [0x9200] #define reg13 XBYTE [0x9300] #define reg14 XBYTE [0x9400] #define reg15 XBYTE [0x9500] #define reg16 XBYTE [0x9600] #define reg17 XBYTE [0x9700] #define reg18 XBYTE [0x9800] #define reg19 XBYTE [0x9900] #define reg1a XBYTE [0x9a00] #define reg1b XBYTE [0x9b00] #define reg1c XBYTE [0x9c00] #define reg1d XBYTE [0x9d00] #define reg1e XBYTE [0x9e00] #define reg1f XBYTE [0x9f00] // struct eth_head { uchar dest_eth_addr[6]; uchar src_eth_addr[6]; uchar type; }; struct ip_head { uchar vhl; uchar tos; uchar len; uchar id; uchar offset; uchar ttl; uchar protocol; uchar chksum; uchar dest_ip_addr[4]; uchar src_ip_addr[4]; }; struct udp_head { uchar srcport; uchar destport; uchar len; uchar chksum; uchar msg_data; }; // sbit reset=P1^1; // uchar code eth_addr[6]={0x2b,0x5d,0x46,0xa5,0x66,0xa8}; uchar code ip_addr[4]={192,168,1,102}; uchar code dest_ip_addr[4]={192,168,1,45}; uint hostport=10001; uchar xdata udp_send_buff[1518]; uchar xdata udp_src_buff[1518]; bit txd_buffer_select; // void memspy(uchar *buf1,uchar *buf2,uint time) { uint t; for(t=0;t <time;t++) { buf1[t]=buf2[t]; } return; } //延时 void late1() { uint i; for(i=30000;i> 0;i--); } //延时 void late2() { uchar i; for(i=300;i> 0;i--); } //8019复位 void rst_8019() {reset=1; late1(); reset=0; late1(); } //选择寄存器页面 void pagechoice(uchar pagenumber) {uchar temp; temp=reg00; temp=temp&0x3b; pagenumber=pagenumber < <6; temp=temp|pagenumber; reg00=temp; } //ne2000初始化 void ne2000init() {rst_8019(); reg00=0x21; late2(); pagechoice(1); ......
>>返回讨论的主题
|