频率计报告(课程设计).doc

  • 格式:pdf
  • 大小:310.03 KB
  • 文档页数:14

数字频率计内容提要:本系统以单片机为控制核心,由信号发生模块、单片机最小系统模块、显示模块组成。测量时,将被测信号送给单片机,通过程序控制计数,所得结果由单片机P0口和P2驱动LED数码管显示频率值。信号发生电路由电容充放电再经非门整形得到一个频率为7100Hz的矩形波信号,作为测试信号送入单片机的P3.4口,再由单片机检测与计算,送入数码管显示。该频率计具有电路结构简单、成本低、测量方便、精度较高等特点,适合测量低频信号。

关键字:单片机 数码管 动态扫描 定时器 二十进制转换1、 系统功能论述

1、本次设计的意义在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率计在教学、科研、测量仪器、工业控制等方面都有较广泛的应用。测量频率的方法有多种,其中电子计数测量频率具有精度高、使用方便、测量迅速,以及便于实现测量自动化等优点,是频率测量的重要手段之一。本设计就是用计数的方法,以单片机AT89C51为控制核心,充分利用其软硬件资源,设计并制作了频率计的计数、显示部分。它能精确测量低频信号的频率,这就是本次设计的意义。2、系统功能题目技术指标要求如下:输入脉冲幅度:0—5V频率测量范围:100—100000Hz测量精度:±1%显示方式:四位数字显示根据题目要求分析如下:由于使用电源电压最大不超过5V,而且经74LS00接成的非门整形,所以第一个要求必能满足。信号发生电路要产生频率范围为100—100000Hz的矩形波信号,根据公式只要使电阻电容满足一定的要求即可。测量精度±1%,由于正负1误差的存在,所以最小频率不得低于100Hz,上限频率可以扩大,但也不是无限扩大,根据后面的计算待测信号的频率测量范围可扩大为100—50000Hz。另外显示方式为四位数字显示,所以要将测量频率划分为两段为100——9999Hz和10000——50000Hz。前面一段四位数码管就可以显示了,但后面一段不够显示,就必须进行处理,去掉最后一位,在次高位上加一个小数点,以10000Hz为例,处理后就是10.00,单位变为KHz。本系统功能就是测量频率,并满足上述指标要求。3,系统结构框图图1 系统结构框图4,工作分配

此次课程设计我主要负责软件的编写与调试。第一个星期主要是收集资料、焊街电路板和熟悉LCA51仿真软件的使用。电路板的焊接工作主要由我同伴负责,电路板的调试是由我们共同完成的,然后共同熟悉软件。第二个星期,我负责写程序,并且各自练习编写一些小程序。经过两个星期的努力,我们终于完成了数字频率计的设计。2、 硬件电路设计1, 硬件电路图

图2 硬件管脚图1)其具体连接方法如下:

P3.4口(即T0)接输入脉冲信号。 XTAL1与XTAL2管脚接两个20pF电容和12 MHz晶振构成时钟电路。 RST管脚接510Ω电阻,10 μF电容及复位开关构成人工复位电路。P2.4—P2.1接驱动7407的四个输入端,四个输出端接数码管的位选通端。P0.0—P0.7接数码管的段选线。2)元件参数如下R1=R2=510Ω,C1=C2=10uf,C3=C4=20pf。一片74ls00接成非门使用,用于整形。一片7407用于驱动数码管。四个共阴极数码管,一个8路排阻,阻值为330Ω。2, 各模块电路的实现及其功能1) 信号发生模块参考图2可知,利用电容的充放电,产生近似矩形波的波形,再经非门整形,就可以得到标准的矩形波,若波形不够标准,可多接入几个非门。频率计算公式为:f=1/2.2*R2*C2 (1)上述取R2=510Ω, C2=10uf,计算得到f=8900Hz,但由于元件本身并不标准,且有较大误差,以及接入电路后存在的一些干扰,从示波器实测得到的频率为7100Hz。2) 单片机系统模块选择单片机是因为有编程灵活、易调试的特点,而且它的引脚较多,利于电路的设计。它内部集成了CPU,RAM,ROM,定时器/计数器和多功能I/0口等一台计算机所需的基本功能部件。晶振由外部接入,各个并行口可直接使用,故直接接数码管的段选线,使得硬件设计易于实现,且简化了程序。单片机的主要功能就是定时一秒钟,统计被测信号的周期个数,在转换、存储、送给单片机的并行口和驱动7407。3) 数码管显示模块LED显示器采用动态显示方式。显示时将所有位的段选线相应的并联在一起,由一个8位I/O口即P0口控制,形成段选线的多路复用。驱动器7407连接位选部分,由P2.4—p2.1口控制。由于各位的段选线并联,段选码的输出对各位来说都是相同的。同一时刻,如果各个位选线都处于选通状态的话,四位的LED将显示相同的字符。要各位LDE能够显示出与本位相应的显示字符,就须采用扫描显示方式。即在同一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字型码,这样同一时刻,四位LED中只有选通的那一位显示出字符,而其他三位则是熄灭的。而在下一刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,在段选线上输出相应位将要显示字符的字符码。 这样循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于人眼有视觉残留现象,只要每位显示间隔足够短,则可造成多位同时亮的效果。所以数码管的作用就是动态显示频率值。3、 软件设计1、测频工作原理1)工作方式选择对一秒钟内的输入脉冲进行计数,计数的个数即为频率。由此可见首先要实现一秒定时。在采用12 MHz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的方法实现。选用定时器T1作定时器,工作于方式1产生5 ms的定时,再用软件计数方式对它计数200次,就可得到一秒的定时。而将T0设为计数器工作方式,工作于方式1,所以待测输入信号从P3.4(定时器T0外部计数脉冲输入线)输入。2)定时器和计数器的初值计算 将定时器/计数器的方式寄存器TMOD,用软件赋初值15H,即00010101B。这时定时器/计数器1作为定时器,则方式选择位C/T设为0,采用工作方式1,即16位定时器;定时器/计数器0作为计数器,则方式选择位C/T设为1,也采用工作方式1,最大可计到65536。计数器的初值必然设为0,重要的就是计算定时器T1 的初值。计算定时器T1初值:设计数初值为X,定时时间为5000us。根据公式:X=65536—T*fosc/12 (2)式中T为定时时间,fosc为晶振频率。本设计采用12 MHz的晶振。则X=65536—5000*12/12=60536,所以计数初值为60536,用十六进制表示EC78H。则把ECH赋给TH1,把78H赋给TL1。3)待测信号频率范围计算及占空比要求 当定时器/计数器T0设定为计数方式时,其计数脉冲的来源是T0端口的外部事件。内部硬件在每个机器周期采样外部引脚的状态,当一个机器周期采样到高电平,接着的下一个机器周期采样到低电平时计数器加1,也就是说在外部输入电平发生负跳变时加1。计算机需用两个机器周期来识别1次计数,因而最大计数速率为振荡频率的1/24。在采用12MHz晶振的情况下,单片机最大计数速度为0.5 MHz即500 kHz。所以将待测信号的测量频率范围扩展为100—50000Hz。 另外,此处对外部事件计数脉冲的占空比(即脉冲的持续宽度)无特殊要求,但必须保证所给出的高电平在其改变之前至少被采样1次,即至少保持1个完整的机器周期。2、计数所得数据处理1)二进制—十进制转换单片机采集得到的数据是二进制数,要送入数码管显示,就必须转换为十进制。转换原理如下:一个整数的二进制表达式为: (3)

根据多项式计算方法可改写为:

初值:B=0;i=m-1

(4)

(5)结束条件:i<0。

由这个公式可见,我们只要分别对部分和按十进制数运算方法进行乘2和加bi的运算,就可得到十进制的转换结果,但转换结果是压缩的BCD码。2)压缩BCD码转换成非压缩BCD码压缩BCD码R4R5R6,以R5为例,首先赋给A,再将A的低四位清零,高四位保持不变,然后将高低四位调换,就得到了压缩BCD码的高四位,同理再将R5赋给A,A的高四位清零,低四位保持不变,就得到了压缩BCD码的低四位。以此类推,逐个转换为非压缩BCD码。3)数码管显示从图2中可看出,P0.0—P0.7对应的分别是数码管的b、a、f、g、e、d、c、h,所以字型码和字符码的对应关系,如表1所示。表1字符码字型码字符码字型码

077H0.F7H141H1.C1H23BH2.BBH36BH3.EBH44DH4.CDH56EH5.EEH67EH6.FEH743H7.C3H87FH8.FFH96FH9.EFH

共有四个数码管,用扫描的方式显示,每一个时刻只选通一个数码管。P2.4—P2.1分别驱动一个数码管,所以驱动电路的字型码为EFH、F7H、FBH、FDH。定时器每中断一次,就显示一位数码管,但这短暂的时间人眼是无法识别的,所以人眼看到的是静态显示。