毕业设计(论文)-多功能信号发生器的设计与实现.doc_第1页
毕业设计(论文)-多功能信号发生器的设计与实现.doc_第2页
毕业设计(论文)-多功能信号发生器的设计与实现.doc_第3页
毕业设计(论文)-多功能信号发生器的设计与实现.doc_第4页
毕业设计(论文)-多功能信号发生器的设计与实现.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

陕西理工学院毕业设计题 目 多功能信号发生器的设计与实现 学生姓名 学号 所在学院 物理与电信工程学院 专业班级 电子信息工程 指导教师 完成地点 物理与电信工程学院实验室 2016 年 6 月 2 日第 1 页 共 43 页多功能信号发生器的设计与实现(陕西理工学院 物理与电信工程学院 电子信息工程专业,2012级3班,陕西 汉中 723000)指导教师:摘要本文介绍的是利用STC12C5A60S2单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。文中简要介绍了DAC0832数模转换器的结构原理和使用方法,STC12C5A60S2的基础理论,以及与设计电路有关的各种芯片。着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。信号频率幅度也按要求可调。本设计核心任务是:以STC12C5A60S2为核心,结合D/A转换器和DAC0832等器件,用仿真软件设计硬件电路,用C语言编写驱动程序,以实现程序控制产生正弦波、三角波、方波、三种常用低频信号。可以通过键盘选择波形和输入任意频率值。关键词单片机; LCD1602;信号发生器;DAC0832I陕西理工学院毕业设计Design and implementation of multi function signal generatorAuthor: g(Grade 12,Class 03,Major in Electronics & Information engineering ,Physics & Telecommunications engineering Dept., Shaanxi University of Technology,Hanzhong 723000,Shaanxi)Tutor: Abstract: This article describes the STC12C5A60S2 microcontroller and digital to analog converter DAC0832 to produce the desired signal of the low frequency signal source, the signal amplitude and frequency can be controlled as required. The article briefly describes the structure of principles and use of the DAC0832 digital-to-analog converter, the STC12C5A60S2 basic theory and design of circuits a variety of chips. The paper focuses on how to use microcontroller to control the D / A converter to produce the hardware and software programming of the above signals. The signal frequency range is also adjustable as required.The core of the design tasks are: STC12C5A60S2 as the D / A converter and DAC0832 devices, circuit simulation software, design hardware drivers written in C, in order to achieve process control to produce sine wave, triangle wave, square wave, three commonly used low-frequency signals. Waveforms and enter any frequency value can be selected via the keyboard.Key Words:on STC12C5A60S2 function waveform generator DAC0832 square wave, triangle wave, sine wave,sawtooth wave目 录1 引言11.1 目的和意义11.2 研究概况及发展趋势11.3 本系统主要功能22. 总体方案论证与设计32.1主控模块的选型和论证32.2显示模块的选型和论证32.3信号产生模块的选型和论证32.4程控放大模块的选型和论证42.5负压产生模块的选型和论证42.6系统整体设计概述43.系统硬件电路设计53.1主控模块53.1.1 STC12C5A60S2单片机主要特性53.1.2 STC12C5A60S2单片机的中断系统73.1.3 单片机最小系统设计83.2 LCD液晶显示器简介83.2.1 液晶原理介绍83.2.2液晶模块简介93.2.3液晶显示部分与STC12C5A60S2的接口93.3键盘模块设计103.4信号产生模块设计103.4.1 直接数字合成技术介绍113.4.2 DAC0832芯片介绍123.4.3 DAC0832波形发生电路设计133.5程控放大模块的设计133.6 负压转换电路设计144.系统软件设计15III陕西理工学院毕业设计4.1系统软件总体设计154.2程序设计原理165.系统调试185.1硬件调试185.2软件调试18结论19致谢20参考文献21附录A22附录B23附录C24附录D40附录E45附录F48IV1 引言1.1 目的和意义信号发生器亦称波形发生器,主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,波形种类多为锯齿、正弦、方波、三角等波形。用分立元件组成的信号发生器,通常是单信号发生器且频率不高,其工作不很稳定,不易调试;用集成芯片的信号发生器,可达到较高的频率和产生多种波形信号,但电路较为复杂且不易调试。利用DA转换器配合单片机可以实现波形产生的功能,而且可以根据需要进行调整,设计灵活。随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展促使信号发生器种类增多性能提高尤其随着70年代微处理器的出现更促使信号发生器向着自动化智能化方向发展现在许多信号发生器带有微处理器因而具备了自校自检自动故障诊断和自动波形形成和修正等功能可以和控制计算机及其他测量仪器一起方便的构成自动测试系统当前信号发生器总的趋势是向着宽频率覆盖低功耗高频率精度多功能自动化和智能化方向发展1。在科学研究工程教育及生产实践中如工业过程控制教学实验机械振动试验动态分析材料试验生物医学等领域常常需要用到低频信号发生器而在我们日常生活中以及一些科学研究中锯齿波和正弦波矩形波信号是常用的基本测试信号譬如在示波器电视机等设备中为了使电子按照一定规律运动以利用荧光屏显示图像常用到锯齿波产生器作为时基电路信号发生器作为一种通用的电子仪器在生产科研测控通讯等领域都得到了广泛的应用但市面上能看到的仪器在频率精度带宽波形种类及程控方面都已不能满足许多方面实际应用的需求加之各类功能的半导体集成芯片的快速生产都使我们研制一种低功耗宽频带能产生多种波形并具有程控等低频的信号发生器成为可能2。信号发生器作为一种常见的电子仪器设备,既能够构成独立的信号源,也可以是高新能的网络分析仪,频谱仪以及自动测试装备的组成部分,函数信号发生器的关键技术是多种高性能仪器的基本组成部分,函数信号发生器的关键技术是多种高性能仪器的支撑技术,因为它是能够提高质量的精密信号源及扫描源,可使相应系统的检测过程大大简化,降低检测费用并且提高检测精度。1.2 研究概况及发展趋势信号发送器是指产生所需参数的电测试信号的仪器。因其应用广泛,种类繁多,特性各异,分类也不尽一致。按信号波形可分为正弦信号、函数信号、脉冲信号和随机信号发生器等四大类。信号波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而信号发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单的波形。90 年代末,出现几种真正高性能、高价格的信号发生器、但是HP公司推出了型号为 HP770S的信号模拟装置系统,它由 HP8770A任意波形数字化和 HP1776A波形发生软件组成。 HP8770A实际上也只能产生8 中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为 Data-2020的多波形合成器,Lecroy 公司生产的型号为9100 的任意波形发生器等。 到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过 GHz 的DDS 芯片,同时也推动了信号波形发生器的发展,2003 年,Agilent的产品 33220A能够产生 17 种波形,最高频率可达到 20M,2005 年的产品N6030A 能够产生高达 500MHz 的频率,采样的频率可达 1.25GHz。由上面的产品可以看出,信号波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的信号段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成 v=f (t)形式的波形方程的数学表达式产生。从而促进了信号波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic ,Visual C 等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。 (2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。 (3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。1.3 本系统主要功能本系统设计制作一个基于DAC0832的信号发生器。能实现以下几种功能:(1)用户可以通过按键设定频率、波形、幅度这些参数。(2)本系统输出幅度范围为0.1VPP5VPP。最小步进值为0.1VPP。(3)本系统输出方波、三角波、正弦波和锯齿波。最小步进值为1HZ。(4)系统所有的设置的参数都能在LCD1602上显示。(5)正弦波:1Hz10KHz;三角波:1Hz5KHz;方 波:1Hz10KHz;锯齿波:1Hz5KHz。第 21 页 共 53 页2. 总体方案论证与设计根据所要实现的功能划分,系统一共需要以下几个模块:主控模块、显示模块、信号产生模块、程控增益模块和负压产生模块,以下就针对这几个模块的选型和论证进行讨论。2.1主控模块的选型和论证方案一:采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发。方案二采用51系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的8位单片机,32个IO口,且STC系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。因此选用方案二中的51系列单片机作为主控芯片。2.2显示模块的选型和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示3。方案二:采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用单片机口线少。但是由于数码管动态扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往有很多障碍,所以不采用LED数码管作为显示。方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于本设计而言一个LCD1602的液晶屏即可,价格也还能接受,需要的借口线较多,但会给调试带来诸多方便。所以本设计中方案三中的LCD1602液显示屏作为显示模块。2.3信号产生模块的选型和论证方案一:利用R2R型DA转换器DAC0832进行产生信号,把要产生的信号根据其规则建立一个ROM表,单片机每隔一段时间根据ROM表的值去改变数模转换器的电压输出值,如果ROM表示根据正弦变化记录的表则输出的波形则为正弦波,如此类推,只用通过改变时间的间隔即可改变输出波形的频率。方案二:利用集成芯片DDS芯片AD9833进行产生信号,该芯片可以通过与单片机通信设定其输出波形和频率,而且设定的频率精度非常高。DDS芯片中主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码。方案一由于使用的独立的DA转换器,设计比较灵活,只要预先先把波形的ROM表生产好存储到单片机内即可输出,定频率的设定波形而选用DDS芯片则只需要通过固定的时序控制则能方便产生设。但是由于DDS成本较为高昂,因此本设计选用DA转换器来实现波形产生的功能。2.4程控放大模块的选型和论证方案一:选用DAC0832搭配外部电路构成程控放大器,由于DAC0832是一个8位DA转换器,因此能设置成256档放大倍数。通过单片机控制DA转换器的数字端口即可改变放大倍数。方案二:选用VCA810作为主芯片进行程控放大,VCA是一款高性能的压控放大器芯片,它有一个增益控制引脚,用户可以通过改变该脚的电压进行增益的控制,增益的控制范围为-40dB40dB,不过VCA810需要搭配外部的DA转换器才能实现程控放大的功能。由于DAC0832的价格较VCA810便宜,而且VCA810需要搭配外部DA转换器才能实现增益改变的功能,因此这里选用DAC0832进行程控放大。2.5负压产生模块的选型和论证由于DAC0832搭配运放后输出的电压为负电压,为了能正常输出,因此运放的电源需要正负电源供电,因为系统供电只有一个5V电源,为了得到一个-5V电源,这里使用了ICL7660负压产生芯片来实现。2.6系统整体设计概述本系统以单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示、波形产生、增益调节等功能的控制,起到总控和协调各模块之间工作的作用。 放大电路数/模转换电路 单 片 机显示电路波形输出复位电路键盘电路 图2.1系统结构框图3.系统硬件电路设计3.1主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘,波形控制等各种功能,同时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC12C5A60S2单片机作为系统的主控芯片5。51系列单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。因此市面上出现了各式各样的均以51 为内核的单片机。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51一致的6。STC12C5A60S2有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。STC12C5A60S2的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。STC12C5A60S2单片机的基本组成框图见图3-1。图3.1 STC12C5A60S2单片机结构图 3.1.1 STC12C5A60S2单片机主要特性1. 一个8 位的微处理器(CPU)。2. 片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。4. 四个8 位并行IO 接口P0P3,每个口既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器4。6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。7. 一个全双工UART(通用异步接收发送器)的串行IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。图3.2 STC12C5A60S2单片机管脚图部分引脚说明:1.时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。要检查振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。2.控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC 的1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。如果想确定8051/8031 芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031 基本上是好的。ALE 端的负载驱动能力为8 个LS 型TTL(低功耗甚高速TTL)负载。此引脚的第二功能PROG 在对片内带有4KB EPROM 的8751 编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM 的OE 端(见后面几章任何一个小系统硬件图)。PSEN 端有效,即允许读出EPROMROM 中的指令码。PSEN 端同样可驱动8 个LS 型TTL 负载。要检查一个8051/8031 小系统上电后CPU 能否正常到EPROMROM 中读取指令码,也可用示波器看PSEN 端有无脉冲输出。如有则说明基本上工作正常。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051 为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA 引脚接低电平(接地)时,CPU 只访问外部EPROM/ROM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM 的8031 或8032,需外扩EPROM,此时必须将EA 引脚接地。此引脚的第二功能是Vpp 是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V21V)的输入端。3.输入/输出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 脚):P0口是一个漏极开路的8 位准双向I/O口。作为漏极开路的输出端口,每位能驱动8 个LS 型TTL 负载。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU 访问片外存储器时,P0口分时提供低8 位地址和8 位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口(P1.0P1.7,18 脚):P1口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4 个LS 型TTL 负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口(P2.0P2.7,2128 脚):P2口是一个带内部上拉电阻的8 位准双向I/O口。P口每位能驱动4个LS 型TTL 负载。在访问片外EPROM/RAM 时,它输出高8 位地址。P3口(P3.0P3.7,1017 脚):P3口是一个带内部上拉电阻的8 位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O 端口有很大的区别,它的每个引脚都有第二功能,如下:P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0#)外部中断0输入。P3.3:(INT1#)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR#)外部数据存储器写选通。P3.7:(RD#)外部数据存储器读选通。3.1.2 STC12C5A60S2单片机的中断系统STC12C5A60S2系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。7在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。STC12C5A60S2单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。3.1.3 单片机最小系统设计图3.3 单片机最小系统电路图 图3.3为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复位电路组成,时钟电路选用了12MHZ的晶振提供时钟,作用为给单片机提供一个时间基准,其中执行一条基本指令需要的时间为一个机器周期,单片机的复位电路,按下复位按键之后可以使单片机进入刚上电的起始状态。图中10K排阻为P0口的上拉电阻,由于P0口跟其他IO结构不一样为漏极开路的结构,因此要加上拉电阻才能正常使用。3.2 LCD液晶显示器简介由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界面显示,可以实时的显示当前信号输出的频率、波形、占空比以及幅值,同时也方便用户设置相关的参数。 3.2.1 液晶原理介绍液晶显示器(LCD)英文全称为Liquid Crystal Display,它一种是采用了液晶控制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个162的字符型液晶显示模块3。 点阵图形式液晶由 M 行N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 168=128个点组成,屏上 6416 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由 68 或 88点阵组成,即要找到和屏上某几个位置对应的显示 RAM区的 8 个字节,并且要使每个字节的不同的位为1,其它的为0,为1的点亮,为0的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.2.2液晶模块简介LCD1602液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系, CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM,LCD1602液晶模块的引脚图如图3.4所示。图3.4 LCD1602引脚图液晶寄存器选择控制如表3.1。表3.1寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据3.2.3液晶显示部分与STC12C5A60S2的接口 如图3-5所示。用STC12C5A60S2的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD的EN、R/W、RS。其中EN是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为57点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据8。图3.5 LCD1602与STC12C5A60S2的接口3.3键盘模块设计本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的IO口状态就可以判断按下的是那个按键。4个按键分别代表以下功能,第一为功能按键,可以切换不同参数设置界面,第二个为切换按键,可以切换波形、频率和幅值等参数进行设置,第三个为增加按键,第四个为减少按键。键盘模块电路图如图3.6所示。图3.6键盘模块电路图3.4信号产生模块设计这里由于要产生方波、正弦波、锯齿波和三角波这几种波形,综合考虑选择了DAC0832作为主芯片,DAC0832是一款是国家半导体公司采用先进的DA转换器,单片机通过查询内部的预存的波形ROM表来实现波形产生。 3.4.1 直接数字合成技术介绍本设计就是基于直接数字合成技术原理设计的,直接数字合成技术是美国学者于1971年提出的,即以全数字技术,从相位概念出发直接合成所需波形的一中新的频率合成原理,称之为直接数字频率合成器(Direct Digital Synthesis)。这是频率合成技术的一次重大革命。它的基本原理就是利用采样原理,通过查表法产生波形。但是限于当时微电子技术和数字信号处理技术的限制,DDS并没有得到足够的重视,随着现代超大规模集成电路集成工艺的高速发展,使得数字频率合成技术得到了质的飞跃,它在相对带宽、频率转换时间、相位连续性、正交输出、高分辨率以及集成化等一系列性能指标方面,已远远超过了传统频率合成技术所能达到的水平。但是由于DDS数字化实现的固有特点,决定了其输出频谱杂散较大。从20世纪80年代末开始通过深入的研究认识了DDS杂散成因及其分布规律后,对DDS相位累加器进行了改进,ROM数据进行了压缩,使用了抖动注入技术以及对DDS工艺结构和系统结构进行了改进。DDS技术建立在采样在采样定理的基础上,它首先对需要产生的信号波形进行采样和量化,然后存入存储器作为待产生信号波形的数据表。输出信号波形时,电路在一个高稳定时钟控制下从数据表中依次读出信号波形的数据,产生过数字化的信号,这个信号再通过DAC转换成所需的模拟信号波形。具体原理框图如图3.7所示。它的核心是相位累加器,由N位加法器与N位相位寄存器构成,类似一个简单的计数器。加法器将频率控制字与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。将相位寄存器的输出与相位控制字相加得到的数据作为一个地址对正弦查询表进行寻址,查询表把输入的地址相位信息映射成正弦波幅度信号,通过D/A变换器把数字量变成模拟量,再经过低通滤波器平滑并滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。在参考频率为fs的情况下,DDS系统输出信号的频率fo为: (3-1)输出信号的频率分辨率fo为: (3-2) 图3.7 DDS技术的原理框图 相对于其他信号波形产生技术,DDS技术具有输出信号的采样频率固定、频率稳定性高、信号频率转换时间输出相位连续、全数字化、可编程和易于控制等优点。但还是有两点不足之处:(1)散分量丰富。这些杂散分量主要由相位舍位、幅度量化和DAC的非理想特性所引起,如图3-8所示。因为在实际的DDS电路中,为了达到足够小的频率分辨率,通常将相位累加器的位数取大。但受体积和成本的限制,即使采用先进的存储方法,ROM的容量都远小于此,因此在对ROM寻址时,只是用相位累加器的高位去寻址,这样不可避免地引起误差,即相位舍位误差。另外,一个幅值在理论上只能用一个无限长的二进制代码才能精确表示,由于ROM的存储能力,只采用了有限比特代码来表示这一幅值,这必然会引起幅度量化误差。另外,DAC的有限分辨率以及非线性也会引起误差。所以对杂散的分析和抑制,一直是国内外研究的特点,因为它从很大程度上决定了DDS的性能。图3.8 DDS掺杂模型(2)频带受限。由于DDS内部DAC和ROM的工作速度限制,使得DDS输出的最高频率有限。3.4.2 DAC0832芯片介绍DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。旨在直接与8080,8048,8085,Z80及其他通用的微型处理器进行相接。存储的硅铬R-2R电阻梯形网络将参考电流分开,并为电路提供合适的温度处理特性(全范围最大线性温度误差的0.05%)。电路利用CMOS电流开关和控制逻辑来取得最少的电能损耗和最小的输出泄露电流误差。特殊的电路也能提供TTL逻辑输入电压的水平兼容。双缓冲可以使这些D/A转换器在获取下一个数位字时输出相应一个数位字的电压。这就使得任何一个D/A转换器均可进行同步更新。D/A转换器0830系列是8位的可兼容微型处理器的D/A转换器的集合。 图3.9 典型应用连接3.4.3 DAC0832波形发生电路设计由于DAC0832是电流输出型DAC,因此需要用运放转换成电压,AMP1A输出电压V的范围为-VREF0V,由于运放供电为正负5V供电,并且运放不能输出电压范围到电源轨,因此基准电压只使用了2.5V电压。基准由TL431进行提供。为了使输出信号幅度范围以0V为中间值,使用了AMP1B搭建成一个加法器进行信号放大和偏置调整。输出电压Vout=V(-R4/R2)+VREF(-R4/R3)=-2V-VREF,因此输出的幅度范围为-VREFVREF,由于基准电压为2.5V,所以输出电压范围为-2.5V2.5V。图3.10 波形发生电路设计3.5程控放大模块的设计程控放大模块的结构跟波形发生部分相似,区别在于波形发生部分的基准电压是固定的,通过查ROM的数组来改变输出电压来描绘出波形,而程控放大模块的基准是接到波形发生电路的输出,因此输出VOUT=VREF*DATA/256 。其中DATA值通过改变单片机连接到DA数据口的电平值即可以改变其放大倍数。其硬件电路图如图3.11所示。图3.11程控放大电路设计3.6 负压转换电路设计由于电路中很多芯片都需要正负电源供电,而我们的电源只有正5伏的电压,因此这里使用ICL7660进行产生一个负5伏电压。该ICL7660S超电压转换器是一个单片电路CMOS电压转换IC,保证显着的性能优于其他类似装置。这是一个直接替换工业标准的ICL7660提供了一个扩大经营范围的电源电压高达12V,低电源电流。无需外部二极管所需的ICL7660S。此外,高频升压脚已被纳入,使用户能够实现较低的输出阻抗,尽管使用较小的电容器。图3.12ICL7660S引脚所有改进中所强调的电气规格一节。关键参数都保证在整个商业,工业和军事温度范围内工作。ICL7660S执行的电源电压转换从积极的消极的输入电压范围1.5V至12V的,因此互补的输出电压-1.5V-12V的。只有2个非关键外部电容器所需要的电荷泵和负责水库的功能。该ICL7660S可以连接到作为一个电压倍增,并会产生高达22.8V的12V输入。它也可以被用来作为电压倍增器或分压器。图3.13 ICL7660硬件电路图4.系统软件设计4.1系统软件总体设计图4.1主程序流程图 主程序流程图如图4.1所示,单片机上电后先进行初始化,清除一些参数的初值,然后显示相关波形的参数,每个循环单片机都会判断用户是否按下设定按键,如果按下则进入相关参数的设置。图4.2 LCD1602初始化子信号流程图首先先调用液晶自定义的字库,设置好DDRAM地址后在第一行显示,根据程序中的数据设置显示数据的首地址并设置循环量,在循环过程中不断的取字符代码直到终止,第二行的显示过程同一行的显示过程一样,两行显示完毕后便结束子程序4。4.2程序设计原理软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。 5.系统调试5.1硬件调试本系统的电路较为复杂,涉及的模块比较多,其中包含信号产生模块,程控增益模块,单片机最小系统模块,液晶模块,因此对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。 在制作硬件电路之前,我们先根据实际需要的功能划分硬件模块,并且在PROTEL里面画出其硬件原理图和PCB图,检查无误后开始再开始焊接。在本系统的硬件调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:问题:一开始波形一直输出不正常,输出的电压一直都是正电压。解决:由于DA转换器后面的电压转换电路输出为负电压,因此运放需要使用正负电源供电,后来使用ICL7660芯片产生出-5

温馨提示

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

评论

0/150

提交评论