优秀毕业设计-单片机频率计论文-模拟仿真齐全内容摘要:

定时1s,定时/计数器0对外部的待测信号进行计数,定时/计数器1定时1s时间到TR清0,停止计数。 从计数寄存器0读出测量数据,测量数据在完成数据处理后,由显示电路显示量结果。 单片机外接晶振为12MHz,单片机指令周期为1μs,当被测频率信号过高时单片机不能测量。 2) 定时法测频率使用定时方法实现频率测量时,外部的待测信号通过频率计的分频器二分频变成宽度等于待测信号周期的方波,该方波加至定时/计数器1的输入脚,及外部中断INT1口,由INT1口高电平和软件置位TR1,同时控制启动定时/计数器1对单片机的机器周期的计数,并检测方波高电平是否结束;当判定高电平结束时TR1清0,停止计数,然后从计数寄存器读出测量数据。 这时读出的数据反映的是待测信号的周期,通过数据处理把周期值变换成频率值,由显示电路显示测量结果。 频率计测频原理频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。 首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。 计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始测量,计数闸门结束时TR清0,停止计数。 计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。 判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。 当上述测量判断过程直到计数闸门宽度达到1s(对应的频率测量范围为100~999Hz)时测量结果仍不具有3位有效数字,频率计则使用定时方法测量待测信号的周期。 定时/计数器的工作被设置为定时器方式,定时/计数器的计数寄存器清0,在判断待测信号的上跳沿到来后,运行控制位TR置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。 16位定时/计数器的最高计数值为65 535,当待测信号的频率较低时,定时/计数器将发生溢出。 产生溢出时,程序进入定时器中断服务程序,对溢出次数进行计数。 待测信号的周期由3个字节组成:定时/计数器溢出次数、定时/计数器的高8位和低8位。 信号的频率f与信号的周期T之间的关系为:f=1/T。 完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。 为提高运算精度,采用浮点数算术运算。 浮点数由3个字节组成:第1字节最高位为数符,其余7位为阶码;第2字节为尾数的高字节;第3字节为尾数的低字节。 待测信号周期的3个字节定点数通过截取高16位、设置数符和计算阶码转换为上述格式的浮点数。 然后浮点数算术运算对其进行处理,获得用浮点数格式表达的信号频率值。 再通过浮点数到ASCII码转换模块把用浮点数格式表达的信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。 完成显示后,频率计都开始下一次信号的频率测量。 设计思路及方法本频率计的结构主要包括时钟信号发生电路、分频电路、单片机控制电路和LCD显示电路组成。 频率计的主要核心部件是采用AT89S52来产生定时和记录脉冲变化次数,运用AT89S52来构成计数器,突破了大部分运用数字电路模板来构成计数器。 本设计主要采用AT89S52芯片和LCD数码管来实现,软件编程主要是采用C51语言来编程。 其系统结构如下图所示:信号处理单片机信号处理LCD驱动LCD显示图31 频率计系统结构图 频率计方案概述本频率计的设计以AT89S52单片机为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。 单片机AT89S52内部具有3个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。 在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用12 MHz时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。 在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。 外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的1/24(使用12MHz时钟时,最大计数速率为500 kHz)。 定时/计数器的工作由运行控制位TR控制,当TR置1,定时/计数器开始计数;当TR清0,停止计数。 本设计综合考虑了频率测量精度和测量反应时间的要求。 例如当要求频率测量结果为3位有效数字,这时如果待测信号的频率为1 Hz,则计数闸门宽度必须大于1000 s。 为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法:① 当待测信号的频率>100Hz时,定时/计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,计数闸门宽度>1s时,即可满足频率测量结果为3位有效数字;② 当待测信号的频率<100Hz时,定时/计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等于待测信号的周期。 这时用方波作计数闸门,当待测信号的频率=100Hz,周期为10ms,使用12MHz时钟时的最小计数值为10000,完全满足测量精度的要求。 频率计的量程自动切换使用计数方法实现频率测量时,外部的待测信号为单片机定时/计数器的计数源,利用软件延时程序实现计数闸门。 频率计的工作过程为:定时/计数器的计数寄存器清0,运行控制位TR置1,启动定时/计数器工作;运行软件延时程序,同时定时/计数器对外部的待测信号进行计数,延时结束时TR清0,停止计数。 从计数寄存器读出测量数据,测量数据在完成数据处理后,由显示电路显示测量结果。 使用定时方法实现频率测量时,外部的待测信号通过频率计的预处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/计数器的输入脚。 工作高电平是否加至定时/计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR置1,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR清0,停止计数,然后从计数寄存器读出测量数据。 这时读出的数据反映的是待测信号的周期,通过数据处理把周期值变换成频率值,由显示电路显示测量结果。 测量结果的显示格式采用科学计数法,即有效数字乘以10为底的幂。 这里设计的频率计用5位数码管显示测量结果:前3位为测量结果的有效数字;第4位为指数的符号;第5位为指数的值。 采用这种显示格式既保证了测量结果的显示精度,又保证了测量结果的显示范围(~)。 频率计测量量程自动转换的过程由频率计测量量程的高端开始。 由于只显示3位有效数字,测量量程的高端计数闸门不需要太宽,~,计数闸门宽度为10ms即可。 频率计开始工作时使用计数方法实现频率测量,并使计数闸门宽度为最窄,完成测量后判断测量结果是否具有3位有效数字,如果成立,将结果送去显示,完成测量工作;否则将计数闸门宽度扩大10倍,继续进行测量判断,直到计数闸门宽度达到1s,这时对应的进入单片机的待测信号频率范围为100~999Hz。 如果测量结果仍不具有3位有效数字,频率计则使用定时方法实现频率测量。 定时方法测量的是待测信号的周期,这种方法只设一种量程,测量结果通过浮点数运算模块将信号周期转换成对应的频率值,再将结果送去显示。 无论采用何种方式,只要完成一次测量,频率计自动开始下一个测量循环,因此该频率计具有连续测量的功能,同时实现量程的自动转换。 4 系统的硬件设计本频率计的硬件电路主要由时钟信号发生器、频率计控制电路和LCD显示电路组成。 频率计的主要核心部件是采用AT89S52的内部定时/计数器来产生定时和记录脉冲变化次数。 主要用到的元器件有晶振器件、电阻、74LS074LS774LS00、AT89S52单片机、LCD1602等。 其硬件系统框图如32所示:输入通道单片机系统被测信号同步接口控制电路输入通道图32 硬件系统框图 时钟信号发生器时钟信号发生器是频率计的频率信号产生电路,它是由一个晶振、两个电阻、一个电容及两个非门74LS04构成的工作于串联谐振状态的TTL门电路振荡器。 当电路频率为串联谐振频率时,晶体的等效电抗接近零(发生串联谐振),串联谐振频率信号最容易通过闭环回路,这个频率信号通过两级反相后形成反馈振荡,晶体同时也担任着选频作用,在工作于串联谐振状态的振荡电路,它的频率取决于晶体本身具有的频率参数。 也就是说,石英晶体多谐多谐振荡器的振荡频率取决于石英晶体的固有谐振频率,与外接电阻、电容无关。 图41为频率计的时钟信号发生电路的原理图:图41 时钟信号发生原理图 AT89S52 控制寄存器 AT89S52中断控制系统AT89S52的中断系统共有8个中断源,6个中断矢量,两级中断优先级,可有软件设定实现两级嵌套,可通过软件来屏蔽或响应个对应的中断请求。 1) AT89S52中断源AT89S52的中断系统有8个中断源,对应有6个中断矢量。 其外部中断有两种触发中断的方式,即低电平触发和跳转触发。 各种中断请求信号分别由定时/计数器控制寄存器TCON和串行通信控制寄存器SCON的相应位锁存,提供给主机查询和采样。 TCON控制寄存器是由定时计数器和中断请求两者合用,其格式如表41:表41 TCON控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H各位含义如下:TF1:定时/计数器1回0溢出中断请求标志位TR1:定时/计数器1启/停控制位TF0:定时/计数器0回0溢出中断请求标志位TR0:定时/计数器0启/停控制位IE1:外部中断(INT1)请求标志位IE0:外部中断(INT0)请求标志位IT1:用软件置位/复位IT1来选择外部中断INT1是跳变还是电平触发中断请求IT0:用软件置位/复位IT1来选择外部中断INT1是跳变还是电平触发中断请求2) 中断控制AT89S52的中断是可编程的,即可通过软件来实现对中断系统功能进行设置和控制。 AT89S52的中断均属可屏蔽中断,即通过软件对特殊功能寄存器IE的设置,实现对各中断源的中断请求开放或屏蔽的控制。 中断控制寄存器IE的格式及各位含义如表42所示:表42 中断控制寄存器IE的格式IEEAXET2ESET1EX1ET0EX0位地址AFHADHACHABHAAHA9HA8HEA():全部中断允许/禁止位。 X():保留位,无意义。 ET2():定时/计数器2回0溢出或捕获中断响应控制。 ES():串行通信接收/发送中断响应控制位。 ET1():定时/计数器1回0溢出或捕获中断响应控制。 EX1():外部中断INT1中断响应控制位。 ET0():定时/计数器0回0溢出或捕获中断响应控制。 EX0():外部中断INT0中断响应控制位。 从上可见AT89S52的中断响应为两级控制,EA为总的中断响应控制位,各对应的中断源还有中断响应控制位。 3) 中断优先级AT89S52的中断设有两级优先级,每个中断源均可通过软件对中断优先级寄存器IP的对应位进行设置,变成为高优先级或低优先级,置1为高优先级,清0为低优先级。 正在执行的低优先级中断服务程序可以被高优先级的中断请求所中断,但不能被同级或低优先级中断源中断请求所中断;正在执行的高优先级的中断服务程序不能被任何中断源中断请求所中断。 两个或两个以上的中断源同时请求中断时,主机只响应优先级高的中断请求。 为了实现上诉述规则,中断系统内部设有两个不可寻址的中断优先级状态触发器,其中一个用于指示正在服务于高优先级的中断,并阻止所有其他一切中断请求的响应,另外一个则用于指示正在服务于低高优先级的中断,除能被高优先级中断请求所终端外,阻止其他同级或低于它的中断请求所中断。 中断优先级控制器IP,其地址字节为B8H,具有位寻址功能,可通过软件设定各个中断源的中断优先级。 IP控制寄存器的格式如表43所示:表43 IP控制寄存器格式IPXXPT2PSPT1PX1PT0PX0位地址BDHBCHBBHBAHB9HB8H各位含义如下:X、X (、):保留位,无定意义。 PT2():定时/计数器2的中断优先级设置位。 PS():串行通信中断优先级设置位。 PT1():定时/计数器1的中断优先级设置位。 PX1():外部中断INT1中断优先级设置位PT0():定时/计数器0的中断优先级设置位。 PX0()::外部中断INT0中断优先级设置位复位后IP的内容为00H。 AT89S52定时/计数器的控制AT89S52片内集成了3个16位定时/计数器,定时/计数器0和1是通用的定时计数器,定时计数器2集定时、计数和捕获三种功能于一体,功能更强。 组成定时/计数器的核心是一个16位的加1计数器。 这个16位的计数器是两个8位的计数器(THx、TLx)组成。 提供给计数器实现加1计数的信号有两个来源:一个是由外部提供的计数脉冲通过引脚Tx端口送加1计数器;另一个则由单片机内部的时钟脉冲经12分频后送加1计数器。 因此,既可用于定时方式,又可用于对外部事件的计数方式,对于定时/计数器2还有“捕获”方式。 工作方式是通过软件对特殊功能寄存器TMOD和T2CON的设置来进行选择。 本次频率计的设计中只用到定时/计数器的定时和计数功能,应此只需用到定时计数器0、1。 AT89S52单片机为定时计数器设有特殊功能寄存器TMOD、TCON和T2CON,用于定义他们的工作方式及其控制功能的实现。 当每执行一条改变上述特殊功能寄存器内容的指令时,其改变内容将锁存于寄存器中,并在该指令的下一条指令的第一个机器的S1P1开始生效。 定时/计数器0和1的的操作模式和工作方式由控制寄存器来定义的,其格式如下:表44 定时/计数器工作方式寄存器GATEC/TM1M0GATEC/TM1M0TMOD寄存器内容分为两部分,低4位用于定时/计时器0,高4位。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。