网站大量收购闲置独家精品文档,联系QQ:2885784924

实战练习.docVIP

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

第11章 综合实践(二) 本章的综合实践将综合前几章的内容,指导读者完成以下的实践: 如何实现频率测量和简单频率计的设计实现。 使用T/C1的输入捕捉功能实现高精度的频率周期测量 完成一个比较完善的实时时钟的设计和实现。 11.1频率测量和简单频率计的设计 11.1.1 频率测量原理 单片机应用系统中,经常要对一个连续的脉冲波频率进行测量。在实际应用中,对于转速,位移、速度、流量等物理量的测量,一般也是由传感器转换成脉冲电信号,采用测量频率的手段实现。 使用单片机测量频率或周期,通常是利用单片机的定时计数器来完成的,测量的基本方法和原理有两种: 测频法:在限定的时间内(如1秒钟)检测脉冲的个数。 测周法:测试限定的脉冲个数之间的时间。 这两种方法尽管原理是相同的,但在实际使用时,需要根据待测频率的范围、系统的时钟周期、计数器的长度、以及所要求的测量精度等因素进行全面和具体的考虑,寻找和设计出适合具体要求的测量方法。 在具体频率的测量中,需要考虑和注意的因素有以下几点。 系统的时钟。首先测量频率的系统时钟本身精度要高,因为不管是限定测量时间还是测量限定脉冲个数的周期,其基本的时间基准是系统本身时钟产生的。其次是系统时钟的频率值,因为系统时钟频率越高,能够实现频率测量的精度也越高。因此使用AVR测量频率时,建议使用由外部晶体组成的系统的振荡电路,不使用其内部的RC振荡源,同时尽量使用频率比较高的系统时钟。 所使用定时计数器的位数。测量频率要使用定时计数器,定时计数器的位数越长,可以产生的限定时间越长,或在限定时间里记录的脉冲个数越多,因此也提高了频率测量的精度。所以对频率测量精度有一定要求时,尽量采用16位的定时计数器。 被测频率的范围。频率测量需要根据被测频率的范围选择测量的方式。当被测频率的范围比较低时,最好采用测周期的方法测量频率。而被测频率比较高时,使用测频法比较合适。需要注意的是,被测频率的最高值一般不能超过测频MCU系统时钟频率的1/2,因为当被测频率高于MCU时钟1/2后,MCU往往不能正确检测被测脉冲的电平变化了。 除了以上三个因素外,还要考虑频率测量的频度(每秒内测量的次数),如何与系统中其它任务处理之间的协调工作等。频率测量精度要求高时,还应该考虑其它中断以及中断响应时间的影响,甚至需要在软件中考虑采用多次测量取平均的算法等。 在“AVR-51多功能实验开发板”的K区有一个方波信号源。该区模块使用一个2.048MHz的晶体振荡器,经过CD4060的分频后,提供了占空比为50%,125Hz~128KHz之间10种不同频率的标准方波脉冲信号。下面我们介绍2个基本的频率测量实例,实现对这些不同频率的信号进行测量。 11.1.2 测频法测量频率 测频法的基本思想,就是采用在已知限定的时间内对被测信号输入的脉冲个数进行计数的方法来实现对信号频率的测量。当被测信号的频率比较高时,采用这种方法比较适合,因为在一定时间内,频率越高,计数脉冲的个数也越多,测量也越准确。 例11.1 采用测频法的频率计设计与实现 硬件电路 硬件电路的显示部分与图9-7相同,PA口为8个LED数码管的段输出,PC口控制8个LED数码管的位扫描。使用T/C0对被测信号输入的脉冲个数进行计数,被测频率信号由PB0(T0)输入。 软件设计 我们首先给出系统程序,然后做必要的说明。 /********************************************* File name : demo_11_1.c Chip type : ATmega16 Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *********************************************/ #include mega16.h flash char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; flash char position[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; char dis_buff[8]; // 显示缓冲区,存放要显示的8个字符的段码值 char posit; bit time_1ms_ok,display_ok=0; char time0_old,time0_new,freq_time; unsigned

文档评论(0)

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

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

1亿VIP精品文档

相关文档