简易数字频率计设计基于单片机2.docx
- 文档编号:10455102
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:26
- 大小:747.30KB
简易数字频率计设计基于单片机2.docx
《简易数字频率计设计基于单片机2.docx》由会员分享,可在线阅读,更多相关《简易数字频率计设计基于单片机2.docx(26页珍藏版)》请在冰豆网上搜索。
简易数字频率计设计基于单片机2
楚雄师范学院
本科生毕业论文
题目:
简易数字频率计设的计
系(院):
xxx
专业:
电子信息科学与技术(非师范)
学号:
20081042110
学生姓名:
xxx
指导教师:
xxx职称:
副教授
论文字数:
8206
完成日期:
2012年5月
教务处印制
楚雄师范学院物电系毕业论文原创性声明
本人郑重声明:
呈交的毕业论文“简易数字频率计的设计”。
是本人在xxx老师的指导下进行研究工作所取得的成果。
除了文中已经引用的内容外,本论文不含其他个人或集体已经发表或撰写过的研究成果。
对本论文的研究做出帮助的个人和集体,均已在论文中作了明确的说明并表示了谢意。
本声明的法律结果由本人承担。
毕业论文作者签名:
xxx
日期:
2012年5月19日
目录
摘要I
关键词语I
AbstractI
KeywordsI
前言1
第一章频率计设计1
1.1频率计概要1
1.2发展动态1
1.3设计任务1
第二章系统模块设计1
2.1整体设计1
2.2测频思路1
2.3模块分析1
第三章硬件设计1
3.1主控模块1
3.2放大整形电路1
3.3分频设计1
3.4驱动显示1
第四章软件设计1
4.1模块设计1
4.2中断服务1
4.3显示实现过程1
4.4量程转换1
4.5软件概述1
第五章系统调试1
5.1硬件调试1
5.2软件调试1
5.3系统调试1
5.4误差分析1
第六章总结1
参考资料1
致谢1
附录1
简易数字频率计的设计
摘要:
频率计作为一种基础测量仪器。
它主要由信号输入、放大整形、分频、单片机控制模块、驱动显示电路等组成。
本设计以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);当输入800Hz时,显示如图5.1(b);
(a)(b)
当输入14.58kHz时,显示如图5.1(c);当输入704kHz时,显示如图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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 数字频率计 设计 基于 单片机