1/26基于单片机的简易数字频率计设计报告课程设计名称:近代电子学实验设计项目名称:简易数字频率计设计专业班级:电子信息科学与技术08级1班2/26设计题目简易数字频率计的设计参与成员设计要求设计一个自动量程数字频率计,其要求如下:显示位数:6位,最大显示数999999。自动量程要求:计数器大于999999时(溢出)量程自动升高一档,输入被测电压:1Hz-1MHz方波或正弦波,幅度为10mv-3v(有效值)。计过程测量原理:原理图如如图1-1所示频率测量部分:本设计方案的同样采用常规的测量方法,即在单位时间内对待测信号的脉冲边沿(上升沿或下降沿)进行计数,频率测量的硬件电路如图所示,其主要由以下几部分组成:分频控制电路、单片机控制部分、计数与显示电路。单片机控制部分3/26主要完成测量过程的控制、测量结果的处理和显示。单片机选用AT89C52,其中P3.1(T1)用于输入待测信号,一次计数完成后,单片机对计数值进行运算处理,并送往8位锁存器74LS273。AT89C52P0口用于和74LS273相连,LED数码管显示与锁存器端口电平相对应的数字。如图1-1所示,待测频率信号经放大、整形后输入到单片机AT89C52的T1引脚(AT89C52T1的内部集成了二个16位定时/计数器T0和T1,当对外部脉冲进行计数时,外部脉冲接T0/T1)。但是,对于工作在12MHz晶振下的AT89C52来说,能识别的最高频率为机器周期的1/2,也就是晶振的1/24,因此,当待测频率高于500K时,需要对待测频率进行分频。分频的常用方法是利用计数器,本方案中用了两片十进制计数器74LS90进行10分频和100分频。被测频率的数据经AT89C52的输出口送到LCD显示器或数码显示管显示,当需要显示复杂图形或字符时应选择LCD显示器(本设计方案中对用数码管显示和用LCD显示器显示都进行了设计),数据显示方面,对于数码管而言,可用动态扫描和锁存输出,为了保证数据显示时的稳定性,本方案中的数码管显示部分采用了锁存输出的方式。对于LCD显示器而言,则需要靠编程实现。在量程精度和附加功能方面的设计,本方案采用了6个7段数码管显示数据,测量范围为1Hz-10MHz,共分为三档。第一档测量范围为1Hz-100KHz第二档测量范围为100KHz-1MHz4/26第三档测量范围为1MHz-10MHz刷新时间为1S。脉宽测量部分:利用定时器的方式寄存器TMOD的D7位(GATE)的特殊功能,当GATE为低电平时,只要TCON中的TR0/TR1为1,计数器就开始计数,当GATE为高电平时,计数器T0、T1计数运行控制位TR0、TR1为高仍不能计数,还需要INT0/INT1上的电平为高才能使计数器工作,由此可知,当GATE=1和TR0/TR1=1时,计数器是否计数取决于INT0/INT1引脚的信号,INT0/INT1由0变1时开始计数,由1变0时停止计数,这样就可以用来测量INT0/INT1端出现的脉冲宽度。原理图分解为如下几部分1.放大整形电路如图1-2所示图1-2放大整形电路其中,放大部分由集成运算放大器构成的反向比例运算电路实现,放大倍数Au=R4/R3=10,当然,这可以通过调整电阻R35/26和R4的值来满足实际需要。整形部分仅由一个与门构成,与门的一端接高电平,另一端接输入信号,当输入信号的幅值高于与门的阈值电压时,在与门的输出端将会得到高电平。反之,输出低电平,从而实现了波形变换。下图为放大整形的仿真截图:输入正弦波的幅值为200mV,频率为10kHz,从上到下依次为原信号、放大后信号、整形后的信号:2.分频电路如图1-3所示6/26图1-3分频电路分频电路是由两片74LS90、和一片74LS153实现的,单片机AT89C52初始时从P1.0和P1.1输出P1.1=0,P1.0=0,此时将从74LS153的output端输出未经分频的信号,当AT89C52检测到脉冲频率高于100KHz时,置P1.1=0,P1.0=1,此时将从74LS153的output端输出经十分频的信号,当AT89C52检测到脉冲频率高于1MKHz时,P1.1=1,置P1.0=0,此时将从74LS153的output端输出经一百分频的信号,从而实现了对更大频率范围的测量。下图为分频电路的仿真截图:输入信号为100Hz,从上到下依次为原信号、10分频后的信号、100分频后的信号。7/263.显示及锁存电路如图1-4所示图1-4显示、锁存电路显示、锁存部分的电路是由6片74LS273和6个7段数码管构成的,AT89C52把记录的数据分解为最高位、次高位……最低8/26位,然后分时送往数据总线P0口,再由P2口发出的锁存信号依次将其锁存,最后由数码管把各锁存的数字对应显示出来,小数点的变换是通过AT89C52的P1.2、P1.3、P1.4来控制的,其原理与分频电路的控制相似,故不再赘述。简易频率计的整体电路图如图1-5所示图1-2简易频率计电路图频率测量部分:AT89C52单片机上电后,工作于等待状态,当检测到频率测量按键(freq)按下时,开始进行测量,即转到频率测量的程序去执行,用AT89C52的定时/计数器T0进行定9/26时,每次定时时间为10ms,每定时10ms,单片机响一次应中断,当中断计数满100次,也就是定时满1s时,单片机对所计得的数进行加工并送往锁存器锁存,再由数码管读锁存器,将所测频率显示出来,此后,等待下一次数据送来时进行刷新,当检测到待测频率太高而无法显示时,将从单片机的P1.0和P1.1口输出两个控制信号,两个控制信号连接到74LS153(双四选一数据选择器)的选择端A和B,通过控制P1.0和P1.1来实现对待测频率的分频。脉宽测量部分:当检测到脉宽测量按键(pwide)按下时,转到脉宽测量程序去执行,同样利用单片机的定时/计数器进行测量,当检测到INT0引脚为高电平时,定时器开始计数(定时器可以看作是对机器周期的计数,当晶振为12MHz时,定时器每接收一个脉冲的时间为1us),当检测到下降沿时,单片机响应中断,计数停止,AT89C52对所计得的数进行加工并送往锁存器锁存,再由数码管读锁存器,将所测脉宽显示出来。程序部分:程序部分的设计主要是为了和硬件电路相结合,正确地实现更高精度测量。整个系统软件的设计采用了自顶向下的模块化的结构方式,将各个功能分成独立模块,由系统的程序统一管理执行。它主要完成各种功能,如测量、数据运算、显示等。如图1-2所示为频率测量主程序的粗略流程图。10/26图1-3频率测量主程序的流程图部分测量结果如下图所示测频部分:1.被测正弦信号频率为1Hz,幅值为200mV时:11/26显然,此时由于所测频率过小,没有显示出误差。2.被测方波信号频率为123Hz时:12/26显然,此时也是由于所测频率过小,没有显示出误差。3.被测正弦信号频率为12.345KHz,幅值为1V时:13/26显然,此时还是由于所测频率过小,没有显示出误差。14/264.被测信号频率为567.890KHz时:15/26此时,测量中结果显示了误差,偏离值为|567890-56788|=2Hz,误差为(2/567890)*100%=0.00000352%。可见该误差还是很小的。由此可见,该频率计对于较小频率的测量是比较准确的。5.被测信号频率为2567.89KHz时:16/26此时,测量结果中显示了误差,偏离值为|2567890-256783|=7Hz,误差为(7/2567890)*100%=0.00000273%。可见,该频率计对于低频率的测量是比较准确的。5.被测信号频率为8234.56KHz时:17/2618/26此时,测量结果中显示了误差为:|8234567-8234730|=163H误差(163/8234567)*100%=0.0000149%。测脉宽部分:1.输入10Hz的方波时(测量结果单位为ms):19/2620/26显然,此时由于所测信号频率过小,没有显示出脉宽的误差。2.输入200Hz的方波时:21/2622/264.输入10KHz的方波时:23/2624/26显然,此时由于所测信号频率过小,没有显示出脉宽的误差。从上述测量结果可以看出仿真与实际值在容许的误差范围内相同。总结:通过此次电路的设计,我们对数字电路中的常用芯片有了更多的了解,但是本次设计的的频率计只能测量中低频率,而如果25/26频率较大的话,误差也会增大。现在的频率计朝着高精度,微型化,多功能方向发展。简单的单片机和数字电路已经不能适应这种变化,现代化频率计设计更多的采用精度较高,运算较快的FPGA类芯片,这就要求频率计设计者们要创新思维、与时俱进。本次设计我们也初步学习了单片机的基础知识和基本性能。单片机作为微型计算机的一个重要分支,以其独特的结构和性能越来越多地应用到国民经济的各个领域,如用于测控系统、智能仪表、智能产品、计算机外设等。而且在未来发展的趋势中,还有着无限的开发潜力。为了更多的去了解和学习单片机,我们选择了用单片机来做这个实验,由于对单片机课程的学习还不够深入,因此在这次设计的过程中也遇到了不少问题,但我们并没有选择放弃,二是选择翻阅资料、上网查寻等方式,尽量的去解决所遇到的问题,并最终将电路搭出来了,虽然还不够好,但我仍然觉得这是一个不小的提高,我相信,只要去实践了,就一定会有所收获。成绩评定(包括:指导教师评语和课程设计等级)26/26