基于单片机的数字频率计的设计论文说明

上传人:s**** 文档编号:107253157 上传时间:2022-06-14 格式:DOC 页数:35 大小:1.19MB
收藏 版权申诉 举报 下载
基于单片机的数字频率计的设计论文说明_第1页
第1页 / 共35页
基于单片机的数字频率计的设计论文说明_第2页
第2页 / 共35页
基于单片机的数字频率计的设计论文说明_第3页
第3页 / 共35页
资源描述:

《基于单片机的数字频率计的设计论文说明》由会员分享,可在线阅读,更多相关《基于单片机的数字频率计的设计论文说明(35页珍藏版)》请在装配图网上搜索。

1、 . . . 毕业论文(设计)基于单片机的数字频率计的设计学生姓名:指导教师:合作指导教师:专业名称:所在学院: 海洋大学 2015年5月31 / 35目 录摘要IIAbstractIII第一章前言11.1 研究的目的和意义11.2 国外研究现状11.3 研究容和方法1第二章设计要求与论证32.1 单片机简介32.2 系统方案总体方案32.3 模块论证32.3 系统总体设计4第三章系统硬件设计63.1 系统整体硬件设计63.2 主控电路63.6 1602液晶显示屏简介93.3 三极管放大电路设计93.4 整形模块设计113.5 分频模块设计11第四章系统软件设计134.1 软件设计134.2

2、算法设计144.2 LCD显示模块15第五章系统的PROTUES仿真175.1 系统仿真与程序的联调175.3 系统具体仿真18第五章结论和建议22参考文献23致24附录25系统整体原理图25系统仿真图26元件清单27系统源程序28摘 要经济的快速发展带动了社会的进步,人类已经不满足简单的信号频率测量,希望在工作生活中,能够提高信号频率测量的准确和便捷性。而这准确度与人们的生活息息相关,在某些方面,甚至要求能够精确到小数点好几位。因此,设计一款精确度高,围广,生产成本简单的频率测量装置显得很重要。单片机就是在一块芯片上集成了一台规模功能强大的微小计算机,并且拥有高效的运算功能和存储功能,将它嵌

3、入各种应用系统中,输入一定的程序,就可以变成各种电子设备的核心。本设计频率计应用AT89C51系列单片机作为核心,由电平转换电路,分频电路,LCD1602数字显示器共同组成,具有操作简便,读取方便,物美价廉等优点。并且在生活中有着广泛应用,在新兴的电子产品市场,也有着大好前景。关键词: 信号,单片机,频率AbstractThe rapid development of economy led to the progress of society, mankind has not satisfied the simple measurement of the signal frequency,

4、in the hope of working life, can improve the signal frequency measurement accuracy and convenience. This accuracy is closely related with peoples lives, in some respects, even can be accurate to the decimal point several. Therefore, the design of a high precision, wide range, frequency measurement d

5、evice of simple production cost is very important.Microcontroller is integrated on a single chip micro computer scale and has powerful function, operation function and efficient storage function, it will be embedded in various application systems, input certain procedures, the core can be turned int

6、o all kinds of electronic devices.The application of AT89C51 frequency meter design series microcontroller as the core, by the level conversion circuit, frequency dividing circuit, LCD1602 digital display together, has the advantages of simple operation, easy to read, high quality and inexpensive et

7、c. And it has a wide application in life, in the emerging market of electronic products, also has a good prospect.Key words: Signal, microcontroller, frequency第一章 前 言1.1 研究的目的和意义经济的快速发展带动了社会的进步,人类已经不满足简单的信号频率测量,希望在工作生活中,能够提高信号频率测量的准确和便捷性。而这准确度与人们的生活息息相关,在某些方面,甚至要求能够精确到小数点好几位。因此,设计一款精确度高,围广,生产成本简单的频率

8、测量装置显得很重要。随着现在数字芯片的发展趋势,利用单片机,数字集成电路设计的测量仪器会有很大的作用。基于这种考虑,我的毕设就是以单片机为核心结合数字集成芯片来做的频率计。通过液晶1602来显示测试到的频率值,通过数字分频电路来扩大测量围。整个设计的电路结构比较简单,并且随着数字芯片的不断升级换代更新,成本会越来越低,并且精度也会越来越高,制作也越来越简单。单片机所使用的晶体振荡原理,通过等精度的方式测量的频率值使得精度比任何传统模拟方式都高,因此,有广泛的应用前景。1.2 国外研究现状在工业生产,测量等种种方面,频率是一个重要的测量数据,如何提高频率测量也成为了一个非常重要的事情。传统的频率

9、计多利用模拟的方式来设计构造,结构比较复杂,自身消耗和干扰都会很大,并且也不能自动的进行切换量程测量。随着科学技术的发展,第一,用户对于频率的测量提出了新的要求。第二,就是数字芯片和数字电路的大力发展,对传统频率计测量过程中存在的问题,能够进行解决和完善。所以,利用数字方法进行频率计设计和开发,是现在生产厂家需要考虑的问题。低档的产品需要操作方便,可靠性高,移动性好,中高档的产品,则需要高分辨率,高精度已经具有其他功能配合使用。1.3 研究容和方法频率计就是能够对待测信号的频率进行测量的仪器设备。测量频率最简单的工作原理,就是1个S周期里面的脉冲个数,就是频率值。也就是说周期为T,脉冲的个数是

10、N,那么计算频率公式就为f=N/T(如下图1.1所示)。图1.1 频率计的原理只要能够把待测信号的脉冲波进行精确的计数,同时计算系统计数所使用的时间,那么就可以通过上面的公式把频率求出来了。其关键的几个问题在于,信号的输入需要处理,要把信号处理成为系统能够识别的,比如5V供电的单片机只能识别幅值为5V的脉冲波,就需要设计相应的接口电路把信号在幅值进行处理。研究的方法:(1)首先掌握单片机软件的开发和使用方法;(2)了解和掌握数字频率计的测量原理;(3)掌握相应数字芯片的使用方法(4)用Protel来进行原理图的设计,proteus仿真来进行仿真电路图设计,Keil软件来实现软件的编程和调试;

11、第二章 设计要求与论证2.1 单片机简介单片机是一种新型的集成芯片,这种集成芯片可以通过编程的方式来控制它的管脚,达到了输入检测,输出控制的作用。从单片机诞生以来,就在各行各业中得到极大的应用。因为通过一块单片机和极少的外围元件,只要程序上的改动,就可以变化出很多控制方式。而且他的价格也是传统的模拟电路控制的几分之一,并且稳定性和可靠性大大提高。现如今,单片机在我国,已广泛的应用于工业控制,消费电子,家用电器上面。稳定性更好,功能更为强大的单片机系统,也已经使用在我国的现代化军事建设上。单片机的体积是比较小的,最小的封装只有指甲盖那么大,可以嵌入到系统中,从最开始一条条的顺序执行,发展到现在的

12、带有操作系统的单片机,如AVR,ARM等。一个电子项目或者系统就是指满足这个单片机的工作条件,以与控制需要的外部其他的硬件和单片机的程序。不同于电脑的嵌入式,单片机可以把计算机的逻辑运算放到很小的一个地方,可以节省大量的空间。电子技术的发展,极大的提高了人们的生活水平,传统的设备已经满足人们的生活需要了。而电子技术的核心单片机,它的变成简单,体积也小,所以研究者设计设备时利用单片机更加的容易操作。单片机的应用也是非常多的,在很多电子行业都能单片机的应用。在我国大力推广的北斗卫星上,也有着高级单片机的身影,最初的单片机是8位的单片机,也就是1次能够处理8位的二级制数据,然后陆续发展了位数乘以2的

13、单片机,和位数乘以4的高级单片机。消费电子中的手机就是以ARM为主的32位单片机。在工业控制领域,我国的STC公司,研制了价格更为低廉,功能更为强大的增强型51单片机,已经广泛的应用于我国的工业,仪器仪表,消费电子中。发挥着巨大的作用。为推进我国经济发展起到了一个核心生产力的推动性。2.2 系统方案总体方案本设计要求的频率计具有显示频率功能,分频作用,由于选取不同的单片机,显示模块,数字芯片会有不同的设计方法,因此,将要对选取的模块进行论证,以便得到最优解决方案。根据本设计的要求,所使用的元器件方案应该去考虑多种因素的权衡。比如系统成本,稳定性等等方面。还有应当结合自身情况,设计出完成预想要求

14、,并且设计方案应该尽量简洁。2.3 模块论证2.3.1单片机芯片的选择与论证方案一: 硬件核心选用8052片,8052是最早的51单片机,这个芯片由于技术程序,系统相当稳定,但是功能有限,最大的缺点是不能在线编程烧写程序,多次拔插对于引脚会造成很大损坏。方案二:采用AT89C51单片机,这块单片机兼容了传统的51单片机,也加入了新的功能。并且具有4k字节Flash,512字节RAM存储,32位I/O口线,看门狗定时器功能,价格也比较便宜,资料也比较多,这样能够大大提高效率。所以本次设计选择采用AT89C51单片机作为系统的主控。2.2.2显示系统的选择与论证方案一:用数码管作为显示系统,显示出

15、的数字清晰明确,操作过程也很方便,七个发光管子组成8字形便构成了LED数码管显示系统,另外还有一个管子用来显示小数点。在不同段加上电压之后就会发亮,不同的管变换发亮可以显示0到9数字,由于本设计要求显示时、分、秒、年、月、日、星期等,因此需要的数码管比较多,其显示能力显然不足,造成成本过高。方案二:采用液晶显示器1602,液晶显示的过程中可以不用单片机一直控制,只需要发送需要显示的数据,就可以不用再控制,而且它的显示比较方便,可以显示完整的要求数据,在硬件电路结构或显示程序都要简洁得多,能根据本设计的要求完成相关的设计需要,对后续的功能升级能够提供便利,并且LCD1602显示的容广泛,可以显示

16、各种字符,数字,必要时还可显示图形,实现字体的图形的滚动。因此,本设计选用液晶1602显示方案。2.2.3 放大电路的选型和论证方案一:采用的运放电路来构造放大电路放大待测信号,通过运放来构造放大电路,外围电路只需要配置一些电阻电容就能实现放大功能,设计方便,但是本设计需要测量很大频率的信号,假设最大为5Mhz,那么对运放的要求就比较高,能够达到这个要求的运放芯片比较昂贵,不适合本设计。方案二:采用三极管或者场效应管来构造放大电路,三极管构造的放大电路,资料成熟,所用的元器件比较便宜,且好购买,调试也比较方便,性能也可以通过调试,达到一个不错的水平。是作为一个低成本的放大电路的不二之选。综上考

17、虑,本设计中选用三极管为放大电路中使用。2.3 系统总体设计通过上述的论证,本设计采用单片机AT89C51作为主控核心来控制整个系统,设计了显示非常清晰直观的液晶1602显示电路,能够直接显示待测的频率信号。通过三极管构造的放大电路来对待测信号进行放大整形,通过分频电路来实现扩大量程。并且单片机部的控制程序,用用好阅读好编写的C语言程序来实现所有的功能。系统框图如2.1所示。图2.1系统结构框图第三章 系统硬件设计3.1 系统整体硬件设计3.1.1 基于单片机的数字频率计的原理AT89C51单片机部可以同时配置定时器和计数器。定时器的作用就是当预设的定时值到了就进入中断。计数器能够对每一个计数

18、器的关键的脉冲波计数。在本次设计中,系统同时配置定时器和计数器。系统配置由INTO输入被测的信号转换过来的脉冲波。每进入一个脉冲,计数器就加1,同时这个时候就开启了定时器,频率就是指1s中的脉冲个数,所以只需要用定时器做一个1s的定时,从系统第一个脉冲开始进行计数,然后等1s的定时器到了后,就进入到中断,这个时候读取的计数器的值,就是待测信号的频率。3.1.2 整体硬件设计整个设计的整体电路图如图3.1所示,图3.1 整体设计电路图3.2 主控电路3.2.1 AT89C51的引脚与功能本文所选用的单片机按功能可将其部结构分为8个部分:CPU核心,ROM存储,RAM存储,串行口,并行口,部中断和

19、定时计数器。本文力求设计简洁,所以选用的是它的DIP40这种大一点封装,这种封装能够直接插在电路板的IC插座,方便开发测试。AT89C51单片机有4组IO口,每一组IO口有8位数据可以输入输出。AT89C51的管脚具体介绍如下面:电源引脚:40管脚是VCC,和20管脚是GND。外接晶振管脚:19管脚是XTAL1,20管脚是XTAL2。控制引脚:复位管脚是19管脚,只要该引脚出现2个周期以上的高电平,单片机就会初始化。地址锁存管脚是30管脚。外部存储器选通是29管脚。程序存储外部选择是31管脚。可编程输入/输出引脚:AT89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,

20、每个口有8位(8根引脚),共32根。如图3.2所示为单片机最小系统的电路图。主要由电源电路、复位电路和晶振电路组成。图3.2 单片机最小系统3.1.1 复位电路设计AT89C51兼容了传统的51单片机,而51单片机运行需要进行有效的上电服务,是单片机部能够准确的知道什么时候可以进行初始化操作。这种能够让单片机知道什么时候初始化的电路叫做复位电路。其原理就是,当AT89C51的第9出现了2个时钟周期以上的高电平时,整个单片机芯片的部系统就进行初始化操作。如图3.3所示,就是一个标准的上电复位电路。系统一上电,电解电容进行充电,VCC通过电解电容使单片机的第九管脚有高电平,然后电解电容充电完成后,

21、通交阻直,复位管脚被拉低,一个复位过程就结束了,系统就会进入初始化。按键S1的作用,在上电后的任意时间里面,只要按下S1键,就能够把VCC通过按键传递给单片机的第9引脚。这样,单片机就可以在不断电的过程中复位。图3.3 复位电路3.1.2外部晶振时钟电路设计单片机运行除了要进行有效上电复位,还需要给单片机提供时序,来让单片机部的程序一步一步的进行执行。如图3.4所示,就是一个标准的晶振电路,2个旁路电容的作用下,晶振对2个单片机的关键进行波形产生,提供时序。图3.4 晶振电路的设计3.6 1602液晶显示屏简介显示部分可以直观地显示出整个系统的运行状态以与工作数据,是在系统中人机交互中非常重要

22、的一部分。单片机系统中常常使用不同的显示器来作为人机交互,在这里系统需要显示频率值。所以本文选用的为1602液晶显示器。LCD1602液晶显示器之所以被广泛的叫做1602,是因为它可以显示16列和2行,可以同时显示32个字符的液晶显示屏,有单独供电的背光电路,可以在夜晚很好的显示。液晶的灰度也能调制。方便显示。如图3.5是本设计的LCD液晶显示的驱动电路。液晶显示的控制端,RS,RW,E接到单片机的P2.0,P2.1,P2.2上,数据段接到单片机的PO口上,由于AT89C51单片机没有部上拉电阻,所以再处理输入输出信号的时候,需要加上拉电阻。图3.5 LCD液晶显示电路 3.3 三极管放大电路

23、设计单片机的IO口只能识别0和1的数字信号,当输入的待测信号不能达到单片机的IO口阀值,单片机就不能进行大小的判断,所以需要对输入信号进行放大处理,是之适合单片机电路,这里使用了利用三极管8050做的三极管放大电路来对待测的输入信号进行放大处理。电路图如图3.7所示。P2为输入波形接口,P3为输出与本电路共地点。图3.6 三极管放大电路其中电路中的R4和R5共同作用下给三极管的基极提供合适偏置。基极电压可以由公式3-1求得。 (3-1)由于8050三极管是PNP型的,所以基极B和发射极E之间的压降约为0.7V,因此发射极E的电压可以由公式3-2求得: (3-2)由于三极管中C极的电流约等于E极

24、的电流,如公式3-3所示。 (3-3)根据欧姆定律,E极上面的电流是发射极E的电压除以发射极上面的电阻R6,如公式3-4所示。 (3-4)根据上面的公式可以得知C极的电压公式,也就是三极管的直流静态工作点计算公式如3-5所示。 (3-5)因为本设计只是计算频率,所以只需要处理交流信号,因此设计的三极管放大电路的输入端需要采用的大电容进行交流耦合隔绝直流成分,三极管的放大倍数A可以由公式3-6所示。 (3-6)这个公式中RC4和RC5分别为C4和C5的交流等效阻抗。但是放大倍数最终会受限于8050的电流放大系数,所以最终的放大倍数最多数百倍,但是本系统只是需要把小信号放大到能让单片机识别的波形,

25、即使出现了上限截止也没有关系。不会对结果造成影响。3.4 整形模块设计输入的波形经过三极管放大电路放大后,能够达到数字电路采集的标准,但是频率计的输入波形可能是正弦波,也可能是方波,也可能是其他不规则的波形,存在着上升沿不够陡峭的现象,为了使单片机更准确的采集到信号,需要整形电路对待测的信号进行整形。这里使用了施密特触发器74HC14对三极管放大电路输出的信号进行整形。电路图如图3.7所示。图3.7 施密特触发器电路原理图如电路图所示前级三极管放大的输入信号从74HC14芯片的1号脚输入,74HC14芯片是一个含有6个施密特触发器的芯片,本设计考虑到充分的使用到这个芯片的功能,使用了其中三个触

26、发器。整形后的信号从芯片的6号脚输出。3.5 分频模块设计3.5.1 74HC390芯片介绍当待测的信号频率比较高的时候,单片机没法直接进行处理,这个频率点大约在200Khz,当频率低于200Khz单片机进行处理,完全没有问题,当高于这个频率,就需要分频电路来进行处理了,为了解决这个问题,本设计加入了一个100分频的计数器。当频率高于阀值频率的时候单片机就去计算待测信号经过分频后的信号,当频率低于阀值频率的时候就直接计算分频前的信号。通过这样分档处理,就能够达到扩大量程的作用。分频电路一般采用的是十进制计数器如74HC290、74HC390等来实现10分频计数单元的计数功能。在本次设计中选择使

27、用了74HC390。他有2个异步的计数器,每一个计数器上均有一个异步清零端,只要给高电平就能够进行清零。本设计需要设计的是100分频电路,因此这个74HC390芯片部的两个计数器都要被用上,分别都设置成10计数器。其中电路图如图3.8所示。图3.8 74HC390分频电路原理图第四章 系统软件设计4.1 软件设计4.1.1 程序代码选定本设计利用C语言程序的编写。C语言是专门用来编译程序而设计出的一种语言,它包含了很多高级语言的特点,并且可以将这些语言整理翻译,C 语言可以编写出程序进而对位、字节和地址信息进行各种操作。现在大部分软件开发都使用C语言来编写程序。用C语言编写出的程序本身和机器硬

28、件无太大联系,基本上不做改动就可以在各个单片机间自由使用。由于是大部分单片机系统都可识别的语言,用其做开发可以很大程度上缩短开发时间,提高效率,更大程度上使每个程序都可读,便于程序的改进、扩充和移植。4.1.2 如何进行编程Keil 51是一款专门用于开发单片机部程序的专业编程软件,本文选择使用的是AT89C51,也是51系列的一种单片机,可以在开发的时候,直接选用AT89C51。然后keil可以支持汇编也可以支持C语言,本文选择使用的是效率高的c语言进行编写。而且Keil 51软件的界面也是常用的windows界面,操作起来比较顺手,上手简单,可以多人分层次的进行模块化编程,能够大大提高整个

29、系统编程的效率。整个单片机开发项目的单片机编程流程如下:1、首先需要使用keil来创建一个新的工程项目,项目的名字就可以起成能够便于识别的文件名,然后选择芯片,通过不同公司点击选择这个公司生产的某一种单片机芯片。2、然后配置开发环境。比如说需要输出HEX文件。3、新建一个空文档,用 C 语言或者汇编语言创建源代码,如果是C语言,文件就要保存为.c文件,如果是汇编语言,文件就要保存为.ASM文件。4、然后在这个文件里面编写程序,如果有多个文件,都需要添加到工程里面,然后编译,如果软件显示有语法错误的提示,就需要根据错误提示找到源程序对应的位置进行修改源代码。5、当把所有的语法错误都修改好后,再次

30、进行编译。这里需要强调的是,Keil软件编程环境只能头显示语法错误,没有办法显示逻辑错误,当确定没有任何错误的时候,就开始进行后续的操作,生成 HEX 文件即可。4.1.3 软件设计的模块软件编程部分是整个单片机系统是否能够按照之前设计好的思路进行操作的必要之处。本设计的系统软件设计采用的是分模块化的设计思路,主要是由单片机主程序初始化、频率测量转换、液晶1602显示这三个基本的程序组成。初始化模块主要是对各变量进行初始化,变量初始化,定时器/计时器初始化。频率测量模块模块是利用单片机的计数器,定时器来进行操作,也是精度制约的一个地方。通过软件编程计算单位里面的脉冲个数。LCD1602显示模块

31、有,液晶的初始化,液晶的写命令,液晶的写数据,液晶的测忙。液晶初始化主要是初始化液晶1602显示的模式,光标的设置等基本设置,就好比电视机的系统设置一样。写命令主要是用来命令1602在什么地址干什么事,然后液晶写数据就是指具体再什么地方上面写的是什么数据。测忙程序就是指液晶的速度没有单片机快,再对液晶进行操作的过程中,需要判断液晶是否是忙碌的状态。 4.2 算法设计频率计测量的算法主要是通过单片机配置好定时器和计数器,定时周期里面去判断计的脉冲个数,这样就是频率值了。如果待测的频率高的话,单片机就判断不准确,本系统按照200khz的阀值来进行判断,如果测量是200khz以下,就直接测量待测信号

32、。如果是200Khz以上,那么单片机就去测量经过分频电路分频100次的值,最后只需要软件乘以相应的系数就可以显示出正确的频率值。主程序对频率算法进行测量的时候,首先需要配置正确定时器和计数器,设置计时器的工作方式,设置为只有当INT0和TR0同时为1才会启动计时。这样就可以等待待测信号的第一个触发来进行计时和计数。主程序流程图如图4.1所示。图4.1 主程序流程图4.2 LCD显示模块液晶的显示程序,主要包裹显示初始化,液晶的初始化,液晶的写命令,液晶的写数据,液晶的测忙。在什么位置显示什么样的数据。LCD液晶显示系统流程图如图4.2所示。开始显示是否结束?预设数据显示在指定区域调整指针指向L

33、CD的下一行清显示RAM区置显示行初值,显示指针指向第一行N待显示数据送入缓冲区Y返回图4.2 LCD显示流程图第五章 系统的PROTUES仿真5.1 系统仿真与程序的联调经过大量的前期准备工作,和指导老师细心的指导,我最终对方案进行了确定与对原理过程的充分理解,从用软件画原理图开始,遇到什么问题,从仿真图到原理图,一步一步完善设计方案,特别是在原理图设计过程中仔细检查每条线路,确保电路的正确性。本设计选用的是Proteus这款软件。来进行的分布模拟,和最终的仿真的。利用这款Proteus仿真软件,我们可以仿真大部分的硬件原理,数字电路的逻辑,以与能够直观的看到电平变化。Proteus仿真软件

34、是一款专门用于验证单片机程序,模拟仿真单片机系统运行的,是由英国公司开发的,分析仿真的专业级别的软件。利用软件设计中KeilC编程软件把程序编译成“.hex”后,放到与仿真源文件同一个目录下,就可以在proteus仿真中将单片机和计算机连接起来“对话”。其具体的步骤如下:1.双击仿真图中间的单片机会出现如图5.1的界面。图5.1 加载hex界面2.点击Program File一栏的文件夹图标。找到跟仿真文件同一个文件夹里面的”.hex”后缀的文件,并点击打开按键。3点击仿真软件左下角的第一个按钮,如图5.2所示类似于播放按钮,便可开始运行仿真。图5.2 仿真开始控制界面5.3 系统具体仿真5.

35、3.1 仿真设计仿真的整体设计图如图5.3所示图5.3 仿真的整体设计图5.3.1 液晶显示仿真首先先进行液晶显示的仿真,看液晶1602是否能够正常的显示,然后观察频率超过阀值200Khz能不能够正常显示,能不能够自动切换量程。通过调节仿真中VSM Signal Generator这个仪表盘来改变产生的频率,如果图5.4所示,第一个旋钮是选择产生的频率,第二个旋钮是频率产生的倍数,2个相乘共同决定产生的虚拟频率,同样的原理,第三个和第四个旋钮共同决定输入多少幅值的波形,仪表右上角的WAVEFORM按钮能够切换不同的频率。图5.4频率产生界面分别测试200khz以下和以上的2次仿真图来验证能否自

36、动切换量程,如图5.5,和图5.6所示。图5.5 仿真开始控制界面图5.6 液晶量程自动切换仿真5.3.2 正弦波频率检测仿真通过调节仿真中VSM Signal Generator WAVEFORM按钮能够切换不同的选择正弦波,通过调整仪表盘来改变产生的频率频率输入2600Hz。如图5.7所示。然后进行仿真,看系统是否能检测出来。图5.7 正弦波参数设置5.3.3 方波频率检测仿真通过调节仿真中VSM Signal Generator WAVEFORM按钮能够切换不同的选择方波,通过调整仪表盘来改变产生的频率频率输入2600Hz。如图5.8所示。然后进行仿真,看系统是否能检测出来。图5.8 方

37、波参数设置5.3.4 总体仿真测试通过调节仿真中VSM Signal Generator WAVEFORM按钮能够切换不同的波形模式,通过调整仪表盘来改变产生的频率频率输入不同的频率参数,幅度参数。来综合测试整个仿真。综合测试如图5.9所示。图5.9 综合测试仿真图第五章 结论和建议本文是利用单片机AT89C51芯片设计了一种精度高,测量量程广的数字频率计。完成的主要工作如下:首先研究了本设计的背景,意义等,然后是测量频率的基本原理,然后基于单片机芯片已经其他外围芯片进行了电路的总结构设计,然后进行仿真验证功能。本次设计主要涉与如何实现数字频率计,通过设计硬件和软件两方面的容,来进行实现。在硬

38、件方面,通过指导老师的指导,以与自己的摸索,基本了解了一个电子产品的开发流程和所要做的工作。基本掌握了原理图的方法,通过绘制原理图,并分析这些元器件的功能,丰富了相当多的知识,并且学会了分如何去针对一个问题进行分析,并且进行解决问题的这样一个能力,也充分的加深了对所学理论知识的理解和运用。经过我长时间的设计与调试,本系统基本能实现预先设想要完成的频率计系统所有功能。但是由于本人能力有限,整个系统任然不足之处有:1.通过三极管来进行整形,会存在一定相位差,精度待进一步提高2.只有测频率功能,应当集成其他测脉宽等实用功能。参考文献1 郭天祥. 新概念51单片机C语言教程:入门、提高、开发、拓展全攻

39、略.子工业,2009.2 程国刚,跃琴,荔蒙.51单片机典型模块开发查询手册.:电子工业.20123 谭浩强C语言设计M:清华大学,2005.4 夏路易单片机原理与其应用M:电子工业,2010.5 龙汉,莫衍Proteus电子电路设计与仿真 M:电子工业,20126 亚钧. 基于单片机的数字频率计设计J. 电子技术,2012,05:14-16.7 章津楠,长胜,郭清成. 一种简单方法实现基于STC89C52RC单片机的频率计J. 电脑,2009,01:160-161.8 卢飞跃. 基于单片机的高精度频率计设计J. 电子测量技术,2006,05:96-97+150.9 赫建国,立新,党剑华. 基

40、于单片机的频率计设计J. 邮电学院学报,2003,03:31-34+72.10 付靖祺. 基于单片机的频率计设计J. 科技展望,2015,03:89-90.11 竹琴,白泽生. 一种基于单片机的数字频率计的实现J. 现代电子技术,2010,01:90-92+96.12 王凯,邢林海. 基于单片机的8位频率计的设计J. 电脑与电信,2008,05:65-67.13 许红换. 基于单片机的频率计设计J. 科技风,2013,16:116.14 思,朱思敏,宫波. 基于单片机的数字频率计的设计J. 可编程控制器与工厂自动化,2011,12:55-56+96.致 在论文即将完成之际,我要总结一下这次设计

41、对我的难点,在仿真模拟的时候,由于软件的不熟练造成许多错误,在实物演示的时候,各模块引脚之间没有完全弄清楚,也造成时间显示不出来等很多问题。幸得老师对我的耐心指导,让我克服了种种困难。在这里,我要感我的导师,老师,他帮助我克服了很多困难,用他强大的知识储备给我提供了很多帮助,让我少走了很多的弯路。论文现在终于圆满的完成了,而这里面包含了老师对我的很多教导。我不仅在徐晶老师那里学到了理论与实践的知识,更是被老师的优秀的品质和为人所打动。这次设计也让我学到很多研究的方法,这将对我以后的学习有很大帮助。同时我要感我的同学们,在我们一起奋斗的日子里面,我们共同成长,学到了很多东西,并且总是在我需要帮助

42、的时候给与我很大的支持。如果没有同学们对我的帮助,这篇论文将完成的很困难。在这里,我还想说,因为我的知识水平有限,如果毕业论文中有什么缺憾,希望大家予以指正,我一定耐心改正!附 录系统整体原理图系统仿真图元件清单名称数量AT89C51130PF电容212M晶振11000UF电容110K电位器110K排阻110K电阻110UF电容1DIP40插座1DIP14插座1DIP16插座1LCD16021USB座子18050三极管168欧姆1300欧姆11K电阻13K电阻174HC14174HC3901排针若干板子1铜柱4螺帽4轻触按键1系统源程序/*/连接框图: _/ | P1.0 |-RS/ | P1

43、.1 |-RW/ | P1.2 |-E/ | P0 |-DB/ | P3.4 |-19999hz的输入/ | P3.5 |-19999KHZ输入 (分频后)/*#include unsigned long int fre; unsigned char time;unsigned int count;unsigned int count1;/端口与函数说明-sbit LCD_RS=P10; /片选信号sbit LCD_RW=P11; /读写信号sbit LCD_E=P12; /使能信号#define LCD_DB P0/数据信号unsigned char character10=0; /在屏幕上

44、显示的字符串,存储频率的各个位的数值unsigned char character23=0;unsigned char character_1=fre= Hz; /没有频率输入的时候默认显示这个字符串unsigned char character_2=Cyc= msusns;/定义好周期需要显示的容方便后面显示unsigned char FLAG = 0;void LCD_init(void);/初始化函数void LCD_write_command(unsigned char command);/写指令函数void LCD_write_data(unsigned char dat);/写数据

45、函数void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat);/在某个屏幕位置上显示一个字符,X(0-15),y(1-2)void delay_n40us(unsigned int n);/延时函数void timer_init(); /中断初始化函数/*/延时函数,调用一次延时40us./*void delay_n40us(unsigned int n)unsigned int i;unsigned char j; for(i=n;i0;i-)for(j=0;j2;j+); /*/延时函数,调用一次延时1s./

46、*void delay_1s()unsigned int i,j;for(i = 0;i100;i+)for(j = 0;j1000;j+); /*/LCD初始化函数,调用对LCD进行初始化操作/*void LCD_init(void)LCD_write_command(0x38);/设置8位格式,2行,5x7LCD_write_command(0x38);/设置8位格式,2行,5x7LCD_write_command(0x38);/设置8位格式,2行,5x7切记要写三遍!LCD_write_command(0x0c);/整体显示,关光标,不闪烁LCD_write_command(0x06);

47、/设定输入方式,增量不移位LCD_write_command(0x01);/清除屏幕显示delay_n40us(100);/清屏延时 /*/LCD写命令函数,调用对LCD进行写入命令/*void LCD_write_command(unsigned char dat) LCD_DB=dat;/把DAt(命令)放置在LCD的数据接口方便写入LCD_RS=0;/指令LCD_RW=0;/写入LCD_E=1; /使能置高LCD_E=0; /使能置低delay_n40us(1);/写命令延时/*/LCD写命令函数,调用对LCD进行写入数据/*void LCD_write_data(unsigned ch

48、ar dat) /写数据函数LCD_DB=dat;/把DAt(数据)放置在LCD的数据接口方便写入LCD_RS=1; /数据LCD_RW=0; /写入LCD_E=1; /使能置高LCD_E=0; /使能置低delay_n40us(1); /写数据延时/*/LCD写入一个字符的函数,其中y代表第一行还是第二行,x代表的是在该行的哪个位置,dat为写入的字符/*void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat)/显示一个字符unsigned char address;if(y=1) address=0x80+x

49、; /显示在第一排的时候的x的地址else address=0xc0+x; /显示在第二排的时候的x的地址LCD_write_command(address); /输入地址LCD_write_data(dat); /输入数据/*/LCD写入一个数字的函数,其中y代表第一行还是第二行,x代表的是在该行的哪个位置,dat为写入的数字/*void LCD_disp_num(unsigned char x,unsigned char y,unsigned char dat)/显示一个数字unsigned char address;if(y=1) address=0x80+x; /显示在第一排的时候的x

50、的地址else address=0xc0+x; /显示在第二排的时候的x的地址LCD_write_command(address); /输入地址LCD_write_data(dat+48); /输入数据/*/显示对应参数的一个函数,包括显示频率,显示周期/*void dis_num(void)unsigned char i=0,j=0,k=0;/定义3个变量方便后面调用LCD_write_command(0x01);/清除屏幕显示/由于频率是一串数字,需要把他每个位的数字分离出来才能一个个数字显示,以下几行是频率的值分离/出来,然后一位位存储在数组里面方便后面显示character0 = fr

51、e/10000000; character1 = fre/1000000%10;character2 = fre/100000%10;character3 = fre/10000%10;character4 = fre/1000%10;character5 = fre/100%10;character6 = fre/10%10;character7 = fre%10; character8 = H;character9 = z;/显示fre=,这4个字符,因此循环4次进行显示for(i = 0;i4;i+)LCD_disp_char(i+0,1,character_1i);/由于之前存储的频率

52、值,最高的几位有可能是0,因此先判断出哪位开始不为0再进行显示for(i = 0;i10;i+)if(characteri!=0)break;/从不是0的那位开始显示频率k = 10-i-2;for(j = 0;jk;j+)LCD_disp_num(4+j,1,characteri+);/在频率的值后面显示HZ这个单位进去for(i = 5;i1000000)character20=(1000000000/fre)%1000/100;character21=(1000000000/fre)%100/10;character22=(1000000000/fre)%10;for(i = 0;i4;i+) /显示cycLCD_disp_char(i,2,character_2i);for(i=4;i7;i+)LCD_disp_num(i,2,character2i-4);for(i = 7;i1000)character20=(1000000/fre)%1000/100;character21=(1000000/fre)%100/10;character22=(1000000/fre)%10;for(i = 0;i4;i+) /显示cycLCD_disp_char(i,2,character_2i);for(i=4;i7;i+)LCD_disp_num(i,2,character2

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!