C8051F学习笔记2:C8051F振荡器

上传人:博****1 文档编号:491352980 上传时间:2023-08-21 格式:DOCX 页数:4 大小:14.60KB
返回 下载 相关 举报
C8051F学习笔记2:C8051F振荡器_第1页
第1页 / 共4页
C8051F学习笔记2:C8051F振荡器_第2页
第2页 / 共4页
C8051F学习笔记2:C8051F振荡器_第3页
第3页 / 共4页
C8051F学习笔记2:C8051F振荡器_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C8051F学习笔记2:C8051F振荡器》由会员分享,可在线阅读,更多相关《C8051F学习笔记2:C8051F振荡器(4页珍藏版)》请在金锄头文库上搜索。

1、C8051F320/1 有一个可编程内部振荡器、一个外部振荡器驱动电路和一个 4 倍时钟乘法器。系统时钟(SYSCLK)可以来自内部振荡器、外部振荡器电路或4倍时钟乘 法器二分频。USB时钟(USBCLK)可以来自内部振荡器、外部振荡器电路或4倍时钟 乘法器。可编程内部振荡器系统复位后内部振动器默认系统时钟并工作在1.5MHz两个寄存器:OSCICL (内部振荡器校准寄存器)和OSCICN (内部振荡器 控制寄存器)。OSCICL (内部振荡器校准寄存器)OSCICL复位值已经过工厂校准,对应的基频为12MHz,精度为1.5%,该 频率适合作为USB时钟。软件可以下面所述修改内部振荡器的频率。

2、一般情况 下是不用对OSCICL进行配置。OSCICN (内部振荡器控制寄存器)IOSCEN:为内部振荡器使能位,0禁止,1使能,手册上写复位值为0,是错误 的,应该为 1,这样,复位后系统时钟默认为内部振荡器。IFCN1-0:内部振荡器分频选择,复位后为00,系统默认为1.5MHz内部振荡器初始化OSCICN |= 0x03;/内部振荡器输出为 12MHz程序也可以这样写OSCICN = 0x83;/内部振荡器输出为 0x8312MHz; 0x826MHz;0x81 3MHz当程序没有对振荡器初始化时,默认系统时钟采用内部振荡器,并运行在1. 5MHz 频率下。OSCICN = 0x83;外

3、部振荡器驱动电路外部振荡器电路可以驱动外部晶体、陶瓷谐振器、电容或RC网络和外部C MOS 时钟提供系统时钟。当使用外部振荡器电路时,必须对所用端口引脚进行配置。端口 I/O 交叉开 关应被配置为跳过被振荡器占用的引脚。当外部振荡器电路被配置为CMOS时钟方式时,端口引脚P0.3被用作X TAL2。当外部振荡器电路被配置为晶体/谐振器方式时,端口引脚P0.2和P0.3分 别被用作XTAL1和XTAL2当外部振荡器电路被配置为RC方式时,端口引脚P0.3被用作XTAL2。当外部振荡器电路被配置为电容方式时,端口引脚P0.3被用作XTAL2。 OSCXCN:外部振荡器控制寄存器OSCXCN (外部

4、振荡器控制寄存器)的具体配置方法可以参考应用笔记“AN00 2 配置内部和外部振荡器”。使用外部RC或外部C连接要注意:1由于RC振荡频率误差较大,建议在可能的情况下,波特率尽可能小,以免通 讯失误。2如果单片机之间通讯,且单片机为同型号,均采用相同值的RC振荡,只要按 相同的值设定波特率即可。3如果产品是与计算机通讯的,可让计算机以300波特率发00H,用单片机测一 下,需编程处理。4.其它测定频率的办法:(1 )用带有晶振振荡的单片机来测,需编程处理。(2) 用仿真机来测,需编程处理。(3) 用 RC 振荡的单片机测定频率信号源(频率要稳、准、低), 需编程处理。4倍时钟乘法器用CLKMU

5、L寄存器配置4倍时钟乘法器。配置和使能4倍时钟乘法器的步 骤如下:1.通过向寄存器CLKMUL写0x00来复位时钟乘法器。2用 MULSEL 位选择时钟乘法器的输入。3.用MULEN位使能时钟乘法器(CLKMUL | = 0x80)。4延时大于5 |jso5. 用MULINIT位初始化时钟乘法器(CLKMUL | = 0xC0)。6. 查询等待 MULRDY =T。注意:当使用外部振荡器作为4 倍时钟乘法器的输入时,外部振荡源必须在 乘法器被初始化之前被使能并稳定运行。CLKMUL:时钟乘法器控制寄存器要注意的是,4倍时钟乘法器使能(MULEN=1), MULSEL选择4倍时钟乘 法器的输入,

6、如果选择的是内部振荡器(MULSEL=OO),则4倍时钟乘法器的输 出为24MHz(12MHzX4m2),与IFCN1-0无关,既是无论内部振荡器是不分频还 是2, 4, 8分频,4倍时钟乘法器的输出都是24MHz。(系统初始的出厂校准 频率为 12MHz, OSCICL 没动)例子:void Oscillator_Init()int i = 0;CLKMUL = 0x80;/时钟乘法器使能,连接时钟乘法器的是内部振荡器for (i = 0; i 20; i+);/ Wait 5us for initializationCLKMUL |= 0xC0;while (CLKMUL & 0x20)

7、= 0);CLKSEL= 0x02;/4 倍时钟乘法器/2OSCICN= 0x83;/使能内部振荡void Oscillator_Init()int i = 0;OSCXCN= 0x20; /外部 COMS 时钟方式CLKMUL= 0x82;/时钟乘法器使能,连接时钟乘法器的是外部振荡器for (i = 0; i 20; i+);/ Wait 5us for initializationCLKMUL |= 0xC0;while (CLKMUL & 0x20) = 0);CLKSEL= 0x02;/4倍时钟乘法器/2OSCICN= 0x03; /禁止内部振荡系统时钟和USB时钟选择这不是真正的振

8、荡器框图,只是对时钟选择寄存器(CLKSEL)的示意图。 CLKSEL 的位1-0 CLKSL1-0 三选一,在内部振荡器(由寄存器OSCICN中IFCN位选择分频系数)12MHz/6MHz/3MH z/1.5MHz 外部振荡器内部振荡器24MHz/外部振荡器频率三个中选择一个作为系统时钟。CLKSEL:时钟选择寄存器选择振荡器的过程很繁琐,我们可以借助Con figuration Wizard可以为Sil icon Laboratories MCU自动生成振荡器的初始化代码,简化了C8051F的开发。振荡器配置有5个标签页。内部振荡器设置(OSCICN) 外部振荡器设置(OSCXCN) 内部

9、振荡器使能(Enable Internal Oscilator)和外部振荡器禁止(External O scilator Off)要同时有效。4倍时钟乘法器选择(CLKMUL时钟选择(CLKSEL)如果选择了 4倍时钟乘法器使能(Enable Clock Multiplier),系统时钟选择 就选择(Use Clock Multiplier/2 as SYSCLK),否则根据前面是内部振荡器使能 还是外部振荡器使能,选择系统时钟。SYSCLK 是系统时钟的缓冲输出,输出的是系统时钟。可以在交叉开关中 允许其输出到输出端口引脚。也可以通过输出SYSCLK,测试振荡器设置是否 满足设计的预期。配置管脚P0.0(C8051F320的2脚)为系统时钟SYSCLK输出,数字推免 输出。void Port_IO_Init()/ P0.0 - SYSCLK, Push-Pull, DigitalP0MDOUT = 0x01;XBR0= 0x08;XBR1= 0x40;下面程序把C8051F320配置成内部振荡,4倍时钟乘法器,SYSCLK管脚 输出 24MHz 频率。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号