基于单片机的函数发生器系统设计 毕业设计说明书.doc_第1页
基于单片机的函数发生器系统设计 毕业设计说明书.doc_第2页
基于单片机的函数发生器系统设计 毕业设计说明书.doc_第3页
基于单片机的函数发生器系统设计 毕业设计说明书.doc_第4页
基于单片机的函数发生器系统设计 毕业设计说明书.doc_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

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

文档简介

毕业设计(论文) 目录1 引言22 总体方案设计22.1方案一设计思想3 2.1.1锁相环路组成框图.3 2.1.2锁相环路工作原理.32.2方案二设计思想52.2.1基于相位累加器的直接数字合成结构图52.2.2直接数字合成相位累加器工作原理62.3方案三设计思想及原理框图62.4方案的比较及确定63单元电路设计和论证73.1单片机的选型73.2时钟电路设计和论证93.3复位电路设计和论证93.3.1 复位功能103.3.2 复位后的状态103.4按键电路设计和论证113.4.1 人机交互接口的设计113.4.2 键盘设计需要解决的几个问题113.4.3 按键的确认113.4.4 重键与连击的处理113.4.5 按键防抖动技术113.5 显示电路设计和论证133.5.1 led数码管133.5.2 移位寄存器74ls164143.5.3 显示电路设计163.6 d/a转换电路设计和论证163.6.1 dac0832管脚功能介绍163.6.2 d/a转换器的性能指标183.7集成运算放大电路设计和论证184 软件设计204.1系统主程序流程图204.2各子程序流程图204.3 程序设计214.3.1主程序214.3.2 各子程序245软硬件系统的调试295.1调试过程295.2出现的问题与解决的方法29总结 . 30参考文献31基于单片机的函数发生器系统设计摘要:随着经济的快速发展,电子测量及其他部门对各类信号发生器的广泛需求及电子技术也在高涨,正是由于这种现象,促使信号发生器种类增多,性能也在逐渐提高。本系统是基于at89c51单片机控制的波形发生器。由单片机结合d/a转换来控制波形的频率,由扩展44键盘选择输出波形,波形通过4位串行静态数码显示。关键词: 单片机; d/a转换; 数码管显示。1 引言在自动控制系统设计及调试过程中,不同频率的正弦波、三角波和方波常作为信号源,应用十分普遍。各类信号过去常通过分立元件及集成运放构成的振荡器来产生,后来出现的icl8038其最高频率能达到100khz,通过icl8038来设计的信号发生器精度比普通振荡器输出的精度要提高很多。利用单片机通过程序设计方法产生低频信号,其频率底线较低,具有线路简单、结构紧凑、体积小、价格低廉、频率稳定度高、抗干扰能力强、用途广泛等优点,且如需要产生新的波形时,只需对程序进行修改即可。本设计利用单片机at89c51和d/a转换器dac0832 转换数字信号为05 v模拟电压信号,并在四位数码管上显示。2 总体方案设计2.1方案一设计思想采用锁相式频率合成器,利用锁相环,将压控振荡器(vco)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。2.1.1锁相环路组成框图uo(t)wo输出信号uo(t)uc(t)ud(t)输入信号(参考信号)ui(t)wi鉴相器(pd)环路滤波器(lf)压控振荡器(vco)wo图1 锁相环路基本组成框图2.1.2锁相环路工作原理工作原理:ui(t)和vco的uo(t) 在pd中进行比较,pd输出的误差电压ud(t)是二者相位差的函数。如果两者频率相同,相位差恒定,则经lf后无输出;如果两者频率不同,则经lf后得到控制电压去控制vco的振荡频率,直至环路进入“锁定”状态。鉴相器的电路模型图2 鉴相器框图图3 鉴相器电路模型(1).鉴相器的输出电压是ui(t)和uo(t)相位差的函数 。(2).典型的乘积型鉴相器中,鉴相器的低频分量输出为:(3). 乘积型鉴相器具有正弦规律的鉴相特性。环路滤波器的电路模型图4 常见环路滤波器的形式图5 环路滤波器电路模型微分方程 :其中,af(p)为传递函数。压控振荡器的电路模型压控振荡器的特性可用调频特性来表示图6 调频特性压控振荡器的电路模型在一定范围内o与uc(t)几乎成线性关系有:a0为vco的压控灵敏度。图7 压控振荡器电路模型p=d/dt为微分算子。锁相环的相位模型及环路方程图8 锁相环的相位模型环路方程捕捉过程环路由失锁进入锁定的过程图9 捕捉过程i 较小ud(t) 能顺利通过lf得到uc(t) 控制vco环路锁定i较大 ud(t) 通过lf有较大衰减 uc(t) 较小经频率牵引过程时间长环路锁定i很大 ud(t) 不能通过lf产生uc(t) vco不受控环路失锁捕捉带(p ) 环路由失锁进入锁定所允许信号频率偏离r的最大值。捕捉时间(p )环路由失锁状态进入锁定状态所需的时间跟踪过程环路维持锁定的过程跟踪过程(同步过程)如果输入信号频率i 或vco振荡频率o 发生变化,则vco振荡频率o跟踪i 而变化,维持o =i 的锁定状态,称为跟踪过程或同步过程。跟踪带(同步带)能够维持环路锁定所允许的最大固有频差|i| ,称为锁相环路的跟踪带或同步带。跟踪带(同步带)和环路滤波器的带宽及压控振荡器的频率控制范围有关。锁相环的基本特性良好的窄带特性:环路相当于一个高频窄带滤波器,只让输入信号频率附近的频率成份通过锁定后没有频差:环路锁定后,输出信号与输入信号频率相等,没有剩余频差(有微小固定相差)自动跟踪特性:环路在锁定时,输出信号频率和相位能在一定范围内跟踪输入信号频率和相位的变化2.2方案二设计思想基于地址计数器的直接数字合成法2.2.1基于相位累加器的直接数字合成结构图如图 10所示,这是一种最简单的直接数字很成方式,这种直接数字频率合成器的结构包括地址计数器、存储器、d/a 转换器。图10 基于相位累加器的直接数字合成结构框图2.2.2直接数字合成相位累加器工作原理将波形数据存储于存储器中, 而后用可程控的时钟信号为存储器提供扫描地址, 与每个地址相对应的数据则代表波形在等间隔取样点上的幅度值。数据被送至 dac,从而产生一个正比于其数字编码的电压值, 每个电压值保持一个时钟周期,直至新的数据送至 dac,经数模转换后得到所需要的模拟电压波形。 在存储器里的数据产生的波形是对“取样波形”的阶梯近似。 如果改变地址计数器的时钟频率或 rom 的地址步进大小, 合成波形的频率都会随着改变。2.3方案三设计思想及原理框图采用单片机控制的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做得很高。图11 方案三原理框图2.4方案的比较及确定鉴于方案一的电路复杂,频率覆盖系数难以达标等缺点,方案二的步进变化带动漂亮的变化,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。3单元电路设计和论证3.1单片机的选型at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。at89c2051是一种带2k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚图如图12所示。图12 at89c51引脚图管脚说明如下描述:vcc:供电电压。gnd:接地。p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下表所示:口管脚 备选功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。振荡器特性:xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。at89c51的主要功能特性:(1) 工作电压为45.5 v,工作频率为022 mhz;(2)片内振荡器和时钟(clock)电路;(3) 128*8位供存储数据的片内ram;(4) 32根可编程i/o线;(5) 2个16位定时器/计数器;(6) 具有6个中断源;(7) 可编程全双工串行口;(8) 具有多种封装方式;(9) 程序存储器可扩展至64kb(rom), 数据存储器可扩展至64kb(ram)。at89c51单片机功能强大、编程灵活、可靠性与性价比高,易于采购,便于使用与实验,可以达到设计要求,并且为系统再拓展留有空间,适用于许多较为复杂的控制应用场合。3.2时钟电路设计和论证 时钟电路是单片机系统的心脏,它控制着单片机的工作节奏。单片机虽然内部有振荡电路,但要形成时钟,必须外部附加电路。时钟电路是单片机工作的时间基准,决定单片机工作的速度。mcs-51系列的时钟有两种产生方式:内部时钟方式,利用芯片内部的振荡电路和外部方式。本设计中选用内部时钟方式。电路如图13所示,mcs-51系列单片机内部有一个用于构成振荡器的高增益反相放大器。引脚xtal1为反相器的输入端,引脚xtal2为输出端。放大器与作为反馈元件的片外石英晶体振荡器一起构成了一个自激振荡器。本设计使用的石英晶体振荡器的频率为11.0592mhz,电容的主要作用是帮助振荡器起振和稳定电路,其值的大小对振荡频率有少许影响,本设计中选择c1和c2电容值为30pf。图13 时钟电路3.3复位电路设计和论证mcs-51单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使cpu和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。图14为复位电路图。图14 复位电路3.3.1 复位功能复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚rst通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的s5p2,由复位电路采样一次。复位电路通常采用上电自动复位(如图15(a)和按钮复位(如图15(b)两种方式。图15 rc复位电路3.3.2 复位后的状态单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器pc0000h,这表明程序从0000h地址单元开始执行。单片机冷启动后,片内ram为随机值,运行中的复位操作不改变片内ram区中的内容,21个特殊功能寄存器复位后的状态为确定值。psw00h,表明选寄存器0组为工作寄存器组; sp07h,表明堆栈指针指向片内ram 07h字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08h单元中;po-p3ffh,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出 。ip00000b,表明各个中断源处于低优先级; ie000000b,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由reset引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到reset引脚转为低电平后,才检查ea引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部ram内部的数据则不变。3.4按键电路设计和论证3.4.1 人机交互接口的设计所谓人机交互接口,是指人与计算机之间建立联系、交互信息的输入/输出设备的接口。这些输入/输出设备主要有键盘、显示器和打印机等。他们是计算机应用系统中必不可少的输入、输出设备,是控制系统与操作人员之间的交互窗口。一个安全可靠的控制系统必须具有方便的交互功能。操作人员可以通过系统显示的内容,及时掌握生产情况,并可通过键盘输入数据,传递命令,对计算机应用系统进行人工干扰,使其随时能按照操作人员的意图工作。3.4.2 键盘设计需要解决的几个问题键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。键盘可分为编码键盘和非编码键盘两种类型。编码键盘能自动识别按下的键并产生相应代码,以并行或串行方式发给cpu。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。非编码键盘则是通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用9。键盘是计算机应用系统中的一个重要组成部分,设计时必须解决下述一些问题。3.4.3 按键的确认键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,若高电平表示断开,那么低电平键闭合。所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。3.4.4 重键与连击的处理实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,及重键的情形。为消除重键的影响,编制程序时可以将键的释放作为按键的结束。等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。3.4.5 按键防抖动技术键盘作为向系统提供操作人员的干预命令的接口,以其特定的按键代表着各种确定操作命令。所以准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关闭合及断开的瞬间必然伴随有一连串的抖动。消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。这种做法,工作可靠,且节省机时。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用rs触发器或单稳态电路。如图16所示。软件消抖则是利用延时来跳过抖动过程。图16 单稳态硬件消抖电路键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。独立式键盘就是各按键相互独立,每个按键各接一根i/o口线,每根i/o口线上的按键都不会影响其它的i/o口线,示例如图17所示。图17 独立式键盘矩阵式键盘又叫行列式键盘。用i/o口线组成行、列结构,键位设置在行列的交点上。例如44的行、列结构可组成16个键的键盘,比一个键位用一根i/o口线的独立式键盘少了一半的i/o口线。对矩阵键盘的工作过程可分两步:第一步是cpu首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。如图18。 图18 矩阵式按键图19 按键电路本系统采用的是44矩阵式按键。各个键的功能定义如下:其中09数字键用于预设波形频率输出键,f键用于频率预置确认键,a键用于频率步进“+”键(步进为10hz),b键用于频率步进“”键,c键用于切换输出波形类型,d键、e键悬空。3.5 显示电路设计和论证3.5.1 led数码管在单片机系统中,经常采用led数码管来显示单片机系统的工作状态、运算结果等各种信息,led数码管是单片机人机对话的一种重要输出设备。单个数码管的外部引脚如图20所示。led数码管由8个发光二极管构成,通过不同的发光字段组合可用来显示数字09、字符af、h、l、p、r、u、y、符号“-”及小数点“.”等。 图20 led数码管引脚本次采用的是共阳极数码管。8个发光二级管的阳极连接在一起,作为公共控制端(com),接高电平。阴极作为“段”控制端,当某段控制端为低电平时,该段对应的发光二极管导通并点亮。通过点亮不同的段,显示出不同的字符。其内部结构如图21所示。图21 数码管内部结构 共阳极3.5.2 移位寄存器74ls164 74ls164、74lst164 是高速硅门 cmos 器件,与低功耗肖特基型 ttl (lsttl) 器件的引脚兼容。74hc164、74hct164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(dsa 或 dsb)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (cp) 每次由低变高时,数据右移一位,输入到 q0, q0 是两个数据输入端(dsa和 dsb)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (mr) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。在本次系统中,即使用单片机串口的模式0,将数据写入sbuf就完成向74ls164发送数据的过程。而用4个移位寄存器74ls164驱动4个数码管的连接方式属于静态显示。第一次发送,8位数据进入第一片164,继续发送,第一片164中锁存的数据会进入第二片164,这时第一片164的数据就是单片机刚发送的数据这样重复4次,就让4个164各自有8位的数据了 。为了保护数码管的寿命,74ls164跟数码管之间需要330欧 的上拉电阻。特性:门控串行数据输入; 异步中央复位符合 jedec 标准 no. 7a;静电放电 (esd) 保护; hbm eia/jesd22-a114-b 超过 2000 v; mm eia/jesd22-a115-a 超过 200 v; 多种封装形式; 额定从 -40 c 至 +85 c 和 -40 c 至 +125 c 。图22 74ls164功能图图23 74ls164引脚表1 74ls164引脚说明符号引脚说明dsa1数据输入dsb2数据输入q0q336输出gnd7地 (0 v)cp8时钟输入(低电平到高电平边沿触发)/m/r9中央复位输入(低电平有效)q4q71013输出vcc14正电源工作模式输入输出/m/rcpdsadsbq0q1至q7复位(清除)llxxll 至 l移位hlllq0至 q6hlhlq0 至 q6hhllq0 至 q6hhhhq0 至 q6表2 74ls164功能表h = high(高)电平h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 high(高)电平l = low(低)电平l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 low(低)电平q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入 (referenced input) 的状态 = 低-至-高时钟跃变3.5.3 显示电路设计图24 显示电路3.6 d/a转换电路设计和论证dac0832是cmos工艺制造的8位d/a转换器,属于8位电流输出型d/a转换器,转换时间为1us,片内带输入数字锁存器。dac0832与单片机接成数据直接写入方式,当单片机把一个数据写入dac寄存器时,dac0832的输出模拟电压信号随之对应变化。利用d/a转换器可以产生各种波形,如方波、三角波、正弦波、锯齿波等以及它们组合产生的复合波形和不规则波形。dac0832主要性能:输入的数字量为8位;采用cmos工艺,所有引脚的逻辑电平与ttl兼容;数据输入可以采用双缓冲、单缓冲和直通方式;转换时间:1us;精度:1lsb;分辨率:8位;单一电源:515v,功耗20mw;参考电压:-10+10v。dac0832内部结构:芯片内有两级输入寄存器,使dac0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路d/a异步输入、同步转换等)。d/a转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过rfb端引用片内固有电阻,还可以外接。 3.6.1 dac0832管脚功能介绍dac0832管脚如图25所示。dac0832内部结构如图26所示。图25 dac0832管脚图图26 dac0832内部结构(1) di7di0:8位的数据输入端,di7为最高位。(2) iout1:模拟电流输出端1,当dac寄存器中数据全为1时,输出电流最大,当 dac寄存器中数据全为0时,输出电流为0。(3) iout2:模拟电流输出端2, iout2与iout1的和为一个常数,即iout1iout2常数。(4) rfb:反馈电阻引出端,dac0832内部已经有反馈电阻,所以 rfb端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5) vref:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,vref范围为(+10-10)v。vref端与d/a内部t形电阻网络相连。(6) vcc:芯片供电电压,范围为(+515)v。(7) agnd:模拟量地,即模拟电路接地端。(8) dgnd:数字量地。 当wr2和xfer同时有效时,8位dac寄存器端为高电平“1”,此时dac寄存器的输出端q跟随输入端d也就是输入寄存器q端的电平变化;反之,当端为低电平“0”时,第一级8位输入寄存器q端的状态则锁存到第二级8位dac寄存器中,以便第三级8位dac转换器进行d/a转换。一般情况下为了简化接口电路,可以把和直接接地,使第二级8位dac寄存器的输入端到输出端直通,只有第一级8位输入寄存器置成可选通、可锁存的单缓冲输入方式。 特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式。制作低频信号发生器有许多方案:主要有单缓冲方式,双缓冲方式和直通方式。单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。而双缓冲方式适用于在需要同时输出几路模拟信号的场合,每一路模拟量输出需一片dac0832芯片,构成多个dac0832同步输出电路,程序简单化,但是电路线路连接比较复杂。根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。dac0832主要是用于波形的数据的传送,是本题目电路中的主要芯片。3.6.2 d/a转换器的性能指标1.分辨率:输出模拟电压应能区分02n-1共2n个输入数字量。表示方法:(1)用输入二进制数的位数表示;如8位。(2) 用输出模拟电压的最小值与最大值的比值表示。指最小输出电压和最大输出电压之比。dac0808的分辨率为1/256。2精度:dac实际输出电压与理想的输出电压的偏差。 dac0808的最大满刻度偏差为+1lsb 。3线性度:dac实际传输特性曲线与理想的传输特性曲线的偏差。 dac0808的最大误差为+0.19% 。4温度灵敏度:在输入不变的情况下,输出模拟电压随温度变化产生的变化量。一般用满刻度输出条件下温度每升高1,输出电压变化的百分数作为温度系数。由于dac0832其具有价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛应用。3.7集成运算放大电路设计和论证集成运算放大电路是一种直接耦合的多级放大电路,它是利用半导体的集成工艺,实现电路、电路系统和元件三结合的产物。由于采用集成工艺,可以使相邻元器件参数的一致性好,且采用多晶体管的复杂电路,使之性能做得十分优越。集成运算放大器的型号各异,但用得最为普遍的是通用型集成运放,其内部电路一般为差分输入级、中间级和互补输出级,并带有各种各样的电流源电路。任何一个电路系统都是由若干个单管放大电路串接而成的多级放大电路组成,这样才能满足电路系统一放大能力、输入电阻、输出电阻的要求。组成多级放大电路的每一个单管放大电路称为一级,级与级之间的连接方式称为级间耦合方式,多级放大电路常见的耦合方式有:阻容耦合、直接耦合、变压器耦合和光电耦合。运算放大器本质上是一个高电压增益、高输入电阻和低输入电阻的直接耦合多级放大电路,因它最初主要用于模拟量的数学运算而得此名。通用型集成运算放大器的组成框图如图27所示。它由输入级、中间电压放大级、输出级和偏置电路等组成。输入级偏置电路中间电压放大级输出级图27 集成运算放大器组成框图输入级均采用差分放大电路,利用差分放大电路的对称性可以减小温度漂移的影响,从而提高整个电路的共模抑制比。它的两个输入端可以扩大集成运算放大器的应用范围。中间电压放大级大多采用有源负载的共发射极放大电路组成,其主要作用是提高电压增益。输出级一般采用甲乙类互补对称放大电路,主要用于提高集成运算放大器的负载能力,减小大信号工作下的非线信失真。偏置电路用以供给各级直流偏置电流,它由各种电流源电路组成。此外,集成运算放大器还有一些辅助电路,如过流保护电路等。 本次采用的是ua741运算放大器。 ua741m,ua741i,ua741c(单运放)是高增益运算放大器,用于军事,工业和商业应用.这类单片硅集成电路器件提供输出短路保护和闭锁自由运作。这些类型还具有广泛的共同模式,差模信号范围和低失调电压调零能力与使用适当的电位。图28 74ls164引脚图1和5为偏置(调零端),2为反向输入端,3为正向输入端,4接地,6为输出,7接电源 8空脚。图29 放大电路图4 软件设计4.1系统主程序流程图10ms定时时间到有09数字键有波形频率步进“+”键有波形类型选择键有波形频率设置确认键修改频率单元,调显示频率+10hz,调显示切换波形类型更改打点表格首址重设输出波形频率开始系统初始化开启定时器0nyynnyynny图30 主程序流程图4.2各子程序流程图中断入口根据表格首址和指针查表指针+1调整指针指向表头清定时器2中断标志中断返回指针加到表尾ny图31 中断子程序4.3 程序设计4.3.1主程序 org 0000h ljmp main org 000bh ljpm int_t0 org 002bh ljmp int_t2 org 0030h main: mov sp,#67h mov scon,#0 mov tmod,#01h ;定时器0在方式1工作,定时10ms mov th0,#high(55536) mov tl0,#low(55536) mov t2con.#00h ;定时器2在16位自动重装方式工作 mov rcap2h,#216 mov rcap2l,#216 mov th2,#216 mov tl2,#216 setb et0 setb et2 setb pt2 ;定时器2比定时器0具有更高的优先级 setb ea clr keyok clr t0_int_flag mov wave_type,#0 ;初始化波形类型为正弦波 mov wave_freq,#10 ;初始化波形频率为100hz mov dptr,#sine_tab mov wave_pt,#0 ;表格指针偏移量 mov r0,#da0832_addr setb tr0 setb tr2 clr da0832_cs ;一直选中dac0832loop: jnb t0_int_flag,loop ;10ms时间到,查看是否有键按下 clr t0_int_flag mov keyport,#ofh ;查看是否有按键 mov a,keyport cpl a anl a,#0fh jnz key ;不为0,表示有键按下 clr keyok ;无键按下 ljpm loopkey: mov a,keyport mov b,a mov keyport,#0f0h mov a,keyport orl a,b cjne a,keycode,key_next0 jnb keyok,key_next1 ;判断按键上次是否已响应 ljmp loopkey_next0:mov keycode,a ;保存键扫描码值 ljmp loopkey_next1:lcall keyfind ;比对键码,结果是否在r2中, 若无效键,置r2为10h cjne r2,#16,key_next10 ljmp loop ;没有找到按键扫描码key_next10:setb keyok ;设置按键响应标志 mov a,r2 ;以下判断是数字键还是功能键 clr c subb a,#10 jnc key_next2 ;小于10,为数字键;大于等于10为功能键 mov r1,#freq_buf ;频率缓冲区的内容左移1位 mov r3,#3key_loop0:inc r1 mov a,r1 dec r1 mov r1,a inc r1 djnz r3,key_loopo mov a,r2 mov r1,a lcall disp ;显示频率 ljmp key_finishkey_next2:cjne r2,#0ah,key_next3 ;是否是频率步进“+”键按下 inc wave_freq ;步进为10hz,已经放大了10倍 mov a,wave_freq cjne a,#101,key_next20 mov wave_freq,#100 ;最大为1000hzkey_next20:lcall disp_freq ;频率输出显示 ;根据波形频率计算两个波形点间的时间间隔,并存入定时器2的重装寄存器中 lcall cal_time_interval ljmp key_finishkey_next3:cjne r2,#0bh,key_next4 ;是否为频率步进“-”键按下 dec wave_freq mov a,wave_freq jnz key_next30 mov wave_freq,#1 ;频率最小为10hzkey_next30:lcall disp_freq ;显示频率 lcall cal_time_intterval ;计算时间间隔,并修改t2的重装时间数据 ljmp key_finishkey_next4:cjne r2,#0ch,key_next5 ;是否为波形选择键按下 inc wave_type mov a,wave_type cjne a,#4,key_next40 mov wave_type,#0key_next40:mov a,wave_type cjne a,#0,key_next41 mov dptp,#sine_tab ;指向正弦波表格 ljmp keky_next400key_next41:cjne a,#1,key_next42 mov dptp,#tri_tab ;指向三角波表格 ljmp keky_next400key_next42:cjne a,#2,key_next43 mov dptp,#sawt_tab ;指向锯齿波表格 ljmp keky_next400key_next43:mov dptp,#squar_tab ;指向方波表格keky_next400:ljmp key_finishkey_next5:cjne r2,#0fh,key_finish ;是否为键盘预置频率,确认键按下 mov r1,#freq_buf ;取频率缓冲区中内容 mov a,r1 dec a jnz key_next40 ;频率不能超过1000hz mov a,r1 mov b,#100 mul ab mov r2,a inc r1 mov a,r1 mov b,#10 mul ab clr c add a,r2 inc

温馨提示

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

评论

0/150

提交评论