c8051f020 IO配置总结

合集下载

C8051F020 学习笔记——基本概念

C8051F020 学习笔记——基本概念

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个中断源),允许大量的模拟和数字外设中断微控制器。

C8051f020IO配置小结五篇

C8051f020IO配置小结五篇

C8051f020IO配置小结五篇第一篇:C8051f020 IO配置小结C8051f020 I/O配置小结020的每个I/O口引脚都可以被配置为推挽或漏极开路输出。

同时引入了数字交叉开关,允许将内部数字系统资源映射到P0、P1、P2和P3的端口引脚。

通过设置交叉开关寄存器可将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。

必须在访问这些外设的I/O之前配置和允许交叉开关。

注意的问题:1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。

2.没有被分配到的引脚作为一般的数字通用I/O口。

3.P1口还可以用作ADC1的模拟输入。

4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的输出状态。

5.EMIF(外部存储器接口)是用于CPU与片外XRAM之间的数据传输通道,通过寄存器EMI0CF和EMI0CN选择和管理端口实现数据的传输。

6.为了能访问片外存储器空间,必须设置EMI0CN寄存器的内容为片外存储器的空间页地址。

7.如果把外部存储器接口(EMIF)设置在高端口则首先要把EMI0CF的PRTSEL位设置为1,选择高端口,同时选择地址的复用或非复用方式,在把XBR的外部寄存器的EMIFLE 位设置为0。

8.复用方式配置:在复用方式下,数据总线和地址总线的第8位共用相同的引脚(AD0~AD7)。

在该方式下,要用一个外部锁存器(如74HC373或相同功能的锁存器)保持RAM地址的低8位。

外部锁存器由ALE(地址锁存使能)信号控制,ALE信号由外部存储器接口逻辑驱动。

9.在总线复用时,需要把地址数据复用端口配置为漏极开路。

10.ALE高/低脉宽占1个SYSCLK周期,地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期,EMIF工作在地址/数据复用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF的步骤是:先将EMIF选到低端口或高端口;然后选择复用方式或非复用方式;再选择存储器的模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器);然后设置EMI0TC;最后通过寄存器PnMDOUT和P74OUT选择所期望的相关端口的输出方式。

C8051F02X外部存储器接口和IO端口配置

C8051F02X外部存储器接口和IO端口配置

C8051F02X外部存储器接口和IO端口配置美国Cygnal公司C8051F02X系列单片机是集成在一起芯片上的混合信号系统级单片机。

该单片机具有32/64位数字I/O端口(引脚)、25MIPS高速流水线式8051微控制器内核、64KB在系统可编程Flash存储器、64KB地址的外部存储器接口、4352(4096256)B 片内RAM、各自*的SPI、SMBUS/I2C和两个UART串行接口等特点。

其最突出的优点就是,通过设置交叉开关寄存器控制片内数字资源映*到外部I/O引脚,这就允许用户根据自己的特定应用,选择通用I/O端口和所需要数字资源。

当然,在设置数字交叉开关寄存器时,应该首先考虑EMIF的配置问题。

其配置不同,将导致单片机通过不同的端口(低或高)访问片外存储器和存储器映像的I/O部件,以及数字交叉开关是否分配外部设备给P0.7(WR)、P0.6(RD)、P0.5(ALE)引脚。

(如图EMIF设置为多路器模式。

)1EMIF和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系列),以及配置为复用模式或非复用模式等。

配置外部存储器接口的步骤下:*设置EMIF为低端口或高端口;*设置EMIF为复用模式或非复用模式;*选择存储器模式(片内方式、无块选择分片方式、带块选择分片方式、片外方式);*设置片外存储器或片外设备时基;*选择相关I/O端口(寄存器PnMOUT、P74OUT)的输出模式。

单片机C8051F020的初始化设置

单片机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控制寄存器,用来选择传输模式。

C8051F020单片机

C8051F020单片机

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学习笔记-IO初始化

C8051F020学习笔记-IO初始化

二,使用过程中,常常出现程序的IO口设置,包括设置为交叉开关,推挽方式等。

由于对这种设置方法不太了解,因此做一个专题。

//--------------------------------------------------------------------// I/O初始化程序//--------------------------------------------------------------------// 配置交叉开关和 GPIO 端口void xbar_init (void){XBR0 = 0x07; // 允许 I2C SPI和 UARTXBR1 = 0x00; //XBR2 = 0x40; // 允许交叉开关和弱上拉//PRT0CF |= 0xff; // 允许P0口的所有输出为弱上拉//P0MDOUT// 让交叉开关将这些引脚配置为输入//PRT1CF |= 0x40; // 允许 P1.6 (LED) 为弱上拉输出}(通过对比几个程序的I/O初始化,发现主要是对寄存器XBR0~2以及PRT(0~7)CF进行设置。

特将与IO口设置相关的寄存器做一个说明)2.1 GPIO口和数字外设口C8051F020/1/2/3 MCU 是高集成度的混合信号片上系统,有按8 位端口组织的64 个数字I/O 引脚。

低端口(P0、P1、P2 和P3)既可以按位寻址也可以按字节寻址。

高端口(P4、P5、P6 和P7)只能按字节寻址。

所有引脚都耐5V 电压,都可以被配置为漏极开路或推挽输出方式和弱上拉。

C8051F020/1/2/3 器件有大量的数字资源需要通过4 个低端I/O 端口P0、P1、P2 和P3 才能使用。

P0、P1、P2 和P3 中的每个引脚既可定义为通用的端口I/O(GPIO)引脚,又可以分配给一个数字外设或功能(例如:UART0 或/INT1),这种资源分配的灵活性是通过使用优先权交叉开关译码器实现的。

C8051F020概述

C8051F020概述

13
12-位 模拟---数字转换器(ADC0)
12-bit片上 逐次逼近型(SAR) 模拟—数字转换器 (ADC0) 9通道多路输开关和可编程的增益放大器 ADC 通过它专用寄存器编程 一个输入通道连接到内部温度传感器,其他的8个通则连接到 外部的输入引脚
14
8-Bit 模拟—数字转换器(ADC1)
CIP-51 介绍
CIP-51 是 Silicon Labs 公司的 C8051F020 MCU的CPU CIP-51实现了标准的 8051 结 构和定制的外设。 在25 MHz时,其峰值速度可达到 25MIPS CIP-51总共有 109 指令
3
C8051F020 系统概览
Silicon Labs 公司的 C8051F020是一款高集成 度的单芯片片上系统的混 合信号芯片,100引脚封装
98 90 88 80
ADC1CF
AMX1SL
P3IF
P2
SCON0 P1 TCON
EMI0TC
SBUF0 TMR3CN TMOD SPI0CFG TMR3RLL TL0
EMI0CF
SPIODAT TMR3RLH TL1
P0MDOUT
ADC1 TMR3L TH0
P1MDOUT
SPI0CKR TMR3H TH1
ADC1 也可以使用模拟电源 电压(AV+)作为参考电压。
18
内部参考电压发生器
内部参考电压电路由一个1.2 V 的带隙基准电压发生器和一个 2倍增益的输出缓冲放大器组成(2.4 V 输出)
内部的参考电压可以通过VREF引脚连到应用系统中的外部器 件也可以连到芯片的其它电压参考上
内部参考电压的使能/禁止及ADC0,ADC1的参考电压的选择 是通过参考电压控制寄存器REF0CN来配置的.

第2讲 C8051F020单片机总体结构及CIP51内核

第2讲 C8051F020单片机总体结构及CIP51内核
CY AC F0 RS1 RS0 OV
PSW.0
P
▼CY(PSW.7)进位/借位标志位。若ACC在运算过程中
发生了进位或借位,则CY=1;否则=0。它也是布尔处理 器的位累加器,可用于布尔操作。
▼AC(PSW.6)半进位/借位标志位。若ACC在运算过程
中,D3位向D4位发生了进位或借位,则CY=1,否则=0。机 器在执行“DA A”指令时自动要判断这一位,我们可以暂 时不关心它。
2、系统复位源框图
3、上电复位/掉电复位
上电复位:在上电期间,器件保持在复位状态,/RST引脚被驱动到低电平,
直到VDD上升到超过VRST电平。从复位开始到退出复位状态要经过一个延时。
上电和VDD监视器复位时序
掉电复位:
当发生掉电或因电源波动导致VDD降到VRST以下时,电源监视器 将/RST引脚驱动为低电平并使CIP-51保持复位状态。当VDD又回到高 于VRST的电平时,CIP-51将退出复位状态。
高速微控制器内核
数字 IO
模拟外设
2.1.1 高速控制器内核

◆高速、流水线结构的8051 兼容的CIP-51 内核(可达 25MIPS) ◆64K 字节可在系统编程的FLASH 存储器 ◆4352(4096+256)字节的片内RAM



◆全速、非侵入式的在系统调试接口(片内)
◆时钟电路 ◆片内看门狗定时器、VDD 监视器
P1MDOUT:端口0输出方式寄存器
Байду номын сангаас
(6) 配置端口引脚的输入方式
通过设置输出方式为“漏极开路”并向端口数据寄存器中的相应 位写‘1’将端口引脚配置为数字输入。
例如:
设置P3MDOUT.7 为逻辑‘0’,并设置P3.7 为逻辑‘1’ 即可将P3.7 配置为数字输入。

C8051F020入门指导解读

C8051F020入门指导解读

MCU 的程序存储器包含64K 字节的FLASH。该存储器 以512 字节为一个扇区,可以在系统编程,且不需特别的 外部编程电压。
1.3 JTAG 调试和边界扫描
C8051F020系列具有片内JTAG边界扫描和调试电路, 通过4脚JTAG接口并使用安装在最终应用系统中的产品器 件就可以进行非侵入式、全速的在系统调试。 该JTAG接口完全符合IEEE1149.1规范,为生产和测试 提供完全的边界扫描功能。 Silicon Labs的调试系统支持观察和修改存储器和寄 存器,支持断点、观察点、堆栈指示器和单步执行。
在一个标准的8051 中,除MUL 和DIV 以外所有指令 都需要12 或24 个系统时钟周期,最大系统时钟频率为 12-24MHz。 而对于CIP-51 内核,70%的指令的执行时间为1 或2 个系统时钟周期,只有4 条指令的执行时间大于4 个系统 时钟周期。
1.1.3 增加的功能
扩展的中断系统向CIP-51 提供22 个中断源(标准8051 只有7 个中断源),允许大量的模拟和数字外设中断微控 制器。 MCU 可有多达7 个复位源:一个片内VDD 监视器、一 个看门狗定时器、一个时钟丢失检测器、一个由比较器0 提供的电压检测器、一个软件强制复位、CNVSTR 引脚 及/RST 引脚。 MCU 内部有一个独立运行的时钟发生器,在复位后被默 认为系统时钟。如果需要,时钟源可以在运行时切换到外 部振荡器,外部振荡器可以使用晶体、陶瓷谐振器、电容、 RC 或外部时钟源产生系统时钟。
1.4 可编程数字I/O 和交叉开关
该系列MCU具有标准8051的端口(0、1、2和3)。在 F020/2中有4个附加的端口(4、5、6和7),因此共有64 个通用端口I/O。 每个端口I/O引脚都可以被配置为推挽或漏极开路输出。 数字交叉开关。

C8051F020入门指导

C8051F020入门指导
接到端口I/O引脚。
DAC为电压输出方式,有灵活的输出更新机制。这一机制允许
用软件写和定时器2、定时器3及定时器4的溢出信号更新DAC输出。
C8051F020/2的DAC之电压基准由专用的VREFD输入引脚提供,而
C8051F021/3的DAC之电压基准由器件内部的电压基准提供。DAC在
作为比较器的参考电压或为ADC差分输入提供偏移电压时非常有用。

真正8 位500 ksps 的ADC,带PGA 和8 通道模拟多路开关

两个12 位DAC,具有可编程数据更新方式

64K 字节可在系统编程的FLASH 存储器

4352(4096+256)字节的片内RAM


可寻址64K 字节地址空间的外部数据存储器接口
硬件实现的SPI、SMBus/ I2C 和两个UART 串行接
I/O 引脚(C8051F021/3)。下面列出了一些主要特性:

高速、流水线结构的8051 兼容的CIP-51 内核(可达25MIPS)

全速、非侵入式的在系统调试接口(片内)

真正12 位(C8051F020/1)或10 位(C8051F022/3)、 100
ksps 的8 通道ADC,带PGA和模拟多路开关

端口0–3中所有未被交叉开关分配的引脚都可以作为通用I/O
(GPI/O)引脚,通过读或写相应的端口数据寄存器访问。

被交叉开关分配的那些端口引脚的输出状态受使用这些引脚
的数字外设的控制。

不管交叉开关是否将引脚分配给外设,读一个端口数据寄存器
(或端口位)将总是返回引脚本身的逻辑状态。

C8051F020实验板使用要领.

C8051F020实验板使用要领.

C8051F020实验板使用要领
1.上电顺序:
注意电脑关机并将实验板上拨动开关打在关闭状态
接上电脑串口电缆(如电脑没有串口可使用高质量的USB→串口线)
连接EC5仿真器到板上的JTAG接口和电脑的空闲USB接口
连接自制的小板到对应模拟或数字端口,检查连接和电源的正确性
打开电脑,连接9v电源到实验板并打开实验板电源开关
电脑运行Keil UV2,编译自己的程序并进入调试状态
(此时可以看到EC5上的对应指示灯亮和程序在板上的执行)
运行串口调试精灵监控串口状态
2.关机顺序:
关闭串口调试精灵
停止并关闭UV2调试
关闭实验板电源
插拔自制小板
关闭电脑或断开USB虚拟串口
插拔串口电缆
3.注意事项
建议设置uv2调试结束断开仿真器EC5电源
没有关闭串口精灵的情况下切断通讯容易引起电脑串口被误占用
没有关闭uv2调试的情况下直接实验板断电会使uv2进入假死机
串口带电且无热插拔功能,串口在没有断开供电的情况下不允许插拔!
自制小板在接上实验板前后未通电情况下必须仔细检查有无短路或接错!
实验板GPIO引脚间在无特殊要求下不要短接,也不允许通过自制小板短接!
自制小板不能将电源(高压、大电流)通过连线直接接上实验板的GPIO端口!
以上2条也适合于实验板上引出的C8051F020的其他引脚(特别是模拟引脚)!
C8051F020的GPIO引脚建议禁止内部弱上拉,禁止推挽,通过510电阻连接小板。

C8051F020-IO初始化

C8051F020-IO初始化

I/O口设置C8051fxx系列单片机使用过程中,常常出现程序的IO口设置,包括设置为交叉开关,推挽方式等。

由于对这种设置方法不太了解,因此做一个专题。

//--------------------------------------------------------------------//I/O初始化程序//--------------------------------------------------------------------//配置交叉开关和GPIO端口void xbar_init(void){XBR0=0x07;//允许I2C SPI和UARTXBR1=0x00;//XBR2=0x40;//允许交叉开关和弱上拉//PRT0CF|=0xff;//允许P0口的所有输出为弱上拉//P0MDOUT//让交叉开关将这些引脚配置为输入//PRT1CF|=0x40;//允许P1.6(LED)为弱上拉输出}(通过对比几个程序的I/O初始化,发现主要是对寄存器XBR0~2以及PRT(0~7)CF进行设置。

特将与IO口设置相关的寄存器做一个说明)1.1GPIO口和数字外设口C8051F020/1/2/3MCU是高集成度的混合信号片上系统,有按8位端口组织的64个数字I/O引脚。

低端口(P0、P1、P2和P3)既可以按位寻址也可以按字节寻址。

高端口(P4、P5、P6和P7)只能按字节寻址。

所有引脚都耐5V电压,都可以被配置为漏极开路或推挽输出方式和弱上拉。

C8051F020/1/2/3器件有大量的数字资源需要通过4个低端I/O端口P0、P1、P2和P3才能使用。

P0、P1、P2和P3中的每个引脚既可定义为通用的端口I/O(GPIO)引脚,又可以分配给一个数字外设或功能(例如:UART0或/INT1),这种资源分配的灵活性是通过使用优先权交叉开关译码器实现的。

注意,不管引脚被分配给一个数字外设或是作为通用I/O,总是可以通过读相应的数据寄存器得到端口I/O引脚的状态。

c8051f020端口配置说明

c8051f020端口配置说明

C8051F的每个I/O口引脚都可以被配置为推挽或漏极开路输出。

同时引入了数字交叉开关,允许将内部数字系统资源映射到P0、P1、P2和P3 的端口引脚。

通过设置交叉开关寄存器可将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。

必须在访问这些外设的I/O之前配置和允许交叉开关。

注意的问题:1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。

2.没有被分配到的引脚作为一般的数字通用I/O口。

3.P1口还可以用作ADC1的模拟输入。

4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的输出状态。

5.EMIF(外部存储器接口)是用于CPU与片外XRAM之间的数据传输通道,通过寄存器EMI0CF 和EMI0CN选择和管理端口实现数据的传输。

6.为了能访问片外存储器空间,必须设置EMI0CN寄存器的内容为片外存储器的空间页地址。

7.如果把外部存储器接口(EMIF)设置在高端口则首先要把EMI0CF的PRTSEL位设置为1,选择高端口,同时选择地址的复用或非复用方式,在把XBR的外部寄存器的EMIFLE位设置为0。

8.复用方式配置:在复用方式下,数据总线和地址总线的第8位共用相同的引脚(AD0~AD7)。

在该方式下,要用一个外部锁存器(如 74HC373或相同功能的锁存器)保持RAM地址的低8位。

外部锁存器由ALE(地址锁存使能)信号控制,ALE信号由外部存储器接口逻辑驱动。

9.在总线复用时,需要把地址数据复用端口配置为漏极开路。

10.ALE高/低脉宽占1个SYSCLK周期,地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期,EMIF工作在地址/数据复用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF 的步骤是:先将EMIF选到低端口或高端口;然后选择复用方式或非复用方式;再选择存储器的模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器);然后设置EMI0TC;最后通过寄存器PnMDOUT和P74OUT选择所期望的相关端口的输出方式。

C8051F020实验指导书

C8051F020实验指导书

盛年不重来,一日难再晨。

及时宜自勉,岁月不待人。

单片机实验指导书目录第一章:实验设备简介 (1)1.1 系统实验设备的组成 (1)1.2 Silicon Labs C8051F 单片机开发工具简介 (1)1.3 DICE-C8051F嵌入式实验/开发系统简介 (3)第二章集成开发环境KEIL C软件使用指南 (7)2.1 KEIL C软件具体使用说明 (7)第三章实验指导 (20)3.1 C8051F 单片机I/O 口交叉开关设置 (20)3.2 数字I/O端口实验 (22)3.3 定时器实验 (24)3.4 外部中断实验 (27)3.5 键盘显示实验 (29)3.6 六位动态LED数码管显示实验 (31)3.7 RS3232串口通讯实验 (33)3.8 综合设计 (35)使用特别说明:(1) 每次实验前,请仔细阅读实验指导,连线完毕,检查无误后,方可打开电源。

即连线时必须在断电状态下。

(2) 程序运行过程中,不要关闭电源,如果要断电,必须停止运行程序,并且退出程序调试状态,否则会引起KEIL C软件非正常退出,甚至引起DICE-EC5仿真器工作异常。

(3) 如出现上述(2)的的误操作,引起DICE-EC5仿真器工作异常,可对DICE-EC5仿真器进行复位。

(在光盘中找到文件夹“USB Reset”中的“USB Debug Adapter Firmware Reset”文件,双击运行,在弹出的对话框中点击“Update firmware”按钮,在提示成功后,点击“OK”按钮,退出复位程序。

DICE-EC5仿真器即可正常工作。

在下一次调试、下载程序时会提示“Do you want to update serial adapter now? ”,点击“确定”即可。

第一章:实验设备简介1.1 系统实验设备的组成DICE-C8051F嵌入式实验/开发系统由C8051F020 CPU 板、DICE-EC5仿真器和系统实验板三部分组成,应用该设备可进行片上系统单片机较典型应用的实验,请参见以下介绍。

c8051简介

c8051简介

C8051F020器件是完全集成的混合信号系统级 MCU 芯片,具有 64 个数字 I/O 引脚。

高速、流水线结构的 8051 兼容的 CIP-51 内核(可达 25MIPS)
全速、非侵入式的在系统调试接口(片内)
真正 12 位、 100 ksps 的8 通道 ADC,带 PGA和模拟多路开关
真正 8 位 500 ksps的 ADC,带 PGA和 8 通道模拟多路开关
两个 12 位 DAC,具有可编程数据更新方式
64K字节可在系统编程的 FLASH存储器
4352(4096+256)字节的片内 RAM
可寻址 64K字节地址空间的外部数据存储器接口
硬件实现的 SPI、SMBus/ I2C 和两个 UART 串行接口
5 个通用的 1
6 位定时器
具有 5 个捕捉/比较模块的可编程计数器/定时器阵列
片内看门狗定时器、VDD监视器和温度传感器
具有片内 VDD 监视器、看门狗定时器和时钟振荡器的 C8051F020/1/2/3 是真正能独立工
作的片上系统。

所有模拟和数字外设均可由用户固件使能/禁止和配置。

FLASH 存储器还具有
在系统重新编程能力,可用于非易失性数据存储,并允许现场更新 8051 固件。

片内 JTAG调试电路允许使用安装在最终应用系统上的产品 MCU进行非侵入式(不占用
片内资源)、全速、在系统调试。

该调试系统支持观察和修改存储器和寄存器,支持断点、观
察点、单步及运行和停机命令。

在使用 JTAG调试时,所有的模拟和数字外设都可全功能运行.。

C8051F020硬件电路设计

C8051F020硬件电路设计

C8051F020硬件电路设计一直觉得自己设计的C8051F020电路板的过程比较凌乱,想找个时间来总结下,所以就有了这篇文章。

其实这个电路板的功能很简单,主要就是板上设计了LCD12864、LCD1602以及键盘的接口,但是在设计过程中出现了很多问题,现在来做个总结。

首先来个电路板的照片如图1所示。

电路板所以的IO口都用牛角座引出,方便连接。

图1 系统板实物图片1、关于ADC的设计。

去年在研究C8051F020片内的ADC0的时候发现一个奇怪的问题,每当采采集电压达到3V左右的时候采集的数字量就已经达到了最大值4095(参考电压接的是3.3v),即使电压再升高,比如达到3.2V,采集的电压的数字量始终是4095(12位的ADC),当时想当然的认为是器件的非线性问题,但是官方给出的数据是转换误差为:±1LSB,当时就一直怀疑芯片给的数据有问题。

为了验证是否是非线性问题,于是就自己做测试,采集到的数据如图2所示。

图2 ADC0测试曲线从图2中看到器件在0~3 V左右的时候采集的数据线性是非常好的,只是在达到3 V以后数据始终是4095。

这到底是什么问题呢,当时由于时间紧,没有仔细的读数据手册,只是在程序中把参考电压的值改为3.1V(测试的时候3.1V 达到极限),这样程序处理也是没有问题的。

现在又要从新设计这个板子,由于时间比较充裕,自己就发誓一定要找到原因。

首先排除的是器件的非线性问题,这个从图2中就已经证实了。

那么是数据手册给的数据有问题么?虽然有这个怀疑,但是想来数据手册给的数据应该是没问题的,那么估计是没有仔细了解数据手册的内容,于是乎就仔细的研读了数据手册。

在一个叫电压基准的电气特性的表格中找到了答案,如图3所示。

图3 电压基准的电气特性从图3中看到外部基准电压的范围为1~A V+-0.3V,这里的A V+为3.3V,也就是说外部输入的参考电压必须比输入给ADC的电源电压小0.3V。

C8051F02X外部存储器接口和I/O端口配置

C8051F02X外部存储器接口和I/O端口配置

C8051F02X外部存储器接口和I/O端口配置
魏永红;张勉;等
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2003(000)004
【摘要】介绍美国Cygnal公司生产的C8051F02X系列单片机的外部存储器接口,I/O端口配置方法和有关注意的问题;在此基础上列举两个关于EMIF、I/O的
配置应用。

【总页数】3页(P38-40)
【作者】魏永红;张勉;等
【作者单位】山东师范大学;山东师范大学
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.基于C8051F02x单片机外部存储器的设计 [J], 刘志京
2.C8051F02X外部存储器接口(EMIF)和I/O端口配置及应用 [J], 魏永红;赵捷
3.增强型并行端口EPP与FIFO存储器IDT7201的接口电路及编程 [J], 宋大雷;张东来;徐殿国;王炎;苏丹
4.无数据地址总线端口的MOTOROLA系列单片机与外部存储器的并行接口技术[J], 李冰
5.C8051F02X外部存储器接口和I/O端口配置 [J], 魏永红;张勉;赵捷
因版权原因,仅展示原文概要,查看原文内容请购买。

达达电子C8051F020、120最小系统使用说明及原理图

达达电子C8051F020、120最小系统使用说明及原理图

C8051F020、120最小系统使用说明C8051f020/C8051f120最小系统是我们达达电子工作室自主制作的,为了方便大家开发使用,排针都是单排引出,可以作为核心板插在你的板子上使用!特点:1、引出所有的IO口,ADC,DAC,CP端口!即所有的端口基本引出2、板上留有3V和5V的电源!方便使用!5V是用TL431基准设计的,相对稳定!3、端口是单排设计,间距标准方便你做实验整排引出IO 或者作为核心板层叠在你的板子上!方便设计,减少干扰!4、芯片所有的电源端口都加有滤波105和104电容增强其抗干扰的能力!5、电压基准上加有104电容!内部基准输出也加有104和4.7uF的滤波电容!使ADC和DAC更加稳定!此板子图片为:1、板子电源电路020和120芯片工作电压为3.3V,输入电压经过1117-3.3V稳压,输入电压支持5~9V,我们选择的是优质1117芯片。

输入电源测试可以高至12V,但是不建议大家长期使用,以免烧坏芯片!最后电源电压经过2R电阻和105、104电容滤波分别送入MCU得到A VCC和DVCC!以增强MCU工作电压的稳定性这个5V用TL431做的电流经过8050放大,最大可以支持200MA的电流,要使用此5V电压,系统的输入电压要高于6V。

注意:这边过大电流会击穿三极管导致电压高于5V使用的时候需要经常测试是不是5V,经过板子售后情况,建议大家还是少用5V的系统和c8051f的IO连接!最好加有限流电阻,以免经常烧坏MCU!2、板子上电源基准介绍按板子上的介绍,左边是TL431做的2.5V基准!使用的时候需要根据板子上的实际电压来恒定。

一般我们的2.5V误差不会很大,中间一列3个分辨是DAC基准VERFD,ADC0基准VREF0,ADC1的基准VREF1,右边的一列都是内部基准输出VREF,使用跳冒选择。

如需要VREFD使用外部基准2.5V就把跳冒跳在左面。

如果想使用芯片的内部基准就把跳冒跳在右边!3、板子MONEN跳冒的使用如图J8左边为GND中间为MONEN右边是VCC。

C8051F320 I-O使用总结

C8051F320 I-O使用总结

C8051F320 I/O 使用总结
首先, 要区分数字信号与模拟信号!!!!并且还有是输入还是输出.其次,大家要知道不论在交叉开关的设置如何,端口I/O 引脚的状态总是可以被读到相应的
端口锁存器.
即:不管引脚被分配给数字外设还是作为通用I/O 端口,总是可以通过读相应
的数据寄存器得到I/O 端口引脚的状态.
再次
当一个引脚被配置为模拟输入时,它的弱上拉、数字驱动器和数字接收
器都被禁止,这可以节省功耗并减小模拟输入的噪声。

当一个引脚被配置为数字输入时,设为漏开,并向端口写1,引脚为高阻,按照I/O 结构原理图,初始化有弱上拉。

引脚与施密特连接,所以在引脚上的
电平状态是可以读进端口寄存器的,而且经过试验验证,5v 的逻辑电平也可以分辨出来,但是建议加上拉电阻。

不加也可以。

有一个网友:作为数字输入时,输出方输出特性千差万别,对于输出阻抗
高的器件可以不加上拉,对于输出阻抗低的器件就要用上拉电阻,否则无法输
出高电平。

PDF 上说交叉开关分配的输入引脚(例如NSS 或/INT0)是漏极开路或推挽并不重要, 这些引脚被配置为输入而与相应端口配置寄存器的设置无关。

为了将一个通用I/O 引脚配置为输入与这一引脚相关的端口配置寄存器位必须被清0。

这样即可选择该引脚为漏极开路输出方式另外与该引脚相关的端口位必须
被置1 这样使该引脚处于高阻态。

或在XBR2 中的WEAKPUD 被清0 时弱上
拉为高电平,这是端口引脚的复位配置。

好像可以解释为输入状态!!!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c8051f020 I/O配置小结(输出方式:漏极开路;推挽方式)2011-07-06 09:55C8051f020 I/O配置小结020的每个I/O口引脚都可以被配置为推挽或漏极开路输出。

同时引入了数字交叉开关,允许将内部数字系统资源映射到P0、P1、P2和P3的端口引脚。

通过设置交叉开关寄存器可将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。

必须在访问这些外设的I/O之前配置和允许交叉开关。

注意的问题:1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。

2.没有被分配到的引脚作为一般的数字通用I/O口。

3.P1口还可以用作ADC1的模拟输入。

4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的输出状态。

5.EMIF(外部存储器接口)是用于CPU与片外XRAM之间的数据传输通道,通过寄存器EMI0CF和EMI0CN选择和管理端口实现数据的传输。

6.为了能访问片外存储器空间,必须设置EMI0CN寄存器的内容为片外存储器的空间页地址。

7.如果把外部存储器接口(EMIF)设置在高端口则首先要把EMI0CF的PRTSEL位设置为1,选择高端口,同时选择地址的复用或非复用方式,在把XBR的外部寄存器的EMIFLE位设置为0。

8.复用方式配置:在复用方式下,数据总线和地址总线的第8位共用相同的引脚(AD0~AD7)。

在该方式下,要用一个外部锁存器(如74HC373或相同功能的锁存器)保持RAM地址的低8位。

外部锁存器由ALE(地址锁存使能)信号控制,ALE信号由外部存储器接口逻辑驱动。

9.在总线复用时,需要把地址数据复用端口配置为漏极开路。

10.ALE高/低脉宽占1个SYSCLK周期,地址建立/保持时间占0个SYSCLK周期,/WR和/RD 占12个SYSCLK周期,EMIF工作在地址/数据复用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF的步骤是:先将EMIF选到低端口或高端口;然后选择复用方式或非复用方式;再选择存储器的模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器);然后设置EMI0TC;最后通过寄存器PnMDOUT和P74OUT选择所期望的相关端口的输出方式。

如:void PORT_Init (void){XBR2 = 0x40; /*使能交叉开关和弱上拉*/P74OUT |= 0xff; /*使能P4~P7推挽输出*/EMI0CF |= 0x2c; /*EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉宽占1个SYSCLK周期*/EMI0TC |= 0x6c; /*地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期*/P3MDOUT |= 0xdf; /*使能P3.5推挽输出*/}11.避免高端口处于“浮空”状态,以避免因输入浮空为无效逻辑电平而导致不必要的功率消耗,为此应采取如下措施的任何一种:a.将XBR2.7位设置为逻辑0选择弱上拉状态R/W R/W R/W R/W R/W R/W R/W R/W 复位值WEAKPUD XBARE - T4EXE T4E UART1E EMIFLE CNVSTE00000000位7 位6 位5 位4 位3 位2 位1 位0 SFR地址位7 WEAKPUD 弱上拉禁止位0 弱上拉全局允许1 弱上拉全局禁止位6 XBARE 交叉开关允许位0 交叉开关禁止端口0 1 2 和3 的所有引脚被强制为输入方式1 交叉开关允许位5 未用读0 写=忽略位4 T4EXE T4EX 输入允许位0 T4EX 不连到端口引脚1 T4EX 连到端口引脚位3 T4E T4 输入允许位0 T4 不连到端口引脚1 T4 连到端口引脚位2 UART1E UART1 I/O 允许位0 UART1 I/O 不连到端口引脚1 UART1 TX 和RX 连到两个端口引脚位1 EMIFLE 外部存储器接口低端口允许位0 P0.7 P0.6 和P0.5 的功能由交叉开关或端口锁存器决定1 如果EMI0CF.4 = 0 外部存储器接口为复用方式则P0.7 (/WR) P0.6 (/RD)和P0.5 (/ALE)被交叉开关跳过它们的输出状态由端口锁存器和外部存储器接口决定1 如果EMI0CF.4 = 1 外部存储器接口为非复用方式则P0.7 (/WR)和P0.6 (/RD)被交叉开关跳过它们的输出状态由端口锁存器和外部存储器接口决定位0 CNVSTE 外部转换启动输入允许位0 CNVSTR 不连到端口引脚1 CNVSTR 连到端口引脚;b.令P74OUT=0xFF,将高端口输出方式配置为推拉方式(P74OUT为高端口输出方式寄存器);c.向高端口数据寄存器P4、P5、P6和P7写0。

12.配置端口引脚的输出方式每个端口引脚的输出方式都可被配置为漏极开路或推挽方式。

在推挽方式下向端口数据寄存器中的相应位写逻辑0 将使端口引脚被驱动到GND 写逻辑1 将使端口引脚被驱动到VDD ,在漏极开路方式下向端口数据寄存器中的相应位写逻辑0 将使端口引脚被驱动到GND 写逻辑1 将使端口引脚处于高阻状态,当系统中不同器件的端口引脚有共享连接。

即多个输出连接到同一个物理线时(例如SMBus 连接中的SDA 信号),使用漏极开路方式可以防止不同器件之间的冲突。

(推挽方式在有些书中称为推拉方式)转载-关于开漏、推挽方式2008-01-27 17:53漏级开路即高阻状态,适用于输入/输出,其可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻或使用如LCX245等电平转换芯片。

有些朋友,尤其是未学过此方面知识的朋友,在实际工作中将I/O口设置为漏开,并想输出高电平,但向口线上写1后对方并未认出高电平,但用万用表测量引脚确有电压,这种认为是不对的,对于高阻状态来说,测量电压是无意义的,正确的方法应是外加上拉电阻,上拉电阻的阻值=上拉电压/芯片引脚最大灌(拉)电流。

推挽方式可完全独立产生高低电平,推挽方式为低阻,这样,才能保证口线上不分走电压或分走极小的电压(可忽略),保证输出与电源相同的高电平,推挽适用于输出而不适用于输入,因为若对推挽(低阻)加高电平后,I=U/R,I会很大,将造成口的烧毁。

对与C8051F的很多型号片子,将I/O口设置为推挽方式的做法为:PnMDOUT=0xff,Pn=0x00,这样设置I/O口为推挽,并输出低电平(可降低功耗)将I/O口设置为漏开方式的做法为:PnMDOUT=0x00,Pn=0x11,这样设置I/O口为漏开。

如果学过三极管放大电路一定知道,前置单管放大器和功放末级放大电路的区别。

单片机内部的逻辑经过内部的逻辑运算后需要输出到外面,外面的器件可能需要较大的电流才能推动,因此在单片机的输出端口必须有一个驱动电路。

这种驱动电路有两种形式:其中的一种是采用一只N型三极管(npn或n沟道),以npn三极管为例,就是e接地,b接内部的逻辑运算,c引出,b受内部驱动可以控制三极管是否导通但如果三极管的c极一直悬空,尽管b极上发生高低变化,c极上也不会有高低变化,因此在这种条件下必须在外部提供一个电阻,电阻的一端接c(引出脚)另一端接电源,这样当三极管的b有高电压是三极管导通,c电压为低,当b为低电压时三极管不通,c极在电阻的拉动下为高电压,这种驱动电路有个特点:低电压是三极管驱动的,高电压是电阻驱动的(上下不对称),三极管导通时的ec内阻很小,因此可以提供很大的电流,可以直接驱动led甚至继电器,但电阻的驱动是有限的,最大高电平输出电流=(vcc-Vh)/r;另一种是互补推挽输出,采用2只晶体管,一只在上一只在下,上面的一只是n型,下面为p型(以三极管为例),两只管子的连接为:npn(上)的c连vcc,pnp(下)的c接地,两只管子的ee,bb相连,其中ee作为输出(引出脚),bb接内部逻辑,这个电路通常用于功率放大点路的末级(音响),当bb接高电压时npn管导通输出高电压,由于三极管的ec电阻很小,因此输出的高电压有很强的驱动能力,当bb接低电压时npn截至,pnp导通,由于三极管的ec电阻很小因此输出的低电压有很强的驱动能力,简单的例子,9013导通时ec电阻不到10欧,以Vh=2.5v,vcc=5v计算,高电平输出电流最大=250MA,短路电流500ma,这个计算同时告诉我们采用推挽输出时一定要小心千万不要出现外部电路短路的可能,否则肯定烧毁芯片,特别是外部驱动三极管时别忘了在三极管的基极加限流电阻。

推挽输出电路的形式很多,有些单片机上下都采用n型管,但内部逻辑提供互补输出,以上的说明仅仅为了说明推挽的原理,为了更深的理解可以参考功率放大电路。

推挽方式可完全独立产生高低电平,推挽方式为低阻,这样,才能保证口线上不分走电压或分走极小的电压(可忽略),保证输出与电源相同的高电平,推挽适用于输出而不适用于输入,因为若对推挽(低阻)加高电平后,I=U/R,I会很大,将造成口的烧毁。

对与C8051F的很多型号片子,将I/O口设置为推挽方式的做法为:PnMDOUT=0xff,Pn=0x00,这样设置I/O口为推挽,并输出低电平(可降低功耗)将I/O口设置为漏开方式的做法为:PnMDOUT=0x00,Pn=0x11,这样设置I/O口为漏开。

推挽输出0的时候和开漏特性一样,就是1的时候可以当作直接接VCC.推挽输出的驱动能力相当强,因为输出1就等于接到了VCC.而同时推挽输出的IO也需要注意不要直接接到地,否则一旦输出1,就等于VCC通过内部的场效应管直接到地了,这时候IO端发热就很大,时间长就就拜拜了.你看到DX32实验板上,按键部分都是串了个300欧才到地的,就是为了避免IO误操作,使这些输入变成推挽输出1而做的保护.以此为设计依据,一般情况下,所有的IO都尽量避免直接到地,即使这个IO你是打算用来做输入的.。

相关文档
最新文档