最新单片机简易频率计课程设计汇编Word文档格式.docx
- 文档编号:20014625
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:17
- 大小:281.72KB
最新单片机简易频率计课程设计汇编Word文档格式.docx
《最新单片机简易频率计课程设计汇编Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新单片机简易频率计课程设计汇编Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
考虑到上述问题,本论文设计一个基于单片机技术的数字频率计。
首先,我们把待测信号经过放大整形;
然后把信号送入单片机的定时计数器里进行计数,获得频率值;
最后把测得的频率数值送入显示电路里进行显示。
本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统得各种电路元器件,并对硬件电路进行了仿真。
1、总体设计
用十进制数字显示被测信号频率的一种测量装置。
它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。
其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。
时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。
闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。
秒信号结束时闸门关闭,计数器停止计数。
由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。
本系统采用测量频率法,可将频率脉冲直接连接到AT89C51的T0端,将T/C1用做定时器。
T/C0用做计数器。
在T/C1定时的时间里,对频率脉冲进行计数。
在1S定时内所计脉冲数即是该脉冲的频率。
见图1:
图1测量时序图
由于T0并不与T1同步,并且有可能造成脉冲丢失,所以对计数器T0做一定的延时,以矫正误差。
具体延时时间根据具体实验确定。
根据频率的定义,频率是单位时间内信号波的个数,因此采用上述各种方案都能实现频率的测量。
但是本论文设计的是一个用单片机做为电路控制系统的数字式频率计,采用脉冲定时测频法,则在低频率的测量时误差会大一些。
采用脉冲周期测频法则测高频率时精度无法保证;
采用脉冲数倍频测频法和脉冲数分频测频法则精度有所提高,但控制电路较复杂;
采用脉冲平均周期测频法则很难兼顾低频信号的测量;
而采用多周期同步测频法,闸门时间与被测信号同步,消除了对被测信号计数产生的±
1误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。
本次设计由于个人水平有限,因此,本次设计根据需要,采用脉冲定时测频法。
基本设计原理是首先把待测信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最后送到译码显示电路里进行显示,其基本构成框图如图2所示。
图2
由上图可以看出,待测信号经过放大整形电路后得到一个待测信号的脉冲信号,然后通过计数器计数,可得到需要的频率值,最后送入译码显示电路中显示出来。
但是控制部分才是最重要的,它在整个系统的运行中起至关重要的作用。
为了得到一个高性能的数字频率计,本次设计采用单片机来做为数字频率计的核心控制电路,辅之于少数的外部控制电路。
因此本此设计的系统包括信号放大整形电路、分频电路、单片机AT89C51和显示电路等。
本系统让被测信号经过放大整形后,进入单片机开始计数,利用单片机内部定时计数器定时,在把所记得的数经过相关处理后送到显示电路中显示。
其系统原理框图将在下面介绍。
根据上述的基于单片机的数字频率计的设计原理,我们可设计一个由放大整形电路、分频电路、多路数据选择器、AT89C51以及显示电路来构成的数字式频率计,其系统框图如图3所示。
图3
2、硬件设计
89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:
4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。
引脚说明:
·
VCC:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
P1口:
P1口是一带有内部上拉电阻的8位双向I/O口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
P2口:
P2是一带有内部上拉电阻的8位双向的I/O端口。
P2口的输出缓冲能驱动4个TTL逻辑门电路。
当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。
在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。
当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。
当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。
P3口:
P3是一带有内部上拉电阻的8位双向的I/O端口。
P3口的输出缓冲能驱动4个TTL逻辑门电路。
当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
P3口同时具有AT89C51的多种特殊功能,具体如下表1所示:
端口引脚
第二功能
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(外部数据存储器都选通道)
表1
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。
EA/VPP:
外部访问允许。
为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,EA必须同GND相连接。
需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。
ALE/RPOG:
当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。
当在Flash编程时还可以作为编程脉冲输出(RPOG)。
一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。
但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。
PSEN:
程序存储允许时外部程序存储器的读选通信号。
当AT89C52执行外部程序存储器的指令时,每个机器周期PSEN两次有效,除了当访问外部数据存储器时,PSEN将跳过两个信号。
显示原理
我们测量的频率最终要显示出来。
八段LED数码管显示器基本电路如图4所示。
图4
八段LED数码管显示器由8个发光二极管组成。
基中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LED数码管显示器有两种形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;
另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。
如下图所示。
共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。
当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。
8个笔划段hgfedcba对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就能表示欲显示字符的字形代码。
技术参数
名称
符号
标准值
单位
MIN
TYPE
MAX
电路电源
VDD-VSS
-0.3
7.0
V
LCD驱动电压
VDD-VEE
VDD-13.5
VDD+0.3
输入电压
VIN
静电电压
-
100
工作温度
-20
+70
°
C
储存温度
-30
+80
表2极限参数表
电参数表
测试条件
单位
输入高电平
VIH
2.2
VDD
输入低电平
VIL
0.6
输出高电平
VOH
IOH=0.2mA
2.4
输出低电平
VOL
IOL=1.2mA
0.4
工作电流
IDD
VDD=5.0V
2.0
mA
液晶驱动电压
VDD-VEE
Ta=0°
4.9
Ta=25°
4.7
Ta=50°
4.5
表3电参数表
时序特性表
项目
测试条件
允许时间周期
TCYCE
5.1a5.1b
1000
ns
允许脉冲宽度,高电平
PWEH
450
--
允许上升和下降时间
tErtEf
25
地址建立时间
tAS
140
数据延迟时间
tDDR
320
数据建立时间
tDSW
195
数据保持时间
tH
10
DATAHOLDTIME
tDHR
20
地址保持时间
tAH
表4时序特性表
模块引脚功能表
引线号
功能
1
Vss
接地
0V
2
5V±
10%
3
VEE
保证VDD-VEE=4.5∽5V电压差
4
RS
寄存器选择信号
H:
数据寄存器L:
指令寄存器
5
R/W
读/写信号
读L:
写
6
E
片选信号
下降沿触发,锁存数据
7
|
14
DB0
DB7
数据线
数据传输
表5模块引脚功能表
3、软件设计
测频软件的实现是基于电路系统来进行设计的。
本次设计采用的是脉冲定时测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。
本次软件设计语言采用C语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。
NO
4、调试说明
当输入频率为1HZ时,测得频率为1HZ.
当输入频率为987HZ时,测得频率为987HZ。
但是当输入频率为5KHZ时,测得频率为5001HZ。
误差为0.02%。
当输入频率大到100kHZ时,测得频率为10015HZ,误差为0.15%。
误差分析:
因为定时和计数都是由单片机本身来完成的,在计数的时候会产生误差。
这个误差的大小是用单片机的内部时钟决定的,采用高频率的晶振来为单片机提供内部时钟,则能减少此误差。
本次设计我们用的是12MHz的晶振,而测频的范围是1Hz~1MHz。
所以定时计数的误差在本系统基本可以忽略不计。
5、使用说明
该设计主要是能够测量外部周期信号的频率值,并且通过数码管进行显示。
把编译好得到的hex程序文件载入到单片机里,就可以对整体电路进行仿真了。
经过对上述电路的仿真,我们可以看出,电路所要完成的功能都能基本实现。
结论
基于单片机的频率计的设计涉及到计算机的硬软件知识,通过对系统的设计和调试,本次设计主要完成了以下工作:
1、提出基于单片机的数字频率计设计的基本方案;
2、完成了电路设计;
3、编译了软件程序;
4、对硬件电路进行了仿真,进行了误差分析。
参考文献
[1]李雷等编.集成电路应用实验.国防工业出版社2003
[2]李雷等编.电子技术应用实验教程.电子科技大学出版社,2006
[3]朱红等编.电子技术综合实验.电子科技大学出版社,2005
[4]冯熙昌编.电子电话机集成电路手册.人民邮电出版社,1996
[5]李华等编.MCS-51系列单片机实用接口技术.北京航空航天大学出版社,1993
[6]徐惠民,安德宁等编.单片微型计算机原理接口及应用.北京邮电大学出版社,2000
[7]张毅坤,陈善久,单片微型计算机原理及应用.西安电子科技大学出版社,2002.
[8]张友德,赵志英,徐时亮.单片微机原理应用与实验.复旦大学出版社,2000.
附录
Ⅰ、系统电路图
Ⅱ、程序清单
#include<
reg51.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sfr16DPTR=0x82;
bitstatus_F=1;
uintaa,qian,bai,shi,ge,bb,wan,shiwan;
ucharcout;
unsignedlongtemp;
ucharcode
table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
voiddelay(uintz);
voidinit();
voiddisplay(uintshiwan,uintwan,uintqian,uintbai,uintshi,uintge);
voidxtimer0();
voidxtimer1();
voidmain()
{
P0=0XFF;
init();
while
(1)
{
if(aa==19)
{
aa=0;
status_F=1;
TR1=0;
delay(46);
TR0=0;
DPL=TL0;
DPH=TH0;
temp=DPTR+cout*65535;
shiwan=temp%1000000/100000;
wan=temp%100000/10000;
qian=temp%10000/1000;
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
if(shiwan==0)
{
shiwan=10;
if(wan==0)
wan=10;
if(qian==0)
qian=10;
if(bai==0)
bai=10;
if(shi==0)
shi=10;
}}}}
}
display(shiwan,wan,qian,bai,shi,ge);
}
}
voidinit()
temp=0;
aa=0;
cout=0;
IE=0X8A;
TMOD=0x15;
TH1=0x3c;
TL1=0xb0;
TH0=0;
TL0=0;
TR1=1;
TR0=1;
voiddisplay(uintshiwan,uintwan,uintqian,uintbai,uintshi,uintge)
P0=0x20;
P2=table[shiwan];
delay(5);
P0=0x10;
P2=table[wan];
delay(3);
P0=0x08;
P2=table[qian];
P0=0x04;
P2=table[bai];
P0=0x02;
P2=table[shi];
P0=0x01;
P2=table[ge];
voidxtimer1()interrupt3
aa++;
voidxtimer0()interrupt1
{
cout++;
voiddelay(uintz)
uinti,j;
for(i=0;
i<
z;
i++)
for(j=0;
j<
110;
j++);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 简易 频率计 课程设计 汇编
![提示](https://static.bdocx.com/images/bang_tan.gif)