c8051F020寄存器
- 格式:xls
- 大小:139.50 KB
- 文档页数:701
C8051F020 学习笔记——基本概念C8051F020 是完全集成的混合信号系统级芯片,具有64个数字I/O引脚。
下面列出了一些主要特性:1. 高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS)2. 全速、非侵入式的在线系统调试接口(片内)3. 真正12位(C8051F020)100ksps的8通道ADC,带PGA和模拟多路开关。
4. 真正8位500ksps的ADC,带PGA和8通道模拟多路开关5. 两个12位DAC,具有可编程数据更新方式6. 64K字节可在系统编程的FLASH存储器7. 4352(4096+256)字节的片内RAM8. 硬件实现的SPI、SMBus/IIC和两个UART串行接口9. 5个通用的16位定时器10. 具有5个捕捉/比较模块的可编程计数器/定时器阵列11. 片内看门狗定时器、VDD监视器和温度传感器每个MCU都可在工业温度范围(-45C到+85C)内用2.7V-3.6V的电压工作.端口I/O、/RST和JTAG引脚都容许5V的输入信号电压。
C8051F020/2为100脚TQFP 封装。
C8051F020系列器件使用Silicon Labs的专利CIP微控制器内核。
CIP-51内核具有标准8052的所有外设部件,包括5个16位的计数器/定时器、两个全双工UART、256字节内部RAM、128字节特殊功能寄存器(SFR)地址空间及8/4个字节宽的I/O端口。
速度提高:CIP-51采用流水线结构,70%的指令的执行时间为1个或两个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。
CIP-51工作在最大系统时钟频率25MHz,它的峰值性能达到25MIPS。
增加的功能:C8051F020系列MCU对CIP-51内核和外设有几项关键性的改进:扩展的中断系统向CIP-51提供22个中断源(标准8051只有7个中断源),允许大量的模拟和数字外设中断微控制器。
C8051F02X外部存储器接口和IO端口配置C8051F02X外部存储器接口和I/O端口配置摘要:介绍美国Cygnal公司生产的C8051F02X系列单片机的外部存储器接口、I/O端口配置方法和有关注意的问题;在此基础上列举两个关于EMIF、I/O的配置应用。
关键词:C8051F02X EMIF I/O 交叉开关美国Cygnal公司C8051F02X系列单片机是集成在一起芯片上的混合信号系统级单片机。
该单片机具有32/64位数字I/O端口(引脚)、25MIPS高速流水线式8051微控制器内核、64KB在系统可编程Flash存储器、64KB地址的外部存储器接口、4352(4096+256)B片内RAM、各自独立的SPI、SMBUS/I2C和两个UART串行接口等特点。
其最突出的优点就是,通过设置交叉开关寄存器控制片内数字资源映射到外部I/O引脚,这就允许用户根据自己的特定应用,选择通用I/O端口和所需要数字资源。
当然,在设置数字交叉开关寄存器时,应该首先考虑EMIF的配置问题。
其配置不同,将导致单片机通过不同的端口(低或高)访问片外存储器和存储器映像的I/O部件,以及数字交叉开关是否分配外部设备给P0.7(WR)、P0.6(RD)、P0.5(ALE)引脚。
(如图EMIF设置为多路器模式。
)1 EMIF和I/O配置方法1.1 外部存储器接口(EMIF)配置C8051F02X系列MCU有4KB的RAM可以只映射在片内,也可以映射在64KB外部数据存储器地址空间,还可以同时映射到片内和片外(4KB地址以内在片内存储器空间访问,4KB以上经过EMIF访问)三种方式。
对于后两种存储器工作模式,需通过外部存储器接口使用MOVX和DPTR或MOVX和R0(R1)指令访问外部数据存储器和存储器映像的I/O设备。
但是对于高8位地址,必须由外部存储器接口寄存器(EMI0CN)提供;而EMIF可将外部数据存储器接口映射到低端口(P0~P3)(F020/2/3系列)或高端口(P4~P7)(F020/2系列),以及配置为复用模式或非复用模式等。
F020单片机的使用过程当中,有几个重点,一个是定时器和中断,一个是AD和DA,还有一个就是串口通信了。
由于当时设计的时候思想比较混乱,所以直接采用的MAX485作为通信芯片。
对于其具体的实现过程还不是十分的熟悉。
因此,做此专题专门针对与串口通信相关的寄存器做说明。
四,UART0UART0 是一个具有帧错误检测和地址识别硬件的增强型串行口。
UART0 可以工作在全双工异步方式或半双工同步方式,并且支持多处理器通信。
接收数据被暂存于一个保持寄存器中,这就允许UART0 在软件尚未读取前一个数据字节的情况下开始接收第二个输入数据字节。
一个接收覆盖位用于指示新的接收数据已被锁存到接收缓冲器而前一个接收数据尚未被读取。
对UART0 的控制和访问是通过相关的特殊功能寄存器即串行控制寄存器(SCON0)和串行数据缓冲器(SBUF0)来实现的。
一个SBUF0 地址可以访问发送寄存器和接收寄存器。
读操作将自动访问接收寄存器,而写操作自动访问发送寄存器。
UART0 可以工作在查询或中断方式。
UART0 有两个中断源:一个发送中断标志TI0(SCON0.1)(数据字节发送结束时置位)和一个接收中断标志RI0(SCON0.0)(接收完一个数据字节后置位)。
当CPU 转向中断服务程序时硬件不清除UART0 中断标志,中断标志必须用软件清除。
这就允许软件查询UART0 中断的原因(发送完成或接收完成)。
4.1UART0 工作方式UART0 提供四种工作方式(一种同步方式和三种异步方式),通过设置SCON0 寄存器中的配置位选择。
这四种方式提供不同的波特率和通信协议。
下面的表20.1 概述了这四种方式。
表20.1 UART0 工作方式方式同步性波特率时钟数据位起始/停止位0 同步SYSCLK/12 8 无1 异步定时器1 或定时器2 溢出8 一个起始位,一个停止位2 异步SYSCLK/32 或SYSCLK/64 9 一个起始位,一个停止位3 异步定时器1 或定时器2 溢出9 一个起始位,一个停止位方式0 的波特率是系统时钟频率/12。
C8051F020的端口配置C8051F系列单片机有4~8个输入输出端口,每个端口有8个引脚,这些端口有如下特点:1、这些引脚都可以用作通用I/O端口2、它的P0~P3口的每个管脚都通过独立编程还能作为特殊功能的输入或输出,即同一个引脚可以作为片上不同外围功能模块的信号输入输出端口。
3、端口可以通过软件设置改变引脚的输入输出状态配置。
如:弱上拉输入、推拉输出、开漏输出等。
根据端口特点,端口配置过程分为以下几步:1、配置交叉开关(功能选择开关)交叉开关寄存器共有四个分别是XBAR0、XBAR1、XBAR2、XBAR3。
通过对这四个寄存器进行配置,使IO引脚同单片机的数字和模拟片上外围设备进行连接。
2、配置外部存储器接口外部存储器接口(External Memory Interface,EMIF)用于CPU与片上和片外XRAM之间的数据传输通道,通过寄存器EMIOCF和EMIOCN选择和管理端口P0~P3或端口P4~P7实现数据传播。
配置这两个寄存器用以选择端口是否为复用方式(数据与地址线复用)、寄存器工作模式选择及外部存储器页选择。
3、配置IO端口的输入输出模式输入模式分为模拟量输入和数字量输入。
用寄存器PnMDIN配置n=0、1、2、3。
输出模式分为推拉(推挽)式和漏极开路式。
用寄存器PnMDOUT配置4、禁止模拟输入引脚的输出驱动配置模拟输入时P口并没有把输出驱动电路完全关闭,所以不管是哪种输入,推荐的做法是:将相应的输入口的输出模式配置成开漏,并将其输出寄存器置“1”,使其为高阻态,以减少串扰。
5、启动交叉开关单片机刚上电时,因为XBAR2的复位值为0,因而端口P0~P3的输出驱动器被禁止,在XBARE(XBAR2.6)位被设置为逻辑“1”之前,可防止对交叉开关(功能选择)寄存器和其他寄存器写入时,在端口引脚上产生争用。
正确配置交叉开关后,通过将XBARE设置为逻辑“1”,使功能选择开关有效。
C8051F020单片机C8051F020单片机简介单片机(Microcontroller Unit,缩写为MCU)是一种集成了中央处理器(CPU)、片内存储器(RAM和ROM)、输入/输出接口(I/O)、定时器/计数器和其他功能模块的微型计算机系统。
单片机被广泛应用于家电、汽车电子、医疗设备、电力系统等领域。
C8051F020单片机作为Silicon Labs开发的一款8位低功耗单片机,具有较高的性价比和广泛的应用领域。
本文将对C8051F020进行详细介绍。
一、C8051F020单片机的特点与功能C8051F020单片机具有以下特点和功能:1. 架构优势:C8051F020基于Silicon Labs的成熟8位CPU架构,具有高效的指令执行能力和较低的功耗。
2. 丰富的存储器:C8051F020拥有8KB的闪存(Flash)用于程序存储,可以在电源关闭后保持程序不丢失。
此外,它还配备了256字节的数据闪存(Data Flash)和256字节的电子可擦除可编程只读存储器(EPROM)。
3. 综合的外设:C8051F020单片机具有多个通用输入输出引脚(GPIO),可用于各种外设和传感器的连接。
此外,它还提供了模拟与数字转换器(ADC)、串行通信接口(UART、SPI、I2C)以及定时器/计数器等功能。
4. 低功耗设计:C8051F020采用了优化的低功耗设计,具有多种休眠模式和快速唤醒功能,可在长时间运行的场景下降低功耗。
5. 开发工具支持:Silicon Labs提供完善的开发工具套件,包括集成开发环境(IDE)、调试器和仿真器等,方便开发者进行软件开发和调试。
二、C8051F020单片机的应用领域C8051F020单片机广泛应用于以下领域:1. 家电控制:C8051F020可用于控制家电产品,如空调、洗衣机、冰箱等,通过外围电路与其他传感器和执行器进行交互。
2. 工业自动化:C8051F020提供了丰富的通用输入输出引脚和通信接口,可用于工业自动化控制系统,如PLC、工业机器人等。
C8051F020与80C51单片机的异同点C8051F系列单片机是完全集成的混合信号系统级芯片,,具有与8051兼容的CIP-51微控制器内核,采用流水线结构,单周期指令运行速度是8051的12倍,全指令集运行速度是原来的9.5倍。
熟悉NCS-51系列单片机的工程技术人员可以很容易地掌握C8051F的应用技术并能进行软件的移植。
但是不能将8051的程序完全照搬的应用于C8051F单片机中,这是因为两者的内部资源存在较大的差异,必须经过加工才能予以使用。
C8051F020的内部电路包括CIP-51微控制器内核及RAM、ROM、I/O口、定时/计数器、ADC、DAC、PCA(印制电路组装)、SPI(串行外设接口)和SMBus等部件,即把计算机的基本组成单元以及模拟和数字外设集成在一个芯片上,构成一个完整的片上系统(SoC)。
2 相同点C8051F020单片机与80C51系列单片机的指令系统完全一样。
掌握80C51单片机的人员可以很容易地接受C8051F020的应用技术并能完成相应软件的移植。
3 主要硬件不同点3.1 运行速度C8051F020的指令运行速度是一般80C51系列单片机的10倍以上。
因为其CIP-51中采用了流水线处理结构,已经没有了机器周期时序,指令执行的最小时序单位为系统时钟,大部分指令只要1~2个系统周期即可完成。
又由于其时钟系统比80C51的更加完善,有多个时钟源,且时钟源可编程,时钟频率范围为0~25 MHz,当CIP-5l工作在最大系统时钟频率25 MHz时,它的峰值速度可以达到25 MI/s,C8051F020已进入了8位高速单片机行列。
3.2 I/O端口的配置方式C8051F020拥有8个8位的I/O端口,大量减少了外部连线和器件扩展,有利于提高可靠性和抗干扰能力。
其中低4个I/O端口除可作为一般的通用I/O端口外,还可作为其他功能模块的输入或输出引脚,它是通过交叉开关配置寄存器XBR0、XBR1、XBR选择并控制的,它们控制优先权译码选择开关电路如图1所示,可将片内的计数器/定时器、串行总线、硬件中断、比较器输出及其它的数字信号配置为在端口I/O引脚出现,这样用户可以根据自己的特定需要选择所需的数字资源和通用I/O口。
C8051F020在SD卡主控制器设计中的应用1 引言飞机飞行状况监测及数据采集仪。
用于采集飞机试飞时的各种飞行数据,要求大量的存储容量。
它具有功能强、性价比高、安装和使用方便的特点。
采集仪可以根据用户的要求进行配置,对八路传感器输入信号进行调理、采样及数据处理,将测量结果实时动态显示,并通过其报警功能,实现设备故障预警。
采集仪既可以单机独立工作,也可以通过RS-485总线将多达16台采集仪与计算机联机组成在线监测系统。
应用范围包括各种不同类型的电机、风机、泵、齿轮箱、轧机、风力发电机、电站和离心机,以及各种机械设备常见故障的状态监测等。
2 硬件功能原理与设计SD卡的外形和接口。
根据SD卡与主控制器的通信协议不同,SD卡对外提供两种访问模式:SD模式和SPI模式。
所用通信模式不同,SD卡引脚的功能也不同,具体引脚功能如表1所示。
在具体通信过程中,主机只能选择其中一种通信模式。
通信模式的选择对于主控制器来说是透明的,卡会自动检测复位命令的通信协议模式,而且通信模式一旦选定,系统在通电情况下不能改变。
SD模式下,主控制器使用SD总线访问SD卡。
可通常的单片机没有硬件SD总线,尽管可以借助通用口线用软件仿真,但访问速度较低,还要大量占用CPU时间,而单片机多具有SPI总线。
注:S--电源;I--输入;O--推挽输出;PP--推挽I/O。
在SPI总线模式下。
CS为主控制器向卡发送的片选信号,SCLK为主控制器向卡发送的时钟信号。
DI(DataIn)为主控制器向卡发送的单向数据信号,DO(DataOut)为卡向主控制器发送的单向数据信号。
SD卡的内部结构,还具有卡接口控制器、寄存器以及SD和SPI两种模式的对外接口等。
外部主控制器访问卡的外部信号线并不与存储器单元直接相连,而是通过卡的接口控制器与存储器单元接口相连。
卡内存储单元的读,擦,写由卡接口控制器根据主控制器的命令自动处理完成,而主控制器无须知道卡内是如何操作、管理存储单元的。
单片机C8051F020的初始化设置单片机C8051F020的初始化设置在喧闹的世界中,能静下心来研究技术也是很有趣的事情。
好多年没作些具体的技术工作了,幸好领导给分配一个单片机任务。
现在把研究的技术写下来,与朋友们分享。
研究C8051F020编程不能离开初始化设置。
对于简单程序,读技术手册,将用到的I/O口,中断,串口,晶振等正确初试化后,已经成功一半了。
晶振需要初始化,C8051F020有内部晶振,精度不高,一般电路都使用外部晶振。
初始化晶振主要是OSCXCN和OSCICN两个寄存器的设置。
具体初始化代码可由Silicon的配置程序自动生成:void Oscillator_Init(){int i = 0;OSCXCN = 0x67;for (i = 0; i < 3000; i++);while ((OSCXCN & 0x80) == 0);OSCICN = 0x08;}上面程序包括了晶振初始化的全部过程:1、使能外部振荡器:OSCXCN = 0x67;2、等待至少1m钟,等待外部振荡器起稳:for (i = 0; i < 3000; i++);3、查询OSCXCN的第八位XTLVLD是否为1,1表明外部振荡器起稳:while ((OSCXCN & 0x80) == 0);4、关内部晶振,切换到外部晶振 OSCICN = 0x08;而同事们的设置是OSCICN= 0x88;应该是使用外部振荡器,但是内部振荡器也没关,这样MCU耗能高些。
串口0(UART0)也需要配置:void UART0_Init (void){SCON0 = 0x50; // SCON0: 模式1,可接收,8位串口TMOD = 0x20; // TMOD: 定时器1, 模式2, 8位自动重载TH1 = -(SYSCLK/BAUDRATE/16); // 设置定时器1TR1 = 1; // 开始定时CKCON |= 0x10; // 定时器用SYSCLK作基准时间PCON |= 0x80; // 禁止UART0波特率/2}SCON0是UART0控制寄存器,用来选择传输模式。