数字频率计.docx
《数字频率计.docx》由会员分享,可在线阅读,更多相关《数字频率计.docx(18页珍藏版)》请在冰豆网上搜索。
数字频率计
学校代码:
单片机原理及接口技术
课程设计
数字频率计
姓名:
学号:
指导教师:
院系(部所):
机电工程学院
专业:
机械设计制造及其自动化
完成日期:
2012年12月20日
摘要
本设计以STC89C52单片机为控制核心,充分利用了单片机的定时器功能和外部中断功能,首先,把信号送入单片机的定时计数器里进行计数,获的频率值,最后把测得的频率数值送入显示电路里进行显示。
本文从频率计的原理出发,介绍了基于单片机的频率计的设计方案,选择了实现系统的各种电路元器件,并做出了对应的硬件电路。
频率测量是电子学测量中最为基本的测量之一。
由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。
随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。
频率计的设计原理实际上是测量单位时间内的周期数。
这种方法免去了实测以前的预测,同时节省了划分频率的时间,克服了原来高频率采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。
闸门时间也可以大于或小于1秒。
闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的时间隔就越长。
闸门时间越短,测得频率值刷新据越快,但测得的频率精度就受影响。
【关键词】STC89C52单片机定时器外部中断数码管
Abstract
ThisdesigntoSTC89C52singlechipmicrocomputerascontrolcore,makefulluseofthesinglechipmicrocomputertimerfunctionandexternalinterruptfunction,firstofall,thesignalintosinglechiptimingcounterthecount,thefrequencyvalue,andfinallythemeasuredfrequencynumericalintodisplaycircuitindisplay.Thispaperbasedontheprincipleoffrequencymeter,thispaperintroducesthefrequencymeterbasedonsinglechipdesignschemeofthesystem,choosetheallkindsofcircuitcomponents,andmakethecorrespondinghardwarecircuit.
Frequencymeasurementisthemostbasicelectronicsmeasurementofoneofthemeasurement.Duetothefrequencysignalanti-jammingisstrong,easytotransport,socangethighaccuracyofmeasurement.Alongwiththedigitalelectronictechnologydevelopment,thefrequencymeasurementbecomeamoreandmorecommon,frequencymeasuringprincipleandthestudyofthemethodoffrequencymeasurementisreceivingmoreandmoreattention.
Frequencymeterdesignprincipleisactuallymeasuringunittimecyclenumber.Thismethodfromthepreviousforecast,andatthesametime,savethedivisionfrequencytime,overcometheoriginalbyhighfrequencyandlowfrequencybandfrequencymeasurementmodebymeasuringcyclemodelofmeasurementmethodhasthedisadvantagesofslowshift.Normallycalculationinthesecondtesttosignalpulsenumber,rightnowwecallgatetimefor1second.Gatetimecanalsobegreaterthanorlessthan1second.Thelongerthegate,thefrequencyvalueismoreaccurate,butthelongerthegateiseverymeasuringafrequencyofeverytimeislonger.Gatetimeisshorter,measuredfrequencyvaluerefreshaccordingtofaster,butthefrequencyofthemeasurementaccuracyisaffected.
【keys】STC89C52SCMtimerExternalinterruptDigitaltube
目录
一、系统方案论证1
1、1系统方案1
二、测试与控制方案分析与器件选择1
2.1主控芯片的选择1
2.2测量频率的方案选择2
2.3显示模块的选择2
三、电路和程序设计3
3.1显示模块的电路图3
3.2程序流程图4
3.3系统原理图5
四、总结5
五、参考文献6
六、附录6
附录1:
数字频率计的程序6
附录2:
频率产生的程序8
附录3:
关于实验的现象10
七、致谢11
一、系统方案论证
1、1系统方案
数字频率计以STC89C52单片机为核心控制器,通过外部中断0采集到脉冲的电平从高到低的跳变,并记录下定时器0计时1s时,脉冲的跳变个数n,然后把n的数值在数码管上显示出来。
在数码管上显示出的n的值即为脉冲的频率,从而达到数字频率计显示脉冲频率的结果。
系统流程控制如下图:
二、测试与控制方案分析与器件选择
2.1主控芯片的选择
方案一:
采用通用的51单片机作为主控制器。
51单片机通用灵活、价格低廉、使用方便,资料多,易于控制,应用普遍,I/O口多。
方案二:
可编程逻辑器件CPLD,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、标准产品无需测试等特点,可实现较大规模的电路设计。
但是,该器件主要依赖于软件设计,缺少硬件的配合,致使程序设计复杂,难以使用,运算速度太快。
CPLD同样难以满足本设计的需要。
方案三:
采用凌阳公司的SPCE061A单片机。
凌阳61单片机RAM,ROM空间大、指令周期短、运算速度快、低功耗、低电压、程序易于编写和调试,且具有DSP功能、支持在线仿真。
但其价格高,稳定性比较差,应用不普遍,仅仅适用于学习,不适合工业生产。
通过分析比较之后,我认为方案一比较好。
2.2测量频率的方案选择
方案一:
测频法,利用外部电平变化引发的外部中断,测算1s内的波数,从而实现对频率的测定;
方案二:
测周法,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。
简而言之,测频法是直接根据定义测定频率,测周法是通过测定周期间接测定频率。
理论上,测频法适用于较高频率的测量,测周法适用于较低频率的测量。
经过调校,在测量低频信号时,本项目中测频法精度已高于测周法,故舍弃测周法,全量程采用测频法。
2.3显示模块的选择
方案一:
使用LED数码管显示。
该方案控制部分简单,且LED数码管比较直观,可视化强,价格便宜。
方案二:
采用LCD显示。
有丰富的文字和图形显示功能,有良好的人机交换界面,但其控制相对复杂,价格相对较昂贵。
考虑到显示内容较少以及价格最低的原则,我们选择采用LED数码管显示。
三、电路和程序设计
3.1显示模块的电路图
单片机控制四位数码管,从而显示脉冲的频率
3.2程序流程图
3.3系统原理图
四、总结
在大学学习的时间里我们由于追求过多的理论学习,而对于实际动手的机会却是寥寥无几,相对大量的理论学习,实际操作更能激发出我们学习的激情。
“坐而言不如立而行”,对于这些电路还是应该自己动手实际操作才会有深刻理解。
单片机原理及接口技术课程设计让我们以前学习的《电工技术》、《电子技术》和《MCS-51系列单片机系统及其应用》三门课程就是通向实践的基石,在那些课程里,我们充实了数字电路、模拟电路和单片机技术的知识,利用电子元器件的性能熟悉了它们的在实际生活中的作用。
亲身去焊接一个个的焊点,将一个个原本互不相干的元器件通过电路的组合,组成一个实际能够现功能的电路,心中的成就感就肯定是不言自明。
单片机原理及接口技术课程设计电子竞赛设计的最重要的一个性质就是他的创造性,竞赛的整个设计任务主要由每个组独立完组同学独立进行查阅资料、设计方案与组织实验等工作,并写出报告。
使我们将学过的理论知识再创造后用于工程实际,从而培养我们善于调查研究,勤于创造思维,勇于大胆开拓的学习作风。
使我们对于未来成为一个具备电子与信息技术高级技术专门人才所需的基本理论知识、基本技能
这次竞赛中我应用了AltiumDesigned等软件绘制PCB图,掌握电子电路调试的方法,能正确使用电子仪器对电子电路进行调试,能独立解决设计与调试中出现的一般问题,能正确选用元器件与材料,能对所设计电路的指标和性能进行测试并提出改进意见,能查阅各种有关手册,能正确编写设计报告。
课程设计它只是电子电路设计的一次演习,它重在基础训练,是电子产品研制的原理电路设计阶段,与研制电子产品的实际情况存在相当大的差距。
它将基本技能训练,基本工艺知识和创新启蒙有机结合,培养我们的实践能力和创新精神。
使我对电子元件及焊接调试有一定的感性和理性认识。
实习使我获得了培养我理论联系实际的能力,提高了我分析问题和解决问题的能力。
作为信息时代的大学生,作为国家重点培育的高技能人才,仅会操作鼠标是不够的,基本的动手能力是一切工作和创造的基础和必要条件。
对自己的动手能力是个很大的锻炼。
实践出真知,纵观古今,所有发明创造无一不是在实践中得到检验的。
没有足够的动手能力,就奢谈在未来的科研尤其是实验研究中有所成就。
五、参考文献
[1]郭天祥《新概念51单片机C语言教程》电子工业出版社
[2]杨欣《电子设计从零开始(第二版)》清华大学出版社
[3]童诗白、华成英.《模拟电子技术基础》[M].高等教育出版社.2000年.
[4]谭浩强《C语言程序设计(第二版)》清华大学出版社,1999.12
[5]蔡美琴《MCS-51系列单片机系统及其应用(第二版)》
六、附录
附录1:
数字频率计的程序
#include
#defineuintunsignedint
#defineucharunsignedchar
voidT0_init();//定时器0的初始化
voidINT0_init();//外部中断0的初始化
voiddisplay(uchari,ucharj);
voiddelay(uintz);
uinttt;//放在定时器0中用于计时
uintaa;//放在外部中断0中,用于计算1s中脉冲的个数
uintn;
ucharflag;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0——9
sbitcs0=P2^0;//控制数码管的显示
sbitcs1=P2^1;
sbitcs2=P2^2;
voidmain()
{
T0_init();
INT0_init();
while
(1)
{
display(4,n/1000);
display(5,n/100%10);
display(6,n%100/10);
display(7,n%10);
}
}
voidT0_init()
{
EA=1;//打开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
TMOD|=0X01;//设置定时器0的工作方式
TH0=(65536-50000)/256;//50ms中断一次的初值
TL0=(65536-50000)%256;
}
voidINT0_init()
{
EA=1;//打开总中断
IT0=1;//跳变沿触发方式,引脚INT0上的电平从高到底的负跳变有效
EX0=1;//打开外部中断0
}
voiddisplay(uchari,ucharj)//三八译码器的使用,及显示函数的另一种使用方法
{
switch(i)
{
case0:
cs2=0,cs1=0,cs0=0;break;
case1:
cs2=0,cs1=0,cs0=1;break;
case2:
cs2=0,cs1=1,cs0=0;break;
case3:
cs2=0,cs1=1,cs0=1;break;
case4:
cs2=1,cs1=0,cs0=0;break;
case5:
cs2=1,cs1=0,cs0=1;break;
case6:
cs2=1,cs1=1,cs0=0;break;
case7:
cs2=1,cs1=1,cs0=1;break;
}
P0=table[j];
delay
(2);
P0=0;
}
voiddelay(uintz)//1ms延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidtime0()interrupt1
{
TH0=(65536-50000)/256;//50ms中断一次的初值
TL0=(65536-50000)%256;
tt++;
if(tt==20)
{
tt=0;
flag=1;
}
}
voidexter0()interrupt0
{
aa++;
if(flag==1)
{
flag=0;
n=aa;
aa=0;
}
}
附录2:
频率产生的程序
/*************************************************************************
功能描述:
定时器、计数器方式2适合做较精确的脉冲信号发生器
计算方法:
改用12MHZ晶振计算比较准确,一个振荡周期(1/12000000)s,一个机器周期
是1/1000000,当N是100时,则装入初值TH0=TL0=256-100=156,100个计数时间是
1/10000。
计时1ms时定时器溢出的次数是0.001/(1/10000)=10
****************************************************************************/
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitimpulse=P0^0;//脉冲
uintnum;
voidmain()
{
TMOD=0X02;
TH0=156;
TL0=156;
EA=1;
ET0=1;
TR0=1;
while
(1)
{
if(num==10)
{
num=0;
impulse=~impulse;
}
}
}
voidT0_time()interrupt1
{
num++;
}
附录3:
关于实验的现象
1、当输入1000HZ的脉冲时,实验现象如下
2、当输入500Hz的脉冲时,实验现象如下
3、当输入2500Hz脉冲时,实验现象如下
七、致谢
本课题在选题及研究过程中得到*老师的亲切关怀和悉心指导下完成的。
她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。
从课题的选择到项目的最终完成,*老师都始终给予我细心的指导和不懈的支持。
*老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向*老师致以诚挚的谢意和崇高的敬意。