方案一:本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描法把测出的数据送到数字显示电路显示。其原理框图如图2.1所示:
图2.1 方案一原理框图
方案二:本方案主要以数字器件为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。其原理框图如图2.2所示:
图2.2 方案二原理框图
2.2方案论证方案一:本方案主要以单片机为核心,利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
方案二:本方案使用大量的数字器件,被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被侧信号的频率相同。同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率Fx = NHz。逻辑控制电路的作用有两个:一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。
2.3方案选择比较以上两种方案可以知道,方案一的核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值则可以实现不同频率范围的测试能自动选择测试的量程。与方案一相比较方案二则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。如要测量高频的信号还需要加上分频电路,价格相对高了点。基于上述比较,所以选择了方案一。
3. 频率计的硬件系统设计3.1 频率计的硬件系统框架频率计是一个将被测频率显示出来的计数装置,它主要由信号处理电路部分、单片机AT89C52控制部分、LED显示器部分等组成。该系统的功能是将信号输入P3.4口,通过单片机程序控制,对LED显示器进行段控和位控,实现动态显示。频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。图3.1为频率计方框图。
图3.1 频率计方框图
3.2频率计的主机电路设计
AT89C52可以完成ISP在线编程功能,AT89C52内部有EEPROM,可以在程序中修改,断电不丢失。还增加了两级中断优先级,STC推出的系列52单片机芯片是全面兼容其它52单片机的。
3.2.1 89C52芯片介绍许多由关硬件设计中都使用到单片机89C52,其功能比以往的单片机强大的多。89C52引脚图如图3.2所示:
图3.2 89C52引脚图
芯片中未给出的引脚及其功能如下:
主电源引脚Vcc和Vss:Vcc(40脚)接+5V电压,Vss(20脚)接地。
89C52晶振接法如图3.3所示:
图3.3 89C52晶振接法图
选用0.24MHz频率的晶体,允许输入的脉冲频率为10kHz。电容的大小范围为20pF~40pF,本设计选用33pF电容。
3.2.2 单片机复位状态单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。只要保持高电平,则MCS-52单片机就循环复位;当RST从高电平变为低电平以后,MCS-52单片机从0000H地址开始执行程序。在复位有效期间,ALE引脚输出高电平。89C52上电复位电路图如图3.4所示:
图3.4 89C52上电复位电路图
表 3.1 单片机复位状态表
专用寄存器 | 复位状态 | 专用寄存器 | 复位状态 |
PC | 0000H | TMOD | 00H |
ACC | 00H | TCON | 00H |
B | 00H | TH0 | 00H |
PSW | 00H | TL0 | 00H |
SP | 07H | TH1 | 00H |
DPTR | 0000H | TL1 | 00H |
P0~P3 | FFH | SCON | 00H |
IP | XXX0 0000B | SBUF | XXXX XXXXB |
IE | 0XX0 0000B | PCON | 0XXX XXXXB |
复位后,P0口~P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的RAM状态。
3.3频率计的信号处理电路设计
7414是反相施密特触发器集成电路,其基本作用就是作为反相器,一般用于信号输入电路,用施密特触发器对输入信号进行波形整形。其功能、作用如图3.5所示:
图3.5 输入信号波形整形图
本设计为满足设计要求,被测信号是要进行波形的变换。由放大器把正弦波样的正负交替波形变换成单向脉冲,再经过7414将放大器产生的单向脉冲变换为 方波。这样处理以后信号变成方波信号,以便后续的电路进行计数。
图3.6 频率计显示电路图
在单片机系统中,常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器。而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。
LED段显示器结构与原理:LED显示器是由发光二极管显示字段组成的显示块,有7段和“米”字段之分。这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管(在图中以dP表示)用于显示小数点。通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号。
LED显示块中的发光二极管共有两种连接方法:
①共阳极接法
发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。
②共阴极接法
发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。
数码管引脚如图3.7所示:
图3.7数码管引脚图
共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段dP、g、f、e、d、c、b、a对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。用LED显示器显示十进制转换成十六进制数的字形代码在表3.2中列出。
在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。
定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR清0,停止计数。计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。对10进制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。
待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的P3.4引脚,为单片机测信号频率提供有效的输入信号。单片机通过检测P3.4引脚来判断是否启动测周期程序。当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。首先将零赋给TH0、TL0两个寄存器,将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0终端,然后再判断P3.4引脚是否还为低电平,当不是低电平时则等待。一旦出现低电平则使TR0复位以终止定时器,测周期程序结束。在测周期过程中,会发生定时器T0的中断,每发生一次中断则将R0寄存器加一,因此R0实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0三个寄存器中,然后将其转换成频率。由于所测周期的单位是µs,再相除转换时要将被除数扩大10倍,这样才能保证得出正确的频率。得出的频率放到R1、R2、R3三个寄存器后调用转换BCD代码模块。调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。
由于在程序设计中用到中断方式,所以我们在此对单片机中断系统中的中断控制作一下介绍。
中断是工业过程控制及智能化仪器用微型机或单片机应用最多的一种数据传送方式。在通常情况下,单片机执行主程序,只有当正常状态出现故障,或发出中断请求时,单片机才暂停执行主程序,转去执行或处理中断服务程序,执行完中断服务程序后,再返回到主程序继续运行。单片机的这一种工作过程称为中断方式。
基于资源共享原理上的中断技术,在计算机中得到了广泛的应用。中断技术能实现CPU与外部设备的并行工作,提高CPU的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障及时发现并进行自动处理如:硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘发出请求,随时对运行中的计算机进行干预,而不用先停机处理,然后再重新开机等。
在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。
4.2定时/计数器4.2.1 控制寄存器TCON寄存器既参与中断控制又参与定时控制。现对其定时功能加以介绍。其中有关定时的控制位共有4位:
F0和TF1——计数溢出标志位当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。
R0和TR1——定时器运行控制位
TRO(TR1)=0 停止定时器/计数器工作
TRO(TR1)=1 启动定时器/计数器工作
②工作方式控制寄存器(TMOD)
TMOD寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。
③中断允许控制寄存器(IE)
EA——中断允许总控制位
ET0和ET1——定时/计数中断
定时器/计数器提供给用户使用的有:8位计数器TH和TL,以及有关的控制位。这些内容只能以软件方法使用。
能够产生中断申请的部件被称为中断源。8052型单片机提供了五个中断源:两个外部中断源和三个内部中断源。每一个中断源都有一个中断申请标志位,但是串行口占有两个中断标志位。一共有六个中断标志位。
④定时器/计数器对输入信号的要求
定时器/计数器的两个作用是用来精确的确定某一段时间间隔(作定时器用)或累计外部输入的脉冲个数(作计数器用)。
当用作定时器时,在其输入端输入周期固定的脉冲,根据定时器/计数器中累计(或事先设置)的脉冲个数,即可计算出所定时间的长度。
当89C52内部的定时器/计数器被选择为定时器工作方式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。因此,定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。当采用12MHz频率的晶体时,计数频率为1MHz,输入脉冲的周期间隔为1μs。由于定时的精度决定于脉冲的周期,因此,当需要高精度的定时器时,应尽量选择频率较高的晶体。
4.2.2定时工作方式0方式0是13位计数结构的工作方式,其计数器由TH0高8位和TL0的低五位构成。TL0的高3位弃之不用。当C/=0时,多中开关接通振荡脉冲的12分频输出,13位计数器以此进行计数,这就是所谓定时器工作方式。当C/
=1时,多路开关接通计数引脚(T0),外部计数脉冲由引脚T0输入。当计数脉冲发生负跳变时,这就是所谓计数工作方式。
不管是哪种工作方式,当TL0的低五位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。
4.3程序流程图设计4.3.1主程序流程主程序流程图如图4.1所示:
图4.1 主程序流程图
T1中断流程图如图4.2所示:
图4.2 T1中断流程图
`
中断程序实现定时与计数的功能。T1进行定时,定时时间为1s。进入中断后,先赋值于T1,Time count加1,而后计算相应的频率值。当 Time count加到10时,停止T0,T1,并退出中断。
T0中断流程图如图4.3所示:
图4.3 T0中断流程图
进入中断后,T0进行计数,T0中断溢出一次。T0 count加1,当定时达到1s时,停止T0,T1。
利用仿真软件PROTEUS的强大的仿真功能可以有效地检验所设计的原理图是否在理论上正确合理。分别以正弦波,方波,作为输入信号检测电路的仿真效果。
利用Keil uvision2软件编写单片机的工作程序并且检验程序是否成功编译。通过Keil uvision2逐步运行程序的功能可以检测出程序的错漏从而进行改正。程序编译成功后,利用ISIS软件把程序加载到原理图中进行仿真,通过显示器显示出来的频率大小与所设计的频率相比较可以看出所编写的程序是否满足要求,是否符合设计所要求的精度。测出各频率范围的误差,如果不符合设计所要求的精度可以通过改变单片机定时器的初始值或者优化程序的结构来减小误差增加精度!LED数码管采用的是动态扫描的方法进行显示,要设计好相应的扫描时间,因为扫描时间太短则LED显示出来的数字便会一直在闪烁不稳定,扫描时间太长则LED显示便会出现短时间的熄灭。
系统仿真电路如下图所示:
感谢学校和老师对我的培养,给我这个自己动手的机会和空间。经过一段时间,终于在指导老师的帮助下完成了毕业设计,这不仅对自己的动手能力有了很大的提升,而且还加深了我对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
在此我要感谢每一个帮助过我的人。要感谢给予我支持和帮助的的老师和各位同学,在我最艰难的日子里,他们给我精神上的支持。他们一直在鼓励我,让我充满信心地迎接每一个问题。还有在我大学四悉心教导我的老师们,是你们教会我很多有用的知识,特别是教会了我解决问题思考问题的方式和习惯,我在做论文的时候才能有自己的思想和规划,论文工作才有了目标和方向。在此我代表大家向所有老师表示最诚挚的谢意。
总而言之,感谢每一位关心过我的人,你们今天对我的付出,成为我现在和将来工作的动力。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |