77范文网 - 专业文章范例文档资料分享平台

智能仪表开发 实验一

来源:网络收集 时间:2020-06-06 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

《智能仪表开发》实验一

时钟操作

实验目的:

学会配置F5438 时钟,了解F5438 一体化时钟系统,与F4 系列的单片机时钟比较有什么区别。 实验要求1 :

1.编程要求:利用C 语言完成SMCLK,MCLK,ACLK 按指定频率进行输出,FLL+源自RERO。

2.实现功能:ACLK = REFO,MCLK = ~2MHz,SMCLK = ~1MHZ。

3.实验现象:ACLK 接近32768Hz 稍有偏差,MCLK = ~2MHz,SMCLK = ~1MHZ,LED1不停闪烁。 实验要求2:

实现功能:分别实现1) ACLK = XT1, MCLK = ~4MHz, SMCLK=~4MHZ, 和2)ACLK = XT1, MCLK = ~16MHz, SMCLK=~8MHZ, DCO参考频率来自REFO,LED1不停闪烁。观察上述两种实验结果与实验要求1中的LED1闪烁频率的区别。

实验原理:

1.F5XX 系列的时钟MCLK,SMCLK,ACLK 均可以选择XT1,REFO XT2 时钟源,时钟配置寄存器丰富,用户可以根据需要设置相应得寄存器,来输出用户需要的频率。由于DCO是由RC 电路组成频率输出电路,因此需要调节,

DCORSELX 提供用户满足需要的标称频率,可以理解为一个粗调。因此用户在调节频率过程中必须要正确配置该位。

2.在默认状态下XT1 是关闭状态的,如果模块时钟选择XT1 提供时钟源,那么系统内部时钟REFO 就会暂时替代XT1 提供时钟,但是REFO 精度和稳定性比XT1 要差,因此要求比较高场所建议使用XT1。如果将XIN,XOUT 引脚设置为特殊引脚,那么晶体就会起振。 3.DCORSELX 的配置与设置的频率要保持统一,如果不统一就可能出现OFIFG 为1,或者频率数值达不到所需要的频率值大小。

4.XT1DRIVE1 设置在为0 的时候低驱动能力,将XT1 失效,XT1 停止振荡

实验程序:

实验一代码:

#include

//*******************************************************************************

void Init_Clk(void); void main(void) {

1

WDTCTL = WDTPW + WDTHOLD; // 停止看门狗

P11DIR = BIT0 + BIT1 + BIT2; // ACLK ,MCLK ,MCLK 输出方向 P11SEL = BIT0 + BIT1 + BIT2; P1DIR |= BIT0; // LED1 输出 Init_Clk(); while(1) {

P1OUT ^= BIT0; //LED 闪烁,说明没有晶体失效 for(unsigned int i=60000;i>0;i--); // 延迟 } }

void Init_Clk(void) {

UCSCTL1 = DCORSEL_2; // 设置DCO 范围

UCSCTL3 |= SELREF_2; // 选择FLL 参考源自REFO

UCSCTL4 = SELM_3 + SELA_2 + SELS_4; //MCLK = DCOC,SMCLK =DCODIV,ACLK=REFO

while (SFRIFG1 & OFIFG) //清除 OFIFG,and XT1OFFG ,DCOFFG {

UCSCTL7 &= ~( XT1LFOFFG + DCOFFG); SFRIFG1 &= ~OFIFG; } }

实验二代码: 1)

#include

//*******************************************************************************

void Init_Clk(void); void main(void) {

WDTCTL = WDTPW + WDTHOLD; // 停止看门狗

P11DIR = BIT0 + BIT1 + BIT2; // ACLK ,MCLK ,MCLK 输出方向 P11SEL = BIT0 + BIT1 + BIT2; P1DIR |= BIT0; // LED1 输出 Init_Clk(); while(1) {

P1OUT ^= BIT0; //LED 闪烁,说明没有晶体失效 for(unsigned int i=60000;i>0;i--); // 延迟 } }

void Init_Clk(void)

2

{

UCSCTL1 = DCORSEL_2; // 设置DCO 范围

UCSCTL3 |= SELREF_2; // 选择FLL 参考源自REFO UCSCTL2 &=FDEO;

UCSCTL2 |=FLLN5+FLLN4+FLLN3+FLLN2+FLLN0; UCSCTL2 |=FLLD_0;

UCSCTL4 = SELM_3 + SELA_0 + SELS_3; //MCLK = DCOC,SMCLK =DCOC,ACLK=XT1

while (SFRIFG1 & OFIFG) //清除 OFIFG,and XT1OFFG ,DCOFFG {

UCSCTL7 &= ~( XT1LFOFFG + DCOFFG); SFRIFG1 &= ~OFIFG; } } 2)

#include

//*******************************************************************************

void Init_Clk(void); void main(void) {

WDTCTL = WDTPW + WDTHOLD; // 停止看门狗

P11DIR = BIT0 + BIT1 + BIT2; // ACLK ,MCLK ,MCLK 输出方向 P11SEL = BIT0 + BIT1 + BIT2; P1DIR |= BIT0; // LED1 输出 Init_Clk(); while(1) {

P1OUT ^= BIT0; //LED 闪烁,说明没有晶体失效 for(unsigned int i=60000;i>0;i--); // 延迟 } }

void Init_Clk(void) {

UCSCTL1 = DCORSEL_5; // 设置DCO 范围

UCSCTL3 |= SELREF_2; // 选择FLL 参考源自REFO UCSCTL2 &=FDEO;

UCSCTL2 |=FLLN7+FLLN6+FLLN5+FLLN4+FLLN2; P7SEL|=BIT0+BIT1;

UCSCTL4 = SELM_3 + SELA_0 + SELS_4; //MCLK = DCOC,SMCLK =DCODIV,ACLK=XT1

while (SFRIFG1 & OFIFG) //清除 OFIFG,and XT1OFFG ,DCOFFG {

UCSCTL7 &= ~( XT1LFOFFG + DCOFFG);

3

SFRIFG1 &= ~OFIFG; } }

实验总结: 通过本次试验,学会了配置F5438 时钟,了解了F5438 一体化时钟系统,与F4 系列的单片机时钟比较有什么区别。

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库智能仪表开发 实验一在线全文阅读。

智能仪表开发 实验一.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1094265.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: