基于单片机的频率计设计_第1页
基于单片机的频率计设计_第2页
基于单片机的频率计设计_第3页
基于单片机的频率计设计_第4页
基于单片机的频率计设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域.本文的频率计系统是以单片机(AT89C51)为核心,利用AT89C51单片机的T0和T1的定时计数功能来完成对输入的信号进行频率计数,由时基集成电路NE555P、四位共阴极数码管等元器件以及C语言程序组成。具体介绍应用Proteus的ISIS软件进行单片机系统的频率设计与仿真的实现方法,以及Keil软件的编译与应用。该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。关键词:AT89C51NE555频率计频率计数器概述(1)简介频率计数器是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。本数字频率计将采用定时、计数的方法测量频率,采用一个四位共阴极数码管显示器动态显示4位数。测量范围从1Hz—9999Hz的方波、用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。(2)频率测量仪的设计思路与频率的计算频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。图1.1频率测量原理图若被测量信号的周期为,分频数m1,分频后信号的周期为T,则:T=m1Tx。由图可知:T=NTo图1.1频率测量原理图(注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。(3)基本设计原理基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。频率计数器系统硬件组成频率计数器系统硬件主要由AT89C51单片机、定时电路NE555、LED数码管等元器件组成。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。NE555是美国Signetics公司1972年研制的用于取代机械式定时器的中规模集成电路,因输入端设计有三个5kΩ的电阻而得名。数码管是一种半导体发光器件,其基本单元是发光二极管。AT89C51单片机AT89C51单片机单片机晶振电路单片机复位电路方波信号产生电路四位共阴极数码管显示电路 图2.1系统框图频率计数器系统设计流程图2.5基于Proteus的单片机系统设计流程频率计数器电路图设计运行Proteus的ISIS后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component.按钮,接着再点击窗口左侧的元器件选择区的PickDivices.按钮,弹出如图1所示的PickDevices窗口,再在Categ栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把NE555、数码管、晶振以及多个电阻、电容也添加到器件列表区里。然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针rICs就会出现一个“×”提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的Inter-sheeTerminal.按钮,添加上电源和接地符号,原理图的绘制就完成了。频率计数器电路图图Proteus设计频率计数器系统原理图图Proteus仿真结果图参考文献[1]孙安青编著.AT89S51单片机实验及基础教程.桂林电子科技大学,2003年[2]江晓安编著.数字电路.西安电子科技大学出版社,2002年[3]杨振江编著.单片机原理与实践指导.中国电力出版社,2008年[4]谭浩强编著.C程序设计.北京:清华大学出版社,2002年[5]江晓安编著.数字电子技术.西安电子科技大学出版社,2002年[6]郝建国编著.单片机在电子电路中的应用.北京:清华大学出版社,2006年[7]王振红编著.综合电子设计与实践.北京:清华大学出版社,2006年附录A程序代码程序代码:#include<AT89X52.H>unsignedcharcodedisplaybit[]={0xfe,0xfd,0xfb,0xf7};//四位选择unsignedcharcodedisplaycode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//0,1,2,3,4,5,6,7,8,9unsignedchardispbuf[4]={0,0,0,0};//数据缓冲区,j就是屏幕显示的缓冲数据unsignedchartemp[4];//显示速度分成显示字符的缓冲区unsignedchardispcount;//显示位数的定位unsignedcharT0count;//to计数器的溢出次数unsignedchartimecount;//定时的次数bitflag;unsignedlongx;voidmain(void){unsignedchari;TMOD=0x15;//设置定时器启动模式TH0=0;TL0=0;TH1=(65536-5000)/256;TL1=(65536-5000)%256;TR1=1;TR0=1;//启动定时器ET0=1;ET1=1;//启动两个中断EA=1;//开中断while(1){if(flag==1){flag=0;x=T0count*65536+TH0*256+TL0;//显示初始化0for(i=0;i<4;i++){temp[i]=0;}i=0;while(x/10){temp[i]=x%10;x=x/10;i++;}temp[i]=x;for(i=0;i<4;i++){dispbuf[i]=temp[i];}timecount=0;T0count=0;TH0=0;TL0=0;TR0=1;}}}voidt0(void)interrupt1using0{T0count++;}voidt1(void)interrupt3using0{TH1=(65536-5000)/256;TL1=(65536-5000)%256;timecount++;if(timecount==200){TR0=0;timecount

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论