简易数字频率计设计基于单片机.docx
- 文档编号:29231632
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:31
- 大小:749.18KB
简易数字频率计设计基于单片机.docx
《简易数字频率计设计基于单片机.docx》由会员分享,可在线阅读,更多相关《简易数字频率计设计基于单片机.docx(31页珍藏版)》请在冰豆网上搜索。
简易数字频率计设计基于单片机
楚雄师范学院
本科生毕业论文
题目:
简易数字频率计设计
系(院):
xxx
专业:
电子信息科学与技术(非师范)
学号:
20081042110
学生姓名:
xxx
指导教师:
xxx职称:
副教授
论文字数:
8206
完成日期:
2012年5月
教务处印制
楚雄师范学院物电系毕业论文原创性声明
本人郑重声明:
呈交的毕业论文“简易数字频率计的设计”。
是本人在xxx老师的指导下进行研究工作所取得的成果。
除了文中已经引用的内容外,本论文不含其他个人或集体已经发表或撰写过的研究成果。
对本论文的研究做出帮助的个人和集体,均已在论文中作了明确的说明并表示了谢意。
本声明的法律结果由本人承担。
毕业论文作者签名:
xxx
日期:
2012年5月19日
简易数字频率计的设计
摘要:
频率计作为一种基础测量仪器。
它主要由信号输入、放大整形、分频、单片机控制模块、驱动显示电路等组成。
本设计以STC80C51单片机作为控制核心,使用它内部的定时/计数器,实现对待测信号的频率的测量。
设计过程中,频率计采用外部10分频,以便测量1Hz~1MHz的信号频率,并且实现量程自动切换。
显示部分用74LS245驱动,使用四位共阳极数码管显示数据。
本设计采用单片机技术,使得设计具有很高的性价比和可靠性,改善了传统频率计的不足,它具有测量精度高、测量省时、价格便宜、使用方便等优点。
关键词语:
单片机;频率计;驱动显示;放大整形;量程切换
ThedesignofsimpleFrequencyMeasurement
Abstract:
Thefrequencymeterasabasicmeasuringinstrument.Itmainlyconsistsofsignalinput,plasticsurgerytoenlarge,pointsandsingle-chipmicrocomputercontrolmodule,frequencydriverdisplaycircuitetc.ThisdesigntoSTC80C51singlechipmicrocomputerascontrolcore,useitinternaltiming/counter,realizethetreatthefrequencyofthesignalmeasurement.Designprocess,thefrequencymeterusingexternal10pointsfrequency,formeasuring1Hz~1MHzsignalfrequency,andrealizetherangetoswitch.Displaywith74LS245partdrive,useatotaloffouranodedigitaltubedisplaythedata.ThisdesignUSESthesinglechipmicrocomputer,makedesignwithgoodvalueformoneyandthereliability,improvethefrequencyoftheshortcomingsofthetraditionalproject,ithashighaccuracyofmeasurement,highmeasuringtime,cheap,easytouse,etc.
Keywords:
Singlechipmicrocomputer;Thefrequencymeter;Drivedisplay;Enlargeplasticcircuit;Switchrange
前言
在电子技术中,频率作为基本的参数之一,它与许多电参量的测量方案、测量结果密切相关,因此,频率的测量十分的重要。
在许多情况下,要对信号的频率进行精确测量,就要用到数字频率计。
数字频率计作为一种基础测量仪器,它具有测量精度高、测量省时、使用方便等特点。
使得基于单片机的数字频率计得到广泛的应用。
第一章频率计设计
1.1频率计概要
在电子技术中,频率作为基本的参数之一,它与许多电参量的测量方案、测量结果密切相关,因此,频率的测量十分的重要。
在许多情况下,要对信号的频率进行精确测量,就要用到数字频率计。
数字频率计作为一种基础测量仪器,它被用来测量信号(方波、正弦波、锯齿波等)频率,并且用十进制显示测量结果。
它具有测量精度高、测量省时、使用方便等特点。
随着微电子技术和计算机技术的不断发展,单片机被广泛应用到大规模集成电路中,使得设计具有很高的性价比和可靠性。
所以,以单片机为核心的简易数字频率计设计,改善了传统的频率计的不足,充分体现了新一代数字频率计的优越性。
1.2发展动态
在国内,单片机已普遍的应用电子系统的中,其中,以C语言为编程基础,结合单片机典型模块的设计已经开发出了许多应用系统,,如单片机的串口通信、定时/计数器、看门狗、中断、矩阵键盘输入、ADC、DAC、红外遥控接收、电动机控制、LED显示器等。
由于单片机的功能强、体积小、功耗低、价格便宜、工作可靠、使用方便等优点,使得基于单片机的数字频率计得到广泛的应用。
现在国际国内对这类设计的开发与研究具有实用性,借助软件程序控制实现,使得频率计的硬件结构简单,具有良好的性价比和可靠性。
同时,该设计又在不断地深入与发展,以适应更高进度的要求。
1.3设计任务
1.3.1任务
设计一个以单片机为主要控制模块的简易数字频率计。
1.3.2设计要求
(1)基本要求
实现对周期信号的频率进行测量。
测量范围:
信号:
三角波、正弦波、方波;
幅度:
0.5V~5V;
频率:
1Hz~1MHz;
测量误差≤0.1%。
(2)驱动显示部分
用74LS245驱动4位共阳极数码管,以十进制数字显示测量的数据。
电源用电池代替。
第二章系统模块设计
2.1整体设计
在单位时间内对待测信号进行计数,计数值作为信号频率显示在数码管上。
本设计用单片机STC80C51制作简易数字频率计,高频段采用外部10分频,低频段直接用单片机计数,实现对1HZ-1MHZ范围的频率测量。
显示部分用74LS245驱动四位共阳极数码管,显示测量出来的频率结果。
可以测量正弦波、三角波及方波的频率值。
设计的原理框图如图2.1所示。
图2.1总体设计框图
2.2测频思路
频率是周期信号在单位时间1s内变化的次数。
当待测周期信号fx通过放大电路放大后,进入整形电路整形转变为矩形波,送入分频电路对信号进行分频,测量预置定的被测信号周期中标准信号的周期个数,从而测量出信号频率的大小。
测量原理图如图2.2所示。
图2.2测量原理图
如图所示,当被测信号的周期在时间T内重复变化了N次时,所测信号频率为fx=N/T。
2.3模块分析
频率计系统设计包括:
放大整形、分频控制、单片机控制、驱动显示等四个模块组成。
各模块如下:
放大整形模块:
待测信号通过放大电路的放大,降低了系统对待测信号幅度的要求。
整形电路非方波信号转化成方波信号,满足测量的要求。
分频控制模块:
单片机使用12MHz时钟,最大计数速率为500kHz,因此设置了外部分频,扩展单片机的测频范围,使得单片机测频时信号统一,更易于实现,同时降低系统误差。
在本次设计中使用74LS161进行外部10分频。
单片机控制模块:
以STC80C51单片机为控制核心,来完成对待测周期信号的计数,译码和驱动显示以及对分频电路数据选择的控制。
利用其内部的定时/计数器完成待测信号周期/频率的测量。
通过编程,使单片机内部的定时/计数器的正常工作,以便系统对待测信号测频时,实现定时、计数。
驱动显示模块:
用一片74LS245驱动四位共阳极数码管动态显示。
综上所述,频率计的模块设计分析框图如图2.3所示。
图2.3频率计模块设计分析框图
第三章硬件设计
根据系统设计的要求,频率计硬件系统主要包括以下几个部分:
3.1主控模块
主控模块由单片机STC80C51组成,通过在Keil上编程、调试,然后下载到单片机中控制系统模块的运行。
3.1.1STC80C51引脚分配
STC80C51引脚分配如表3-1所示。
表3-1STC80C51引脚分配
XTAL1XTAL2
外接12MHz晶振
RST
接复位电路
P1.2P1.3
分频控制端
P0.0-P0.7
输出段码显示
P2.0-P2.3
控制位码输出端
P3.5
频率信号输入
P0口:
P0口作为输出口,每一位与74LS245对应相连接,驱动数码管各段来显示数据。
P1口:
对P1口写“1”,内部上拉电阻把端口拉高,作为输入口使用。
以P1.2口作为分频控制输入。
P2口:
对P2口写“0”,作为输出口使用。
以P2.0-P2.3为输出端口,控制四位数码管的每一位是否点亮。
P3口:
对P3口写“1”,内部上拉电阻把端口拉高,作为输入口使用,在P3.5T1(定时/计数器1)端口输入频率信号。
RST:
复位输入。
EA/VPP:
外部访问允许端口,在此EA端接地,使CPU仅访问外部程序存储器(地址为0000H-FFFFH)。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.1.2STC80C51组成的最小系统如图3.1所示。
图3.1STC80C51组成的最小系统
3.2放大整形电路
为了降低对待测信号特征的限制,在输入级特别设置了放大整形电路,以增强频率计的适用范围。
待测信号可以是正弦波、三角波、方波等,在经过整形后,待测信号被转化成矩形波。
由于待测信号的强弱未知,所以,在整形之前通过放大衰减处理使得输入信号满足测量的要求。
如图3.2(a)、(b)所示。
在电路放大整形过程中,采用晶体管IRFR9014来组成放大器,对输入的周期信号(可以是正弦波、三角波及方波)进行放大,输入的周期信号频率为fx。
同时,使用74LS00与非门来构成施密特触发器,其作用是对经过IRFR9014组成的放大器放大输后出来的信号整形,使它变换成矩形波。
放大整形电路如图3.2(a)所示。
图3.2(a)信号放大电路图
图3.2(b)信号整形电路图
3.3分频设计
使用74LS161芯片进行外部分频处理,主要用于弥补单片对机频率测量范围的不足,不但可以使单片机测量频率是容易实现,而且还降低系统在测频过程中带来的误差。
3.3.1分频
74LS161作为4位二进制同步计数器,它的最大计数值为16,在此,为了实现外部10分频,使用了一片74LS161芯片∑一个与非门来进行连接。
如图3.3所示。
图3.3分频电路图
使用一片74LS161芯片和一个与非门来进行连接。
时钟脉冲cp从CLK输入,计数器U1输出端Q3与Q1经过与非门U2.A连接,控制U1是否计数。
若计数,计数值从U1计数器的Q3端输出,接在U7的数据输入端X6,以供数据选择。
电路U1实现十进制计数,当U1计数到9(1001)时,U1的Q3输出为1,当下一个时钟脉冲CLK上升源到来时,U1计数值归零。
74LS161作为4位二进制同步计数器,它具有同步并行预置数,清零,计数,保持等功能,进位输出端还可以接其他计数器级联使用。
时钟CLK,数据输入端D0-D3,清零/MR,使能端ENT、ENP,置数/LOAD,数据输出端Q0-Q3,进位输出RCO,RCO=Q0*Q1*Q2*Q3*ENT。
74LS161功能如表3-1所示。
表3-174LS161功能表
输入端
输出端
/MR
/LOAD
ENP
ENP
CLK
D3
D2
D1
D0
Q3
Q2
Q1
Q0
0
×
×
×
×
×
×
×
×
0
0
0
0
1
0
×
×
↑
d
c
b
a
d
c
b
a
1
1
0
×
↑
×
×
×
×
保持
1
1
0
↑
×
×
×
×
保持
1
1
1
1
↑
×
×
×
×
计数加1
3.3.2数选
选用74HC151芯片对输入频率进行数据选择,它作为一种八选一芯片,有八个数据输入端X0-X7,三个地址输入端A、B、C,一个选通输入端/E,两个互补输出Y、/Y。
74HC151功能如表3-2所示。
表3-274HC151功能表
输入端
输出端
/E
C
B
A
Y
/Y
H
×
×
×
L
H
L
L
L
L
x0
/x0
L
L
L
H
x1
/x1
L
L
H
L
x2
/x2
L
L
H
H
x3
/x3
L
H
L
L
x4
/x4
L
H
L
H
x5
/x5
L
H
H
L
x6
/x6
L
H
H
H
x7
/x7
表3-2所示,选通输入端/E=0,地址输入端B=C=1,由A的状态来选择x6、x7中的一个数据,并在Y端输出被选择的数据。
3.4驱动显示
显示部分由STC80C51的P0口输出,为了防止P0口的负载超出最大负载能力,在P0口接上8路同相三态双向总线收发器74LS245芯片,来驱动LED数码管显示数据。
如图3.4.1所示。
图3.4.1显示模块图
片选端/CE低电平有效,保证数据畅通,DIR=0,信号由B向A传输;P0口与74LS245输入端相连,74LS245输入(即P0.i←Ai)。
显示时使用四位共阳极数码显示数据,常用的每位LED显示器由八个发光二极管组成,通常叫做8段数码管,即a、b、c、d、e、f、g、h、dp共八个字段,其中,dp表示显示器上的一个圆点。
字段及引脚分配如下[6]:
图3.4.2四位数码管图3.4.3共阳极数码管
数码管显示代码如表所示:
字符
dpg f e d c b a
共阳段码
共阴段码
0
1 1 0 0 0 0 0 0
C0H
3FH
1
1 1 1 1 1 0 0 1
F9H
06H
2
1 0 1 0 0 1 0 0
A4H
5BH
3
1 0 1 1 0 0 0 0
B0H
4FH
4
1 0 0 1 1 0 0 1
99H
66H
5
1 0 0 1 0 0 1 0
92H
6DH
6
1 1 0 0 0 0 1 0
82H
7DH
7
1 1 1 1 1 0 0 0
F8H
07H
8
1 0 0 0 0 0 0 0
80H
7FH
9
1 0 0 1 0 0 0 0
90H
6FH
A
1 0 0 0 1 0 0 0
88H
77H
B
1 0 0 0 0 0 1 1
83H
7CH
C
1 1 0 0 0 1 1 0
C6H
39H
D
1 0 1 0 0 0 0 1
A1H
5EH
E
1 0 0 0 0 1 1 0
86H
79H
F
1 0 0 0 1 1 1 0
8EH
71H
第四章软件设计
软件部分采用模块化设计,绘制出总体及各个模块的程序流程框图,主要运用Keil和Protues软件,实现对系统功能的测试与仿真。
4.1模块设计
软件部分采用模块化设计,它由初始化模块,频率测量模块和显示电路模块等组成。
软件设计流程框图如图4.1所示。
图4.1软件设计流程框图
a、启动对待测信号的计数,此时定时/计数器的计数器清0,TR置1;
b、用延时程序实现闸门计数,闸门计数结束时把TR清0,停止计数;
c、计数寄存器中的数值从十六进制转换为十进制。
若该数的最高位为0,闸门计数宽度扩大10倍,重计数,直到满足测量要求为止。
否则,若该位不为0,测量值直接送入显示模块;
d、16位定时/计数器的计数值最高为65535,若待测信号的频率较低,则直接计数,否则,进行硬件十分频后再计数。
4.2中断服务
测频时T0工作在定时方式,用来产生标准时基秒信号,定时为50ms,每中断20次为1秒,在本设计中,T0用作计数器对待测信号计数,当每秒开始时,启动计数器T0,当每秒结束时,暂停计数器T0,则待测信号的频率就等于T0的计数值乘以分频系数。
T1工作在计数方式,对信号计数。
4.3显示实现过程
显示由4位LED共阳极数码管,通过快速扫描方式将8位段码连接在单片机的P0口上,4位位码接P2口的低四位,P2.0-P2.3逐位轮流点由亮各个数码管,每位保持一定的延时,重复点亮,这样看上去4位数码管是同时点亮的。
数码管显示程序流程图如图4.2所示。
图4.2数码管显示程序流程图
4.4量程转换
使用定时方法测量频率时,判定高电平是否加至输入脚P3.5口。
当高电平加至P3.5口时,把TR置1,启动定时/计数器开始计数,若方波高电平结束时,把TR清0,停止计数,此时测量数据从计数寄存器读出,由显示电路显示。
对测量结果加以判断后,自动切换档位,档自动转换流程图如图4.3所示。
图4.3档自动转换流程图
4.5软件概述
本设计运用Keil软件平台实现编程和调试,在Proteus软件平台上完成仿真。
因此介绍Keil和Proteus连接使用,进行软件仿真。
4.5.1Keil软件
Keil软件作为单片机的开发软件,它提供仿真调试器、连接器、C编译器、宏汇编、库管理等,这些部份在uVision(集成开发环境)下组合在一起。
它能仿真单片机CPU及单片机外围电路的工作情况。
仿真调试程序时,从工程的角度来观察过程和结果。
Keil软件在使用时,进行以下步骤:
a、建立工程文件
先新建一个文件,命名后,在Keil运用窗口点击“Project->Newproject”,在弹出对对话框命名建立的工程,点击“保存”按钮,出现下一个对话框,选择目标器件。
建立新文件并增加到组。
设置“target1”中的“Target,output,debug”各项,使程序汇编后产生HEX文件。
b、编程,调试
在Keil集成开发环境中选择“File→New”,完成源文件的输入,然后选择“File→SaveAs”完成文件首次存储。
若对源文件又进行修改,再次存储文件选择“File→Save”实现文件的保存,把源文件加入工程中。
选择工程管理器窗口中的“SourceGroup1”子目录,单击鼠标右键,在快捷菜单中选择“AddFiletoGroup‘SourceGroup1’”,在“文件类型(T)”下拉列表框选择“AsmSourcefile”,选择要加入的文件名双击即可在“SourceGroup1”子目录下添加源文件。
对源程序进行编译,出错时更改后重新编译,直到无错为止。
4.5.2Protues软件
Protues是一种电路分析、实物仿真系统,它由Labcenter公司出品。
Protues和KEIL编译软件结合实现对实物对仿真。
它提供RAM,ROM,键盘,LED,LCD等元件库,使用极其方便,只要画出电路图就可以实现仿真。
4.5.3Keil和Protues集成使用
安装好Keil和Protues个软件后,把C:
\ProgramFiles\LabcenterEletronics\Protues6Professional\MODELS\VDM51.DLL件复制到C:
KEIL\C51\BIN目录下面,这个文件在设置Keil的Debug时用到。
打开Protues新建文件,绘制硬件原理图。
将Keil生成的Hex文件下载到单片机中进行仿真。
利用Protues与Keil进行实验,硬件投入少、经济,弥补实验仪器和元件带来的不足,同时排除了材料消耗和仪器损坏。
第五章系统调试
频率计的系统调试分为软件调试和硬件调试两部分。
硬件调试是排除设计电路的设计错误,使得系统满足设计的需要。
软件调试就是通过Keil和Protues集成使用,进行仿真与调试,若发现错误,通过不断修改设计程序,使频率计的测量功能更加完善。
5.1硬件调试
在系统硬件调试时,若测量频率小于1KHz,数码管以最右边为低位开始显示频率值。
若测量频率在1KHz至1MHz之间时,数码管从右边数第二个发光二极管亮,显示频率值。
若测量频率大于1KHz,数码管显示频率值为0。
硬件测试结果如图5.1所示。
当输入1Hz时,显示如图5.1(a);当输入871Hz时,显示如图5.1(b);
(a)(b)
当输入15kHz时,显示如图5.1(c);当输入764kHz时,显示如图5.1(d);
(b)(d)
当输入6MHz时,显示如图5.1(e)。
(e)
图5.1硬件调试频率显示
经测试,基本实现功能,测出相应的波形频率,并可以实现量程自动切换,符合设计要求。
5.2软件调试
放大整形电路采用三极管9014对信号放大,由74LS00与非门构成的施密特触发器,对放大的正弦波、三角波等周期信号整形,转化为矩形脉冲,经过分频电路送入单片机80C51的P3.5口,运用指令控制驱动器74LS245驱动数码管显示数据。
在Proteus中绘制的电路图,用虚拟函数发生器输入1MHz以下不同频率的的周期信号,进行仿真显示。
当输入5Hz时,显示如图5.2(a);当输入415Hz时,显示如图5.2(b);
(a)(b)
当输入8KHz时,显示如图5.2(c);当输入15KHz时,显示如图5.2(d)。
(c)(d)
图5.2软件仿真频率显示
5.3系统调试
系统在调试阶段,经过反复的调试、修改,基本完成了设计所要求的任务。
软件实现量程的自动转换,驱动显示器显示数据时,可以测量1Hz-1MHz的周期信号。
硬件电路通过放大整形模块,分频模块,单片机主控模块,驱动显示模块组成,经过软硬联合调试,最终完成了设计,调试数据记录如表5-1所示。
表5-1调试数据记录表
软
件
输入
2
5
415
850
8k
15k
147k
386k
655k
876k
输出
2
5
415
850
8k
15k
147k
386k
655k
876k
硬
件
输入
1
16
45.5
143
438
800
14.58k
146.2k
704k
888k
输出
1
17
49
156
479
872
15k
158k
764k
961k
5.4误差分析
根据数据记录的结果可以看出,软件仿真误差较小,测量出来的频率在1Hz-1MHz范围内基本上就是输入信号的频率。
但是在硬件调试中,可能由于标准元器件本身误差,对测量结果产生影响,测量结果偏大,没有软件仿真时的准确。
另外手工焊接的电路也会带来一定的干扰,导致测量精度下降,测量范围缩小,但是经过调试可知,设计的电路是可行的。
第六章总结
毕业设计已经结束,通过本次毕业设计我获得很多收获。
首先,了解了单片机的基本知识。
其次,进一步学习了C语言的编写程序的方法,学会使用Prot
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 数字频率计 设计 基于 单片机