ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:761.62KB ,
资源ID:7317836      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7317836.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(具有宽幅度高精度的频率计课程设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

具有宽幅度高精度的频率计课程设计.docx

1、具有宽幅度高精度的频率计课程设计 频率计课程设计报告学院:信息科学与工程学院 专业:电子信息工程 08-3班姓名:学号: 完成日期:201 年 月 日 第一章 实习目的通过实习,掌握电路设计和电路分析的基本方法,掌握常用电子测量 仪器设备的测量原理及基本设计方法和制作。频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器

2、。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点1。第二章 实习内容利用电源、单片机、LCD1602显示等模块,设计一个简易的频率计能够粗略的测量出被测信号的频率。 参数要求如下:1可以测量方波、正弦波等多种波形;2测量范围10HZ2000HZ,分

3、档测量;3输入信号幅度0.1V25V;4用LCD1602显示测量值;5每档最小值的1/100;第三章 系统方案3.1基本原理可用两种方法测待测信号的频率方法一:(定时1s测信号脉冲次数) 用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启T0和T1这样即可进入下一轮测量。原理示意图如下: 实验原理分析:1 根据该实验原理待测信号的频率不应该大于计数器的最大值65535,也

4、就是说待测信号应小于65535Hz。2 实验的误差应当是均与的与待测信号的频率无关。方法二(测信号正半周期) 对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx(外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/fsoc)

5、cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。 原理示意图如下: 实验原理分析:1 根据该实验原理该方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号2 由于有执行f=1/(2*cnt/(12/fsoc))的浮点运算,而数据类型转换时未用LCD浮点显示,故测得的频率将会被取整,如1234.893Hz理论显示为1234Hz,测得结果会有一定程度的偏小。也就是说测量结果与信号频率的奇偶有一定关系。3 由于计数器的寄存器取值在165535之间,用该原理时,待测信号的频率小于单片机周期的1/12时,单片机方可较标准的测得待测信号的正半

6、周期。故用该原理测得信号的最高频率理论应为fsoc/12 如12MHZ的单片机为1MHz。而最小频率为f=1/(2*65535/(12/fsoc)) 如12MHZ的单片机为8Hz。3.2原理框图综合以上频率计系统设计有单片机控制模块、电源模块、放大整形模块、量程选择模块及显示模块等组成,频率计的总体设计框图如图2所示。 图2 频率计总体设计框图3.3硬件电路原理图根据上述系统分析,频率计系统设计共包括五大模块:单片机控制模块、电源模块、放大整形模块及显示模块。各模块作用如下:1、单片机控制模块:以AT89S52单片机为控制核心,来完成它待测信号的计数,译码,和显示以及对分频比的控制。利用其内部

7、的定时计数器完成待测信号周期频率的测量。单片机AT89S52内部具有2个16位定时计数器,定时计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。(因为AT89C51所需外围元件少,扩展性强,测试准确度高。)2、电源模块:为整个系统提供合适又稳定的电源,主要为单片机、信号调理电路以及分频电路提供电源,电压要求稳定、噪声小及性价高的电源。3、放大整形模块:放大电路是对待测信号的放大,降低对待测信号幅度的要求。整形电路是对一些不是方波的待测信号转化成方波信号,便于测量。4、显示模块:显示电路采用LCD1602液晶模块显示。根据系统设计的要求,频率计实际需要设计的硬件系统主要包括以

8、下几个部分:AT89S52单片机最小系统模块、电源模块、放大整形模块、分频模块及显示模块,下面将分别给予介绍。3.3.1.1 AT89S52的介绍8位单片机是MSC-51系列产品升级版5,有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优势技术(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机。AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速

9、度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。AT89S52引脚如下图3所图3 AT89S52引脚图3.3.1.2 复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行

10、的基本模块。复位电路通常分为两种:上电复位(图4)和手动复位(图5)。 图4 上电复位 图5 手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能6。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。AT89S52单片机最小系统如图6所示。图

11、6 单片机最小系统原理图3.3.1.3 引脚功能VCC:电源电压;GND:地;P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻7。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1 输出缓冲器能驱动4个TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入

12、使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入,P1口功能具体如表1所示。在flash编程和校验时,P1口接收低8位地址字节。表1 P1口的第二种功能说明表引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4 个TTL逻辑电平。对P2端口写“

13、1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出

14、电流。P3口亦作为AT89C51特殊功能(第二功能)使用,P3口功能如表2所示。在flash编程和校验时,P3口也接收一些控制信号。表2 P3口的第二种功能说明表引脚号第二功能P3.0RXD(串行输入)P3.1TXD (串行输出)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器写选通)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器 AUXR(地址8EH)上的DISRTO位可以使此功能无

15、效。DISRTO默认状态下,复位高电平有效。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.3.1.4 单片机引脚分配根据系统设计及各模块的分析得出,单片机的引脚分配如表3所示。 表 3 单片机端口分配表模 块端口功能显示模块P0.0-P0.4、 P2.0-P2.7数码管频率值显示P1.4-P1.6LED单位显示分频模块P1.0-P1.2通道选择P1.3清零3.3.2 放大整形模块由于输入的信号可以是正弦波,方波。而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。

16、在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过幅度处理。当输入信号电压幅度较大时,通过二极管限幅电路将电压幅度降低。当输入小信号时需要进行放大,以保证不被损耗。根据上述分析,放大电路放大整形电路采用稳压二极管和LM741和74ls14反向施密特触发器等组成。信号先经过限压电阻在经过两个二极管限幅。再经过LM741构成的同向放大器进行对波形放大整形预处理,波形预处理后接74ls14反向施密特触发器对波形进行进一步的转换,把波形变成幅度适合单片机采集的信号(信号幅度需大于2.5V的矩形波)。具体放大整形电路如图7所示。 图7 放大整形电路3.3.4液晶显示与量程指示开关模块显示模

17、块由频率值显示电路和量程转换指示电路组成。频率值显示电路采用LCD1602显示频率计被测数值,使用排阻提高驱动电流,使LCD1602亮度变亮,便于观察测量。量程转换指示电路由三个LED分别指示10到99Hz、100Hz到999KHz及1KHz到2kHz档,使读数简单可观。3.3.4.1 液晶主要技术参数介绍3.3.4.2 液晶接口介绍3.3.4.3 频率值显示电路图8 液晶显示电路3.3.4.4档位转换指示电路根据设计要求,量程转换指示电路由三个LED分别指示10到99Hz、10Hz到999KHz及10KHz到2kHz档,根据灯的指示选择其合适的量程,使读数简单可观。图9 LED档位开关指示电

18、路3.4软件设计系统软件设计主要采用模块化设计,叙述了各个模块的程序流程图。3.4.1 软件模块设计系统软件设计采用模块化设计方法。整个系统由初始化模块,信号频率测量模块,手动量程转换和显示模块等模块组成。系统软件流程如图19所示。频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时计数器的工作方式。定时计数器的工作首先被设置为计数器方式,即用来测量信号频率15。系统软件流程总图首先定时计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始

19、测量,计数闸门结束时TR清0,停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。定时计数器的工作被设置为定时器方式,定时计数器的计数寄存器清0,在判断待测信号的上跳沿到来后,运行控制位TR置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。16位定时计数器的最高计数值为65535,当待测信号的频率较低时,定时计数器可以对被测信号直接计数,当被测信号

20、的频率较高时,先由硬件十分频后再有定时计数器对被测信号计数,加大测量的精度和范围。3.4.2 中断服务子程序中断服务子程序流程如图所示。测频率较小时,采取测周的方式,定时器T0 工作在定时方式,采取外部中断0的方式,首先打开外部中断,当外部中断检测到下降沿,开始计数,并打开定时器T0,当外部中断检测到下一个下降沿,停止计数并关掉外部中断0和定时器T0,此时,频率f=1/T。 外部中断0服务子程序3.4.3 显示子程序3.4.4 量程档转换子程序量程档自动转换子程序3.4.5频率计测周程序unsigned char code table= 10HZ-2000HZ ; unsigned char

21、code table1= f= ;unsigned char code table2= 10HZ-99HZ ;unsigned char code table3= 10HZ-999HZ ;unsigned char code table4= 10HZ-2000HZ ; sbit s3=P1 3;sbit s4=P1 4;sbit s5=P1 5;sbit D3=P1 0;sbit D4=P1 1;sbit D5=P1 2;sbit lcden=P22;sbit lcdrs=P20;sbit lcdrw=P21;uint count;uint timecount; float value,t;u

22、int k;uint flag,sh,xiao,num,i,ge,qian; void delay( uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com( uint com) lcdrs=0; lcdrw=0; P0=com; delay(5); lcden=1; delay(5); lcden=0;void write_data(uint date) lcdrs=1; lcdrw=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; void init() lcden

23、=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num15;num+) write_data(tablenum); write_com(0x80+0x40); for(num=0;num999) sh=9; ge=9; xiao=0;write_com(0x80+0x40+add);write_data(f);write_data(=);write_data(0x30+sh);write_data(0x30+ge);write_data(0xa5

24、);write_data(0x30+xiao);write_data(H);write_data(Z);write_com(0x80+0x40+add);write_data(f);write_data(=);write_data(0x30+sh);write_data(0x30+ge);write_data(0xa5);write_data(0x30+xiao);write_data(H);write_data(Z); void sfm1(uint add,uint date) sh=date/10; ge=date%10;write_com(0x80+0x40+add);write_dat

25、a(f);write_data(=);write_data(0x30+sh);write_data(0x30+ge);write_data(H);write_data(Z);void sfm2(uint add,uint date) if ( date%10)=5) sh=(date/10)+1; ge=0; if (date/10)=9)&(date%10)=9) sh=1;ge=0;qian=0;write_com(0x80+0x40+add);write_data(f);write_data(=);write_data(0x30+sh);write_data(0x30+ge);write

26、_data(0x30+qian);write_data(H);write_data(Z);write_com(0x80+0x40+add);write_data(f);write_data(=);write_data(0x30+sh);write_data(0x30+ge);write_data(H);write_data(Z);void sfm3(uint add,uint date) sh=date/100; ge=(date%100)/10; xiao=date%10 ;write_com(0x80+0x40+add);write_data(f);write_data(=);write_

27、data(0x30+sh);write_data(0x30+ge);write_data(0x30+xiao); write_data(H);write_data(Z); void sfm4(uint add,uint date) if ( date%10)=5 )&(date%100)/10=9) sh=(date/100)+1; ge=0; xiao=0; if ( date%10)=5 )&(date%100)/10=5) sh=1;ge=0;xiao=0;qian=0; write_com(0x80+0x40+add);write_data(f);write_data(=);write

28、_data(0x30+sh);write_data(0x30+ge);write_data(0x30+xiao);write_data(0x30+qian); write_data(H);write_data(Z);write_com(0x80+0x40+add);write_data(f);write_data(=);write_data(0x30+sh);write_data(0x30+ge);write_data(0x30+xiao); write_data(H);write_data(Z); void sfm5(uint add,uint date) if ( date%10)=5)&(date%100)/10=9)&(date%1000)/100=5)&(date%1000)/100=9)&(date%100)/10 =

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1