单片机的方波频率检测和倍频系统论文33239

上传人:1666****666 文档编号:37433234 上传时间:2021-11-03 格式:DOC 页数:35 大小:3.58MB
收藏 版权申诉 举报 下载
单片机的方波频率检测和倍频系统论文33239_第1页
第1页 / 共35页
单片机的方波频率检测和倍频系统论文33239_第2页
第2页 / 共35页
单片机的方波频率检测和倍频系统论文33239_第3页
第3页 / 共35页
资源描述:

《单片机的方波频率检测和倍频系统论文33239》由会员分享,可在线阅读,更多相关《单片机的方波频率检测和倍频系统论文33239(35页珍藏版)》请在装配图网上搜索。

1、本科毕业设计(论文)基于单片机的方波频率检测和倍频系统设计Design Based on SCM Square Wave Frequency Detection and Times Frequency System 基于单片机的方波频率检测和倍频系统设计摘要:本文介绍了基于单片机的方波频率检测和倍频系统设计。该系统功能是检测由SP1642B型函数信号发生器作为方波发生源的方波,并检测出所输入的方波频率,然后由液晶显示器1602显示所检测到的方波频率,根据所检测到的频率作为原始频率,进行程序所设定的倍率的倍频,通过P1.2口输出倍频后的方波信号,最后用示波器显示其倍频后的方波波形以及方波频率。确

2、定了方波频率检测倍频系统的软硬件设计方案。硬件系统包括原始频率输入电路、单片机主电路部分、按键及显示人机交互部分、倍频输出电路。确立了以STC89C52单片机为核心的硬件系统设计。软件系统采用c语言编写。 经过硬软件系统实现后的实验测定,改系统检测倍频功能达到设计要求,输出数值误差1%。关键字:方波信号;频率检测;倍频;STC89C52;LCD1602;中图分类号:TP391Design Based on SCM Square Wave Frequency Detection and Times Frequency System Abstract: This article describes

3、 a design based on the square wave frequency detection of the microcontroller and multiplier system. The system function is the source detected by SP1642B function signal generator as a square wave square wave. And to detect the input square wave frequency , and then detected by the liquid crystal d

4、isplay 1602 shows the square wave frequency. Then detected by a liquid crystal display 1602 shows the square wave frequency, according to the detected frequency as the original frequency, Procedures set by the rate multiplier. P1.2 port output multiplier of the square wave signal. Finally , with an

5、oscilloscope to display the square wave frequency doubling and square-wave frequency. The square wave frequency detection multiplier system hardware and software design. The hardware system consists of the original frequency input circuit , the microcontroller main circuit part of the button and dis

6、play human-computer interaction part , the multiplier output circuit. Established as the core of STC89C52 microcontroller hardware system design. Using C language as programming language After determination of the experimental hardware and software system , change the system detects a multiplier fun

7、ction to meet the design requirements , the output of numerical error less than 1 % .Keywords: Square wave signal ; frequency detection; multiplier;STC89C52; ICL8038Classification: TP391目录1.绪论11.1本设计研究的问题和意义11.2国内外发展状况11.3本设计的设计要求和主要工作12 系统的整体方案设计22.1系统整体方案的设计22.2单片机的选型32.3方波频率检测及其倍频原理53 硬件系统设计63.1最

8、小系统设计63.2输入信号调理电路设计93.3键盘输入、输出显示及其接口电路设计104 软件系统设计124.1编程软件keil124.2程序编写思路,需要实现的功能与之所对应的子程序154.3软件设计165 系统测试及其结果分析165.1系统测试方案设计165.2系统测试及其结果分析18结论及其展望20致谢词21参考文献22附录A 电路原理图23附录B 实物图24附录C 程序代码25 1.绪论1.1本设计研究的问题和意义在芯片处理日益强大的今天,生产生活中各种芯片有着各自重要的作用,发挥着不可或缺的作用。单片机在各种科学领域有个不可替代的作用,它小巧,廉价同时作用巨大不可替代。单片机在信号发生

9、处理领域,也有个非常大的作用。在实际生产生活中,单片机不仅仅需要产生一定要求的波形,而且还需要对已知的信号进行检测和处理,来作为可以使用的量来运用到生产生活中来。而其中最为常用的一种应用就是信号的倍频和分频,用以增加和降低信号的频率。本设计就是研究关于对方波信号的检测问题和倍频问题,并以设定的方波进行定量输出。是利用单片机对已知频率的方波,利用单片机进行频率的测量,讲结果经过单片机处理后,得到所需要的评论,并通过单片机的I/O引脚输出。通过完成次设计,完成自己的毕业设计,更能让自己更加了解单片机的中断和定时器的使用,如何使用单片机完成信号的检测和输出以及掌握单片机中断和定时器资料在较为复杂的时

10、序情况下的程序编制。1.2国内外发展状况随着电子产品的广泛应用,单片机的应用领域相当广泛,如仪器仪表、家电、机电一体化、产品研发与开发等行业,都可以是单片机设计人员的就业、提升、创业之所。.目前单片机已渗透到我们生活的各个领域,几乎很难找到没有单片机足迹的领域。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说全自动控制领域的机器人、智能仪表、医疗器械了频率检测倍频在科技研究和实际应用中的作用日益重

11、要。传统的频率检测倍频通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。频率信号抗干扰性强、易于传输 ,可以获得较高的测量精度。同时 ,频率检测方法的优化也越来越受到重视.并采用单片机和相关硬软件实现。在基础理论和专业技术基础上,通过对数字频率检测的设计,用十进制数字来显示被测信号频率的测量装置。以精确迅速的特点测量信号频率,在本设计在实践理论上锻炼提高了自己的综合运用知识水平,为以后的开发及科研工作打下基础。1.3本设计的设计要求和主要工作本设计主要实现基于单片机的系统设计和样机制作,具有键盘和显示人机接口功能,配有直流电源,并考虑

12、抗干扰和低功耗设,设计要求检测误差1%。本设计的两方面的工作:一方面是如何安排单片机的定时中断资源,完成信号的检测、处理和输出,二是如何根据需要的频率,编写定时器的中断程序,满足输出方波和检测方波频率的时序要求完成倍频设计如图1。频率显示单片机输入方波信号方波输出图1 设计整体框架2 系统的整体方案设计2.1系统整体方案的设计单片机本身对信号的处理过程并不复杂,完成测控模块的关键在于使用合适的分配单片机的资源和合理地安排信号处理的时序。在单片机对方波信号进行检测部分中,我采用了使用单片机自带的计数器对输入脉冲进行计数的方法,好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器

13、,直接利用所给的单片机最小系统就可以实现。这种方法的缺陷是受限于单片机计数的晶振频率,输入的时钟频率通常是单片机晶振频率的几分之一甚至是几十分之一,在本次设计使用的STC98C52单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。根据频率检测的原理,很容易想到利用51单片机的T0、T1两个定时/计数器,一个用来定时,另一个用来计数,两者均应该工作在中断方式,一个中断用于1s时间的中断处理,一个中断用于对频率脉冲的计数溢出处理,对另一个计数单元加一,此方法可以弥补计数器最多只能

14、计数65536的不足。将计数中断弥补计数器最高计数65536的不足作为本设计的扩展。本设计采用STC89C52系列单片机进行信频。标准方波信号由单片机的14管脚进入单片机,定时器设置为定时器方式,工作方式为。输入方波信号的下降沿分别控制着计数的启停,每次计数所得到的值就是该方波信号的半周期宽度。然后把这个值除以,用减所得数作为定时器的初值,定时器也设置为定时器方式,工作方式为。当计数溢出中断时,在中断服务程序中使输出电平翻转,输出倍频的标准方波信号。2.2单片机的选型 在本设计中,我采用的是STC89C52,此单片机与我们学习的AT89C52,无论是功能硬件,引脚排列还是其他都是一样的,但是S

15、TC系列单片机支持USB口和用串口下载,这是ATMEL系列单片机所无法比拟的。我在设计之初时,买了ATMEL系列的单片机,等到需要烧写程序时,发现周围的同学手中的烧写器都不能给AT单片机烧写程序,这确实困扰我一段时间,我只能再去市场买了STC系列的单片机。 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4

16、KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。 和ATMEL的对比,STC89C52RC单片机: 8K字节程序存储空间; 512字节数据存储空间; 内带4K字节EEPROM存储空间; 可直接使用串口下载等等。图2单片机引脚图引脚说明:VC

17、C:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在

18、上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2口同

19、时接收高8位地址和一些控制信号。P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有多种特殊功能,具体如下表3所示:端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)图3 P3口引脚功能RST:复位输入。

20、当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。ALE/ :当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。程序存储允许时外部程序存储器的读选通信号。当stc89C52执行外部程序存储器的指令时,每个机器周期 两次有效,除了当访问外部数据存储器时, 将跳过两个信号。 /VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令, 必须同GND相连

21、接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时, 应该接到VCC端。XTAL1:振荡器反相放大器以及内部时钟电路的输入端。XTAL2:振荡器反相放大器的输出端。2.3方波频率检测及其倍频原理完成一个最基本操作(读或写)所需要的时问称为机器周期。52 单片机的机器周期是固定的,即一个机器周期由12 个时钟周期组成。采 用6MHz 的时钟频率时,一个机器周期就是2s ,采用12MHz 的时钟频率时, 一个机器周期就是1s 。 指令周期:指令周期是执行一条指令所需要的时间,一般由若干个机器周期 组成,指令不同,后需要的机器周期数也不同。对于一些简单的单字节指令

22、,分 指令周期可能和机器周期时间相同;而对于一些比较复杂的指令,如乘除运算则 需要多个机器周期才能完成,这时指令周期大于机器周期。通常,一个机器周期即可完成的指令称为单周期指令,两个机器周期才能 完成的指令称为双周期指令。STC单片机中的大多数指令都是单周期或双周 期指令,只有乘、除运算为四周期指令。 复位电路 大规模集成电路在上电时一般都需要进行一次复位操作,以便使芯片内的一 些部件处于一个确定的初始状态,复位是一种很重要的操作。器件本身一般不具 有自动上电复位能力,需要借助外部复位电路提供的复位信号才能进行复位操作所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔

23、T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率f。利用单片机的内部定时器作为定时时间周期,若其周期为1s,则输入的脉冲信号持续计数时间亦准确地等于1s,所计数的脉冲个数即为被测信号的频率。方波频率基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量频率的方法方波的频率进行自动的测量。根据频率检测的原理,我利用STC89C52两个定时/计数器,一个用来定时,另一个用来计数,两者均应该工作在中断方式,一个中断用于1s时间的中断处理,一个中断用于对频率脉冲的计数溢出处理,对另一个计数单元加一

24、,此方法可以弥补计数器最多只能计数65536的不足。将计数中断弥补计数器最高计数65536的不足作为本设计的扩展。倍频使输出信号频率等于输入信号频率整数倍的电路。输入频率为f1,则输出频率为f0nf1,系数n为任意正整数,称倍频次数。倍频技术用途广泛,如发射机采用倍频器后可使主振器振荡在较低频率,以提高频率稳定度;调频设备用倍频器来增大频率偏移;在相位键控通信机中,倍频器是载波恢复电路的一个重要组成单元。3 硬件系统设计3.1最小系统设计 所谓单片机最小系统就是指能让单片机工作的最少的器件构成的系统。最小系统虽然简单,但是却是大多数控制系统所必不可少的关键部分。对于STC89C52单片机,其内

25、部已经包含了一定数量的程序存储器和数据存储器,在外部只要增加时钟电路和复位电路即可构成单片机最小系统。时钟电路 单片机系统中的各个部分是在一个统一的时钟脉冲控制下有序地进行工作,时钟电路是单片机系统最基本、最重要的电路。 我的毕业设计其实就是一个最小系统,一片单片机和周围的一些电路就能让整个系统工作起来,方波信号的发生借助于函数信号发生器,输出信号的检测借助于示波器。 通过翻阅单片机的各种书籍和网上查阅各种资料,确定了我此次设计的硬件部分的电路设计。再通过与那老师沟通,加入了LCD液晶显示模块和按键的选择倍频模块,这样使得整个系统比较完整。图3 本设计的电路原理图3.1.1时钟电路设计单片机内

26、部有一个高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端,如果引脚XTAL1 和XTAL2 两端跨接上晶体振荡器(晶振)或陶瓷振荡器就构成了稳定的自激振荡电路,该振荡电路的输出可直接送入内部时序电路。STC单片机的时钟可由两种方式产生,即内部时钟方式和外部时钟方式。(1)内部时钟方式。内部时钟方式即是由单片机内部的高增益反相放大器和外部跨接的晶振、微调电容构成时钟电路产生时钟的方法。外接晶振(陶瓷振荡器)时,C1、C2 的值通常选择为30pF(40pF)左右;C1、C2 对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz 12MHz之间选择。为了减小寄生

27、电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl 和XTAL2 靠近。由于内部时钟方式外部电路接线简单,单片机应用系统中大多采用这种方式。内部时钟方式产生的时钟信号的频率就是晶振的固有频率,常用fsoc 来表示。如选择12MHz 晶振,则fsoc=12106Hz。(2)外部时钟方式。外部时钟方式即完全用单片机外部电路产生时钟的方 法,外部电路产生的时钟信号被直接接到单片机的XTAL1 引,此时XTAL2 开路。因为CPU 的工作周期是基于时钟信号的,是与时钟信号密不可分 的。 CPU 在执行指令时,都是按照一定顺序进行的,由于指令的字节数不同,取 指所需

28、时间也就不同,即使是字节数相同的指令,执行操作也会有很大差别,不同的指令的执行时间当然也不相同,即CPU 在执行各个指令时,所需要的节拍数 是不同的。在本设计中,在时钟电路部分设计中,我采用了12MHz的晶振作为时钟频率的起振器。在晶振后连接两个30Pf的电容在接入单片机的18、19管脚,来给单片机提供时钟频率。如图2所示。对于两个电容C1、C2的作用,主要是此电容对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz12MHz之间选择。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl 和XTAL2 靠近。由于内部时钟方式外部电路接线简

29、单,单片机应用系统中大多采用这种方式。图2.时钟电路部分设计 3.1.2复位电路设计在实际设计中,都必须考虑到在系统超出所能正常工作范围的情况下,如何能够让系统快速恢复到正常状态,这样可以提高系统的工作效率,同时也能减少非正常工作环境对于系统硬件的损耗,也能在一定程度上减少耗能。我这个毕业设计中采用了一般常用的复位方法:手动复位法。手动按钮复位需要人为在复位输入端RST上加入高电平如图3所示。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满

30、足复位时间要求。在实际测量过程中,当方波频率超过本设计能检测的范围,单片机就不能正确检测方波的频率,最直接的现象就是LCD停留在一开始超过检测范围的频率上,无论我怎么调节函数发生器的频率大小,LCD也不会改变数值。这时就需要我来手动复位了,所以设置这个电路还是有它的理由的,一般说来,单片机的电路设计都会有复位电路,区别就在于手动复位还是自动复位的问题了。图3就是在本设计中的复位电路。图3 复位电路设计3.1.3电源电路设计在本次设计中,需要电源的主要有单片机、LCD1602、函数信号发生器和示波器。由于函数信号发生器和示波器需要220v交流电,所以是单独供电,不需要设计中的电源供电。由于单片机

31、和LCD1602所需要的是5伏直流电,所以我用5伏交流-直流插头来作为整个设计的电源。3.2输入信号调理电路设计由于在设计中,系统依赖函数信号发生器产生的方波信号,P1.4口作为信号的输入口,单片机依据P1.4的原始方波信号来检测信号频率和倍频输出。单片机在检测到脉冲信号的下升沿的时候打开计数器T0, 并且在检测到下个下降沿降沿的时候关闭计数器T0,寄存器TH0、TL0内的值即为脉冲宽度,单位是1uS。检测电路在检测信号的周期和频率时, T1作为定时器,T0为计数器,测量信号的有效频率值。f=N(T0所计高电平次数)/t(T1定时时间);3.3键盘输入、输出显示及其接口电路设计 单片机完成输入

32、方波的频率检测后,得到表示方波周期的数值f,将该周期的波形二倍频、三倍频等,按照要求的频率处理后,通过T2控制频率,通过P1.2引脚信号输出。在P1.0 P1.1两个引脚上,我设置了两个按键电路,分别是二倍频和三倍频的电路,只要按下其中一个按键,就会控制程序完成所设定的倍频数。这本设计中,由于只有两个按键只能实现两种倍频,所以如果要实现其他倍频,就必须修改软件中的倍频部分子程序,这也还是比较方便的。在系统上电后,程序默认的是二倍频。在单片机检测单片机的倍频是,方波的下降沿触发单片机工作,T0计数T1定时,所测得的倍频通过LCD1602输出如图4。图4 LCD1602 。 LCD1602能够同时

33、显示16x02即32个字符。(16列2行) 1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形 1602采用标准的16脚接口如表1:编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O

34、6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极表4 1602型LCD的接口信号说明基本操作程序:读状态:输入:RS=L,RW=H,E=H输出:D0D7=状态字读数据:输入:RS=H,RW=H,E=H输出:无写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符

35、都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值同时它具有微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。所以我用LCS1602作为显示器替代了原来设计的四位数码管来显示频率。图5所示的是本次设计中按键显示部分电路。图5 按键显示电路设计4 软件系统设计 4.1编程软件keil软件编写是在KEIL环境下进行的,采用C语言编写图7 keil软件Keil C

36、51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 Keil C51单片机软件开发系统的整体结构,C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后

37、分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。图8 Keil 软件编译z4.2程序编写思路,需要实现的功能与之所对应的子程序 本次设计中的软件部分使用的c语言来编写的,c语言相较于汇编语言,更加的简洁,同时身边的同学也基本是使用c语言,所以这样的好处是有问题的话,可以很好的请教周围的同学,这样能达到

38、事半功倍的效果。 要实现设计中对于方波频率检测和倍频输出的功能,在软件设计中就要根据所需要实现的功能来对应编写相对应的子程序。 因为要使用LCD液晶显示,所以要写一段程序,让液晶初始化,同时编写液晶的显示程序,LCD通过对地址来赋值来达到显示的功能,相较于数码管比较简洁明了,省去了一大堆步骤。 在倍频中,有按键来控制倍频的具体倍数,所以也要编写相应的子程序来实现按键功能。在设计中,对方波的检测的算法,T0,T1的中断,是本设计的中心内容,设计功能全直接依赖于频率的算法和倍频算法。思路是:当方波的下降沿触发了单片机的T0计数T1定时,然后TL0/THO的值,即为方波的频率。系统频率检测工作流程如

39、图10 图10系统工作流程图4.3软件设计液晶显示流程:本系统采用的LCD1602实现数据的显示,输出稳定,控制简单。程序包括这几部分:1.定义存储输出数据的全局变量数组;2.初始化程序csh(); 3.写指令程序write_com(uchar com);4.写数据子程序write_data(uchar date);5显示子程序xianshi()。图14 液晶显示流程5 系统测试及其结果分析5.1系统测试方案设计 系统分为软硬件两大部分,对于硬件部分,我根据原理图,用数字万用表的蜂鸣档先对硬件的连接部分做了一个仔细的检测,主要是检测有无虚焊、漏焊、错焊。在检测中我发现了很多的虚焊,很多线路不能

40、正常短路,我再一个个挑出来,重新焊过。之后重新检查了一边线路没有了错误。后来在检测显示电路的电路连接中,发现LCD1602有几根引脚接错,然后我改正过来。 通过一系列的检查,我的硬件部分基本没有问题。同时也检查了我所买的元器件,都是没有问题。 经过严格的检查,我把硬件通上电,同时系统不加单片机,我测了个硬件部分的电压情况,经过测试,电压都是正常的,电源的正负极也没有接错。至此我的硬件部分算是真正完成了,没有任何问题,接下来要做的就是对于软件部分的调试了。 软件部分主要是一个编写过程中,错误的改正。一开始编写难免有各种的问题,有很多不太懂,我只能去找那老师,那老师给我分析了很多关于如何实现频率检

41、测的原理和倍频的算法。老师又提供了很多对我很有用的资料,让我在设计中能找到方向。 在软件设计中还要感谢别的同学对我的帮助,在编写中是他给我指出了很多错误,同时教我如何安排软件的时序运行。 在两个多礼拜的软件调试中,终于把软件给写出来了,后来烧写到单片机之后,系统终于可以检测到了方波的信号频率,同时示波器也检测到了方波信号和倍频如图7。图7 系统检测5.2系统测试及其结果分析基于单片机直接计数脉冲,受单片机晶振频率的影响,外围电路与外部中断口接触良好问题,外界环境干扰等因素,故本频率存在一定客观和主观上的误差。经实际多次测试频率,在检测方波频率显示最后数值,和真实值基本没有误差,非常精确。经过本

42、人测试,由于本设计显示的精度为1赫兹吗,所以LCD无法显示小数点后的数值,软件中设定了四舍五入,也就是实际误差在0.5赫兹左右,在1Hz到20K最大值的测量中,误差基本稳定在0.5Hz。在倍频中,由示波器实际检测出来的频率值在一定范围内非常准确,在10kHz一下,频率误差在1%以下。由于此设计收到本身设计的限制,精度远远打不倒工业生产的标准,尤其是受到倍频算法的影响,倍频误差大于方波检测的误差。但由于本设计成本低、产品可模块化设计、电源直接使用干电池、体积小、使用时可随时随地移动、使用起来特别的方便,所以在一般应用中还是有一点的使用价值和使用空间。表2倍率实际值1001502003004005

43、00600X2201.4302.1400.7605.3801.6996.41.190KX3303.0460.7605.3908.11.205K1.493K1.786K表2 倍频测量记录(单位Hz)表3倍率 实际值7008009001KX21.305K1.572K1.761K1.946KX32.066K2.347K2.618K2.912K表3 倍频测量记录(单位Hz)实际值100150200300400500600检测值100150200300400500600表4 方波频率测量(单位HZ)实际值7008009001K检测值7008009001K表5 方波频率测量(单位Hz)以上两个只记录的测试

44、的一部分数据,因为数据是无穷多的,所以只挑了一些有代表性的数值来作为记录值。从中可以看到,数据是有误差的,不过这也是无法避免的,况且本身的设计不是经过各种优化过的,所以产生误差也是在情理之中。结论及其展望从实验中可以看出,本设计可以检测方波0-20KHz之间的频率,检测的精度已经非常高了,唯一的缺点就是没法显示小数点后面的位数。当方波频率超过20KHz时,LCD就一直卡在一个数值不动,无论如何转动函数信号发生器,LCD都不会改变数值,只能通过按下复位按键,才能让系统重新工作。检测范围是受到了内部中断的影响。虽然此次设计电路部分还算简洁,但还是花费了我几个月的时间,主要是前期的设计方案的确定和软

45、件部分编程问题。虽然时间精力花费了许多,但最终还是能成功运行,实现了对于方波频率的检测和倍频,这样也达到了毕业设计对自己的能力的考核的目的。我的设计还有很多地方可以去完善,可以去细化电路,让系统变得更加精确,能力更加丰富。致谢词在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同学的大力支持和协助,在此一并表示衷心的感谢。大学四年即将结束,借此机会也对这四年来帮助、关心、鼓励过我的老师、同学说声谢谢。参考文献1 凌惟侯.国内外单片机发展与应用.自动化博览,1992,2:1-22 於丹. 春风化雨芽将萌谈我国单片机的发展.微电脑世界,2004-17:11-133 XU Bi-ron

46、g.Duffing system-based square wave frequency detection, Journal of Guilin University of Electronic Technology,2008.04 309-3134 深圳市群豪仪器仪表工具有限公司. SP1641B/SP1642B系列使用说明书.2008,1-85 陈红仙.Keil C51编程控制倍频正弦信号的产生.苏州大学学报(工科版)。J,2005,06:33-366 Michael Fisch. The frequency and the pulse width of the variable pul

47、se modulator. EDN China, 2003,07:87-887 邵华东 李扬 丁翔 施家骅.示波器带宽对方波信号测试影响的研究J. 仪器表用户:009,16 ,57-588 彭惠芹. 集成运算放大器构成方波信号发生器的电路分析.山西大同大学学报:自然科学版,2009. 6:31-329 周国雄。单片机典型模块设计实例导航M.人民邮电出版社,2004.3.301-30910赵志刚. DCS可程控方波信号发生器的设计与应用. 机电信息 2009,30 :8-9 11万福君 潘松锋 刘芳等 MCS-51单片机原理系统设计与应用 M.清华大学出版社,2009.9,54-19012何立民

48、.单片机与嵌入式系统应用M.北京航天大学出版社,2003.22-25 13周泽魁.控制仪表与计算机控制技术 M.北京工业出版社,2010.7,150-16514李华.MCS-51系列单片机实用接口技术 M.北京航空航天大学出版社,1993,137-16515陆蓓 龙之一 易幼庆.c语言程序设计M.科学出版社,2009.2,50-9416蒋廷彪.单片机原理及应用M.北京航天大学出版社,1999,122-125附录A 电路原理图附录B 实物图附录C 程序代码#include #defineuchar unsigned char #define uint unsigned int#define ul

49、ong unsigned long sbit lcdrs=P27; sbit lcdrw=P26; sbit lcden=P25; sbit s1=P10; sbit s2=P11;sbit out=P12; uchar couter1,n;ulong t=0,f=0,cf=0,num=0;uchar t1,t2;void delay(uint z)uint i,j;for(i=z;i0;i-)for(j=110;j0;j-);void write_com(uint com)lcdrs=0;lcdrw=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcd

50、en=0;void write_date(uint date)lcdrs=1;lcdrw=0;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void xianshi() uchar a,b,c,d,e,g;a=f/100000;b=f/10000%10;c=f/1000%10;d=f/100%10;e=f/10%10;g=f%10;write_com(0x80); write_date(0x30+a);write_date(0x30+b);write_date(0x30+c);write_date(0x30+d);write_date(0x

51、30+e);write_date(0x30+g);write_date( );write_date(H);write_date(z);write_com(0xC0+5); write_date(x);if(n=1)write_date(0x30+2); if(n=2)write_date(0x30+3); void csh()write_com(0x38); write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0xC0); write_date(M);write_date(o);write_date(d);write_date(e

52、);write_date(:);EA=1;PT2=1; EXEN2=0; ET1=1;ET0=1; ET2=1;TR0=1; TR1=1;TR2=1;TMOD=0x15;TH0=0x00;TL0=0x00;TH1=(65536-17012)/256;TL1=(65536-17012)%256;TH2=0x00;TL2=0x00;out=1;n=1; void anjian() if(s1=0)while(!s1); n=1;if(s2=0)while(!s2); n=2; void ce_f()cf=0;couter1=0;TH1=(65536-17012)/256;TL1=(65536-17012)%256;TL0=0x00;TH0=0x00;TR1=1;TR0=1;for(;couter116;) xianshi(); anjian();f=cf*65536; f+=TL0|(TH0=16) TR0=0;TR1=0; void CT2(void) interrupt 5 TF2=0; TH2=t1; TL2=t2;out=1; 30

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