资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第6章章 C8051F330单片机技术基础单片机技术基础6.1 C8051F330单片机单片机 C8051F330单片机是Silicon Labs公司的产品,具有如下特点。1. 模拟量资源 (1)转换速率可达200ksps的10位ADC。该ADC有16个外部单端或差分输入,参考电压可在内部VREF、外部引脚或VDD之间选择,可内部或外部启动AD转换,具有内置温度传感器。(2)10位电流输出DAC。 (3)可编程回差电压和响应时间、可配置为中断或复位源的模拟比较器。3. 在系统调试 调试电路提供在系统调试,支持断点、单步、观察和修改存储器和寄存器。4. 供电电压2.7V3.6V 典型工作电流:6.4mA 25MHz、9A 32KHz。典型停机电流:0.1A。工作温度范围:-40C - +85C,5. 采用高速8051微控制器专利内核CIP-51 C8051F330采用CIP-51内核,具有流水线指令结构;70%的指令的执行时间为一个或两个系统时钟周期,速度可达25MIPS(时钟频率为25MHz时,执行一个单周期指令所需时间为40ns);具有扩展的中断系统。6. 存储器 768字节内部数据RAM(256+512)。8KB 程序FLASH;可在系统编程,扇区大小为512字节。 7. 数字外围模块 17个端口I/O;均耐5V电压,灌电流驱动能力强。 硬件增强型UART、SMBus和SPI串口。 4个通用16位计数器/定时器。 16位可编程计数器/定时器阵列(PCA),具有3个捕捉/比较模块。 使用PCA或定时器和外部时钟源的实时时钟方式。 8. 时钟源 两个内部振荡器:24.5MHz,2%的精度,可支持无晶体UART操作;80kHz的低频率、低功耗振荡器。 外部振荡器:晶体、RC、C、或外部时钟。 可在运行中切换时钟源,适用于节电方式。 9. 封装: C8051F330单片机内部资源 6.2 C8051F330单片机的单片机的CIP-51内核内核CIP-51内核与MCS-51指令集完全兼容,可以使用标准MCS-51的汇编器、编译器和链接器进行软件开发,CIP-51内核结构如图6-3所示。1. CIP-51内核性能 与51内核相比,CIP-51内核70%的指令的执行时间为1或2个系统时钟周期。CIP-51内核工作在时钟频率25MHz时,指令执行最高速度达到25MIPS。2. 编程和调试支持 通过C2接口可以对FLASH程序存储器在系统编程并实现片内调试。在用户软件中可使用MOVC和MOVX指令对FLASH 读和写,因此可将程序存储器当非易失性数据存储以及在软件控制下更新用户代码。片内调试逻辑支持在系统调试,允许设置硬件断点,支持开始、停止和单步执行(包括中断服务程序)命令,支持检查程序调用堆栈及读/写寄存器和存储器。不需要目标RAM、堆栈、定时器或其它片内资源。 Silicon Labs公司提供集成开发环境(IDE),包括编辑器、宏汇编器、调试器和编程器。Keil宏汇编器和C编译器也支持该单片机开发。 3. 指令 CIP-51内核的指令集与MCS-51指令集完全兼容。所有的CIP-51指令在操作码、寻址方式和对PSW标志的影响上,与MCS-51相同,但是指令时序与MCS-51不同。CIP-51共有111条指令。 CIP-51内核采用流水线结构,大多数指令所需的时钟周期数与指令的字节数一致。条件转移指令在不发生转移时的执行周期数比发生转移时少一个。在CIP-51内核中,MOVX指令用于访问片内XRAM或片内FLASH程序存储器。因此CIP-51具有由用户程序更新程序代码和将程序存储器空间用于非易失性数据存储的能力。4. 主要极限参数I/O引脚与RST引脚对地线电压:最小-0.3V,最大5.8V。电源电压VDD对地线电压:最小-0.3V,最大4.2V。VDD到地线的最大电流:500mA。RST与端口引脚的最大输出电流:100mA。环境温度-55125。5. 部分电参数(-40+85,系统时钟频率25MHz)数字电源电压:2.7V3.6V数字电源电流(CPU工作):(VDD=2.7V,SYSCLK=25MHz)6.4mA数字电源电流(CPU工作):(VDD=2.7V,SYSCLK=32kHz)9ARAM数据保持电压典型值:1.5V系统时钟频率:025MHz工作温度范围:-40+856.3 C8051F330单片机的存储器结构单片机的存储器结构C8051的存储器结构与MCS-51的存储器类似。C8051F330的存储器结构如图6-4所示。1. 程序存储器CIP-51内核具有64KB的程序存储器寻址能力。C8051F330的程序存储器空间为8KB,具有连续的存储地址0x00000x1DFF(0x1E00以上的地址保留)。2. 数据存储器CIP-51的数据存储器空间中有256B的内部RAM,地址空间为0x00到0xFF。其中低128字节用于通用寄存器和临时存储器。可以用直接或间接寻址方式访问。从0x00到0x1F为4个通用寄存器区,每个区有8个8位寄存器。从地址0x20到0x2F的16B共128位,可字节寻址和位寻址方式。数据存储器中的高128字节只能用间接寻址访问。该存储区与特殊功能寄存器(SFR)具有相同的地址。当寻址高于0x7F的地址时,直接寻址方式的指令访问SFR,间接寻址指令将访问数据存储器的高128字节。片内512字节的XRAM区相当于外部存储器,需要用MOVX指令寻址。3. 通用寄存器数据存储器的低32字节,从地址0x00到0x1F,可以作为4个通用寄存器区访问。每个区有8个8位寄存器,称为R0-R7。在某一时刻只能选择一个寄存器区。程序状态字中的RS0(PSW.3)和RS1(PSW.4)位用于选择当前的寄存器区。4. 位寻址空间从0x20到0x2F的16个数据存储器单元具有位寻址能力。每个位有一个位地址,从0x00到0x7F。0x20字节地址对应位地址0x000x07,0x2F字节地址的位7,对应位地址0x7F。5. 堆栈程序的堆栈可以位于256字节数据存储器中的任何位置。堆栈区域用堆栈指针(SP,0x81)SFR指定。实际上常初始化SP为数据存储器中不用于数据存储的位置。堆栈深度最大可达256字节。6. 特殊功能寄存器特殊功能寄存器(SFR)的地址范围是0x80到0xFF的直接寻址存储器空间。CIP-51具有MCS-51中的全部SFR,还增加了一些用于配置和访问专有模块的SFR。 为了有效地访问相关SFR寄存器,可使用关键字sfr16来定义两个相关的寄存器,其定义语句的语法格式与8位SFR相同,只是=后面的地址必须用16位SFR的低字节地址,即低字节地址作为sfr16的定义地址,其高位地址位于物理低位地址之上,而且读写操作时必须先读低字节,后写低字节。例如:sfr TMR3L = 0x94; /定时器3低字节计数器 sfr TMR3H = 0x95; /定时器3高字节计数器sfr16 TMR3 = 0x94; /定义定时器3高低位计数器寄存器地址说明寄存器地址说明ACC 0xE0累加器IDA0CN 0xB9 电流模式DAC0控制寄存器ADC0CF 0xBC ADC0配置寄存器IDA0H 0x97 电流模式DAC0数据字高字节ADC0CN 0xE8 ADC0控制寄存器IDA0L 0x96 电流模式DAC0数据字低字节ADC0GTH 0xC4 ADC0下限(大于)比较字高字节IE 0xA8 中断允许寄存器ADC0GTL 0xC3 ADC0下限(大于)比较字低字节IP 0xB8 中断优先级寄存器ADC0H 0xBE ADC0数据字高字节IT01CF 0xE4 INT0/INT1配置寄存器ADC0L 0xBD ADC0数据字低字节OSCICL 0xB3 内部振荡器校准寄存器ADC0LTH 0xC6 ADC0上限(小于)比较字OSCICN 0xB2 内部振荡器控制寄存器ADC0LTL 0xC5 ADC0上限(小于)比较字OSCLCN 0xE3 低频振荡器控制寄存器AMX0N 0xBA AMUX0负通道选择寄存器OSCXCN0xB1外部振荡器控制寄存器AMX0P 0xBB AMUX0正通道选择寄存器P00x80端口0锁存器B0xF0B寄存器P0MDIN 0xF1 端口0输入方式配置寄存器CKCON 0x8E 时钟控制寄存器P0MDOUT 0xA4 端口0输出方式配置寄存器CLKSEL 0xA9 时钟选择寄存器P0SKIP 0xD4 端口0跳过寄存器CPT0CN 0x9B 比较器0控制寄存器P1 0x90 端口1锁存器CPT0MD 0x9D 比较器0方式选择寄存器P1MDIN 0xF2 端口1输入方式配置寄存器CPT0MX 0x9F 比较器0 MUX选择寄存器P1MDOUT 0xA5 端口1输出方式配置寄存器DPH 0x83 数据指针高字节P1SKIP 0xD5 端口1跳过寄存器DPL 0x82 数据指针低字节P2 0xA0 端口2锁存器EIE1 0xE6 扩展中断允许寄存器1 P2MDOUT 0xA6 端口2输出方式配置寄存器EIP1 0xF6 扩展中断优先级寄存器1 PCA0CN 0xD8 PCA控制寄存器EMI0CN 0xAA 外部存储器接口控制寄存器PCA0CPH0 0xFC PCA捕捉模块0高字节FLKEY 0xB7 FLASH锁定和关键码寄存器PCA0CPH1 0xEA PCA捕捉模块1高字节FLSCL 0xB6 FLASH存储器时序预分频器PCA0CPH2 0xEC PCA捕捉模块2高字节寄存器地址说明寄存器地址说明PCA0CPL0 0xFB PCA捕捉模块0低字节TH0 0x8C 计数器/定时器0高字节PCA0CPL1 0xE9 PCA捕捉模块1低字节TH1 0x8D 计数器/定时器1高字节PCA0CPL2 0xEB PCA捕捉模块2低字节TL0 0x8A 计数器/定时器0低字节PCA0CPM0 0xDA PCA模块0方式寄存器TL1 0x8B 计数器/定时器1低字节PCA0CPM1 0xDB PCA模块1方式寄存器TMOD 0x89 计数器/定时器方式寄存器PCA0CPM2 0xDC PCA模块2方式寄存器TMR2CN0xC8 计数器/定时器2控制寄存器PCA0H 0xFA PCA计数器高字节TMR2H0xCD 计数器/定时器2高字节PCA0L 0xF9 PCA计数器低字节TMR2L0xCC 计数器/定时器2低字节PCA0MD 0xD9PCA方式寄存器TMR2RLH0xCB 计数器/定时器2重载值高字节PCON 0x87 电源控制寄存器TMR2RLL0xCA 计数器/定时器2重载值低字节PSCTL 0x8F 程序存储读/写控制寄存器TMR3CN0x91 计数器/定时器3控制寄存器PSW 0xD0 程序状态字TMR3H0x95 计数器/定时器3高字节REF0CN 0xD1 电压基准控制寄存器TMR3L0x94 计数器/定时器3低字节RSTSRC 0xEF 复位源寄存器TMR3RLH0x93 计数器/定时器3重载值高字节SBUF0 0x99UART0数据缓冲器TMR3RLL0x92 计数器/定时器3重载值低字节SCON0 0x98 UART0控制寄存器VDM0CN0xFF VDD监视器控制寄存器SMB0CF 0xC1 SMBus配置寄存器XBR00xE1 端口I/O交叉开关控制0SMB0CN 0xC0 SMBus控制寄存器XBR10xE2 端口I/O交叉开关控制1SMB0DAT 0xC2 SMBus数据寄存器SP 0x81 堆栈指针SPI0CFG 0xA1 SPI配置寄存器SPI0CKR 0xA2 SPI时钟频率控制寄存器SPI0CN 0xF8SPI控制寄存器SPI0DAT 0xA3 SPI数据寄存器TCON 0x88 计数器/定时器控制寄存器与CIP-51内核有关的寄存器:程序状态字PSW(复位值0000 0000,SFR地址0xD0,可位寻址): R/WR/WR/WR/WR/WR/WR/WR/WD7D6D5D4D3D2D1D0CYACF0RS1RS0OVF1PARITY(位7)CY:进位标志,当最后一次算术操作产生进位(加法)或借位(减法)时,该位置1。其它算术操作将其清0。(位6)AC:辅助进位标志。当最后一次算术操作向高半字节有进位(加法)或借位(减法)时,该位置1。其它算术操作将其清0。(位5)F0:用户标志0。这是一个可位寻址、受程序控制的通用标志位。(位4-3)RS1-RS0:寄存器区选择位。访问寄存器时用于选择寄存器区 (位2)OV:溢出标志。该位在下列情况下置1: ADD、ADDC或SUBB指令引起符号位变化溢出。 MUL指令引起溢出(结果大于255)。 DIV指令的除数为0。其它情况该位清0。(位1)F1:用户标志1。这是一个可位寻址、受软件控制的通用标志位。(位0)PARITY:奇偶标志。若累加器中8位和为奇数时该位置1,为偶数时清0。 6.4 C8051F330单片机的电源管理方式单片机的电源管理方式CIP-51有两种电源管理方式:空闲方式和停机方式。1 空闲方式 将空闲方式选择位(PCON.0,IDLE)置1,可使CIP-51停止运行并进入空闲方式,在执行完对该位置1的指令后单片机立即进入空闲方式。所有内部寄存器和存储器都保持原来的数据不变。所有模拟和数字外设在空闲方式期间都可以保持活动状态。 中断发生或有效复位可结束空闲方式。中断发生时,空闲方式选择位(PCON.0,IDLE)清0,CPU开始运行,中断得到服务,中断返回(RETI)后开始执行设置空闲方式选择位的那条指令的下一条指令。如果空闲方式下出现一个内部或外部复位,则CIP-51进行复位,并从地址0x0000开始执行程序。2 停机方式 停机方式选择位(PCON.1)置1使CIP-51进入停机方式。在停机方式,内部振荡器、CPU和所有的数字外设都停止工作,但外部振荡器电路的状态不受影响。可在进入停机方式之前,单独关闭每个模拟外设(包括外部振荡器电路)。内部或外部复位能结束停机方式。 时钟丢失检测器所产生的内部复位,也可结束停机方式。3 电源控制寄存器PCON(复位值0000 0000,SFR地址0x87): R/WR/WR/WR/WR/WR/WR/WR/WD7D6D5D4D3D2D1D0GF5GF4GF3GF2GF1GF0STOPIDLE(位7-2)GF5-GF0:通用标志位5-0。这6位是用作软件控制的通用标志位。(位1)STOP:停机方式选择。将该位置1使单片机进入停机方式。该位读出值总是为0。(位0)IDLE:空闲方式选择。将该位置1使单片机进入空闲方式。该位读出值总是为0。6.5 C8051F330单片机的复位源单片机的复位源1. 复位过程该单片机复位原理框图如图6-5所示。复位电路可使单片机处于一个预定状态。在进入复位状态时,将发生以下过程:CIP-51停止程序执行。特殊功能寄存器(SFR)初始化为所定义的复位值。禁止中断和定时器。内部数据存储器的内容不改变。由于堆栈指针SFR复位,堆栈数据丢失。端口I/O锁存器的复位值为0xFF,使I/O口处于漏极开路方式,在复位期间和复位之后弱上拉使能。对于VDD监视器和上电复位,/RST引脚驱动为低电平,直到器件退出复位状态。在退出复位状态时,程序计数器(PC)复位,单片机使用内部振荡器作为默认的系统时钟。看门狗定时器使能,使用系统时钟的12分频作为其时钟源。程序从地址0x0000开始执行程序。 2. 上电复位上电和VDD监视器复位的时序如图10-6所示。在上电时CIP-51保持在复位状态,/RST引脚输出低电平,当VDD上升到超过VRST电平,再经过上电复位延时(TPORDelay)时间后复位结束;上电复位延时随着VDD上升时间(VDD从0V上升到VRST的时间)的增大而减小。当VDD上升时间超过1ms时,可能导致器件在VDD达到VRST电平之前退出复位状态。当上升时间小于1ms时,上电复位延时(TPORDelay)通常小于0.3ms。在复位结束时,PORSF标志位(RSTSRC.1)置为逻辑1,读PORSF标志位可确定是否为上电产生的复位。 3. 掉电复位和VDD监视器 当发生掉电或因电源波动导致VDD降到VRST以下时,电源监视器将/RST引脚驱动为低电平并使CIP-51保持复位状态,VDD监视器复位后没有复位延时。当VDD又回到高于VRST的电平时,CIP-51将退出复位状态。上电复位后VDD监视器使能,并在其稳定之后就可以将其作为复位源。把VDD监视器配置为复位源的步骤如下:(1)使能VDD监视器(VDM0CN寄存器中的VDMEN位为1);(2)等待VDD监视器稳定(VDD监视器启动时间为100s);(3)选择VDD监视器作为复位源(RSTSRC中的PORSF位为1)。参数条件最小值典型值最大值单位/RST输出低电平IOL=8.5mA,VDD=2.7V3.6V0.6V/RST输入高电平0.7 xVDDV/RST输入低电平0.3 x VDD VDDV/RST输入上拉电流/RST=0V2540AVDD上电复位门限(VRST)2.402.552.7V时钟丢失检测器超时从最后一个系统时钟上升沿到产生复位100220600s复位时间延迟从退出复位到开始执行代码5.0s最小/RST低电平时间15sVDD监视器启动时间100sVDD监视器电源电流2050A表6-2 复位源电气特性(VDD = 2.7V 3.6V;-40到+85)VDD监视器控制寄存器VDM0CN:(复位值不确定,SFR地址0xFF):R/WRRRRRRRD7D6D5D4D3D2D1D0VDMENVDDSTAT保留保留保留保留保留保留(位7)VDMEN:VDD 监视器使能位。0:禁止VDD监视器。1:使能VDD监视器。(位6)VDDSTAT:当前电源状态位指示(VDD监视器输出)。0:VDD等于或低于VDD监视器阈值。1:VDD高于VDD监视器阈值(位5-0):保留。4. 外部复位在外部/RST引脚上加低电平有效信号将导致单片机进入复位状态。虽然在单片机内部有弱上拉,但最好能给/RST引脚加上拉电阻和去耦电容以防止强噪声引起复位。从外部复位状态退出后,PINRSF标志位(RSTSRC.0)置1。5. 时钟丢失检测器复位时钟丢失检测器(MCD)在系统时钟保持在高电平或低电平的时间大于100微秒时,检测器内部的单稳态电路将超时并产生复位。在发生时钟丢失检测器复位后,MCDRSF标志位(RSTSRC.2)的读出值为1,表示复位源为MCD。向MCDRSF 位写1将使能时钟丢失检测器;写0将禁止时钟丢失检测器。/RST引脚的状态不受该复位的影响。6. 比较器0复位向C0RSEF标志位(RSTSRC.5)写1可将比较器0作为复位源。在写C0RSEF之前应该使能比较器0,并等待比较器输出稳定,以防止通电瞬间在输出端产生的抖动引起的复位。比较器0复位为低电平有效:如果同相端输入电压(CP0+)小于反相端输入电压(CP0-),则单片机处于复位状态。在发生比较器0复位后,C0RSEF标志(RSTSRC.5)的读出值为1,表示本次复位源为比较器0。/RST引脚的状态不受该复位的影响。7. PCA看门狗定时器复位可编程计数器阵列(PCA)的可编程看门狗定时器(WDT)可引起系统复位。在每次系统复位后,WDT使能,并使用SYSCLK/12作为时钟。如果用户软件不能喂狗,则WDT将使系统复位,WDTRSF位(RSTSRC.5)置1。/RST引脚的状态不受该复位的影响。为使看门狗不影响调试程序,复位后应该用语句:PCA0MD &= 0x40;关闭看门狗。8. FLASH错误复位当读、写或擦除FLASH时,若寻址范围超出了用户代码空间时(地址大于0x1DFF),会产生FLASH错误复位。复位后,FERROR位(RSTSRC.6)置位。/RST引脚的状态不受该复位的影响。复位源寄存器 RSTSRC(复位值不确定,SFR地址0xEF): RRR/WR/WRR/WR/WRD7D6D5D4D3D2D1D0-FERRORC0RSEFSWRSFWDTRSFMCDRSFPORSFPINRSF(位7) 未用。读0,写忽略。(位6)FERROR:FLASH错误标志。0:最后一次复位不是来自FLASH读/写/擦除错误。1:最后一次复位是由于FLASH读/写/擦除错误。(位5)C0RSEF:比较器0复位使能和标志写0:比较器0不是复位源。写1:比较器0是复位源(低电平有效)。0:最后一次复位不是来自比较器0。1:最后一次复位来自比较器0。(位4)SWRSF:软件强制复位和标志写1:强制产生一次系统复位。1:最后一次复位来自写SWRSF 位。0:最后一次复位不是来自写SWRSF位。RRR/WR/WRR/WR/WRD7D6D5D4D3D2D1D0-FERRORC0RSEFSWRSFWDTRSFMCDRSFPORSFPINRSF(位3)WDTRSF:看门狗定时器复位标志0:最后一次复位不是来自WDT 超时。1:最后一次复位来自WDT 超时。(位2)MCDRSF:时钟丢失检测器标志写0:禁止时钟丢失检测器。写1:使能时钟丢失检测器;检测到时钟丢失条件时触发复位。0:最后一次复位不是来自时钟丢失检测器超时。1:最后一次复位来自时钟丢失检测器超时。(位1)PORSF:上电复位强制和标志写0:禁止VDD监视器为复位源。写1:使能VDD监视器为复位源。0:最后一次复位不是上电复位或VDD 监视器复位。1:最后一次复位是上电或VDD 监视器复位,所有其它复位标志是不确定的。(位0)PINRSF:硬件引脚复位标志0:最后一次复位不是来自/RST 引脚。1:最后一次复位来自/RST 引脚。6.6 C8051F330单片机的时钟电路单片机的时钟电路C8051F330单片机的时钟模块原理框图如图6-7所示。该时钟系统由可编程内部高频振荡器、可编程内部低频振荡器和外部振荡器驱动电路组成。1. 内部高频(H-F)振荡器C8051F330内部有一个可编程内部高频振荡器,在系统复位后该振荡器默认为系统时钟。其振荡周期可以通过OSCICL寄存器编程,对于C8051F330器件,OSCICL已经过工厂校准,基频为24.5MHz,精度为2%。系统时钟可以从内部振荡器分频得到,分频数由寄存器OSCICN中的IFCN位设定,可为1、2、4 或8。复位后的缺省分频数为8。参数条件最小典型值最大单位内部高频振荡器(出厂标定值)振荡器频率IFCN=11b2424.5 25MHz振荡器电源电流25,VDD=3V,OSCICN.7=1450A电源敏感度恒温0.30.1*%/V温度敏感度恒压5010*ppm/内部低频振荡器(出厂标定值)振荡器频率OSCLD=11b728088kHz振荡器电源电流25,VDD=3V,OSCICN.7=15.5A电源敏感度恒温-30.1*%/V温度敏感度恒压208*ppm/*表示平均值标准差内部H-F振荡器校准寄存器OSCICL:(SFR地址0xB3) R/WR/WR/WR/WR/WR/WR/WR/WD7D6D5D4D3D2D1D0(位6-0)内部高频振荡器校准值。该寄存器决定内部振荡器的周期。OSCICL的复位值定义内部振荡器的基频。对于C8051F330,复位值已经过工厂校准,对应的基频为24.5MHz。内部H-F振荡器控制寄存器OSCICN:(复位值1100 0000,SFR地址0xB2) R/WR/WR/WR/WR/WR/WR/WR/WD7D6D5D4D3D2D1D0IOSCENIFRDY-IFCN1IFCN0(位7)IOSCEN:内部H-F振荡器使能位。0:内部H-F高频振荡器禁止。1:内部H-F振荡器使能(缺省状态)。(位6)IFRDY:内部H-F振荡器频率准备好标志位。0:内部H-F振荡器未运行在编程频率。1:内部H-F振荡器按编程频率运行。(缺省状态)(位5-2):未用。读0写忽略。(位1-0)IFCN1-0:内部H-F振荡器频率控制位00:SYSCLK为内部H-F振荡器8分频。(缺省状态)01:SYSCLK为内部H-F振荡器4分频。10:SYSCLK为内部H-F振荡器2分频。11:SYSCLK为内部H-F振荡器输出(不分频)。 例如:void SYSCLK_Init (void)OSCICN = 0x80; /使用内部高频振荡器;IFCN1-0=00,为8分频RSTSRC = 0x04; /检测到时钟丢失时允许系统复位使用内部时钟24.5MHz时,则按照如下分频有时钟周期如下。 8分频的时钟频率为3.0625MHz,时钟周期为0.3265s (OSCICN = 0x80;)4分频的时钟频率为6.125MHz,时钟周期为0.1632s (OSCICN = 0x81;)2分频的时钟频率为12.5MHz,时钟周期为0.08s(OSCICN = 0x82;)1分频的时钟频率为24.5MHz,时钟周期为0.04s(OSCICN = 0x83;)2. 可编程内部低频(L-F)振荡器C8051F330内部有一个可编程低频内部振荡器,该振荡器的标称频率为80KHz。该低频振荡器电路包含一个分频器,分频数由寄存器OSCLCN中的OSCLD位设定,可为1、2、4或8。OSCLF寄存器的位(OSCLCN5:2)用于调节该振荡器的输出频率。内部L-F振荡器控制寄存器OSCLCN:(复位值00xx xx00,SFR地址0xE3): R/WR/WR/WR/WR/WR/WR/WR/WD7D6D5D4D3D2D1D0OSCLENOSCLRDYOSCLF3OSCLF2OSCLF1OSCLF0OSCLD1OSCLD0(位7)OSCLEN:使能内部L-F振荡器0:内部L-F振荡器禁止。(缺省状态)1:内部L-F振荡器使能。(位6)OSCLRDY:内部L-F振荡器频率准备好标志0:内部L-F振荡器频率未稳定。(缺省状态)1:内部L-F振荡器频率已稳定。(位5-2)OSCLF3:0:内部L-F振荡器频率控制位。内部L-F 振荡器频率的微调控制位。当这些位设置为0000b时,L-F振荡器工作在最高频率;设置为1111b时,L-F振荡器工作在最低频率。(位1-0)OSCLD1:0:内部L-F振荡器分频位。00:选择8分频。(缺省状态)01:选择4分频。10:选择2分频。11:选择不分频。3. 外部振荡器驱动电路外部振荡器电路可以驱动外部晶体、陶瓷谐振器、电容或RC网络。还可以使用外部时钟提供系统时钟。 晶体应该并接到XTAL1和XTAL2引脚,引脚之间还需要并接一个10M的电阻。 还应该在OSCXCN寄存器中选择外部振荡器类型,并选择频率控制位XFCN。 端口I/O交叉开关应配置为跳过振荡器占用的引脚。应将所用的端口引脚配置为模拟输入。外部振荡器控制寄存器OSCXCN:(复位值0000 0000,SFR地址0xB1): RR/WR/WR/WRR/WR/WR/WD7D6D5D4D3D2D1D0XTLVLDXOSCMD2XOSCMD1XOSCMD0-XFCN2XFCN1XFCN0(位7)XTLVLD:晶体振荡器有效标志(在XOSCMD11x时有效,只读)0:晶体振荡器未用或未稳定。(缺省状态)1:晶体振荡器正在运行并且工作稳定。(位6-4)XOSCMD2-0:外部振荡器方式位00x:外部振荡器电路关闭。 (缺省状态)010:外部CMOS 时钟方式。011:外部CMOS 时钟方式二分频。111:晶体振荡器方式二分频。(位2-0)XFCN2-0:外部振荡器频率控制位。RR/WR/WR/WRR/WR/WR/WD7D6D5D4D3D2D1D0XTLVLDXOSCMD2XOSCMD1XOSCMD0-XFCN2XFCN1XFCN0XFCN晶体(XOSCMD=11x)RC(XOSCMD=10x)C(XOSCMD=10x)000f32kHzf25kHzK因子=0.8700132kHzf84kHz25kHzf50kHzK因子=2.601084kHzf225kHz50kHzf100kHzK因子=7.7011225kHzf590kHz100kHzf200kHzK因子=22100590kHzf1.5MHz200kHzf400kHzK因子=651011.5MHzf4MHz400kHzf800kHzK因子=1801104MHzf10MHz800kHzf1.6MHzK因子=66411010MHzf30MHz1.6MHzf3.2MHzK因子=15904. 系统时钟选择寄存器CLKSEL中的SEL1-0位选择系统时钟的振荡器。当选择内部振荡器作为系统时钟时,外部振荡器仍然可以给外设(定时器、PCA)提供时钟。系统时钟可在内部振荡器和外部振荡器之间切换, 内部振荡器的起动时间很短,可以在同一个OSCICN写操作中使能和选择内部振荡器。时钟选择寄存器CLKSEL:(复位值0000 0000,SFR地址0xA9):R/WR/WR/WR/WR/WR/WR/WR/WD7D6D5D4D3D2D1D0-SEL1SEL0(位7-2) 未用。读0。写忽略。(位1-0)SEL1:0:系统时钟源选择位。00:系统时钟取自内部高频振荡器,分频数由OSCICN寄存器中的IFCN位决定。(缺省状态)01:系统时钟取自外部振荡器。10:系统时钟取自内部低频振荡器,分频数由OSCLCN寄存器中的OSCLD位决定。11:保留。6.7 C8051F330单片机实验板设计单片机实验板设计设计C8051F330单片机实验板,就是设计单片机最小系统与其外围电路,因此需要知道单片机的封装、引脚、复位、时钟、编程、电源以及一些配置信息,这些信息来自前面的章节,更详细的来自C8051F330单片机的数据手册。1.封装C8051F330单片机具有MLP-20封装和DIP封装,两种封装的引脚排列不同。 C8051F330单片机具有MLP-20封装和DIP封装,两种封装的引脚排列不同。由于实验板的主要目的是学习单片机,免不了接线错误损坏单片机后更换单片机,因此还是采用插拔方便的DIP-20封装的C8051F330D芯片。2. 引脚C8051F330D单片机的通用I/O引脚已经固定了,不经过交叉开关就可以直接使用,除此之外,ADC参考电压引脚VREF,DAC输出引脚IDA,石英晶体引脚XI、X2和UART引脚TX0、RX0也不需要交叉开关配置。需要交叉开关配置的是SPI0的引脚MISO、MOSI和NSS,SMBus的引脚SDA、SCL,CP0的引脚CP0、CPA,SYSCLK引脚SYSCLK,PCA的引脚CEX0、CEX1、CEX2和EC1,Timer0的引脚T0,Timer1的引脚T1。因为该单片机的功能多。引脚少,因此不用交叉开关配置的引脚可以用跳线与外围电路连接,而需要交叉开关配置的引脚功能与外围电路之间采用连接线(杜邦线)连接。由于有外部电路连接到单片机引脚,因此要考虑引脚的驱动能力,在输出10mA拉电流负载时的输出电压VOH典型值为VDD0.8V,若是VDD为3.3V,则输出电压为2.5V。在输出8.5mA灌电流负载时的输出低电平VOL最大值为0.6V。与其他数字芯片连接时,还需要考虑单片机引脚的噪声容限,该单片机的输入高电平VIH最小值为2V,输入低电平VIL最大值为0.8V,与TTL逻辑电平兼容。3. 复位该单片机具有内部上电复位电路,该电路可以在上电时使单片机复位。另外还有外部低电平复位能力,在单片机通电时,在复位引脚/RST加低电平也可以使单片机复位。若是不用外引脚复位功能,应该使外复位引脚接上拉电阻,并加去耦电容,防止外部干扰复位单片机。4. 时钟该单片机内部有24.5MHz频率的高频时钟,还有80kHz频率的低频振荡器。外接石英晶体时的振荡器频率范围为32kHz30MHz。虽说没有外接晶体的振荡器该单片机也可以工作,但由于内部振荡器频率误差较大,不能实现准确定时,因此还需要外接晶体的振荡器,可以选择32kHz晶体用于实现实时时钟,或是选择用于产生精确定时的晶体。5. 外部中断引脚外中断引脚INT0和INT1可以配置为P0口中的任何引脚,缺省配置为INT0连接P0.1,INT1引脚连接P0.0。6. 编程C8051F330单片机具有两线C2编程接口,通过该接口可以实现在系统编程。市场上销售USB接口的EC3/EC5调试器可以实现编程与程序调试。如果只需要编程,可以自制并口编程器。7. 实验板外围电路为实验单片机的功能,学习单片机的使用,单片机实验板上还应该有数码管、按键和电源等电路。编程软件界面如图6-13所示。与其他编程软件使用相同,需要设置PC端口,设置编程操作、选择欲下载的HEX文件,连接PC机与单片机,然后将HEX文件中的程序数据下载到单片机中。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号