1、基于 C8051F330 单片机系统设计入门邬杨波2008.08.08- 1 -目 录1、C8051F330 单片机结构特点1.1 C8051F330 单片机概况1.2 CIP-51TM 微控制器核1.3 片内存储器1.4 片内调试电路1.5 可编程数字 I/O 和交叉开关1.6 串行端口1.7 可编程计数器阵列1.8 10 位模/数转换器1.9 比较器1.10 10 位电流输出 DAC1.11 引脚和封装定义2、C8051F330 单片机系统硬件设计要点2.1 复位源特点及外部复位电路连接2.2 C2 接口电路2.3 时钟系统特点及使用2.4 I/O 端口和交叉开关特点及配置3、C8051F
2、330 单片机系统软件设计要点3.1 单片机的初始化设置3.2 软件延时程序- 2 -1 C8051F330 单片机特点1.1 C8051F330单片机概况模拟外设 10位 ADC(只限于F330 ) 转换速率可达200ksps 可多达16个外部单端或差分输入 VREF可在内部VREF、外部引脚或VDD中选择 内部或外部转换启动源 内置温度传感器 10位电流输出DAC (只限于F330) 比较器 可编程回差电压和响应时间 可配置为中断或复位源 小电流(0.4A) 在片调试 片内调试电路提供全速、非侵入式的在系统调试(不需仿真器!) 支持断点、单步、观察/ 修改存储器和寄存器 比使用仿真芯片、目
3、标仿真头和仿真插座的仿真系统有更优越的性能 廉价而完整的开发套件 供电电压2.7V - 3.6V 典型工作电流:6.4mA 25MHz 9A 32KHz 典型停机电流:0.1 A 温度范围:-40C - +85C高速8051微控制器内核 流水线指令结构;70%的指令的执行时间为一个或两个系统时钟周期 速度可达25MIPS(时钟频率为25MHz时) 扩展的中断系统 存储器 768字节内部数据RAM(256+512) 8KB FLASH;可在系统编程,扇区大小为 512字节 数字外设 17个端口I/O ;均耐5V电压,大灌电流 硬件增强型UART 、SMBus和增强型SPI 串口 4个通用16位计
4、数器/定时器 16位可编程计数器/定时器阵列( PCA),有3个捕捉/比较模块 使用PCA或定时器和外部时钟源的实时时钟方式 时钟源 两个内部振荡器: 24.5MHz,2%的精度,可支持无晶体UART 操作 80/40/20/10 kHz低频率、低功耗振荡器 外部振荡器:晶体、RC、C 、或外部时钟 可在运行中切换时钟源,适用于节电方式 - 3 -1.2 CIP-51TM 微控制器核 1.2.1 与8051完全兼容 C8051F330/1系列器件使用 Silicon Labs的专利CIP-51微控制器内核。CIP-51与MCS-51 TM指令集完全兼容,可以使用标准803x/805x 的汇编器
5、和编译器进行软件开发。CIP-51内核具有标准8052的所有外设部件,包括4个16位计数器/定时器、一个具有增强波特率配置的全双工UART、一个增强型SPI端口、768字节内部RAM、128字节特殊功能寄存器(SFR)地址空间及17个I/O 端口。 1.2.2 速度提高 CIP-51采用流水线结构,与标准的8051结构相比指令执行速度有很大的提高。在一个标准的8051中,除MUL和DIV以外所有指令都需要12或24个系统时钟周期,最大系统时钟频率为12-24MHz。而对于 CIP-51内核,70%的指令的执行时间为1或2个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。 CIP-51
6、共有111条指令。下表列出了指令条数与执行时所需的系统时钟周期数的关系。 行周期数 1 2 2/3 3 3/4 4 4/5 5 8指令数 26 50 5 16 7 3 1 2 1- 4 -1.2.3 增加的功能 C8051F330/1 系列MCU 在CIP-51内核和外设方面有几项关键性的改进,提高了整体性能,更易于在最终应用中使用。 扩展的中断系统向CIP-51 提供 14个中断源(标准8051只有 7个中断源),允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU干预,因而有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。 MCU有多达8个复位
7、源 :上电复位电路( POR)、一个片内VDD监视器(当电源电压低于VRST时强制复位)、一个看门狗定时器、一个时钟丢失检测器、一个由比较器0提供的电压检测器、一个软件强制复位、外部复位输入引脚和FLASH读/ 写错误保护电路复位。除了POR、复位输入引脚及FLASH操作错误这三个复位源之外,其他复位源都可以被软件禁止。在一次上电复位之后的MCU初始化期间,WDT可以被永久性使能。 C8051F330/1器件的内部振荡器在出厂时已经被校准为24.5MHz 2%,该振荡器的周期可以由用户以大约0.5%的增量编程;片内还集成了一个低速振荡器,更适合于低功耗操作。器件内集成了外部振荡器驱动电路,允许
8、使用晶体、陶瓷谐振器、电容、RC或外部CMOS时钟源产生系统时钟。如果需要,时钟源可以在运行时切换到外部振荡器。外部振荡器在低功耗系统中是非常有用的,它允许MCU从一个低频率(节电)外部晶体源运行,当需要时再周期性地切换到高速(可达25MHz)的内部振荡器。图1.4 片内时钟和复位电路51.3 片内存储器 CIP-51有标准8051的程序和数据地址配置。它包括256字节的数据RAM,其中高128字节为双映射。用间接寻址访问通用RAM的高128字节,用直接寻址访问128字节的SFR地址空间。数据RAM的低 128字节可用直接或间接寻址方式访问。前32个字节为4个通用寄存器区,接下来的16字节既可
9、以按字节寻址也可以按位寻址。 程序存储器包含8KB的FLASH。该存储器以512字节为一个扇区,可以在系统编程,且不需特别的编程电压。图1.5给出了MCU系统的存储器结构。 图1.5 片内存储器组织61.4 片内调试电路 C8051F330/1器件具有片内 Silicon Labs 2线(C2)接口调试电路,支持使用安装在最终应用系统中的产品器件进行非侵入式、全速的在系统调试。 Silicon Labs的调试系统支持观察和修改存储器和寄存器,支持断点和单步执行。不需要额外的目标RAM 、程序存储器、定时器或通信通道。在调试时所有的模拟和数字外设都正常工作。当MCU单步执行或遇到断点而停止运行时
10、,所有的外设(ADC和SMBus 除外)都停止运行,以保持与指令执行同步。图1.6 开发/ 在系统调试示意图 1.5 可编程数字I/O和交叉开关 C8051F330有17个I/O引脚(两个8位口和一个1位口)。C8051F330/1 端口的工作情况与标准8051相似,但有一些改进。每个端口引脚都可以被配置为模拟输入或数字I/O。被选择作为数字I/O 的引脚还可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉” 可以被总体禁止,这为低功耗应用提供了进一步节电的能力。 数字交叉开关允许将内部数字系统资源映射到端口I/O引脚 (见图1.7)。可通过设置交叉开关控制寄存器将片内的计数器/定
11、时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配置为出现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O 和所需数字资源的组合。 USB7图1.7 数字交叉开关原理框图1.6 串行端口 C8051F330/1系列 MCU内部有一个SMBus/I 2C接口、一个具有增强型波特率配置的全双工UART和一个增强型SPI接口。每种串行总线都完全用硬件实现,都能向CIP-51产生中断,因此需要很少的CPU干预。81.7 可编程计数器阵列 除了4个16位的通用计数器/定时器之外, MCU中还有一个片内可编程计数器/ 定时器阵列(PCA)。 PCA包括一个专用的 1
12、6位计数器/ 定时器时间基准和 3个可编程的捕捉/比较模块。时间基准的时钟可以是下面的六个时钟源之一:系统时钟/12、系统时钟/4 、定时器0溢出、外部时钟输入(ECI)、系统时钟和外部振荡源频率/8。外部时钟源对于实时时钟功能是非常有用的,可以在使用内部振荡器驱动系统时钟的同时由外部振荡器给PCA提供时钟。 每个捕捉/比较模块都有六种工作方式:边沿触发捕捉、软件定时器、高速输出、8位或16位脉冲宽度调制器、频率输出。此外,捕捉/比较模块2还提供看门狗定时器(WDT)功能。在系统复位后,捕捉/比较模块 2被配置并被使能为WDT方式。PCA捕捉/比较模块的I/O和外部时钟输入可以通过数字交叉开关
13、连到端口I/O。图1.8 PCA原理框图91.8 10位模/数转换器 C8051F330/1内部有一个 10位 SAR ADC和一个16通道差分输入多路选择器。该ADC工作在200ksps的最大采样速率时可提供真正10位的线性度,INL 和DNL 为1LSB 。ADC系统包含一个可编程的模拟多路选择器,用于选择ADC的正输入和负输入。端口01作为ADC的输入;另外,片内温度传感器的输出和电源电压(VDD)也可以作为 ADC的输入。用户固件可以将ADC置于关断状态以节省功耗。 A/D转换可以有6种启动方式:软件命令、定时器 0溢出、定时器1溢出、定时器2溢出、定时器3溢出或外部转换启动信号。这种灵活性允许用软件事件、外部硬件信号或周期性的定时器溢出信号触发转换。一次转换完成可以产生中断(如果被允许),或者用软件查询一个状态位来判断转换结束。转换结束后10位结果数据字被锁存到ADC数据寄存器中。 窗口比较寄存器可被配置为当ADC数据位于一个规定的范围之内或之外时向控制器申请中断。ADC 可以用后台方式监视一个关键电压,当转换数据位于规定的范围之内/外时才向控制器申请中断。 图1.9 10位ADC 原理框图