单片机数字频率计汇总.docx
《单片机数字频率计汇总.docx》由会员分享,可在线阅读,更多相关《单片机数字频率计汇总.docx(26页珍藏版)》请在冰豆网上搜索。
单片机数字频率计汇总
编号:
电子线路综合设计实训
题目:
数字频率计
院(系):
信息与通信学院
专业:
电子信息工程
学生姓名:
学号:
指导教师:
2013年11月13日
摘 要
随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。
传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行较慢,而且测量频率的范围较小。
考虑到上述问题,本论文设计一基于单片机设计频率计。
首先,我们把待测信号经过放大整形,然后把信号送入单片机的定时计数器里进行计数,获的频率值,最后把测得的频率数值送入显示电路里进行显示。
本文从频率计的原理出发,介绍了基于单片机的频率计的设计方案,选择了实现系统的各种电路元器件,并对硬件电路进行了仿真。
关键字:
单片机;频率计;测量
Abstract
Withthecontinuousdevelopmentofelectronicinformationindustry,thesignalfrequencymeasurementinscienceandtechnologyintheresearchandpracticalapplicationisbecomingmoreandmoreimportantrole.Traditionalfrequencymeterisusuallywithalotoflogiccircuitsandsequentialcircuits,thecircuitgenerallyrunslower,andmeasurethefrequencyrangeissmaller.Consideringtheaboveproblems,thispaperdesignsafrequencymeterbasedonsingle-chipmicrocomputer.First,weputthesignalamplifiedplasticundertest,andthensendsignalstosinglechipmicrocomputertimercountertocount,frequencyvalues,finallythemeasuredfrequencyvaluesintothedisplaycircuitfordisplay.Introducedinthispaper,startingfromtheprincipleoffrequencymeter,frequencymeterdesignschemebasedonsinglechipmicrocomputer,chosetheimplementationsystemofallkindsofcircuitcomponents,andthehardwarecircuitaresimulated.
Keywords:
singlechipmicrocomputer;Frequencymeter.measurement
目录
1.设计原理及元件单3
1.17414TTL六反相施密特触发器4
1.2LM318运算放大器的介绍5
1.3STC89C52RC单片机介绍5
2.具体设计12
2.1设计思路13
2.2电路设计和分析过程13
2.3程序流程图15
2.4原理图和PCB图15
2.5测试结果分析16
3.设计小结17
4.附件:
程序设计17
引言
频率仪器是数字电路中一个典型应用,实际的硬件设计用到的器件较多,联机比较复杂,而且会产生比较大的延迟。
随着复杂可编程逻辑器件的广泛应用,将使整个系统大大简化。
提高整体性能,它是直接用十进制数字来显示被测信号频率的一种测量装置。
它不仅可以测量正弦波,方波,三角波,尖脉冲信号和其他具有周期的信号的频率,而且还可以测量他们的周期。
经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪:
可以测量电容做成数字电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪,计价器等。
因此数字频率仪在测量物理量方面的广泛应用。
频率计的设计原理实际上是测量单位时间内的周期数。
这种方法免去了实测以前的预测,同时节省了划分频率的时间,克服了原来高频率采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。
闸门时间也可以大于或小于1秒。
闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的时间隔就越长。
闸门时间越短,测得频率值刷新据越快,但测得的频率精度就受影响。
本论文的任务是设计一个基于单片机技术的数字频率计。
主要介绍了整形电路、控制电路和显示电路的构成原理,以及其测频的基本方法。
进行了相应的硬软件设计。
1.设计原理及方案
(1)数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。
它不仅可以测量正弦波、方波、三角波、和尖脉冲信号的频率,而且还可以测量它们的周期。
数字频率计在测量其他物理量如转速、振动频率等方面获得广泛应用。
(2)所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数,若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。
(3)原理图中的个元件介绍
1.17414TTL六反相施密特触发器
斯密特触发器又称斯密特与非门,是具有滞后特性的数字传输门。
该器件既可以像普通“与非”门那样工作,
也可以接成斯密特触发器来使用。
斯密特触发器具有如下两个特点:
1、电路具有两个阈值电压,分别称为正向阈值电压和负向阈值电压;
2、与双稳态触发器和单稳态触发器不同,斯密特触发器属于“电平触发型”电路,不依赖于边沿陡峭的脉冲。
它是一种阈值开关电路,具有突变输入——输出特性的门电路。
这种电路被设计成阻止输入电压出现微小变化(低于某一阈值)而引起的输出电压的改变。
当输入电压由低向高增加,到达V+时,输出电压发生突变,而输入电压Vi由高变低,到达V-时,输出电压发生突变,因而出现输出电压变化滞后的现象,可以看出对于要求一定延迟启动的电路,它是特别适用的。
而从IC内部的逻辑符号和“与非”门的逻辑符号相比就略有不同,它增加了一个类似方框的图形,该图形正是代表斯密特触发器一个重要的滞后特性。
滞后特性是指当把输入端并接成非门时,它们的输入、输出特性是:
当输入电压V1上升到VT+电平时,触发器翻转,输出负跳变;过了一段时间输入电压回降到VT+电平时,输出并不回到初始状态而需输入V1继续下降到VT-电平时,输出才翻转至高电平(正跳变),用公式:
VT+—VT-=△VT 表示,△VT称为斯密特触发器的滞后电压。
△VT与IC的电源电压有关,当电源电压提高时,△VT略有增加,一般△VT值在3V左右。
因斯密特触发器具有电压的滞后特性,常用它对脉冲波形整形,使波形的上升沿或下降沿变得陡直;有时还用它作电压幅度鉴别,在数字电路中它也是很常用的器件
斯密特触发器原理图
1.2LM318运算放大器的介绍
LM118,LM218,LM318是精密,专为高速运算放大器应用需要高带宽和高压摆率。
他们设有十因子增加速度超过通用设备,而不牺牲DC性能。
这些运算放大器内部团结增益频率补偿。
这大大简化了它们的应用,因为无需外部操作元件是必要的。
然而,与大多数内部补偿放大器,外部频率补偿可被添加以获得最佳性能。
对于反相应用中,前馈补偿提升摆率超过150V/μ和近一倍的带宽。
可以使用的超补偿具有更大的稳定性的放大器,用于最大带宽是不需要的。
另外,在单一的电容器可被添加到减少稳定时间0.1%的误差范围在1 μ秒。
这些高速和快速建立时间在A/D,运算放大器,使他们有用转换器,振荡器,有源滤波器,采样和保持电路,和通用放大器。
LM118的特点是操作-55°C至125°C.的LM218的特点是操作从-25°C至85°C和LM318特点是操作从0°C至70°C.
1.3STC89C52RC单片机介绍
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.具有看门狗功能
10.共3个16位定时器/计数器。
即定时器T0、T1、T2
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
12.通用异步串行口(UART),还可用定时器软件实现多个UART
13.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
14.PDIP封装
STC89C52RC单片机的工作模式
●掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序
●空闲模式:
典型功耗2mA
●正常工作模式:
典型功耗4Ma~7mA
●掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备
STC89C52RC引脚图
STC89C52RC引脚功能说明
VCC(40引脚):
电源电压
VSS(20引脚):
接地
P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(
IIL)。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:
在对FlashROM编程和程序校验时,P1接收低8位地址。
表X1P1.0和P1.1引脚复用功能
引脚号
功能特性
P1.0
T2(定时器/计数器2外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器2捕获/重装触发和方向控制)
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(
IIL)。
在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流(IIL)。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:
表X2P3口引脚复用功能
引脚号
复用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
AL/PROG(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN(29引脚):
外部程序存储器选通信号(
PSEN)是外部程序存储器选通信号。
当AT89C51RC从外部程序存储器执行外部代码时,
PSEN在每个机器周期被激活两次,而访问外部数据存储器时,PSEN将不被激活。
EA/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
EA必须接GND。
注意加密方式1时,
EA将内部锁定位RESET。
为了执行内部程序指令,
EA应该接VCC。
在Flash编程期间,
EA也接收12伏VPP电压。
XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2(18引脚):
振荡器反相放大器的输入端。
特殊功能寄存器
在STC89C52RC片内存储器中,80H~FFH共128个单元位特殊功能寄存器(SFR),SFR的地址空间如下表1所示。
并非所有的地址都被定义,从80H~FFH共128个字节只有一部分被定义。
还有相当一部分没有定义。
对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。
不应将“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
STC89C52RC除了有定时器/计数器0和定时器/计数器1之外,还增加了一个一个定时器/计数器2.定时器/计数器2的控制和状态位位于T2CON(见表2)和T2MOD(见表4)。
定时器2是一个16位定时/计数器。
通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计数器(特殊功能寄存器T2CON的描述如表2所列)。
定时器2有3种操作模式:
捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON中的位进行选择(如表2所列)
表1STC89C52RC的特殊功能寄存器
表2特殊功能寄存器T2CON的描述
表3定时/计数器2控制寄存器各位功能说明
符号
功能
TF2
定时器2溢出标志。
定时器2溢出时,又由硬件置位,必须由软件请0.当RCLK=1或TCLK=1时,定时器2溢出,不对TF2置位。
EXF2
定时器2外部标志。
当EXEN2=1,且当T2EX引脚上出现负跳变而出现捕获或重装载时,EXF2置位,申请中断。
此时如果允许定时器2中断,CPU将响应中断,执行定时器2中断服务程序,EXF2必须由软件清除。
当定时器2工作在向上或向下计数方式时(DCEN=1),EXF2不能激活中断。
RCLK
接收时钟允许。
RCLK=1时,用定时器2溢出脉冲作为串口(工作于工作方式1或3时)的接收时钟,RCLK=0,用定时器1的溢出脉冲作为接收脉冲
TCLK
发送时钟允许。
TCLK=1时,用定时器2溢出脉冲作为串口(工作于工作方式1或3时)的发送时钟,TCLK=0,用定时器1的溢出脉冲作为发送脉冲
EXEN2
定时器2外部允许标志。
当EXEN2=1时,如果定时器2未用于作串行口的波特率发生器,在T2EX端口出现负跳变脉冲时,激活定时器2捕获或者重装载。
EXEN2=0时,T2EX端的外部信号无效。
TR2
定时器2启动/停止控制位。
TR2=1时,启动定时器2.
C/T2
定时器2定时方式或计数方式控制位。
C/
T2=0时,选择定时方式,C/
T2=1时,选择对外部事件技术方式(下降沿触发)。
CP/RL2
捕获/重装载选择。
CP/
RL2=1时,如EXEN2=1,且T2EX端出现负跳变脉冲时发生捕获操作。
CP/
RL2=1时,若定时器2溢出或EXEN2=1条件下,T2EX端出现负跳变脉冲,都会出现自动重装载操作。
当RCLK=1或TCLK=1时,该位无效,在定时器2溢出时强制其自动重装载。
表4定时器2工作方式
RCLK+TCLK
CP/RL2
TR2
模式
0
0
1
16位自动重装
0
1
1
16位捕获
1
X
1
波特率发生器
X
X
0
(关闭)
1、捕获模式
在捕获模式中,通过T2CON中的EXEN2设置2个选项。
如果EXEN2=0,定时器2作为一个16位定时器或计数器(由T2CON中的C/
T2位选择),溢出时置位TF2(定时器2溢出标志位)。
该位可用于产生中断(通过使能IE寄存器中的定时器2中断使能位)。
如果EXEN2=1,与以上描述相同,但增加了一个特性,即外部输入T2EX由1变0时,将定时器2中TL2和TH2的当前值各自捕获到RCAP2L和RACP2H。
另外,T2EX的负跳变使T2CON中的EXF2置位,EXF2也像TF2一样能够产生中断(其向量与定时器2溢出中断地址相同,定时器2中断服务程序通过查询TF2和EXF2来确定引起中断的事件),捕获模式如图X所示。
在该模式中,TL2和TH2勿重新装载值,甚至当T2EX产生捕获时间时,计数器仍以T2EX的负跳变或振荡频率的1/2(12时钟模式)或1/6(6时钟模式)计数。
图XX定时器2捕获模式
2、自动重装模式(递增/递减计数器)
16位自动重装模式中,定时器2可通过C/T2配置为定时器/计数器,编程控制递增/递减。
计数的方向有DCEN(递减计数使能位)确定,DCEN位于T2MMOD寄存器中,T2MOD寄存器各位的功能描述如表XX所示。
当DCEN=0时,定时器2默认为向上计数;当DCEN=1时,定时器2可通过T2EX确定递增或递减计数。
图XX显示了当DCEN=0时,定时器2自动递增计数。
在该模式中,通过设置EXEN2位进行选择。
如果EXEN2=0,定时器2递增计数到0FFFFH,并在溢出后将TF2置位,然后将RCAP2L和RCAP2H中的16位值作为重新装载值装入定时器2。
RCAP2L和RCAP2H的值是通过软件预设的。
表5定时器2模式(T2MOD)控制寄存器的描述
符号
功能
-
不可用,保留将来之用*
T2OE
定时器2输出使能位
DCEN
向下计数使能位。
定时器2可配置成向上/向下计数器
*用户勿将其置1.这些为在将来80C51系列产品中用来实现新的特性。
在这种情况下,以后用到保留位,复位时或非有效状态时,它的值应为0;而在这些位有效状态时,它的值为1.保留位读到的值不确定。
如果EXEN2=1,16位重新装载可通过溢出或T2EX从1到0的负跳变实现。
此负跳变同时将EXF2置位。
如果定时器2中断被使能,则当TF2或EXF2置1时,定时器2递增计数,计数到0FFFFH后溢出并置位TF2,还将产生中断(如果中断被使能)。
定时器2的溢出将使RCAP2L和RCAP2H中的16位值作为重新装载值放入TL2和TH2。
当T2EX置零时,将使定时器2递减计数。
当TL2和TH2计数到等于RCAP2L和RCAP2H时,定时器产生中断。
图1定时器2自动重装模式(DCEN=0)
图2定时器2自动重装模式(DCEN=1)
4)、四位共阴数码管
(4)元件清单
STC89S52、电阻、排阻、电容、LM318、7414TTL、导线等。
2.具体设计
2.1设计思路
我们设计的数字频率计要可以测三角波,正弦波,方波和尖脉冲信号,那我们就不能直接从单片机的I/O口输入一个脉冲信号,因为从单片机输入的是方波信号,那我们必须把除方波以外的其他波形转化成方波的形式,然后从单片机的一个I/O口输入,所以我在信号输入单片机之前使用运算放大器将信号先放大以便单片机可以检测到输入的外部 信号,在经过一个施密特触发器将放大后的信号转换成为方波信号,再输入给单片机进行脉冲计数,对数据进行处理,最后在数码管上面显示。
2.2电路设计和分析过程
下图是数字频率计的原理图和PCB图
分析:
输入的信号经过第一个Lm318组成的交流反向比例运算放大器放大24倍之后再经过第二个LM318组成的交流反向比例运算放大器进行二次放大20倍,放大后的信号在经过7414TTL六反相施密特触发器将输入放大后的信号整形成为方波,经过整形后的信号,伏值增大,频率不变。
此整形电路将输入的正弦波、三角波和尖脉冲信号经过放大整形成为方波。
形成的方波通过STC89C52的P3.4T0口输入计数,将记得的脉冲个数经过处理用两个三位数码管显示。
2.3原理图和PCB图
图3原理图
图4PCB图
2.4程序流程图
2.5测试结果分析
分析:
如果我直接从单片机的T0口输入的频率范围为1Hz~650KHz的5V方波信号,显示的结果准确而且稳定,但是输入其他的脉冲信号,将不能显示正确的频率;如果我将幅度范围为1mVpp~10Vpp的频率范围为1Hz~650KHz的正弦波、方波、三角波、和尖脉冲信号进行处理之后再输入到单片机进行数据处理,则输入信号的频率到达450KHZ之后显示电路开始不随频率的增大而改变显示相应的数据。
3.设计小结
在这次数字频率计电路原理图与程序的设计过程当中,一开始出现了很多的问题,比如