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

下载本文档

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

文档简介

1、第25卷第4期2004年7月微计算机应用MICROCOMPUTERAPPLICATIONSVol.25,No.4Jul.,2004基于AT89C2051杜刚(713800)摘要:,应用单片机的算术运算和控制功能并采用串口。使用串口的液晶显示模块,节省了单片机的口线和外。使用高效的快速转换算法和用来测量信号多倍周期的分,既保证了系统的测频精度,又使系统具有较好的实时性。在本设计中实现了频率信号的实时高精度地测量与显示。关键词:频率测量单片机分频串行液晶显示数据处理TheDesignoftheCymometerBasedonProcessorAT89C2051DUGang,GAOJun,TONGH

2、ingning(TheMissileInstituteofAirForceEngineeringUniversity,Sanyuan,713800,China)Abstract:Inthispaper,acymometerbasedonprocessorAT89C2051isdesigned.Bymakingfulluseofsinglechip sabilitytocalculateandcontrol,frequencycanbedisplayedinstantlyonliquidcrystaldis2playwithserialdatatransfer.Itcaneconomizesys

3、temportandperipheralequipment,cutshortpro2grammeindisplay.Itcanmeettheneedsofhighaccuracyandshortmeasuringtimetouseefficientandfastconversionarithmeticandfrequencydivisioncircuitmeasuringsignal smulti2cycletocalculatefrequen2cy.Thefrequencycanmeasuredanddisplayedpreciselyandinstantlyinthedesign.Keyw

4、ords:frequencymeasurement,frequencydivision,microcontroller,serialliquidcrystaldis2play,dataprocessing1系统概述111系统组成所设计的频率计的测量范围为1kHz到99kHz,采用8位频率值显示并且包含两个小数位。频率计由信号预处理电路、AT89C2051芯片、串口液晶显示电路和系统软件所组成。其中信号预处理电路包含信号放大、波形变换、波形整形和分频电路。系统硬件框图如图1所示。信号预处本文于2004-07-01收到,2004-04-19收到修改稿。图1系统硬件框图第4期微计算机应用499理电路

5、中的放大器实现对待测信号的放大,降低对待测信号幅度的要求;波形变换和波形整形电路将放大的信号转变成可与单片机接口的TTL信号;频更易于实现,而且也降低了系统的测频误差;单片机通过设置使INT0器T0工作,这样能精确地测出加到INT0(信号的周期);,简化了显示部分的编程控制。命令子模块、周期测量模块、频率转换模块、频率数据显示模块。2(既可以是正弦信号也可以是脉冲信号)实时地测量出来,并用串口液晶显示模块显示出测量频率。考虑到信号的衰减、干扰等影响,在信号送入分频器前对其进行放大整形。放大整形后的信号再经分频电路分频后输入到单片机进行测频。单片机利用定时器T0通过其控制功能测出输入信号的周期。

6、然后利用单片机的算术运算功能将周期转换成频率。频率值得出后,为方便计算要显示频率值的段码再将其转换成压缩的BCD码,通过查表将要显示频率值的每一位的压缩BCD码转换成8段码送到显示缓冲区。最后,经串口送至液晶显示模块显示出所测的频率。设计电路时,综合考虑了测频精度和系统反应时间的要求。硬件电路设计中,采用了CD4020分频电路对待测信号进行212分频,它的使用不但使单片机测频更易于实现,而且也使测量周期的误差非常小,保证了测频精度的要求。测频误差分析如下:当使用单个脉冲周期测量信号频率时,测频误差dF=-计算频率时,测频误差dF=-212T2dT,其中T为信号周期;当测量信号的多倍周期T2d(

7、nT),由于dT=d(nT),所以可以得出结论多倍周期测频比单周期测频精度高很多。为了保证系统的实时性,系统的频率转换模块和频率数据转换BCD码模块都采用快速算法,另外,尽量使其它的子模块在编程时具有通用性和高效性。考虑到实际应用,频率值采用8位显示并且包含两个小数位。211信号预处理电路频率计的信号预处理电路如图2所示。它由三级电路构成,第一级为由开关三极管组成的零偏置放大器,三极管采用开关三极管,以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,输出高电平。当输入信号为正电压时,三极管导通,输出电压随着输入电压的上升而下降,这使得频率计既可以测量任意方波信号的频率,也可

8、以测量正弦波信号的频率。放大器的放大功能降低了对待测信号幅度的要求,实现了系统能对任意大于等于015V的正弦波和脉冲信号进行测量。第二级采用带施密特触发器的反相器CT74LS14,它用于把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号。第三级采用14位二进制异步计数器CD4020,第二级输出的方波加到CD4020的CLK端口,Q12端输出的信号输入到单片机,从而为测量信号的周期提供基础。另外,为使CD4020正常工作,它的RST端必须通过电阻接地。500微计算机应用2004年图2212AT89C2051作为频率计的信号处理核心,AT89C2051包含2KB闪存,根I/O口线,2个16

9、位定时计数器,5个向量二级中断结构,1个全,同时还具有加密阵列的二级程序存储器加锁功能。设计中,用到了AT89C2051的T0定时器和INT0引脚,P1端口的4个口线,晶振采用12MHZ。它与89C51相兼容,这使得在硬件电路设计和软件编程方面更加方便。考虑到AT89C2051本身固有的特点(与其他型号的单片机有所不同),设计时需考虑几点:首先,它的程序存储器空间为2KB,因此所有的跳转和分支转移指令都要限制在这个范围内。其次,它没有MOVX指令即它不支持外部存储器操作,这一点设计时一定要考虑到。除此之外,它自身还有一些其他特点,譬如可以使用命令使其工作在低功耗模式等。单片机利用T0定时器和I

10、NT0引脚来测量输入方波信号的周期。使用外部中断0来控制定时器T0是否开始图3液晶显示模块与单片机的接口电路定时。当定时器T0的运行控制位复位时,不管P312引脚是何值定时器都不工作。只有当定时器T0的运行控制位置位后,才能根据P312引脚来决定定时器是否工作。当P312引脚出现高电平时,定时器T0开始定时;出现低电平时,定时器T0停止工作,并将测量信号的周期保存在定时器的16位寄存器中。频率计在系统初始化时通过设置使T0定时器工作在模式1方式下。213液晶显频电路显示部分采用液晶显示模块LCM0825,与单片机的接口电路如图3。LCM0825是8位段码式液晶显示模块,内部集成了LCD控制器,

11、LCD驱动器以及一定空间的RAM,从而方便了对待显示频率数据的显示编程。液晶显示模块采用3至4线串行数据输入,可直接与单片机接口。由于采用串行接口,节省了所需的口线和系统资源,使系统具有较高的资源利用率。而且该模块具有217V512V工作电压,功耗小,它还可以调节背光,因此该模块的使用使本频率计的设计更具有经济性和通用性。该模块能够显示8位数据,每一个数据是以8段码的形式放在LCM0825内部显示RAM区的,且用模块内RAM的两个存储地址来放置一个数据的8段码。8位数据共占用内部16个地址。每一个数据位的8段码存放形式及高低地址存放段码的顺序都和表1所示的第8位数据的8段码存放格式一样,只是段

12、码的存放地址不同。所以,我们在编程时一定要考虑数据的存放地址和形式。在使用该液晶显示模块时,VCC与VLCD之间要加一个50K的电位器用来调整背光。第4期微计算机应用5013系统软件设计311数据处理过程待测信号经预处理电路分频后变成较宽的方波信号,INT0)引脚,为单片机测信号频率提供有效的输入信号。2测周期程序。当该引脚为高电平时则等待,。首先将零赋给TH0、TL0两个寄存器,置位,同时也将ET0置位以允许定时器T0中断。,当为低电平时则等待,直到出现高电平,当不是低电平时则等待。一旦出现低,测周期程序结束。在测周期过程中,会发生定时器T0的R0寄存器加一,因此R0实际上是周期值的高字节。

13、测出的周、TH0、TL0三个寄存器中,然后将其转换成频率。由于所测周期的单位是s,在相除转换时要将被除数扩大106倍,这样才能保证得出正确的频率。得出的频率放到R1、R2、R3三个寄存器后调用转换BCD代码模块,将频率值转换成压缩的BCD代码以便显示处理。考虑到对响应时间的要求,BCD代码模块采用快速算法。频率转变成相应的压缩BCD代码后,调用显示消多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据的8段码放到显示缓冲区以备显示。当然,在编程时要把十进制数据相应的8段码放在表格中,这样才能进行查表得到相应数值的段码。在此过程中另一个重要的目的是要消除最高有效位前面多余零,使多余的

14、零的段码为不显示状态,从而能保证将频率以通常的格式显示出来。最后,将显示缓冲区的8位8段码经串口送至液晶显示模块,显示出所测的频率。312系统软件框图系统软件设计采用模块化设计方法。整个系统由系统初始化模块,周期测量模块,频率转换模块,频率数据转BCD码模块,图4系统软件框显示数据处理模块,频率数据显示模块,定时器中断服务模块等各种功能模块组成(如图4)。上电后,进入系统初始化模块,系统软件开始运行,不断实时地将所测频率在液晶模块上显示。313液晶显示模块LCM0825是串行8位8段液晶显示模块。使用时,要在上电后对该模块进行初始化。在初始化之前,应延时200ms以上再送命令。它的初始化工作过

15、程如下:首先,定义液晶模块(命令代码为:00101001),其次,定义振荡器的方式(当命令代码为00011000时,将模块定义为内部RC振荡方式,命令代码为00010100时,将其定义为外部晶体振荡方式)。然后,分别用命令代码00000001和00000011开振荡器和开显示器。以上命令送入后,需要显示数据时,可以将相应的段码直接送入模块内部显示RAM。在送要显示频率的段码数据时,要考虑到显示RAM的高和低地址对应的数据段码存放形式。现列举第8位数据的段码与LCM0825内部的RAM地址的对应关系如表1所示。以后随地址的增加依次存放第7位至第1位数据的段码。为了正确的显示数据也必须了解要显示的8位字符在显示屏幕中左起502微计算机应用2004年为第一位,右止为第8位。表1第8位数据的段码与LCM0825内部RAM的对应关系D38A8FD28B8GD18C8ED0DP8另外,一样(如图5)。,否则模块不能正常工作/,必须在时序中加入相应的延时;为保证系统的/,都应将/CS、/RD、/WR、DATA置高电平。

温馨提示

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

评论

0/150

提交评论