微机原理与单片机课程设计报告.docx
- 文档编号:23304769
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:18
- 大小:173.90KB
微机原理与单片机课程设计报告.docx
《微机原理与单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理与单片机课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理与单片机课程设计报告
摘要
本设计是一个基于单片机原理设计的数字频率计。
随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。
传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行较慢,而且测量频率的范围较小。
考虑到上述问题,本设计利用单片机的原理设计了一个数字频率计。
频率计的设计原理实际上是测量单位时间内的周期数。
这种方法免去了实测以前的预测,同时节省了划分频率的时间,克服了原来高频率采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为一秒。
闸门时间也可以大于或小于一秒。
闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的时间隔就越长。
闸门时间越短,测得频率值刷新据越快,但测得的频率精度就可能会受到影响。
首先,我们把待测信号经过放大整形,然后把信号送入单片机的定时计数器里进行计数,得到频率值,最后把测得的频率数值送入显示电路里进行显示。
本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统的各种电路元器件,并用仿真软件对硬件电路进行了仿真。
关键词:
单片机,频率计,频率测量
目录
1概述………………………………………………………………………………3
1.1频率计概述…………………………………………………………………3
1.2频率计发展状况……………………………………………………………3
1.3本设计实现的功能…………………………………………………………4
1.4本设计的意义………………………………………………………………4
2系统总体方案及硬件设计………………………………………………………5
2.1设计方案介绍………………………………………………………………5
2.2数字频率计的原理…………………………………………………………5
2.3单片机的概述………………………………………………………………5
2.4信号放大电路………………………………………………………………6
2.5数据显示电路………………………………………………………………7
2.6硬件电路工作过程…………………………………………………………8
3软件设计…………………………………………………………………………9
3.1测频软件实现原理…………………………………………………………9
3.2软件流程图…………………………………………………………………9
4Proteus软件仿真………………………………………………………………10
5课程设计体会……………………………………………………………………12
参考文献……………………………………………………………………………12
附1:
源程序代码…………………………………………………………………13
附2:
系统原理图…………………………………………………………………16
1概述
1.1频率计概述
频率是电子技术领域的一个基本参数,同时也是一个非常重要的参数,因此,频率测量已成为电子测量领域最基本最重要的测量之一。
随着科学技术的不断发展提高,人们对科技产品的要求也相应的提高,数字化的电子产品越来越受到欢迎。
频率计作为比较常用和实用的电子测量仪器,广泛应用于科研机构、学校、家庭等场合,因此它的重要性和普遍性勿庸质疑。
数字频率计具有体积小、携带方便;功能完善、测量精度高等优点,因此在以后的时间里,必将有着更加广阔的发展空间和应用价值。
比如:
将数字频率计稍作改进,就可制成既可测频率,又能测周期、占空比、脉宽等功能的多用途数字测量仪器。
将数字频率计和其他电子测量仪器结合起来,制成各种智能仪器仪表,应用于航空航天等科研场所,对各种频率参数进行计量;应用在高端电子产品上,对其中的频率参数进行测量;应用在机械器件上,对机器振动产生的噪声频率进行监控;等等。
研究数字频率计的设计和开发,有助于频率计功能的不断改进、性价比的提高和实用性的加强。
以前的频率计大多采用TTL数字电路设计而成,其电路复杂、耗电多、体积大、成本高。
随后大规模专用IC(集成电路)出现,如ICM7216,ICM7226频率计专用IC,使得频率计开发设计变得简单,但由于价格较高,因此利用IC设计数字频率计的较少。
现在,单片机技术发展非常迅速,采用单片机来实现数字频率计的开发设计,实现频率的测量,不但测量准确,精度高,而且误差也很小。
在这里,我们将介绍一种简单、实用的基于单片机AT89C52的数字频率计的设计和制作。
1.2频率计发展状况
由于当今社会的需要,对信息传输和处理的要求不断提高,对频率的测量的精度也需要更高更准确的时频基准和更精密的测量技术。
而频率测量所能达到的精度,主要取决于作为标准频率源的精度以及所使用的测量设备和测量方法。
目前,测量频频的方法有直接测频法、内插法、游标法、频差倍增法等等。
直接测频的方法较简单,但精度不高。
频差倍增多法和周期法是一种频差倍增法和差拍法相结合的测量方法,这种方法是将被测信号和参考信号经频差倍增使被测信号的相位起伏扩大,再通过混频器获得差拍信号,用电子计数器在低频下进行多周期测量,能在较少的倍增次数和同样的取样时间情况下,得到比测频法更高的系统分辨率和测量精度,但是仍然存在着时标不稳而引入的误差和一定的触发差。
在电子系统广泛的应用领域中,到处看见处理离散信息的数字电路。
供消费用的冰箱和电视、航空通讯系统、交通控制雷达系统、医院急救系统等在设计过程中都用到数字技术。
数字频率计是现代通信测量设备系统中必不可少的测量仪器,不但要求电路产生频率的准确度和稳定度都高的信号,也要能方便的改变频率。
1.3本设计实现的功能
本次采用单片机设计的数字频率计主要实现以下几个功能:
(1)用6位数码管显示HZ、KHZ、MHZ三个频段的待测脉冲信号频率值;
(2)频率测量范围从1HZ~1MHZ;
(3)能测量正弦波,三角波,锯齿波等多种波形信号的频率值。
1.4本设计的意义
因为数字频率计是计算机、通讯设备、音频视频等科研生产领域必不可少的测量仪器,所以频率的测量就显得更为重要。
在数字电路中,频率计属于时序电路,它主要由具有记忆功能的触发器构成。
在计算机及各种数字仪表中,都得到了广泛的应用。
本课题采用的是直接测频式的频率计,设计原理简单、电路稳定、测量精度高,大大的缩短了生产周期。
2系统总体方案及硬件设计
2.1设计方案介绍
方案一:
本方案主要以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测得正弦波或者三角波为方波。
利用单片机的计数器和定时器的功能对被测信号进行计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
方案二:
本方案使用大量的数字器件,被测量信号放大整形电路变成计数器所要求的脉冲信号,其频率于被测信号的频率相同。
同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。
若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率为NHZ。
逻辑控制电路的作用有两个:
一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。
方案一得核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值则可以实现不同频率范围的测试能自动选择测试的量程。
与方案一相比较方案二则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。
如要测量高频的信号还需要加上分频电路,价格相对高了点。
基于上述,所以选择了方案一。
2.2数字频率计的原理
数字式频率计是测量频率最常用的仪器之一,其基本设计原理是首先把待测信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最后送到译码显示电路里进行显示,其基本构成框图如图2.1所示。
图2.1频率计原理框图
2.3单片机的概述
在实际的设计中,将AT89C52的P1口设置为接收数据端口,将P3口设置为第二功能。
P3.4用于直接测频率时脉冲信号的计数端;P3.5用于定时。
将P0口和P2口设置为发送数据端口。
P0口的各引脚接到RP1的输入端,用于段驱动;P2口用于位驱动。
单片机复位端(RST)可采用内部软件复位,也可采用外部手动复位,实际操作也很方便。
这里采用外部手动复位,为图2.2且晶体振荡器电路如图2.3所示:
图2.2单片机复位电路图2.3晶体振荡器电路
2.4信号放大电路
采用两个NPN三极管级联方式实现对待测信号的放大,降低对待测信号的幅度要求。
如图2.4所示。
前一个三极管采用共集电极方式,主要是为了获得比较宽的频带,并不具有实质性的放大作用。
后一个三极管采用共发射极方式,主要作用是放大非常弱的输入脉冲信号,一般通过它的放大后,其电压可以达到3伏以上。
为了消除不必要的噪声信号干扰,在两级放大电路中都可以加入滤波电容,保证待测信号的稳定。
图2.4放大电路
2.5数据显示电路
一般而言,数据显示有静态显示和动态显示两种。
所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通和截止。
它的优点是显示稳定,显示亮度大;缺点是使用的数码管数量少。
正是因为它的这个缺点和本设计的要求,数字频率计的显示电路选择了采用动态扫描显示。
所谓动态显示,就是LED显示器一位一位地轮流电亮(扫描)。
对于每一位LED显示器来说,每隔一段时间点亮一次。
LED显示器的亮度既与导通电流有关,也与LED显示器点亮时间和间隔时间的比例有关。
通过调整LED显示器的导通电流和时间比例参数,可以实现较高亮度且稳定的显示。
具体工作过程是:
LED显示器采用共阴极动态显示形式,6位LED用两块四位集成的数码管连接组成。
频率计数结果以BCD码的形式存放在89C52的存储单元中,通过P0口接到74LS245上,控制6位LED的段选码;通过P2口接到74AC08上,控制6位LED的位选码。
RP1是8位总线驱动器,由芯片上的T/
引脚(1脚)控制数据的传输方向。
当T/
=1时,数据从A端传送到B端;当T/
=0时,数据从B端传送到A端。
根据本设计的原理图知,数据是从A端传送到B端,因此设T/
=1,即是高电平有效。
另外,由于51单片机的P0口没有上拉电阻,在将P0口设置为输出端时,必须考虑在段驱动的每一段位上接入上拉电阻,使LED显示管能够工作。
我们知道,单片机的P1口扫描输出时总有一位为高电平,如果没有反相驱动器将这一位的高电平变成低电平,那在LED上显示出来的将是乱码。
74AC08是六与非门反相驱动器,正好符合设计要求。
由于是8位LED显示管,所以采用两个74AC08来控制。
图2.5数据显示电路
2.6硬件电路工作过程
当控制信号
时,定时器工作在定时方式。
加1计数器对脉冲f进行计数,每来一个脉冲计数器加1,直到计数器计满溢出。
由上图可以看出,脉冲
是振荡器时钟频率
的12分频,即脉冲频率
为时钟频率
的1/12。
显然,一个计数脉冲的周期为一个机器周期。
计数器计数的是机器周期脉冲的个数,从而实现定时。
可知,定时器的定时时间不仅与加1计数器的初值(计数器中的起始值,即计数长度)有关,而且还与系统振荡器时钟频率
有关。
当控制信号
时,定时器工作在计数方式。
加1计数器对来自输入引脚T0和T1的外部信号脉冲计数。
3软件设计
3.1测频软件实现原理
测频软件的实现是基于电路系统来进行设计的。
本次设计采用的是直接测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。
本次软件设计语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。
3.2软件流程图
本设计中软件流程如图2.7所示。
为使图1所示流程能顺利地完成预期的功能,在初始化部分,计数部分,4byte除法部分,数据显示部分都分别设计了流程图。
完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。
为提高运算精度,这里采用4byte定点算术运算,需要自行编写4byte出发指令,即组成4byte除法部分。
图3.1软件设计流程图
4Proteus软件仿真
图4.1系统仿真电路图
输入信号为1HZ时,仿真如下:
图4.2系统仿真结果图
(1)
输入信号为100HZ时,仿真如下:
图4.3系统仿真结果图
(2)
输入信号为500HZ时,仿真如下:
图4.4系统仿真结果图(3)
输入信号为1KHZ时,仿真如下:
图4.5系统仿真结果图(4)
输入信号为1MHZ时,仿真如下:
图4.6系统仿真结果图(5)
5课程设计体会
本设计介绍了一种基于单片机原理制作数字频率计的设计方法。
其测量原理非常简单,硬件电路制作方便,软件编程易于实现,所测得的频率范围较宽,精度较高,平均相对误差也在允许的测量误差范围内。
此次设计的数字频率计达到了测量频率的目的,但在实际制作和测试过程中,由于自己知识有限,时间短和经验不足等原因,还是出现了一些问题和需要继续改进、完善的地方。
通过本次设计,我学会了从系统的高度来考虑设计的方方面面,对电路的设计和研究有了更深刻的体会;了解到软件的设计是建立在对硬件了解的基础上的,特别是对单片机的功能,引脚定义和内部结构要有较为详细的了解,此外对电路板中所用到的各个芯片的引脚和功能,也要进行了解;在编写程序时,进行模块化设计,要以细心严谨的态度进行编程,避免出现低级错误。
此次课程设计真的令我收获颇丰,我对单片机知识有了进一步的了解,对单片机有了进一步的领悟,明白要想灵活掌握知识,必须在实践中加以运用,否则,只是纸上谈兵。
除此之外,我还学会了Viso绘图软件和Proteus仿真软件的应用,虽然只是学到了一点皮毛,但对这些辅助软件也有了已一定了解,在以后的学习中,我一定会注重实践,将理论与实践紧密结合,为高效的学习打下牢固的基础。
参考文献
[1]李建忠.单片机原理及应用[M].西安:
西安电子科技大学出版社,2002.31-47
[2]唐俊翟,许雷,张群瞻.单片机原理与应用[M].北京:
冶金工业出版社,2003.27-42
[3]徐煜明,韩雁.单片机原理及接口技术[M].北京:
电子工业出版社,2005.86-98
[4]公茂法,孙皓,吕常智.简易数字频率计的设计与分析[J].山东矿业学院学报(自然科学版),1999,18
(2):
44-49.
[5]王保强,窦文,白红.高精度测频方案设计[J].成都信息工程学院学报,2002,17
(2):
77-81.
[6]邵杨帆,李宏.准全同步频率测量方法的研究与实现[J].电子测量与仪器学报,2008,03:
105-108.
[7]赫建国,刘立新,党剑华.基于单片机的频率计设计[J].西安邮电学院学报,2003,8(3):
31-34.
附1源程序代码
#include
unsignedlongfre;
unsignedchartime;
unsignedintcount;
unsignedcharled[6];
unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管0123456789显示
//*************************************************************
sbitswan=P2^0;
sbitwan=P2^1;
sbitqian=P2^2;
sbitbai=P2^3;
sbitshi=P2^4;
sbitge=P2^5;
voidtimer_init();
voiddisplay(unsignedlongnum);
voiddelay(unsignedinta);
//*************************************************************
voidmain()
{
timer_init();//定时/计数器初始化
while
(1)
{
display(fre);//数码管显示
}
}
//----------------------------------------------------------------
voiddelay(unsignedinta)//延时约1ms(12Mhz晶振)
{
unsignedchari;
while(a--!
=0)
for(i=125;i>0;i--);
}
//----------------------------------------------------------------
voiddisplay(unsignedlongnum)//显示函数
{
unsignedcharsw,w,q,b,s,g;
sw=num/100000;
P0=table[sw];
swan=0;
delay
(2);
swan=1;
w=num/10000%10;
P0=table[w];
wan=0;
delay
(2);
wan=1;
q=num/1000%10;;
P0=table[q];
qian=0;
delay
(2);
qian=1;
b=num%1000/100;
P0=table[b];
bai=0;
delay
(2);
bai=1;
s=num%100/10;
P0=table[s];
shi=0;
delay
(2);
shi=1;
g=num%10;
P0=table[g];
ge=0;
delay
(2);
ge=1;
}
//----------------------------------------------------------------
voidtimer_init(void)//定时/计数器初始化
{
TMOD=0x06;//计数器0工作工作方式2,自动重装初值
TH0=0;//计数器初值为0
TL0=0;
TR0=1;//计数器开始计数
ET0=1;//打开计数器0中断
RCAP2H=(65536-62500)/256;//在程序初始化的时候给RCAP2L和RCAP2H赋值,
RCAP2L=(65536-62500)%256;//TH2和TL2将会在中断产生时自动使TH2=RCAP2H,TL2=RCAP2L。
TH2=RCAP2H;//12M晶振下每次中断62.5ms
TL2=RCAP2L;
ET2=1;//打开定时器2中断
TR2=1;//定时器2开始计时
EA=1;//开总中断
}
//----------------------------------------------------------------
voidtimer2(void)interrupt5//定时器2中断(62.5ms)
{
time++;
TF2=0;//定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序中将其清零
if(time==16)//定时1s时间到
{
time=0;//计时清0
EA=0;//关中断
fre=(long)count*256+TL0;//count*256强制转换成long型,否则将不产生进位
TL0=0;//清零计数器0计数
TH0=0;
count=0;//清零计数器0计数
EA=1;//开始中断
}
}
//----------------------------------------------------------------
voidtimer0(void)interrupt1//计数器0中断
{
count++;
}
附2系统原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 单片机 课程设计 报告