51单片机数字频率设计.docx
《51单片机数字频率设计.docx》由会员分享,可在线阅读,更多相关《51单片机数字频率设计.docx(24页珍藏版)》请在冰豆网上搜索。
51单片机数字频率设计
摘要
本方案主要以单片机为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分,设计以单片机为核心,被测信号先进入信号放大电路进展放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。
利用单片机的计数器和定时器的功能对被测信号进展计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
本设计以89C51单片机为核心,应用单片机的算术运算和控制功能并采用LED数码显示管将所测频率显示出来。
系统简单可靠、操作简易,能根本满足一般情况下的需要。
既保证了系统的测频精度,又使系统具有较好的实时性。
本频率计设计简洁,便于携带,扩展才能强,适用范围广。
[关键词]单片机,运算,频率计,LED数码管朗显示对应的拉丁字符的拼音
字典-查看字典详细内容
前言
在电子测量领域中,频率测量的准确度是最高的,可达10—10E-13数量级。
因此,在消费过程中许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,以进步准确度。
国际上数字频率计的分类很多。
按功能分类,测量某种单一功能的计数器。
如频率计数器,只能专门用来测量高频和微波频率;时间计数器,是以测量时间为根底的计数器,其测时分辨力和准确度很高,可达ns数量级;特种计数器,它具有特种功能,如可逆计数器、予置计数器、差值计数器、倒数计数器等,用于工业和白控技术等方面。
数字频率计按频段分类
(1)低速计数器:
最高计数频率<10MHz;
(2)中速计数器:
最高计数频率10—100MHz;(3)高速计数器:
最高计数频率>100MHz;(4)微波频率计数器:
测频范围1—80GHz或更高。
单片机自问世以来,性能不断进步和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。
单片机的潜力越来越被人们所重视。
特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰才能强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的开展。
在电子技术中,频率是最根本的参数之一,并且与许多电参量的测量方案、测量结果都有非常亲密的关系,因此频率的测量就显得更为重要。
频率计的根本原理是用一个频率稳定度高的频率源作为基准时钟,比照测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。
闸门时间也可以大于或小于一秒。
闸门时间越长,得到的频率值就越准确,但闸门时间越长那么每测一次频率的间隔就越长。
闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。
数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。
如配以适当的传感器,可以对多种物理量进展测试,比方机械振动的频率,转速,声音的频率以及产品的计件等等。
1.2课题研究的目的和意义
单片机数字频率计以其可靠性高、体积小、价格低、功能全等优点,广泛地应用于各种智能仪器中,这些智能仪器的操作在进展仪器校核以及测量过程的控制中,到达了自动化,传统仪器面板上的开关和旋钮被键盘所代替,测试人员在测量时只需按需要的键,省掉很多烦琐的人工调节,智能仪器通常能自动选择量程,自动校准。
有的还能自动调整测试点,这样不仅方便了操作,也进步了测试精度。
数字频率计设计的任务与要求
单片机控制的数字频率计
1.测频范围:
10Hz~10KHz。
为保证测量精度分三个频段
10Hz~100Hz,100Hz~1KHz,1KHz~10KHz,有超量程指示。
2.输入波形:
函数信号发生器输出方波,矩形波,幅度为5V,能产生所需频率的脉冲信号。
3.测量误差:
≤1。
方案一:
本方案主要以单片机为核心,被测信号先进入信号放大电路进展放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。
利用单片机的计数器和定时器的功能对被测信号进展计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
方案二:
本方案使用大量的数字器件,被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被侧信号的频率一样。
同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号完毕闸门关闭,停顿计数。
假设在闸门时间1s内计数器计得的脉冲个数为N,那么被测信号频率Fx=NHz。
逻辑控制电路的作用有两个:
一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。
比较以上两种方案可以知道,方案一的核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值那么可以实现不同频率范围的测试能自动选择测试的量程。
与方案一相比较方案二那么使用了大量的数字元器件,原理电路复杂,硬件调试费事。
如要测量高频的信号还需要加上分频电路,价格相对高了点。
基于上述比较,所以选择了方案一
第三章数字频率计的硬件系统设计
3.1数字频率计的硬件系统框架
数字频率计是一个将被测频率显示出来的计数装置,它主要由单片机89C51控制、7407、LED显示器、电源等组成。
该系统的功能是将信号输入P3.4口,通过单片机程序控制,对LED显示器进展段控和位控,实现动态显示。
数字频率计是计算机、通讯设备、音频视频等科研消费领域不可缺少的测量仪器。
在进展有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,准确度高,显示直观,会被经常使用到。
图3-1为数字频率计方案框图。
图3-1数字频率计方框图
3.2数字频率计的主机电路设计
ATC89C51[可以完成ISP在线编程功能,ATC89C51内部有EEPROM,可以在程序中修改,断电不丧失。
还增加了两级中断优先级,STC推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。
1.89C51芯片介绍
许多由关硬件设计中都使用到单片机89C51,其功能[7]比以往的单片机强大的多。
89C51引脚图如图3-2所示。
图3-289C51引脚图
芯片引脚功能:
主电源引脚Vcc和Vss
•Vcc〔40脚〕:
接+5V电压;
•Vss〔20脚〕:
接地。
89C51晶振接法如图3-3。
图3-389C51晶振接法图
选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。
电容的大小范围为20pF~40pF,本设计选用30pF电容。
2.单片机复位状态
单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲〔2个机器周期〕以上的高电平,单片机便实现初始化状态复位。
为了保证应用系统可靠地复位,在设计复位电路时,通常使
RST引脚保持10ms以上的高电平。
只要保持高电平,那么MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开始执行程序。
在复位有效期间,ALE、引脚输出高电平。
89C51上电复位电路图。
图3-489C51上电复位电路图
单片机复位状态表。
表3-5单片机复位状态表
专用存放器
复位状态
专用存放器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TH0
00H
PSW
00H
TL0
00H
SP
07H
TH1
00H
DPTR
0000H
TL1
00H
P0~P3
FFH
SCON
00H
IP
XXX00000B
SBUF
XXXXXXXXB
IE
0XX00000B
PCON
0XXXXXXXB
注:
XXX不定
复位后,P0口~P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP〔即设定堆栈底为07H〕,同时,将程序计数器PC和其余的特殊功能存放器清为0〔不定的位除外〕。
但复位不影响单片机内部的RAM状态
3.3数字频率计显示电路的设计
在单片机系统中,常用的显示器有:
发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器。
而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。
LED段显示器构造与原理
LED显示器是由发光二极管显示字段组成的显示块,有7段和“米〞字段之分。
这种显示块有共阳极和共阴极两种。
此外,显示块中还有一个圆点型发光二极管〔在图中以dP表示〕用于显示小数点。
通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号。
LED显示块中的发光二极管共有两种连接方法:
(1)共阳极接法
发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段那么不点亮。
(2)共阴极接法
发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段那么不点亮。
数码管引脚如图3-5。
图3-6数码管引脚图
共阴和共阳构造的LED显示器各笔划段名和安排位置是一样的。
当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。
8个笔划段
dP、g、f、e、d、c、b、a对应于一个字节〔8位〕的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。
例如,对于共阴LED显示器,当公共阴极接地〔为零电平〕,而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“P〞字符的字形码是73H。
假设是共阳LED显示器,公共阳极接高电平,显示“P〞字符的字形代码应为10001100〔8CH〕。
用LED显示器显示十进制转换成十六进制数的字形代码在表3-6中列出。
表3-6LED十六进制的数字代码表
字形
共阳极代码
共阴极代码
字形
共阳极代码
共阴极代码
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
BOH
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
8EH
71H
7
F8H
07H
灭
FFH
00H
8
80H
7FH
3.4数字频率计的计数电路的设计
74LS290是异步十进制计数器。
它由一个二进制计数器和一个异步五进制计数器组成。
74LS290引脚图如图3-6所示。
图3-674LS290引脚图
当复位输入R0
(1)=R0
(2)=1,且置位输入S9
(1)•S9
(2)=0时,74LS290的输出被直接置零;只要置位输入S9
(1)•S9
(2)=1,那么74LS290的输出将被直接置9,即=1001;只有当S9
(1)和S9
(2)不全为1,并且R0
(1)和R0
(2)不全为1时,输入计数脉冲CP,计数器开始计数。
计数脉冲由CP0输入,从Q0输出时,那么构成二进制计数器;计数脉冲由CP1输入,输出为Q2Q1Q0时,那么构成五进制计数器;假设将Q0和CP1相连,计数脉冲由CP0输入,输出为Q3Q2Q1Q0时,那么构成十进制〔8421码〕计数器;假设将Q3和CP0相连,计数脉冲由CP1输入,输出为Q3Q2Q1Q0时,那么构成十进制〔5421码〕计数器。
因此,74LS290又称为“二—五—十进制型集成计数器〞。
异步清零端MR1,MR2为高电平时,只要置9端MS1,MS2有一个为低电平,就可以完成清零功能。
当MS1,MS2均为高电平时,不管其他输入端状态如何,就可以完成置9的功能。
当MR1,MR2中有一个以及MS1,MS2中有一个同时为低电平时,在时钟端/CP0,/CP1脉冲下降沿作用下进展计数操作。
a)十进制计数。
应将/CP1与Q0连接,计数脉冲由/CP0输入。
b)二、五混合进制计数。
应将/CP0与Q1连接,计数脉冲由/CP1输入。
c)二分频、五分频计数。
Q0为二分频输出,Q1~Q3为五分频输出。
引出端符号功能如下。
CP0二分频时钟输入端〔下降沿有效〕
CP1五分频时钟输入端〔下降沿有效〕
QA~QD输出端
MR1,MR2异步复位端
MS1,MS2异步置9端
74LS290的级联扩展如表3-7所示
表3-774LS290级联扩展说明
CP输入端
输出端
进制
输出状态
分频端
CP0
Q0
二
0、1
Q0为二分频端
CP1
Q3Q2Q1
五
000~100
Q3为五分频端
CP0且Q0与CP1相连
Q3Q2Q1Q0
十
0000~1001
Q3为非常频端
74LS290十进制的电路连接如图3-11所示。
图3-774LS290十进制计数器
两片接成十进制的74LS290级联组成2×10=20进制异步加法计数器如图3-8所示。
图3-8二十进制异步加法计数器
本设计中因为要对信号进展20分频,所以要使用两块74LS290进展级联。
一块74LS290用作2分频,一块74LS290用作10分频。
信号由第一块74LS290的CP0输入从Q0输出,这样信号就经过了2分频,再把信号输入第二块74LS290的CP0并且第二块74LS290的CP1与Q0相连,这时从第二块74LS290的Q3输出的信号就已经完成了20分频。
使用变压器提供到AC桥堆的输入脚为9V交流电压,通过AC整流输出为9V直流电,经过电解电容滤波、7805稳压,提供给89C51单片机为5V电压。
5V电源电路如图3-9所示。
图3-95V电源电路图
第四章数字频率计软件系统设计
软件设计规划
信号处理
在频率计开始工作,或者完成一次频率测量,系统软件都进展测量初始化。
测量初始化模块设置堆栈指针〔SP〕、工作存放器、中断控制和定时/计数器的工作方式。
定时/计数器的工作首先被设置为计数器的计数存放器清0后,置运行控制位TR为1,启动对待测信号的计数。
计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。
计数闸门完毕时TR清0,停顿计数。
计数存放器中的值通过16进制数道10进制数转换程序转换为10进制数。
对10进制数的最高位进展判别,假设该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;假设该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。
待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的P3.4引脚,为单片机测信号频率提供有效的输入信号。
单片机通过检测P3.4引脚来判断是否启动测周期程序。
当该引脚为高电平时那么等待,知道该引脚出现低电平时才开始测周期。
首先将零赋给TH0、TL0两个存放器,将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0终端,然后再判断P3.4引脚是否还为低电平,当不是低电平时那么等待。
一旦出现低电平那么使TR0复位以终止定时器,测周期程序完毕。
在测周期过程中,会发生定时器T0的中断,每发生一次中断那么将R0存放器加一,因此R0实际上是周期值的高字节。
测出的周期值存储在R0、TH0、TL0三个存放器中,然后将其转换成频率。
由于所测周期的单位是µs,再相除转换时要将被除数扩大10
倍,这样才能保证得出正确的频率。
得出的频率放到R1、R2、R3三个存放器后调用转换BCD代码模块。
调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。
中断控制
由于在程序设计中用到中断[9]方式,所以我们在此对单片机中断系统
中的中断控制作一下介绍。
中断是工业过程控制及智能化仪器用微型机或单片机应用最多的一种数据传送方式。
在通常情况下,单片机执行主程序,只有当正常状态出现故障,或发出中断恳求时,单片机才暂停执行主程序,转去执行或处理中断效劳程序,执行完中断效劳程序后,再返回到主程序继续运行。
单片机的这一种工作过程称为中断方式。
基于资源共享原理上的中断技术,在计算机中得到了广泛的应用。
中断技术能实现CPU与外部设备的并行工作,进步CPU的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障及时发现并进展自动处理如:
硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘发出恳求,随时对运行中的计算机进展干预,而不用先停机处理,然后再重新开机等。
在单片机中,中断技术主要用于实时控制。
所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等恳求,使被控对象保持在最正确工作状态,以到达预定的控制效果。
由于这些控制参量的恳求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。
定时器/计数器
〔1〕定时器控制存放器〔TCON〕
TCON存放器既参与中断控制又参与定时控制。
现对其定时功能加以介绍。
其中有关定时的控制位共有4位:
F0和TF1——计数溢出标志位
当计数器计数溢出〔计满〕时,该位置“1〞;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0〞;使用中断方式时,此位作中断标志位,在转向中断效劳程序时由硬件自动清“0〞。
R0和TR1——定时器运行控制位
TRO〔TR1〕=0 停顿定时器/计数器工作
TRO〔TR1〕=1 启动定时器/计数器工作
〔2〕工作方式控制存放器〔TMOD〕[11]
TMOD存放器是一个专用存放器,用于设定两个定时器/计数器的工作方式。
但TMOD存放器不能位寻址,只能用字节传送指令设置其内容。
〔3〕中断允许控制存放器〔IE〕[12]
EA——中断允许总控制位
ET0和ET1——定时/计数中断
定时器/计数器提供给用户使用的有:
8位计数器TH和TL,以及有关的控制位。
这些内容只能以软件方法使用。
可以产生中断申请的部件被称为中断源。
8051型单片机提供了五个中断源:
两个外部中断源和三个内部中断源。
每一个中断源都有一个中断申请标志位,但是串行口占有两个中断标志位。
一共有六个中断标志位。
〔4〕定时器/计数器对输入信号的要求
定时器/计数器的两个作用是用来准确确实定某一段时间间隔[13]〔作定时器用〕或累计外部输入的脉冲个数〔作计数器用〕。
当用作定时器时,在其输入端输入周期固定的脉冲,根据定时器/计数器中累计〔或事先设置〕的脉冲个数,即可计算出所定时间的长度。
当89C51内部的定时器/计数器被选择为定时器工作方式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。
因此,定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
当采用12MHz频率的晶体时,计数频率为1MHz,输入脉冲的周期间隔为1μs[14]。
由于定时的精度决定于脉冲的周期,因此,当需要高精度的定时器时,应尽量选择频率较高的晶体。
定时工作方式0
方式0是13位计数构造的工作方式[15],其计数器由TH0高8位和TL0的低五位构成。
TL0的高3位弃之不用。
当C/
=0时,多中开关接通振荡脉冲的12分频输出,13位计数器以此进展计数,这就是所谓定时器工作方式。
当C/
=1[16]时,多路开关接通计数引脚〔T0〕,外部计数脉冲由引脚T0输入。
当计数脉冲发生负跳变时,这就是所谓计数工作方式。
不管是哪种工作方式,当TL0的低五位计数溢出时,向TH0进位,而全部13位计数溢出时,那么向计数溢出标志位TF0进位。
图设计
主程序流程
主程序流程图如图4-1所示。
中断流程
T1中断流程图如图4-2所示。
图4-2T1中断流程图
T0中断流程图如图4-2所示。
中断程序实现定时与计数的功能。
T1进展定时,定时时间为1S。
T0进展计数,TO中断溢出一次,T0count加1。
当定时到达1S时,停顿T0,T1。
最后计算相应的频率值。
第五章数字频率计的仿真调试
利用仿真软件ISIS的强大的仿真功能可以有效地检验所设计的原理图是否在理论上正确合理。
选择适当的三极管和设置基极,发射极,集电极电阻可以得到适当的放大倍数对所测的信号进展有效的处理。
要选择适当的三极管,以免防止发生截止失真和饱和失真。
分别以正弦波,方波,三角波作为输入信号检测电路的整形效果。
利用仿真软件的示波器来观察整形出来的波形是否符合所要整形出来的波形。
利用Keiluvision2软件编写单片机的工作程序并且检验程序是否成功编译。
通过Keiluvision2逐步运行程序的功能可以检测出程序的错漏从而进展改正。
程序编译成功后,利用ISIS软件把程序加载到原理图中进展仿真,通过显示器显示出来的频率大小与所设计的频率相比较可以看出所编写的程序是否满足要求,是否符合设计所要求的精度。
测出各频率范围的误差,假设不符合设计所要求的精度可以通过改变单片机定时器的初始值或者优化程序的构造来减小误差增加精度!
LED数码管采用的是动态扫描的方法进展显示,要设计好相应的扫描时间,因为扫描时间太短那么LED显示出来的数字便会一直在闪烁不稳定,扫描时间太长那么LED显示便会出现短时间的熄灭。
调试电路的时候发现由于P2口的驱动才能不够大因此要驱动LED数码管工作就应该加上反相器或者三极管作为驱动电路。
测试结果:
电路导通,LED灯显示所测量的信号频率,测量范围:
10HZ-10KHZ。
参考文献
[1]陈敬远.数字频率计的VHDL设计[J].浙江传媒学院学报;2002,01:
36-38.
[2]何均,杨明.适宜于单片机实现的极值搜索算法[J].单片机与嵌入式系统应用,2004,24.
[3]杜玉远.基于top-down方法的数字频率计的设计与实现[J].电子世界,2004,5:
30-32.
89C2051的高度精度数字频率计的设计[J].机电产品开发与创新,2007,20〔1〕:
86-87.
[5]冯雷星,杨伟,芦燕龙.基于单片机高性价比频率计的设计与实现[B].微计算机信息,2007,20.
[6]赫建国,刘立新,党剑华.基于单片机的频率计设计[J].西安邮电学院学报,2003,03:
34-37+75.
[10]施剑鸣.单片机测频技术及测量精度的进步[A].江苏省计量测试学会2005年论文集[C],2005.
[11]谢煌,黄为.基于VHDL语言设计频率计[J].北京现代电子技术,2003,14.
[12]杜刚,高军,童宁宁.基于AT89C2051单片机的频率计设计[J].微计算机应用,2004,25〔4〕:
498-501.
[13]刘雪根.数字频率计的误差分析[J].自动化与仪表,1996,3:
23-24.
〔Lattice〕的多功能数字频率计[J].电子工程师,2002,1:
28-32.
[15]王丽霞,程小辉,龚幼民.基于LM331的频率计[J].仪表技术与传感器;2007,09.