首页 > 试题

0x20

更新时间:2022-12-06 12:47:32 阅读: 评论:0

技校生可以上私立高中吗-思绪的近义词


2022年12月6日发(作者:国家励志奖学金申请表的申请理由)

【原创】RTL8019AS内部寄存器在C51定义

分类:RTL8019AS

2007.3.1414:50作者:|评论:1|阅读:1603

最近因为要做单片机控制51单片机的一个东西,所以有些东西想和大家分享!

慢慢来,一步一步做,我也是变做项目,边将自己的一些心得体会发到博客和大家一起分享!

今天先来一些简单的,定义RTL8019AS内部积存器,因为如果先不定义他们,我们又如何才能在单片机中

对他们进行访问呢?

好了,看下面的定义和说明!

51单片机与RTL8019AS的管脚连接如下所示:

SA19--SA10SA9SA8SA7SA6SA5SA4SA3SA2SA1SA0

GNDVCC|-GND-|P27P25P24P23P22P21P20

|<-0->|1001******

单片机访问RTL8019AS的端口定义如下所示:

P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P00

100*****00000000

从上图可以看出来,我使用的RTL8019AS的端口好是从8000H到9F00H截至的!

下面就是我定义的RTL8019AS的特殊功能寄存器的

#include

#defineTX_PAGES6

#defineNE_START_PG0x40//发送寄存器的首页地址

#defineTX_START_PGNE_START_PG

#defineNE_STOP_PG0x80//接收寄存器环的末地址+1

#defineRX_STOP_PGNE_STOP_PG//

#defineRX_START_PGNE_START_PG+TX_PAGES

#defineRX_CURR_PGRX_START_PG+1

//下面定义的是RTL8019AS特殊寄存器

#defineCRXBYTE[0x8000]//设置CR寄存器地址

#defineDMA_PORTXBYTE[0x9000]//设置远程DMA端口

#defineRESET_PORTXBYTE[0x9800]//设置复位端口

//---------定义PAGE0-------------

//定义PAGE0中的只读寄存器

#definePG0_CLDA0XBYTE[0x8100]

#definePG0_CLDA1XBYTE[0x8200]

#definePG0_BNRYXBYTE[0x8300]

#definePG0_TSRXBYTE[0x8400]

#definePG0_NCRXBYTE[0x8500]

#definePG0_FIFOXBYTE[0x8600]

#definePG0_ISRXBYTE[0x8700]

#definePG0_CRDA0XBYTE[0x8800]

#definePG0_CRDA1XBYTE[0x8900]

#definePG0_8019D0XBYTE[0x8A00]

#definePG0_8019D1XBYTE[0x8B00]

#definePG0_RSRXBYTE[0x8C00]

#definePG0_CNTR0XBYTE[0x8D00]

#definePG0_CNTR1XBYTE[0x8E00]

#definePG0_CNTR2XBYTE[0x8F00]

//定义PAGE0中的只写寄存器

#definePG0_PSTARTXBYTE[0x8100]

#definePG0_PSTOPXBYTE[0x8200]

#definePG0_BNRYXBYTE[0x8300]

#definePG0_TPSRXBYTE[0x8400]

#definePG0_TBCR0XBYTE[0x8500]

#definePG0_TBCR1XBYTE[0x8600]

#definePG0_ISRXBYTE[0x8700]

#definePG0_RSAR0XBYTE[0x8800]

#definePG0_RSAR1XBYTE[0x8900]

#definePG0_RBCR0XBYTE[0x8A00]

#definePG0_RBCR1XBYTE[0x8B00]

#definePG0_RCRXBYTE[0x8C00]

#definePG0_TCRXBYTE[0x8D00]

#definePG0_DCRXBYTE[0x8E00]

#definePG0_IMRXBYTE[0x8F00]

//定义PAGE1读写寄存器

#definePG1_PAR0XBYTE[0x8100]

#definePG1_PAR1XBYTE[0x8200]

#definePG1_PAR2XBYTE[0x8300]

#definePG1_PAR3XBYTE[0x8400]

#definePG1_PAR4XBYTE[0x8500]

#definePG1_PAR5XBYTE[0x8600]

#definePG1_CURRXBYTE[0x8700]

#definePG1_MAR0XBYTE[0x8800]

#definePG1_MAR1XBYTE[0x8900]

#definePG1_MAR2XBYTE[0x8A00]

#definePG1_MAR3XBYTE[0x8B00]

#definePG1_MAR4XBYTE[0x8C00]

#definePG1_MAR5XBYTE[0x8D00]

#definePG1_MAR6XBYTE[0x8E00]

#definePG1_MAR7XBYTE[0x8F00]

//定义PAGE2只读寄存器

#definePG2_PSTARTXBYTE[0x8100]

#definePG2_PSTOPXBYTE[0x8200]

#definePG2_TPSRXBYTE[0x8400]

#definePG2_RCRXBYTE[0x8C00]

#definePG2_TCRXBYTE[0x8D00]

#definePG2_DCRXBYTE[0x8E00]

#definePG2_IMRXBYTE[0x8F00]

//以下是特殊寄存器的位定义

//CR寄存器

#definestop_cmd0x01//停止接受或发送数据

#definestart_cmd0x02//启动接受或发送数据

#definetxp0x04//发送数据

#defineno_dma0x00//禁止DMA

#defineread_dma0x08//允许远程DMA读

#definewrite_dma0x10//允许远程DMA写

#definend_pck0x18//发送数据

#defineabort_dma0x20//退出/完成远程DMA

#definepage00x00//PAGE0选择

#definepage10x40//PAGE1选择

#definepage20x80//PAGE2选择

#definepage30xc0//PAGE3选择

//ISR中断状态寄存器

#defineisr_prx0x01//无错误接受数据包

#defineisr_ptx0x02//无错误发送数据包

#definerxe0x04//接受数据包带有如下错误:CRC错误、包丢失错误以及帧队列错误

#definetxe0x08//过分冲突导致传输错误

#defineovw0x10//接受缓冲器溢出

#definecnt0x20//当一个或多个网络计数器的MSB设置完成时该位被设置。

#definerdc0x40//远程DMA操作完成

#definerst0x80//复位

//DCR数据结构寄存器

#definewts0x01//字长的DMA传送

#definebos0x02//传送过程中高位放到MD15-8,低位放到MD7-0

#definelas0x04//16位DMA传送模式

#definels0x08//回路检测,正常操作

#definearm0x10//自动初始化远程操作,发送包命令执行

#definefifo000x00//2字节

#definefifo010x20//4字节

#definefifo100x40//8字节

#definefifo110x60//12字节

//TCR传输配置寄存器

#definetcr_config0x00//设置将要配置TCR寄存器的值

#definetcr_crc0x00//CRC正常操作

#definelb000x00//正常操作

#definelb010x02//内部LOOKBACK

#definelb100x04//外部LOOKBACK

#definelb110x06//外部LOOKBACK

#defineatd0x08//多播地址混乱接受

#defineofst0x10//冲突补偿

//TSR传送状态寄存器

#definetsr_ptx0x01//无错误接收数据

#definecol0x04//数据传输过程中出现冲突

#defineabt0x08//超频导致传送失败

#definecrs0x10//传送数据包时,有包丢失

#definecdh0x40//

#defineowc0x80//

//RCR接受配置寄存器

#definercr_config0x04//设置将要配置的RCR寄存器的值

#definep0x01//允许错误数据包被接受

#definear0x02//允许帧长度小于64bytes的数据包被接受

#defineab0x04//允许广播地址帧数据包被接收

#defineam0x08//允许多播地址数据包被被接收

#definepro0x10//允许所有具有目的地址数据包被接收

#definemon0x20//

//RSR接受状态寄存器

#definersr_prx0x01//无错误接受数据标志

#definersr_crc0x02//CRC错误位

#definefae0x04//帧同步错误位

#definempa0x10//数据包丢失位

#definephy0x20//多播或广播位

#definedis0x40//禁止接受位

#definedfr0x80//冲突位

本文发布于:2022-12-06 12:47:32,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/53041.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:陆间海
下一篇:黑山白水
标签:0x20
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图