能力拓展 频率计设计.doc_第1页
能力拓展 频率计设计.doc_第2页
能力拓展 频率计设计.doc_第3页
能力拓展 频率计设计.doc_第4页
能力拓展 频率计设计.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学能力拓展训练课程设计说明书摘要数字频率计的功能是测量某个周期信号在单位时间(1s)内变化次数的个数统计,这次设计测量范围在1100KHZ之间,并用数码管直接显示出来,供用户读取。数字频率计也是数字电路很多应用中比较典型的一个,在设计时可以采用很多种硬件电路来实现,但是这样连线比较复杂,所用器件多会造成很大的误差,在这里采用以AT89C51单片机为核心元器件,并配合数码显示管,晶振电路以及其他辅助电路来实现频率的显示。仿真和调试采用proteus和keil等软件来实现,这样可以很大的简化系统设计,提高整体的性能和可靠性。关键词:数字频率计,AT89C51,proteus,keil目录1 绪论12 设计任务要求13 方案论证23.1 频率计设计原理23.2 频率检测实现方法23.3 频率计测频原理34 系统设计阐释34.1 系统硬件设计44.1.1 分频电路44.1.2 单片机主控电路54.1.3 LCD显示电路54.1.4 声光报警电路64.2 系统软件设计74.2.1 软件思想74.2.2 流程图75 仿真86 小结及体会10参考文献11附录12频率计设计1 绪论频率计作为测量仪器的一种,常称为电子计数器,它的基本功能是测量信号的频率和周期频率计的应用范围很广,它不仅应用于一般的简单仪器测量,而且还广泛应用于教学、科研、高精度仪器测量、工业控制等其它领域。20世纪70年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,美国仙童(Fairchild)公司研制出世界上第一台单片微型机F8。此时单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,它还需配上外围的其他处理电路方才构成完整的计算系统。问世以来,单片机开始迅速发展,其功能不断增强和完善,应用领域也越来越广泛,现已成为微型计算机的重要分支。目前,单片机发展具体体现在CPU功能增强内部资源增多引脚的多功能化和低电压低功耗等方面。随着嵌入式系统式系统片上系统等概念的提出.普遍接受及应用,单片机的发展又进入了一个新的阶段,单片机的体积更小功能更齐全可靠性更高.由于起明显的优势,单片机在工业控制、数据采集、智能仪器仪表、家用电器、智能玩具、通信系统、机械加工等各个领域都获得了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机技术已成为现代电子技术应用领域十分重要的技术之一,是电子技术应用领域工程技术人员必备的知识和技能,它能够是我们设计的产品更具智能性和先进性。从80年代单片机引入我国至今,单片机已广泛地应用于电子设计中,使频率计智能化水平在广度和深度上产生了质的飞跃,数字化也成为了电子设计的必由之路。运用51系列单片机和高速计数器的组合设计频率计,并采用适当的算法取代传统电路,不仅能克服传统频率计结构复杂、稳定性差、精度不高的弊端,而且频率计性能也将大幅提高,可实现精度较高、等精度和宽范围频率计的要求。2 设计任务要求设计一个能测量方波信号的频率计,测量结果用十进制数显示,测量范围是1100KHZ,分成两个频段,即1999HZ,1100KHZ,用三位数码管显示测量频率,分别用某位发光二级管用LED 显示表示单位(亮绿灯表示HZ,亮红灯表示KHZ)。且具有超量度报警功能,在超出目前量程档的测量范围时,发出灯光和音响信号。3 方案论证3.1 频率计设计原理频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用两种办法,第一种方法是使用单片机自带的计数器对输入脉冲进行计数;第二种方法是单片机外部使用计数器对脉冲信号进行计数,计数值再由单片机读取。第一种方法的好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就可以实现。这种方法的缺陷是受限于单片机计数的晶振频率,输入的时钟频率通常是单片机晶振频率的几分之一甚至是几十分之一,在本次设计使用的AT89C52单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。第二种方法的好处是输入的时钟信号频率可以不受单片机晶振频率的限制,可以对相对较高频率进行测量,但缺点是成本比第一种方法高,设计出来的系统结构和程序也比较复杂。由于成本有限,本次设计中采用第一种方法,因此输入的时钟信号最高频率不得高于12MHz/24=500KHz。3.2 频率检测实现方法(1) 计数法测频率使用计数方法实现频率测量时,外部的待测信号为单片机定时/计数器0的计数源,利用定时/计数器1定时实现计数闸门。频率计的工作过程为:定时/计数器0的计数寄存器清0,运行控制位TR置1,启动定时/计数器工作;同时运行定时/计数器1定时1s,定时/计数器0对外部的待测信号进行计数,定时/计数器1定时1s时间到TR清0,停止计数。从计数寄存器0读出测量数据,测量数据在完成数据处理后,由显示电路显示量结果。单片机外接晶振为12MHz,单片机指令周期为1s,当被测频率信号过高时单片机不能测量。(2) 定时法测频率使用定时方法实现频率测量时,外部的待测信号通过频率计的分频器二分频变成宽度等于待测信号周期的方波,该方波加至定时/计数器1的输入脚,及外部中断INT1口,由INT1口高电平和软件置位TR1,同时控制启动定时/计数器1对单片机的机器周期的计数,并检测方波高电平是否结束;当判定高电平结束时TR1清0,停止计数,然后从计数寄存器读出测量数据。这时读出的数据反映的是待测信号的周期,通过数据处理把周期值变换成频率值,由显示电路显示测量结果。3.3 频率计测频原理频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始测量,计数闸门结束时TR清0,停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。当上述测量判断过程直到计数闸门宽度达到1s时测量结果仍不具有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码转换模块把用浮点数格式表达的信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。完成显示后,频率计都开始下一次信号的频率测量。4 系统设计阐释本频率计的结构主要包括分频电路、单片机控制电路、LCD显示电路以及声光报警电路组成。设计主要采用AT89C51、74LS90和LCD数码管来实现,软件编程主要是采用C51语言来编程。其系统结构如下图所示:分频电路单片机声光报警LCD显示图1 系统结构图4.1 系统硬件设计4.1.1 分频电路由于单片机的计数个数是有限的,最大可以计到65536,而在实际工程测量中所测得频率很大,甚至能达到上百千赫兹,远远超出单片机所测量范围,采用分频电路,可以将待测信号成倍的缩放,然后进行测量。分频器电路采用计数器构成分频电路。74LS90计数器是一种中规模二进制五进制计数器。在本设计中需要用设计一个千分频电路。千分频电路如下图2所示:图2 分频电路图如图所示,将5分频的输出端Q0接二进制计数器的脉冲输入端CKB即可构成十分频工作方式,将3片74LS90级联即可获得千分频的效果。4.1.2 单片机主控电路 单片机主控电路如图3所示:图3 单片机主控电路4.1.3 LCD显示电路 4位7段数码管用于显示测得频率的数值,D1绿色LED亮时说明此时频率的单位为Hz,D2红色LED亮时说明此时频率的单位为KHz。LCD显示电路如图4所示:图4 LCD显示电路4.1.4 声光报警电路 当所测频率超过100KHz的范围时,D3蓝色LED亮发出光报警,蜂鸣器发出声报警。 声光报警电路如图5所示:图5 声光报警电路4.2 系统软件设计4.2.1 软件思想数字频率计的系统软件设计采用模块化设计方法。整个系统由初始化模块、定时器中断服务模块、信号周期测量模块和LCD显示模块。初始化模块主要是对进行初始定时器、计数器的初始化。定时器中断服务模块是本次设计的重点。T2设置为定时器方式,T0、T1设置为计数器方式,当待测信号到来,用单片机外部两个终端INT0和INT1来开始对定时计数器T1和T2计数。本次设计单片机采用内部时钟方式,接12MHz的晶振,定时/计数器T2工作在定时状态下,最大定时时间为65.536ms,达不到1秒的定时,所以采用定时62.5ms,共定时16次,即可完成1秒的定时功能。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T0和T1工作在计数状态下,每定时1秒中到,就停止T0和T1的计数,而从T1的计数单元中读取计数的数值,然后进行数据处理。送到LCD显示出来。4.2.2 流程图 软件流程图如图6所示:初始化开定时器1秒到?计数量程选择变量清零频率显示NY图6 软件流程图5 仿真 当输入20Hz的方波信号时,D1绿色LED亮,4位7段数码管显示“20”,仿真截图如图7所示:图7 仿真截图1当输入20KHz的方波信号时,D2红色LED亮,4位7段数码管显示“20”,仿真截图如图8所示:图8 仿真截图2当输入200KHz的方波信号时,D3蓝色LED亮,蜂鸣器报警,4位7段数码管显示“200”,仿真截图如图9所示:图9 仿真截图36 小结及体会随着控制技术的发展和应用,单片机技术在生产生活中起到越来越重要的作用,已成为自动化专业的一门核心课程。而课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次能力拓展训练,我学到了很多。 刚拿到设计的题目时候感觉无从下手,经过几天在图书馆和网络上资料的查阅,综合各个方面的资料,才最终确定了方向;频率计的原理虽然不难,但是真正要自己动手进行设计,结合实际情况,又牵涉了不少以前没有所学习过的知识。这次的课程设计,不仅仅是让我知道了频率计的设计方法,更重要的是培养了我们用自己的专业知识解决问题的能力,进一步理解了理论必须运用于实际的重要性,加深对这门课程及专业知识的理解,对以后的工作学习生活都有很大的意义;同时这段时间的课程设计更加培养了我们的合作精神,要完成资料整合和设计,光靠个人的力量是达不到的。课程设计有辛苦也有欢乐,是大学学习生活的珍贵回忆。参考文献1 陈权昌.单片机原理及应用.广东:华南理工大学出版社,20072 黄智伟.凌阳单片机课程设计指导.北京:北京航空航天大学出版社,20063 李光飞.单片机课程设计实例指导.北京:北京航空航天大学出版社,20044 张毅坤.单片微型计算机原理及应用.陕西:西安电子科技大学出版社,1998 5 周佩玲.微机原理与接口技术(第二版).北京:电子工业出版社,2008附录程序清单及注释:#include unsigned long fre; unsigned char time;unsigned int count;unsigned int count1;unsigned temp;sbit seg_1 = P20;sbit seg_2 = P21; /第二个数码管的位选,选择显示的是第二个数码管 sbit seg_3 = P22; /第三个数码管的位选,选择显示的是第三个数码管 sbit seg_4 = P23; /第四个数码管的位选,选择显示的是第四个数码管 sbit LED_1 = P24; /低电平亮 sbit LED_2 = P25;sbit LED_3 = P26;sbit beep = P37;#define dat P0 /数码管的段选,选择数码管显示什么 unsigned char code seg_dat=/实测的数码管的显示,对应数字0f 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,; void timer_init(); /中断初始化函数 void delayms(unsigned int z); /延时函数,z为多少就延时多少毫秒 12M晶振下 void dis_num(unsigned int dis_num);/数码管显示数据, 传入参数为4位数的 void delayms(unsigned int z) /延时函数,z为多少就延时多少毫秒 12M晶振下 unsigned int x,y;for(x = z; x 0 ; x-)for(y = 110 ; y 0 ; y-);void dis_num(unsigned int dis_num) /数码管显示数据,传入参数为4位数的 unsigned char ge=0,shi=0,bai=0; /将该四位数的个十百千位分离出来 bai = dis_num/100;shi = dis_num/10%10;ge = dis_num%10; seg_2 = 1;seg_3 = 0;seg_4 = 0;dat = seg_datbai;delayms(5);dat = seg_dat16;seg_2 = 0;seg_3 = 1;seg_4 = 0;dat = seg_datshi;delayms(5);dat = seg_dat16;seg_2 = 0;seg_3 = 0;seg_4 = 1;dat = seg_datge;delayms(5);dat = seg_dat16;void main() seg_1 = 0;timer_init(); /定时/计数器初始化 while(1)dis_num(fre); /数码管显示 void timer_init(void) /定时/计数器初始化 TMOD=0x66; /计数器0工作工作方式2,自动重装初值 TH0=0; /计数器初值为0TL0=0;TR0=1; /计数器开始计数 ET0=1; /打开计数器0中断 TH1=0; /计数器初值为0TL1=0;TR1=1; /计数器开始计数 ET1=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论