定时器综合实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时器综合实验报告

PAGE \* MERGEFORMAT8 南京信息职业技术学院 综合实验报告1 课 程:低功耗单片机应用技术 报告名称: 定时器综合实验 班 级: 11431P 分 组: 分组2 姓名学号: 11431P03 11431P02 11431P06 综合练习名称:定时器综合实验 综合练习目的: 了解低功耗单片机结构及基本工作原理; 掌握低功耗单片机IO口配置和使用方式; 掌握低功耗单片机时钟系统的配置方式; 掌握低功耗单片机定时器工作原理及配置方式; 能独立完成对单片机程序的修改和编写。 综合练习要求: 1)时钟配置:XT1和XT2打开,SMCLK=MCLK=3*XT2=12.00MHz ACLK=XT1=32.767Hz; 2) 定时器:P7.4(TB0.2)输出PWM波,要求:频率50.00Hz;占空比可调的(2.5%~7.5%);高电平周期范围(0.5ms~2.5ms); 3) 每按一下P2.1,高电平周期增加0.1ms;每按一下P1.1,高电平周期减小0.1ms; 4) 每按一下P2.1,LED1闪烁一下;每按一下P1.1,LED2闪烁一下; 综合练习分析: 该程序的目的是为了输出稳定的PWM波来控制舵机。首先要设置时钟,需要把三倍的外部时钟XT2提供给SMCLK于MCLK=12.00MHz,XT1提供给ACLK =32.767Hz,这样就有频率50.00Hz了。之后就是占空比于高电平周期了,它要求占空比可调的(2.5%~7.5%),高电平周期范围(0.5ms~2.5ms)。要实现这个要求,就需要按键来实现了:每按一下P2.1,高电平周期增加0.1ms;每按一下P1.1,高电平周期减小0.1ms,而按键就需要中断服务程序了, 中断服务程序是用IF语句来实现的。最后,该程序运行就可以来控制舵机了。而本实验还有一点要求,就是需要按键闪烁,也就是I/O端口的设置,这样本实验就完美成功了。 项目实施: 软件流程图 加计数 外部时钟XT1,XT2 中断服务程序 时钟 定时器 I/O接口配置 主函数 6.项目总结: 通过这次实验,加深了定时器的使用,以及定时器设置方法的应用,懂得了中断对于程序的作用和定时时间的设定。在这次实验之前,我对中断的概念总是很模糊,不太明白中断子程序该在什么时候执行,直到自己动手用汇编编程,翻书仔细把书中关于中断的部分看了一遍,在结合书上的例题终于对中断有了个大致的了解。 我们知道在其他单片机中我们测脉冲宽度可以利用外部中断在上升沿河下降沿各读取一次定时器值来测定。但51单片机没有上升沿中断,也就没有办法测出高电平宽度。现在我们可以这样做,令TR0=1,GATE=1,这时定时器的启动只有INT0控制。当INT0为高电平时定时器启动,为低电平时定时器关闭。我们设置下降沿中断,在中断中就可以读取高电平所占的时间了。但是这样做只能得到高电平时间按。要想得到脉冲周期,可以再开一个定时器,另外一个就正常工作,这样就可以得到脉冲周期。也就可以求出脉冲宽度了。 定时器会存在误差,原因是在执行定时器中断的时候,会占用3到8个机器周期不等。这段时间我们并没有算到计数器初值里面。要想消除误差:1.可以把定时器低八位设为0,中断中只要给TH0赋值,因为此时定时器已经开始启动了,低八位其实已经不是0了。2.将低四位设为0.赋初值时,利用ORL TL1,# ;加上你设定的初值。还有其他方法。还有一点T0和T1的工作方式2看似工作方式是一样的,其实T1在方式2的时候不能中断,而T0是可以中断的。 通过这次实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自己动手做项目的能力。本次实训,是对我能力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是非常有意义的。在实训中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原来,学的时候感叹学的内容太难懂,现在想来,有些其实并不难,关键在于理解。 附录(源程序代码): #include msp430.h void ClkInit(void); void TimerInit(void); void GPIOInit(void); void main(void) { WDTCTL = WDTPW + WDTHOLD; ClkInit(); TimerInit(); GPIOInit(); __bis_SR_register(GIE); while(1); } #p

文档评论(0)

zhanghc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档