首页 51单片机上网 RTL8019AS 寄存器配置C源代码

51单片机上网 RTL8019AS 寄存器配置C源代码

举报
开通vip

51单片机上网 RTL8019AS 寄存器配置C源代码51单片机上网 RTL8019AS 寄存器配置C源代码 #include #include #include "uip.h" sbit RESET=P4^0; typedef unsigned char uchar; typedef unsigned int uint; #define TX_PAGES 6 #define NE_START_PG 0x40 //发送寄存器的首页地址 #define TX_START_PG NE_START_PG #define NE_STOP_PG 0x60...

51单片机上网 RTL8019AS 寄存器配置C源代码
51单片机上网 RTL8019AS 寄存器配置C源代码 #include #include #include "uip.h" sbit RESET=P4^0; typedef unsigned char uchar; typedef unsigned int uint; #define TX_PAGES 6 #define NE_START_PG 0x40 //发送寄存器的首页地址 #define TX_START_PG NE_START_PG #define NE_STOP_PG 0x60 //接收寄存器环的末地址,1 #define RX_STOP_PG NE_STOP_PG // #define RX_START_PG NE_START_PG + TX_PAGES #define RX_CURR_PG RX_START_PG + 1 //下面定义的是RTL8019AS特殊寄存器 #define BASE_ADDRESS 0x8000 #define CR XBYTE [BASE_ADDRESS+0x0000] //设置CR寄存器地址 #define DMA_PORT XBYTE [BASE_ADDRESS+0x1000] //设置远程DMA端口 #define RESET_PORT XBYTE [BASE_ADDRESS+0x1800] //设置复位端口 //---------定义PAGE0------------- //定义PAGE0中的只读寄存器 #define PG0_CLDA0 XBYTE [BASE_ADDRESS+0x0100] #define PG0_CLDA1 XBYTE [BASE_ADDRESS+0x0200] #define PG0_BNRY XBYTE [BASE_ADDRESS+0x0300] #define PG0_TSR XBYTE [BASE_ADDRESS+0x0400] #define PG0_NCR XBYTE [BASE_ADDRESS+0x0500] #define PG0_FIFO XBYTE [BASE_ADDRESS+0x0600] #define PG0_ISR XBYTE [BASE_ADDRESS+0x0700] #define PG0_CRDA0 XBYTE [BASE_ADDRESS+0x0800] #define PG0_CRDA1 XBYTE [BASE_ADDRESS+0x0900] #define PG0_8019D0 XBYTE [BASE_ADDRESS+0x0A00] #define PG0_8019D1 XBYTE [BASE_ADDRESS+0x0B00] #define PG0_RSR XBYTE [BASE_ADDRESS+0x0C00] #define PG0_CNTR0 XBYTE [BASE_ADDRESS+0x0D00] #define PG0_CNTR1 XBYTE [BASE_ADDRESS+0x0E00] #define PG0_CNTR2 XBYTE [BASE_ADDRESS+0x0F00] //定义PAGE0中的只写寄存器 #define PG0_PSTART XBYTE [BASE_ADDRESS+0x0100] #define PG0_PSTOP XBYTE [BASE_ADDRESS+0x0200] #define PG0_BNRY XBYTE [BASE_ADDRESS+0x0300] #define PG0_TPSR XBYTE [BASE_ADDRESS+0x0400] #define PG0_TBCR0 XBYTE [BASE_ADDRESS+0x0500] #define PG0_TBCR1 XBYTE [BASE_ADDRESS+0x0600] #define PG0_ISR XBYTE [BASE_ADDRESS+0x0700] #define PG0_RSAR0 XBYTE [BASE_ADDRESS+0x0800] #define PG0_RSAR1 XBYTE [BASE_ADDRESS+0x0900] #define PG0_RBCR0 XBYTE [BASE_ADDRESS+0x0A00] #define PG0_RBCR1 XBYTE [BASE_ADDRESS+0x0B00] #define PG0_RCR XBYTE [BASE_ADDRESS+0x0C00] #define PG0_TCR XBYTE [BASE_ADDRESS+0x0D00] #define PG0_DCR XBYTE [BASE_ADDRESS+0x0E00] #define PG0_IMR XBYTE [BASE_ADDRESS+0x0F00] //定义PAGE1 读写寄存器 #define PG1_PAR0 XBYTE [BASE_ADDRESS+0x0100] #define PG1_PAR1 XBYTE [BASE_ADDRESS+0x0200] #define PG1_PAR2 XBYTE [BASE_ADDRESS+0x0300] #define PG1_PAR3 XBYTE [BASE_ADDRESS+0x0400] #define PG1_PAR4 XBYTE [BASE_ADDRESS+0x0500] #define PG1_PAR5 XBYTE [BASE_ADDRESS+0x0600] #define PG1_CURR XBYTE [BASE_ADDRESS+0x0700] #define PG1_MAR0 XBYTE [BASE_ADDRESS+0x0800] #define PG1_MAR1 XBYTE [BASE_ADDRESS+0x0900] #define PG1_MAR2 XBYTE [BASE_ADDRESS+0x0A00] #define PG1_MAR3 XBYTE [BASE_ADDRESS+0x0B00] #define PG1_MAR4 XBYTE [BASE_ADDRESS+0x0C00] #define PG1_MAR5 XBYTE [BASE_ADDRESS+0x0D00] #define PG1_MAR6 XBYTE [BASE_ADDRESS+0x0E00] #define PG1_MAR7 XBYTE [BASE_ADDRESS+0x0F00] //定义PAGE2 只读寄存器 #define PG2_PSTART XBYTE [BASE_ADDRESS+0x0100] #define PG2_PSTOP XBYTE [BASE_ADDRESS+0x0200] #define PG2_TPSR XBYTE [BASE_ADDRESS+0x0400] #define PG2_RCR XBYTE [BASE_ADDRESS+0x0C00] #define PG2_TCR XBYTE [BASE_ADDRESS+0x0D00] #define PG2_DCR XBYTE [BASE_ADDRESS+0x0E00] #define PG2_IMR XBYTE [BASE_ADDRESS+0x0F00] //定义PAGE3 寄存器 #define PG3_9346CR XBYTE [BASE_ADDRESS+0x0100] #define PG3_CONFIG0 XBYTE [BASE_ADDRESS+0x0300] #define PG3_CONFIG1 XBYTE [BASE_ADDRESS+0x0400] #define PG3_CONFIG2 XBYTE [BASE_ADDRESS+0x0500] #define PG3_CONFIG3 XBYTE [BASE_ADDRESS+0x0600] #define PG3_CONFIG4 XBYTE [BASE_ADDRESS+0x0D00] //以下是特殊寄存器的位定义 // CR寄存器 #define stop_cmd 0x01 //停止接受或发送数据 #define start_cmd 0x02 //启动接受或发送数据 #define txp 0x04 //发送数据 #define no_dma 0x00 //禁止DMA #define read_dma 0x08 //允许远程DMA读 #define write_dma 0x10 //允许远程DMA写 #define send_pck 0x18 //发送数据 #define abort_dma 0x20 //退出/完成远程DMA #define page0 0x00 //PAGE0选择 #define page1 0x40 //PAGE1选择 #define page2 0x80 //PAGE2选择 #define page3 0xc0 //PAGE3选择 // ISR中断状态寄存器 #define isr_prx 0x01 //无错误接受数据包 #define isr_ptx 0x02 //无错误发送数据包 #define rxe 0x04 //接受数据包带有如下错误:CRC错误、包丢失错误以及帧队列错 误 #define txe 0x08 //过分冲突导致传输错误 #define ovw 0x10 //接受缓冲器溢出 #define cnt 0x20 //当一个或多个网络计数器的MSB 设置完成时该位被设置。 #define rdc 0x40 //远程DMA操作完成 #define rst 0x80 //复位 // DCR数据结构寄存器 #define wts 0x01 //字长的DMA传送 #define bos 0x02 //传送过程中高位放到MD15-8,低位放到MD7-0 #define las 0x04 //16位DMA传送模式 #define ls 0x08 //回路检测,正常操作 #define arm 0x10 //自动初始化远程操作,发送包命令执行 #define fifo00 0x00 // 2字节 #define fifo01 0x20 // 4字节 #define fifo10 0x40 // 8字节 #define fifo11 0x60 // 12字节 // TCR传输配置寄存器 #define tcr_config 0x00//设置将要配置TCR寄存器的值 #define tcr_crc 0x00 //CRC正常操作 #define lb00 0x00 //正常操作 #define lb01 0x02 //内部LOOKBACK #define lb10 0x04 //外部LOOKBACK #define lb11 0x06 //外部LOOKBACK #define atd 0x08 //多播地址混乱接受 #define ofst 0x10 //冲突补偿 // TSR传送状态寄存器 #define tsr_ptx 0x01 //无错误接收数据 #define col 0x04 //数据传输过程中出现冲突 #define abt 0x08 //超频导致传送失败 #define crs 0x10 //传送数据包时,有包丢失 #define cdh 0x40 // #define owc 0x80 // // RCR接受配置寄存器 #define rcr_config 0x04//设置将要配置的RCR寄存器的值 #define sep 0x01 //允许错误数据包被接受 #define ar 0x02 //允许帧长度小于64bytes的数据包被接受 #define ab 0x04 //允许广播地址帧数据包被接收 #define am 0x08 //允许多播地址数据包被被接收 #define pro 0x10 //允许所有具有目的地址数据包被接收 #define mon 0x20 // // RSR接受状态寄存器 #define rsr_prx 0x01 //无错误接受数据标志 #define rsr_crc 0x02 //CRC错误位 #define fae 0x04 //帧同步错误位 #define mpa 0x10 //数据包丢失位 #define phy 0x20 //多播或广播位 #define dis 0x40 //禁止接受位 #define dfr 0x80 //冲突位 void Send(uchar a); bit etherdev_init(void); void etherdev_send(void); unsigned int etherdev_read(void);
本文档为【51单片机上网 RTL8019AS 寄存器配置C源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_036899
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:0
分类:初中语文
上传时间:2017-10-24
浏览量:29