简易频率计设计实验报告

简易频率计设计实验报告

ID:46589303

大小:1.78 MB

页数:11页

时间:2019-11-25

简易频率计设计实验报告_第1页
简易频率计设计实验报告_第2页
简易频率计设计实验报告_第3页
简易频率计设计实验报告_第4页
简易频率计设计实验报告_第5页
资源描述:

《简易频率计设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、湖北民族学院理学院测试与传感技术课程设计设计题目:简易频率计设计姓名:胡嗣维学号:021240***专业:物理学指导老师:杨老师2015年7月5日简易数字频率计的设计实验目标:设计一个简易的数字频率计,能实时测量周期信号的频率,并将结果显示出来,频率测量范围为0~1MHz总体方案1.频率测量基本原理数字频率计的主要功能是测量周期信号的频率。频率是单位时间内(1s)信号发生周期变化的次数。如果能在给定的1s时间内对周期信号进行计数,并将计数结果显示出来,就实现了对被测信号的频率测量。2实现方法单片机AT89S51内部具有两个16位定时/计数器

2、,如果用T0对外界周期信号进行计数,T1作为定时器产生1s的定时中断,在T1的定时中断服务程序中读取T0的计数值,即可实现频率的测量。由于测量的频率范围是0~1000000Hz(1MHz),根据单片机对外部信号的计数需要两个机器周期才能识别一个脉冲,所以外部计数脉冲的频率应该小于振荡频率的1/24.所以选择24MHz才能实现频率测量范围为0~1000000Hz(1MHz)。如果系统的频率测量范围更大,则可以在周期脉冲信号接入T0引脚前加分频电路即可。3系统硬件设计系统硬件连接电路图如图所示。系统比较简单,数据处理量不大,因此选用AT89S5

3、1作为控制系统的核心。其特点是低功耗、高性能的CMOS单片机。AT89S51单片机采用静态时钟方式,时钟频率为0~33MHz。本次我们采用的是24MHz的工作频率。频率测量没有大量的运算和暂存数据,现有的128B片内RAM已经满足要求,因此不必要外扩片外RAM。系统选用LCD1602显示频率,因为系统外扩的元件先对比较少,LCD1602采用I/O并行接口方式和单片机相连。图中Ui为输入的周期信号,经过比较和整形电路后将其变为周期脉冲信号送入T0引脚计数使用。上图为电路信号发生器部分以及LF393比较器调节信号整体参考图如下:实际仿真电路显示

4、图如下:实际仿真电路显示图如下4、系统软件设计本系统的软件设计分为主程序、LCD显示驱动程序、T125ms定时中断服务程序和T0计数溢出中断服务程序4个部分。为了方便管理和调试,将整个程序分成两个模块程序文件,分别是主模块main.c和液晶显示模块LCD1602.c。液晶显示模块LCD1602可以单独调试,仿真成功后将这两个文件加入到同一个项目中,并建立液晶显示模块LCD1602.c文件的.h文件,主模块main.c包含这个头文件即可(或者在主模块main.c中将调用LCD1602.c文件的函数声明为外部函数即可)。在不同的应用系统中硬件上

5、单片机和LCD1602的连接如果改变,只需要改变LCD1602.c文件中的引脚定义即可。(1)主程序主程序首先完成对T0、T1和中断的初始化,然后开放中断并启用T0、T1工作;接下来判断1s定时时间是否已到,1s定时时间到则将计数值处理后送到LCD显示器显示。主程序流程图如下:(2)、T125ms定时中断服务程序系统时钟为24MHz,机器周期为0.5us,最大定时时间为655360.5us32.768ms,我们选用的定时时间为25ms,定时中断40次即可实现1s定时,T1中断服务程序的流程图如下:(3)、T0计数溢出中断服务程序T0设置

6、为计数器工作方式,初值为0,如果输入周期信号频率很高,在1s时间内T0计数到65536就会溢出,因此在T0计数溢出中断服务程序中要统计溢出的次数,在1s的计数值即为频率=T0的溢出次数×65536+当前读出的T0计数值。(4)、LCD显示程序LCD1602显示程序流程图如下:首先根据行号和列号发出写入地址命令,然后将指针变量指向的字符串发写入数据命令,将数据显示在LCD上。五、实验误差分析:本次试验要求频率稳定,因此测量频率的结果可能由于实验材料的精度不够而有所误差主程序:/*主函数main.c*/#include#inc

7、lude#includeunsignedchartime1_H,time1_L;unsignedcharcont_25;unsignedchartime0_H,time0_L;unsignedcharT0_num=0;unsignedlongfdata;sbitbdataflag_1s;voiddelay_s(unsignedcharn){unsignedchari;for(i=0;i

8、errupt3{TH1=time1_H;TL1=time1_L;cont_25++;if(cont_25>39){cont_25=0;TR0=0;time0_H=TH0;time

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。