基于c语言单片机数字频率计课程设计.docx

上传人:b****1 文档编号:22998966 上传时间:2023-04-30 格式:DOCX 页数:17 大小:258.24KB
下载 相关 举报
基于c语言单片机数字频率计课程设计.docx_第1页
第1页 / 共17页
基于c语言单片机数字频率计课程设计.docx_第2页
第2页 / 共17页
基于c语言单片机数字频率计课程设计.docx_第3页
第3页 / 共17页
基于c语言单片机数字频率计课程设计.docx_第4页
第4页 / 共17页
基于c语言单片机数字频率计课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于c语言单片机数字频率计课程设计.docx

《基于c语言单片机数字频率计课程设计.docx》由会员分享,可在线阅读,更多相关《基于c语言单片机数字频率计课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

基于c语言单片机数字频率计课程设计.docx

基于基于c语言单片机数字频率计课程设计语言单片机数字频率计课程设计课程设计报告课程设计报告课程名称:

单片机课程设计报告题目:

数字频率计学生姓名:

所在学院:

专业班级:

学生学号:

指导教师:

2013年12月25日课程设计任务书报告题目数字频率计完成时间2013/12/25学生姓名专业班级指导教师职称讲师总体设计要求和技术要点设计一个数子频率计,要求如下:

1完成单脉冲测量,输入脉冲宽度范围是100s0.1s。

2使用AT89C51单片机的定时器/计数器的定时和计数功能,外部扩展6位LED数码管,要求累计每秒进入单片机的外部脉冲个数,用LED数码管显示出来。

3.要求

(1)被测频率fxv110Hz,米用测周法,显示频率XXX.XXX;fx110Hz,米用测频法,显示频率XXXXXXo

(2)利用键盘分段测量和自动分段测量。

(3)完成单脉冲测量,输入脉冲宽度范围是100s0.1s。

(4)显示脉冲宽度要求如下。

Txv1000s,显示脉冲宽度xxXoTx1000s,显示脉冲宽度xxxxo工作内谷及时间进度安排1.时间及任务17周-18周周一到周五,上午8:

00-11:

40,下午2:

00-5:

40。

(1)17周周一:

学生选题,明确任务,指导教师对课题进行讲解,资料检索。

(2)17周周二:

硬件设计(3)17周周三:

硬件仿真(4)17周周四:

软件设计(5)17周周五:

软件设计(6)18周周一:

软件设计(7)18周周二:

综合调试(8)18周周三:

书写课程设计报告(9)18周周四:

书写课程设计报告(10)18周周五:

答辩评分摘要摘要以ATME单片机为核心,利用单片机的外部中断、定时器的计数模式和定时器的功能对信号发生器产生的脉冲频率进行计数。

且可以根据频率的不同,单片机控制选择测周法或者测频法对产生的脉冲波形进行计数,以进行更加精确的频率测量。

而且可以通过按键来进行频率测量方法的选择。

关键词:

数字频率计;测频发;测周法;单片机、概述、方案论证1总体方案2.测量方案选择2三、硬件设计21.系统功能描述22.硬件电路设计方框33单片机各部分电路3四、软件设计41.测频发42测周法43主程序流程图设计54.程序设计14五、课程与心得14六、参考文献15一、一、概述概述数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。

数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字,显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精度高,显示直观,所以经常要用到数字频率。

二、二、方案论证方案论证1总体方案总体方案本次设计包含硬件设计与软件设计两部分,根据设计任务要求,采用AT89S52单片机,配置时钟电路,复位电路构成单片机最小系统,配置前置放大电路,人机对话通道中的键盘,数码管显示,从而构成设计要求的单片机应用测频系统,其结构框图如下图1-1所示:

前置放大整形键盘电路图1结构框图2.测量方案选择方案一:

直接测频法。

直接测频法是把被测频率信号经脉冲形成电路后加到闸门的一个输入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲被送到十进制计数器进行计数。

设计数器的值为N,由频率定义式可以计算得到被测信号频率为:

f=N/T。

方案二:

高精度恒误差测频法。

通过对传统测量方法的研究,结合高精度恒误差测量原理,设计一种测量精度与被测频率无关的硬件测频电路。

本方法立足于快速的宽位数高精度浮点数字运算。

方案三:

倍频法。

直接测频法在高频段有着很高的精度。

可以把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数将经整形的低频信号进行倍频后再进行测量,高频段则进行直接测量。

从编程难易及单片机资源利用情况和测量误差角度考虑,选择方案一,尽管在测量低频段时的相对测量误差较大。

但是可以通过增大T来提高测量精度。

3.硬件设计硬件设计1系统功能描述本次课程设计主要完成功能有:

(1)按P3A4键可选择测量频率。

(2)按卩3八5键可以选择测量周期。

(3)按P3A6键可以自动选择测频率与测周期。

2.硬件电路设计框架根据设计要求,数字频率计整个系统硬件框架图如下2-1待测信息图2整机硬件电路框图3.单片机各部分电路

(1)P0口经上拉电阻数据管显示电路

(2)卩3八4-卩3八6作为键盘设置端口(3)P3A3作为被测信号输入端口(4)P3A4被测信号接收端OpF图3单片机最小系统4.放大整形部分待测信号经过第一级放大后,进入第二级放大限幅电路。

LM318是高数运放,工作电压土5-20V,输入带宽15MHZ足够处理高频信号。

放大倍数:

n=RL2/RL1(RL2用50K,RL1用10K)。

限幅原理:

限幅电路的稳压管跨接在集成运放的输出端和反相输入端之间。

假设稳压管截止,则集成运放必然工作在开环状态,输出电压不是+UOM就是-UOM这样,必将导致稳压管击穿而工作在稳压状态,DZ构成负反馈通路,使反相输入端为“虚地”,限流电阻上的电流iR等于稳压管的电流iZ,输出电压uO=U乙图4放大电路四、软件设计四、软件设计1测频发mJ_Lmiiiiniiii图5测频原理所谓“频率”,就是周期性信号在单位时间(1S)内变化的次数。

若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T右图其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fxo时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1so闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。

秒信号结束时闸门关闭,计数器停止计数。

2测周法主要是利用单片机的定时器计时,测量2个时间参数t1和t2,即如下所示:

v11*竺tN高电干日寸可V氐电平AT可图6测周法计算信号的一个波形的周期t=t1+t2则可以求出频率f=1/t3.主程序流程图设计图7流程图4.程序设计#include#includesbitsmgdl=P2A6;sbitsmgwl=P2A7;bitLED=P3A3;sbitkey1=P3A4;/定义按键1sbitkey2=P3A5;/定义按键2sbitkey3=P3A6;/定义按键3sbitkey4=P3A7;/定义按键4unsignedcharvalue,smg;/保存按键接口状态unsignedcharlkey,key_time;unsignedcharmode=0;unsignedinttime=0;unsignedcharnum=0;unsignedcharkey=0;unsignedchartime_key=0;unsignedintflag_f=0;unsignedintf_temp1=0;unsignedintf_temp2=0;unsignedintt_temp1=0;unsignedintt_temp2=0;unsignedcharflag_int_0=0;charunsignedchartablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;unsignedtabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsignedcharsu=0,0,0,0,0,0,0,0;/*DIS_LED*/voiddelay(unsignedinta)/延时函数unsignedintb;unsignedcharc;for(b=a;a0;a-)for(c=100;c0;c-);/voiddisplay_smg(unsignedcharsmg,unsignedcharvalue)显示函数smgwl=1;P0=tablewesmg;smgwl=0;smgdl=1;P0=tableduvalue;smgdl=0;delay(6);/延长显示时间避开视觉暂留看数码管显示过程unsignedcharReadKey(void)if(key1=0)key_time+;if(key_time=20)lkey=1;mode=1;if(key_time20)key_time=100;elseif(key2=0)key_time+;if(key_time=20)lkey=2;mode=2;if(key_time20)key_time=100;elseif(key3=0)key_time+;if(key_time=20)lkey=3;mode=3;if(key_time20)key_timeelsekey_time=0;returnlkey;voidmain()unsignedchark;TMOD=0x01;/TH0=(65536-2000)/256;TL0=(65536-2000)%256;/EA=1;ET0=1;TR0=1;/PT0=1;100;定时器初始化/EX0=1;IT0=1;EA=1;/外部中断初始化while

(1)display_smg(0,su2);/数码管显示display_smg(1,su3);/数码管显示display_smg(2,su4);/数码管显示display_smg(3,su5);/数码管显示display_smg(4,su6);/数码管显示display_smg(5,su7);/数码管显示k=ReadKey();LED=LED;/脉冲发生voidtime_1()interrupt1/定时器TH0=(65536-1000)/256;初始化TL0=(65536-1000)%256;time+;if(time=500)time=0;num+;if(num=10)num=0;if(mode=1)/测频法模式EX0=1;/外部中断打开IT0=1;flag_f+;钟计时if(flag_f=600)/1Sflag_f=0;mode=0;EX0=0;su2=f_temp2;su3=f_temp1/10000;su4=f_temp1/1000%10;su5=f_temp1/100%10;su6=f_temp1/10%10;su7=f_temp1%10;f_temp1=f_temp2=0;if(mode=2)/测周法模式EX0=1;/外部中断打开IT0=0;PX0=1;if(flag_int_0=1)EX0=0;mode=0;flag_int_0=0;TR1=0;t_temp1=TL1;t_temp2=TH1;t_temp2=t_temp2*256;t_temp1=t_temp1+t_temp2;/su2=t_temp2/100;su3=t_temp1/10000;su4=t_temp1/1000%10;su5=t_temp1/100%10;su6=t_temp1/10%10;su7=t_temp1%10;TH1=0;TL1=0;自动测频测周if(mode=3)/EX0=1;/外部中断打开IT0=1;flag_f+;if(flag_f=600)/1S钟计时flag_f=0;EX0=0;if(f_temp1110)mode=2;外部中断=0;if(f_temp1=50000)f_temp1=50000;f_temp2+;if(f_temp2=5000)f_temp1=f_temp2EX0=1;if(mode=2)TR1=1;flag_int_0=1;五、结论与心得五、结论与心得这次为期两周的课程设计让我受益匪浅。

以前只是对单片机更多的只是一些感性的,理论上的认识,自己真正动手的时候,才真正理解到其中的精华所在。

频率计的设计让我更好的了解如何应用单片机的定时器计数器模块,其中最重要的是分析问题解决问题的能力,在我看来,无论是在节省硬件资源,还是提高数据的准确度来看,都需要下一些功夫把它做到最好。

感谢廖亦凡博士在此寒冷的天气每天指导我们的单片机的设计,是您的经验帮助我解决很多技术上的难题。

六、参考文献六、参考文献【1】杨恢先黄辉先单片机原理及应用人民邮电出版社【2】大能南光群刘金华单片机课程设计指导书北京理工大学【3】谭浩强C语言程序设计第二版清华大学教师评语及设计成绩教师评语:

课程设计成绩:

指导教师:

(签名)日期:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1