基于单片机的正弦信号发生器_第1页
基于单片机的正弦信号发生器_第2页
基于单片机的正弦信号发生器_第3页
基于单片机的正弦信号发生器_第4页
基于单片机的正弦信号发生器_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

题目:基于单片机的正弦信号发生器【摘要】本设计以AT89C51系列单片机为载体,通过硬件电路与软件编程的结合,构成频率可调的信号发生器。以单片机为基础而开发的信号发生器可以用作信号源,能够产生正弦波、三角波,方波等多种波形,并且可以对输出波形的幅度和频率进行设置,正是由于此类信号发生器能够产生多种波形的信号,因此在电路实验的学习过程中和系统设备检测过程有大量应用,在生产生活和科技科学领域中函数信号发生器有着广泛的应用。本文主要介绍基于单片机的正弦信号发生器的设计过程以及所用电器元件的工作原理,通过硬件电路设计,软件程序设计在单片机的基础上,结合频率、相位可编程器件AD9833,LCD1602液晶显示和数字电路构成信号发生器,实现频率可调的正弦信号发生器。该信号发生器在完成正弦信号的产生条件基础下,通过软件编程实现对三角波以及方波的输出。【关键词】单片机;正弦信号发生器;LCD1602,;AD9833ABSTRACT:目录TOC\o"1-3"\h\uABSTRACT 错误!未定义书签。1绪论···························································11.1研究目的及意义···········································11.2课题研究背景````````````````````````````````````````````21.3选题的研究现状············································22方案论证 32.1单片机选择与论证 42.2频率合成模块选择与论证 52.3显示模块选择与论证 62.4电源模块的选择与论证 73硬件电路设计 73.1硬件设计总体框图 83.2系统原理框图简介 83.3单片机最小系统设计 83.3.1单片机主控电路 123.3.2单片机最小系统组成 133.4复位电路设计 103.5频率合成输出设计 113.5.1AD9833芯片简介 162.5.2正弦信号发生器的组成 163.5.3DDS原理及应用·······································163.6LCD液晶显示电路模块 错误!未定义书签。3.6.1LCD1602显示原理分析 错误!未定义书签。3.6.2液晶显示分类 183.6.3液晶显示各种图形的显示原理 ············163.7按键电路 203.8PCB制图·················································174软件设计 214.1软件设计总流程图 214.1.1主函数设计···················································184.1.2AD9833模块程序设计·······································194.1.3显示程序设计·········································204.2正弦波输出软件设计······································214.3波形频率设定 225、系统调试 266结语 26致谢 26参考文献·························································251绪论1.1研究目的及意义本次研究的课题为基于单片机的正弦信号发生器设计,本次研究课题的主要目的是运用大学期间所学的专业课程知识,即单片机原理,数字信号处理,数字电路,模拟电路等课程知识,结合电路实习研究内容与编程上机实习内容,以及考察信号发生器的基本功能,设计实现并且完成一个实际可操作功能电路设计的过程。通过对单片机的程序控制,借助一个具有特殊功能的信号发生电路器件,可以组成并产生有规律且幅度和频率可调的正弦波,无论在信息测量领域还是数据控制领域内,信号发生装置都有相当广泛的应用我们正处在高速发展的信息化时代,在当今科技的飞速发展下,电子科学领域得到了大力发展。当代社会,许多领域跟随电子科学技术的发展,不断带来新的变化,改变了人们固有的思维,我们生活中接触到的大多数电子设备的基础都是来源于单片机,而在电子领域中,随着单片机应用的不断深入,对传统的数据控制与数据检测带来不断地冲击,这必将导致现代电子领域发生翻天覆地的变化,同时也给人们的生活带来新的转变。具有种种优良特点的单片机,在我的生活中扮演至关重要的角色。具有抗干扰能力强,可靠性高的单片机应用开发出的器件,在仪器仪表控制和系统自动化中得到广泛运用,而作为信号源的信号发生器将在电子科学领域贡献更多的研究。1.2课题研究背景正是由于单片机的产生,为我们的生活带来了日新月异的变化,使现代电子科学领域研究实现了质的飞越,单片机的发展迅速,但发展历史并不长,从1974年第一代单片机发展至今才短短45年。从早期生产制造的工艺落后的单片微型计算机,发展到如今高性能单片机的兴起。早期单片机由于受到家用电器及仪器仪表领域的重视,迎来单片机研制的快速发展阶段,随后在1976-1978年,产生具有特定部件的低性能单片机,但是由于功能不够完善,存储容量小,适用的场合并不是很多,但在这个时段,发展出了早期单片机的基本格局,即基本型、强化型、简化型以及专用型单片机,1978-1983年,众多公司开始对单片机性能不断提升,加大了单片机程序和数据存储空间,推出了普遍带有串行接口的高性能单片机,相应的也在这个时间段推出了多级中断结构的单片机。1983年之后,单片机迎来并行发展阶段,一边发展16位及以上单片机,一边发展高8位单片机。随着电子科学领域的发展,不断完善结构的单片机应用的领域更加广泛,16位、32位单片机以及更高的64位单片机的应用领域会更多,而考虑到单片机的性价比,在一段时间内,8位单片机在我们的生活领域中占主导地位,而支持高级语言的16位单片机将会不断完善。随着相应单片机技术的发展给家用电子系统、多媒体技术以及网络系统技术带来飞速发展,单片机接口技术的不断拓展以及单片机内部结构的不断优化,为近代仪器仪表,工业测量测绘以及系统控制领域带来技术性革命。我们可以这样说,一个国家对单片机技术的重视程度,体现在对单片机的集成开发层次与应用拓展上,该水平也是衡量一个国家近代工业的发展标志之一,正是由于单片机技术广泛应用在人们家庭生活领域,多媒体社交领域以及工业测量领域,改变人们的生产生活方式。1.3选题的研究现状:区别于传统微型计算机,新一代单片机有着与之截然不同的物理结构,通用结构部分一般包括:CPU(数据运算控制),内部总线(三条总线负责信息的传输),存储器(独立分开的程序存储器和数据存储器),I/O接口和特殊功能部件(方便外部应用拓展)等物理结构,由于单片机独特的结构,使其具有以下特点:体积小(结构简单,组成方便)、集成度高(一块芯片具有多个部件)、面向控制(实时控制能力强)、功能强(能根据指令完成简单到复杂的控制任务)、抗干扰能力强(不受外界干扰,信息内部传输)、功耗低工作电压低、使用方便(接口可拓展性高,应用设计简单)、性价比高(价格便宜,能够实现的功能很多)。单片机的多功能拓展应用在各个领域有着广泛的运用,像我们生活中小孩的玩具,银行信用卡,或者是人工智能机器人,航空航天都有单片机的身影,无论从哪个领域,人们对数据的采集,监测和控制都离不开单片机。我们所处在信息高速流动的信息化时代,在日常生活中的基本通讯,以及在现代雷达或者电子对抗等系统中信号源有着广泛的运用,高性能的信号源也是是众多应用电子系统高速发展的关键因素之一,为了节省成本,很多现代电子信息化设备和通讯系统的功能都与其所使用的频率源的性能有关。随着各领域对应用频率和控制精度的要求不断提高,传统的晶振能够产生并输出的频率已不能满足人们的需求。因此,频率合成(FS,FrequencySynthesis)技术得以广泛的发展和运用。频率合成技术是通过对一个或多个高度稳定和精确的频率源进行逻辑运算得到所需的频率。实现频率合成(FS)的方法种类繁多,目前应用较多的频率合成技术主要有:锁相环合成(PLL,phaseLockedLoop成本低但响应慢)、直接数字合成(响应快)和DDS+PLL技术(高度专业化领域)。而本次课程设计采用的是直接数字频率合成,可以实现输出正弦波相位且频率、相位、幅度都可以实现程序控制,通过修改波形数据可以轻松实现输出其他类型波形的功能。总而言之,新一代的直接数字频率合成器构成的正弦信号发生器可以通过采用全数字的方式实现频率合成。并且以此开发出的信号源已广泛用于如信号接收机本振和通信系统,在调频通信系统中更为应用广泛。本次用的AD9833芯片就是利用直接数字频率合成技术,这项技术是近年来逐步发展起来的一种新型频率合成技术。相比于其他频率合成技术其主要优点是带宽很宽、精度高、转换效率高、易集成。利用DDS技术输出正弦波相位连续、频率可调,通过与计算机紧密结合,运用软件编程,形成可以输出数据单片机应用产品,现在已有利用直接频率合成技术的产品广泛应用于接收机本振、信号发生器、通信系统、雷达系统、跳频通信系统等领域。

正弦信号发生器主要用作实验研究中的信号源,是许多电子电路实验设计中必不可少的电子器件之一。目前在我们学习生活中常见的波形发生器大多是由硬件电路组合而成,常见波形分为为正弦波、锯齿波、方波、三角波这四种波形。用独立电子元件组成的波形发生器,很难达到较高的频率,这种信号源的工作情况不够稳定,使用具有集成芯片的信号发生器则可以改善这一缺点。既可以达到较高的频率,又能产生多种易于调试的波形。而单独利用集成芯片,成本方便也比较高。本文从方案论证,硬件电路设计,软件设计这几个方面介绍在设计电路时对电路硬件的选择、硬件电路,各电路器件原理及各部分功能的实现以及软件的编程设计等正弦信号发生器设计的过程,将结合单片机的基本原理及应用技术,基于KeilC和Proteus仿真,利用使用直接数字频率合成(DDS,DigitalDirectSynthesis)技术的器件AD9833芯片,实现具有产生正弦波功能的信号发生器。2课题论证2.1单片机芯片的选择与论证一、单片机芯片的选择:方案一:采用高性能、低功耗的STM32系列单片机方案二:采用可靠性高、低价格的STC89C51/52系列单片机方案论证:考虑到自带A/D或D/A的单片机,如增强型51单片机在频率上满足不了要求,而且我们未对STM32系列单片机进行系统学习,所以在单片机的选取中,选择比较熟悉的STC89C51/52单片机,采用方案二更为合理相比之下,传统单片机如AT89C51/52,8051等的所使用的指令代码与本次采用的STC89C52单片机指令代码完全兼容,且STC89C52单片机可支持两种时钟周期,即12位时钟或6位时钟和12位机器周期或6位机器周期。如下图所示,为所用芯片引脚图:图1-1STC89C52引脚图2.2频率合成器件的选择与论证DDS选择方案一:采用频率采样为8位的D/A转换芯片,DAC0832. 方案二:采用含集成DDS电路的AD9833.方案三:采用12位串行数据接口数模转换器的MAX531 方案论证:方案一:若选择双极性输出的DAC0832,虽符合题目的要求,但是DAC0832输出是电流,要对所产生的电流进行二次处理,一般是经过一个外接的运算放大器才能转换成电压,过程繁琐且DAC0832输出精度不高,误差大,输出的波形不够圆滑,与理想的正弦波相差很大,所以不选择方案一。方案二:AD9833是一款完全集成的DDS电路,输出的精度更高,同时也可以通过程序改进精度,只需要一个低精度电阻器,一个时钟和一些解耦电容器就能产生输出频率范围为0-12.5Mhz的正弦波,所以该芯片适合。方案三:MAX531内置2.048V基准电压,输出精度高,但价格太贵,14脚dip封装,串行数据输出,且频率达不到我们的要求,我们放弃方案三。图2-1AD9833引脚图2.3控制显示过程模块选择与论证方案一:采用动态显示驱动的数码管作为显示模块的电子器件方案二:采用1602液晶显示屏作为显示模块的电子器件方案论证:方案一:采用数码管至少要4位,则要占用12个I/O口,数码管显示时采用动态扫描功耗较低。缺点是显示信息量较少,不能显示符号。 方案二:使用LCD1602液晶显示屛时,我们可以发现其能够显示字符和数字,相对而言显示质量比较高,并且能够持续的发光,即在LCD1602收到信号时,可以一直保持恒定的发光状态,以及保持屏幕亮度和色彩。能够显示数字和字符的LCD1602与阴极射线管显示器(CRT)有所不同,不需要不间断的刷新光标,那样需要不断刷新新的亮点。因此,这款液晶显示器的画质高且不会闪烁。使用数字式接口的特殊设计可以与单片机的接口结合更加方便可靠。简单的电路设计使其体积更加小巧,以电极控制液晶分子状态使这款液晶显示器更轻,只需在液晶显示器的内部电极以及相应驱动上消耗使其功耗相对而言更低低。图2-24位数码管实物图图2-3LCD1602实物图基于我们之前对1602的学习,以及对信息量的需求,我们决定选取方案二。2.4、单片机电源模块的选择与论证方案一:采用DC电源模块方案二:独立制作线性电源电路方案论证:方案一中采用开关电源可以提高整个电流源的效率,体积也会相应的减小。方案二中自己制作线性电源,线性电源具有纹波电压低的特点。电路中一共要输出两路电源,分别是+15V,+5V我们可以用常用的线性稳压器7815、7805得到稳压的电压输出。独立制作的成本更高,电路更加复杂,占用空间资源更多。综合上述考虑,我们选择方案一图2-4DC电源插口原理图3硬件电路设计3.1硬件设计总体框图图3-1硬件设计总体框图3.2系统原理框图简介本次单片机的应用设计系统主要包括:复位电路设计,单片机最小系统,DDS模块设计,数码管显示,按键模块5个部分。系统采用DC电源插口供电,用户通过按键设定并选择所要输出的波形、频率、幅值,以及单片机控制DDS输出相关的波形,DDS输出的信号经过运算放大器放大信号幅值,然后输出,信号的控制通过液晶LCD1602显示。输出的波形可以通过示波器来显示。3.3单片机最小系统设计本系统主要采用40引脚的STC89C52单片机,它是一种价格便宜,性能强大的单片机,最高时钟频率80Mhz,拥有512字节RAM数据存储器,以及可达8K的FLASH程序存储器,这样的结构特点决定了该单片机运算高速的特性,对时钟信号输出的控制,外部时钟频率与内部时钟振荡增益减半的设置使STC89C52单片机抗干扰能力增强,三种工作方式使其具有低功耗的特点。所使用的程序语言完全与51单片机相兼容,具有两种可选择的时钟控制(6时钟或12时钟),3个16位定时器/计数器,由下降沿中断触发单片机电路或者用低电平触发电路。STC89C52单片机的工作模式共有以下三种:可以通过外部中断唤醒的掉电模式,较低功耗的空闲模式与正常工作模式,而掉电模式的特殊唤醒模式可以适用电池供电系统及便携设备正是由于该型号单片机这样的工作模式决定了其省电低功耗的性能3.3.1单片机的主要控制电路图3-2单片机最小系统3.3.2单片机最小系统组成单片机最小系统是指单片机能维持最基本工作的最简系统电路,而89C52单片机的想要完成基本功能的最小系统主要包括:一个电压稳定在3.3~5.5V的数字电源,晶振和复位模块,此外由于我们是从其中的内部存储器读取程序,所以单片机读取程序的时候,EA端须接高电平。为使单片机稳定工作,需要在电源端接一个瓷片电容。一个单片机需要一个必要的时钟电路,通过时钟电路产生可以控制单片机内部时钟频率的时钟信号,为使单片机执行指令,利用晶振产生的时钟信号,而产生越高的时钟频率时,单片机处理指令的时间缩短,指令执行速度更快。本次时钟电路设计主要用的是晶振和电容构成晶体振荡电路,以此产生单片机的时钟信号。单片机在程序运行时需要单片机系统的电路稳定,而复位电路部分是确保单片机中电路稳定可靠工作至关重要的一部分。复位电路首先是进行上电复位,复位电路旁边的10uF电容在上电瞬间给RST端一个瞬时的高电平信号,当这个电容上面的电量充满时高电平的信号将回落,即RST端的高电平信号保持的时间是由外部这个充电电容决定的。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序,此时会造成单片机在上电的瞬间出现不稳定的情况发生,所以,为了使单片机稳定的工作,完成相应初始操作,必须提供复位电路。3.4复位电路设计图3-3复位电路原理图复位电路工作流程为:复位上电,复位电路中的电容在上电瞬间反馈一个信号到复位端,电容开始充电,直到电容电量充满时,高电平的信号将回落。而这个电容的充电时间决定RST端的信号保持时间。而单片机每次启动时都需要进行复位初始化,单片机本身不具有复位的功能,但结合外部电路可以实现复位功能。复位引脚拉高,单片机进入复位状态,复位引脚拉低,单片机开始正常工作。使用单片机的复位功能,就像手机的开机重启一样,当我们手机死机时一般使用重启按键,而对于单片机来说也是,当单片机在使用时卡顿,或是程序加载不出来,就需要按下复位按键来使单片机重新执行程序。3.5频率合成输出设计此次研究的频率输出主要采用DDS控制电路芯片AD9833。AD9833是一款性能强大,应用广泛,低功耗的数字可编程器件,主要用于信号发生器,能够产生高精度正弦波、三角波、方波等波形,采用第三代频率合成技术高精度器件AD9833结合直接数字频率合成技术,与单片机以及数字电路等电子器件构成的信号源可以产生多种波形,本次设计主要讲述对正弦波的输出控制,不仅可以产生频率可控的正弦波,而且也可以控制输出正弦波的初始相位。通过软件编程可以实现输出频率和相位的调整。具有28位频率寄存器的单片机,当时钟源设置为25Mhz时,在软件编程后可以得到0.1Hz的时钟;而对于1Mhz的时钟源,单片机就可以得到时钟频率低至0.004Hz的时钟。时钟源越低,单片机得到的时钟频率也越低。AD9833有3组SPI接口串口线,其工作时钟频率最高能达到40MHz,并且AD9833的串口与DSP和微处理器兼容。具有低功耗的AD9833工作电压范围为2.3~5.5v,为了更好的减少损耗,通过休眠模式减少该部分的电流损耗。10引脚MSOP型AD9833体积小,集成化高,表面贴片封装,。图3-4AD9833与单片机的连接方式 3.5.1芯片简介由ADI公司生产的一款高精度可编程波形发生器件,能够产生多种波形输出。广泛应用于各种测量、数控和仪器仪表领域的AD9833型波形发生器。只需搭建好电路,便可以通过软件编程实现对输出频率及相位的控制,易于调节,拥有28位的频率寄存器的单片机,主频时钟频率越高,所得到的单片机时钟越高,反之亦然。3.5.2DDS信号发生器的组成AD9833是一块高度集成电路,其内部电路含相频调制器,数模转换器,调节器等部分组成,当设计产生正弦波时,可以选择参考一个外部时钟,在数字电路上加上电阻器和一个解耦电容,就可以产生12.5MHz。仅除了产生射频信号外,该电路还广泛应外于各种调制解调方案。采用DSP技术将这些方案运用在数字领域,能够把复杂的调制解调算法简化,并且具有高度的精确性。3.5.3DDS原理及应用AD9833的内部电路结构主要有以下几个部分:用于信息转化的SINROM、频率和相位调制器、用于频率计算的数控振荡器(NCO)、将电流与电压转换的数模转换器(DAC)、调节器件工作电压的调节器。AD9833其功能框图如图3-5所示:图3-5AD9833内部功能框图图3-6AD9833原理图AD9833含10个管脚,其中有电源供给产生标准电压的VDD,负责数字工作电压的CAP/2.5V,模拟接地AGND,数字接地的DGND引脚,对模拟信号的输出COPM及VOUT两个接口,对数字接口的控制时将会用到MLCK,SDATA,SLCK以及FSYNC接口。本次设计中VDD与DC电源接口相连,为AD9833模块供电,模拟地AGND接口与它应连接电容器(0.1uF和10uF),在AD9833使用数字时钟时,要注意输出频率是否准确,相位噪声是否合理,而这两点是由MCLK确定。而COMP接口是DAC偏差管脚,其具体功能为退耦偏差电压。对AD9833数据输入的时候,需要用到MCLK,FSYNC,SDATA和SCLK,以16位串行数据输入的SDATA,载入新数据时,FSYNC被拉低。当单片机收到时钟的时候,相位寄存器以步长增加,然后对控制字与寄存器的输出进行逻辑运算后输入查询表地址中。在正弦查询表中包含1个周期正弦波的所有幅度大小,每个地址对应正弦波中0-2π范围内的1个相位点。正弦查询表能够将地址相位信息映射成正弦波幅度的数字信息,驱动D/A转换器并输出模拟量,28位相位寄存器每当经过228/M个MCLK时钟后回到初始状态,相应地当正弦查询表经过一个循环回到初始位置时,这样就输出了一个正弦波。此时输出正弦波频率为:

fOUT=M(fMCLK/228)

其中,M是由外部编程给定的频率控制字,其范围为0≤M≤3.6LCD液晶显示电路模块图3-71602显示模块原理图作为显示器件的LCD1602,具有以下几个特点:3.6.1液晶显示原理是根据液晶的物理特性,液晶显示器通过电压对其显示区域进行控制,显示出图形。只要有电就可以显示,这样的液晶显示器具有轻薄、易集成并直接驱动、易于实现高清晰度显示的特点,目前已经被广泛应用在多媒体网路,影视摄像机、移动通讯等诸多领域。3.6.2液晶显示分类随着液晶显示的不断发展,通常液晶显示可按其显示方式分为段式、字符式、点阵式等。除了我们很少接触的黑白显示以为外,液晶显示器还有多灰度有彩色显示等。但是当我们根据驱动方式来区分液晶显示时,可以分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)和主动矩阵驱动(ActiveMatrix)三种。3.6.3液晶显示各种图形的显示原理使用液晶显示器显示线段:我们可以把液晶以点阵图形式拆分成M×N个显示单元,先假定一个有64行的LCD,每行共计128列,用8位的一个字节对应其中的8列,我们可以得出每行共有16字节,且共有128个点,则液晶显示屏上64×16个显示单元与显示数据存储器区域中1024字节一一对应。,字节表示的内容和显示屏上的位置的亮暗相对应。比如说,决定显示第一行的亮暗由程序存储器中的000H——00FH的16字节的内容决定,当(000H)=FFH时,在LCD屏幕的左上方会出现一条发光的短线,其长度为8个点;如果想要得到LCD右下方出现一条发亮短线时,就可以(3FFH)=FFH;在以下几种条件时,即当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,LCD显示的顶部会出现一条虚线线段,它是由各8条发光亮线和不明显的暗线组成。使用液晶显示器显示字符:相对而言使用液晶显示一个字符时比显示线段要更加复杂,由于一个字符由点阵组成,所以我们需要找到和显示屏幕上某几个位置对应的显示数据存储器区的8字节,设置字节的状态使其不同位为“1”,对于其它的字节设置为“0”,即当状态为“1”的时候显示点亮状态,当状态为“0”的时候显示为不亮。这样就组成一个字符。而对于个别控制器来说,其内部自带字符发生器,显示字符的过程就更为简便了,让控制器以文本方式工作,然后由LCD上显示行列号以及每行的列数,根据显示的数字找到在RAM中与其相对应的地址,设立一个光标,然后送出相应该字符的代码。使用液晶显示器显示汉字:用LCD液晶显示汉字一般是以图形的方式,用一般用字提取软件从微机中提取我们所需要显示的汉字点阵码,而每个汉字占用的存储空间为32B,可以分成两半,各占16B的存储空间,左边为1、3、5……,右边为2、4、6……然后跟字符显示同样的操作,根据在显示的行列号及每行的列数,然后可以找出我们需要显示出RAM中与之相对应的地址,设立光标,送出需要显示的汉字的每个字节,每当光标位置加1,就送下一个字节,然后换行按列,直到将汉字所需的32B字节全部显示,就可以在LCD上显示出一个完整的汉字。3.7按键电路图3-8按键开关控制部分组件原理图按键设计部分功能如下:由自锁开关控制电路中的DC电源接口处电源电压,为电路供电,由K1/K2开关控制输出的高/低电平来控制输出的正弦波频率的增减,幅度的增减,以及步长的增减控制,由K3开关控制选择正弦波的幅度、频率以及步进,由K4开关控制选择输出的波形,使信号发生器输出正弦波、三角波或方波。3.8PCB制图图3-9PCB制图图3-10PCB布线规则在PCB布线时,将数字线路和模拟线路分开走线。最大限度的减小相互之间的干扰。其实在我们对单片机的学习中,很少用考虑到电路中的电容效应,以及阻抗变化对实验电路的影响,所以根据一般PCB布线规则,焊接相应电路元件即可。4软件设计4.1软件设计总流程图4.1.1主函数设计:主程序设计中,包含三个文件,即51单片机模块,AD9833模块,LCD1602模块,主程序中,先设置时钟延时,定义无符号变量步进,频率,幅度,以及波形模型初始值,也就是LCD1602屏幕的显示初始值,在这里我们可以设置步进,初始步进为一,通过按键控制改变步进,是步进以10倍增加,可以设置增加到步进的最大值为1M以下,由于输出频率不能达到特别高的频率时,应注意步进的增减,对幅度进行设置时,即AmpData设置,可以使输出幅度控制在50之内,在函数的调用中要注意主程序中的所有函数可以调用,且能在其他功能模块中找到与之对应的函数调用,以及控制操作。在主程序中我们可以设计输出的正弦波频率的最大值,本次实验中设置的输出的频率最大值为5Mhz。本次设计具体功能说明:由四个按键控制LCD1602显示,K1、K2分半控制显示数字的增、减,由K3控制选择幅度、步进、频率,由K4控制选择输出波形为,正弦波、三角波或方波,本次主要设计产生正弦波,能够实现的幅度控制范围为1-50,能够实现的步进控制可以达到1-1M,以十位递增或递减,能够实现的正弦信号频率输出范围为0-5Mhz.4.1.2AD9833模块程序设计图4-2软件流程图在KeiluVision4上编写AD9833模块时,需要用到的函数名分别为具有时钟延时功能的AD9833_Delay函数,可以向SPI总线发送16个bit数据的AD9833_Write函数,可以改变输出信号幅度值的AD9833_AmpSet函数,向SPI总线发送16个bit数据的AD9833_WaveSeting。首先对端口进行定义,需要定义的端口有FSYNC,CLK,DAT以及CS端口,每个端口有两种电平,即高低电平。设置延时功能函数AD9833_Delay,延时为10ms。AD9833芯片有一个能与DSP接口兼容的标准串行接口,总共具有三根串行接口线,而这个串行接口也与SPI接口,QSOI接口和MICROWIRE相互兼容,为了与外部串行时钟来往,AD9833可以选择直接与一些微处理器连接,如STM32,当然在自身写数据和控制信息时也可以选择与其他接口相连,相连之后也可实现与外部串行时钟进行来往,而串行时钟频率允许能够到达最高频率为40MH。,在使用写操作的过程时既可以是连续的也可能不是连续的。其中FSYNC作为功能引脚也是AD9833的使能引脚,当它处于低电平时,才能有效工作。当有数据或者控制信息写入AD9833时,FSYNC在16位信息写进AD9833的过程中会一直保持低电平。此时FSYNC信号显示16位信息被写入AD9833。4.1.3显示程序设计图4-3显示模块软件流程图显示模块主要就是用LCD1602显示,该模块的软件设计具体可以分为以下几个部分:屏幕显示部分,数字显示部分,显示修改操作部分,LCD初始化部分,光标设置部分,清屏操作部分,数据或指令发送部分,接受指令返回信息部分。要想知道LCD1602的工作原理,需了解其工作的时序参数,对LCD的读写操作也有不同的状态。1602的基本操作时序为:读状态时,RS低电位,RW高电位,E高电位;写指令时RS低电位,RW低电位,D0~D7写入指令码,E高脉冲;读数据时,RS高电位,RW高电位,E高电位;写数据操作时,RS高电位,D0~D7写入数据,RW低电位,E高脉冲。需要注意的是,在控制器进行读写操作之前,需要进行读写检测,使STA7为零,也就是D7端为零。4.2正弦波输出软件设计当要把数据传输到AD9833时,此时FSYNC端口的电位需要被置于低电平。89C51通过ISP,把数据加载数据到设备上,所以每次当单片机需要传输时都只需要SCLK保持下降沿。也就是说,为了写入数据到AD9833,当传输完毕第一个16位数据之后,FSYNC端口始终要保持低电平,然后开始对下一个字节初始化的写操作。结束后,当单片机不需要传输数据时,端口FSYNC置高电平。在两次写操作的过程中,数据通路需要保持打开状态,也就是SCLK端口必须是高电平。89C51本来输出串行数据是以LSB在前的格式,但是AD9833首先接受的是控制信息MSB(当我们使用目标寄存器写时,首先4个MSB是控制信息,然后之后的4个是地址,直到8个LSB才是数据)。因此,89C51在传输例程的时必须考虑到这点,重新对输出的位序进行安排,让MSB提前输出4.3波形频率设定在对波形设定的过程中,我们需要调用

温馨提示

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

评论

0/150

提交评论