毕业设计论文基于单片机的数控电源设计_第1页
毕业设计论文基于单片机的数控电源设计_第2页
毕业设计论文基于单片机的数控电源设计_第3页
毕业设计论文基于单片机的数控电源设计_第4页
毕业设计论文基于单片机的数控电源设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、1 绪论在现在的生活中,我们常常会用到各种电源,电源技术服务于各行各业。直流稳压电源是电子技术中常用设备,广泛应用于实验、教学、科研等领域。数控电源一般采用单片机系统来构成。单片机数控电源是以单片机为控制核心,配以相应的外围电路和功能软件,实现具有一定电压调节功能的电源,该设计包含硬件部分和软件部分,对硬件和软件合理的调配和使用,从而实现数控电源的设计。1.1 课题背景及意义数控电源技术是一门实践性很强的工程技术,服务于诸多行业。现今电源技术融合了电气、电子、系统集成、控制理论、材料等众多学科领域。直流稳压电源是电子技术常用的仪器设备之一,广泛的应用于教学、科研等领域,是实验员、电子设计人员进

2、行实验和科研不可或缺的电子仪器。在电子系统中,通常都需要电压稳定的直流电源来供电,传统直流电源的稳压过程是由电源变压器、整流、滤波、稳压等四部分组成,因而具有功能简单、干扰大、可靠性低、精度低且体积大、复杂度高的缺点。现代家用电器和其他电子产品中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由市电供电。这就需要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电源。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,

3、又缩小了其体积,使家用电器电源电路小型化。传统的直流稳压电源通常配以电位器和波段开关来实现电压的调节,并由电压表指示电压值的大小。因此,电压的调整精度不高,读数不够直观,电位器也易耗损。而基于单片机控制的直流稳压电源能较好地解决以上传统稳压电源的不足。1.2 国内外研究现状在我国,以电子学为核心技术的电源产业,从二十世纪60年代中期到了90年代以来,电源产业进入快速发展时期,电信与数据通讯设备的技术更新推动电源行业向更高灵活性和智能化方向发展。一方面, 电源产业规模的发展在加快;另一方面,在国家资助和创新意识带领下,我国电力电子技术的研究从吸收消化和一般跟踪发展到前沿跟踪和基础创新,电源产业界

4、涌现了一些技术难度较大,具有国际先进水平的产品,而且还产生了一大批具有代表性的研究成果和产品;目前国内还开展了跟踪国际多方面前沿性课题的研究或基础创新研究。但是我国直流稳压电源产业与发达国家相比,存在着很大的差距和不足,在电源产品的可靠性、开发投入、生产规模、工艺水平、先进检测设备、智能化、持续创新能力等方面有很大差距,尤其在实现直流稳压电源的智能化、网络化方面的研究不是很多。国内厂家生产的直流稳压电源虽然也在向数字化方向发展,但多限于对输出显示实现数码显示,或实现多组数值预置。总体说来,国内直流稳压电源制造技术在实现智能化等方面相对落后,面对激烈的国际竞争,是个严重的挑战。1.3 课题的主要

5、内容(1)如何实现对电源的输出控制。系统设计的目的是要用单片机来替代传统直流稳压电源中手动旋转电位器,实现输出电压在电源量程范围内步进可调,精度要求高。实现的途径很多,可以用键盘控制液晶显示,配以软件设置实现0.1v的步进,通过dac的模拟输出控制电源输出,或者用其它更有效的方法,因此如何选择简单有效的方法是本课题需要解决的首要问题。 (2)数控直流电源功能的完备。数控直流稳压电源要实现电压的键盘化输出控制,同时要具备输出、电压比较及数组存贮与预置等功能。另外,根据要求电源还应该可以通过按键选择一些特殊的功能。如何有效的实现这些功能也是课题所需研究解决的问题。 (3)设计要求。输出电压范围:0

6、.5v10v,电压步进:0.1v;输入电压由液晶显示;自制键盘,可以通过键盘输入电压值;输出电压值可在输出端用万用表测得;1.4 论文的总体结构第一部分简要介绍课题的背景、意义、国内外研究现状,介绍本文的主要研究内容, 包括实现的目标、功能的完备和性能指标。第二部分提出了数控直流电源的总的设计思路和几种实现方案论证,以及相关系统实现的功能,对这些方案的可行性进行比较分析,选择了一种基于51 单片机系统的数控直流电源的方案,并对该方案运用的基础知识和使用的器件作出扼要的介绍。第三部分模块化详细阐述了基于51 单片数控直流电源的系统整体结构和设计框图,包括数据单片机控制模块、数模转换模块、稳压控制

7、模块、及键盘模块。第四部分主要阐述了数控直流电源的软件系统的设计思路和软件设计流程。第五部分对数控直流电源的性能参数进行测量与评估,以及对误差进行分析。第六部分对本数控直流电源的给出了本课题的结论。本论文共分6个部分,主要阐述了设计方案的选择和确定以及对系统硬件设计、软件设计作了较为具体的论述。由于本人知识、实际应用水平及工程实际水平有限,在本次毕业设计中难免产生一些错误,敬请各位老师批评指正。2 总体方案论证本章从系统方案与设计等一些方面来进行论证。2.1 方案的比较与选择方案一:设计线性稳压电源,是目前常使用的直流稳压电源,它利用分立器件组成,体积大,效率低,可靠性差,操作使用不方便,自我

8、保护功能不够全,因而故障率高。方案二:设计开关电源。在前期方案设计中采用pwm脉宽调制。它的功耗小,效率高,稳压范围宽,电路形式灵活多样,功耗小,效率高。在制作过程中发现,pwm3占空比的线性变化使相应的电流呈非线性变化,经分析发现滤波电容的存在对占空比很小的pwm波积分效果明显,导致电压的非线性变化更显著,特别是pwm占空比很小时(希望得到输出的电压很小),利用单片开关电源的pwm技术控制开关的占空比来调整输出电压的,以达到稳定输出的目的。但用数字量控制的作用更加明显。方案三:设计智能型稳压电源,以单片机为控制核心,结构紧凑,价格低廉,性能卓越,而且由于单片机具有计算和控制能力,利用它对采样

9、数据进行各种计算,从而可排除和减少由于干扰信号和模拟电路引起的误差,提高稳压电源输出电压和控制电流精密度,降低了对模拟电路的要求。与方案一、二相比,方案三中提及的智能稳压电源具有小型化、高效率、低成本、高可靠性、低干扰、模块化和智能化等优点。终上所述,选择方案三。采用常用的51芯片作为控制器,p0口与dac0832的数据口直接相连,比较输出电压模块lm324的电压分辨率0.1v。所以,当mcu输出数据增加1 的时候,最终输出电压增加0.1v,当调节电压的时候,可以以每次0.1v的梯度增加或者降低电压,并通过lcd电路来显示,本主电路的原理是通过mcu控制dac0832的输出电压大小,通过dac

10、0832的转换,给电压比较模块,真正的电压、电流还是由比较电压输出模块lm324输出。方案原理图如图2.1所示。键盘控制51单片机dac比较电路输出电压显示电路图2.1 方案原理图2.2 系统主要模块的概述本设计采用at89c51单片机、dac0832、四运算放大器lm324、独立键盘和液晶显示lcd1602来实现整体电路功能。主要是对at89c51单片机的各个i/o口的充分利用。p0口连接液晶显示电路,p1口连接独立键盘电路,p2口直接连接dac0832芯片输出电压,最终的电压通过带有真差动输入的四运算放大器。这种设计总体上能充分利用单片机各个接口而不必添加额外芯片,大大减少成本和电路板面积

11、。2.2.1 at89c51单片机性能at89c51是美国atmel公司生产的低电压,高性能cmos8位单片机,内含4k容量的可反擦写的只读程序存储器和128字节的随机存取数据存储器,该器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内通用8位中央处理器和flash存储单元,功能强大可应用于许多高性价比的场合,可灵活应用于各种控制领域。at89c51芯片引脚图如图2.2所示。图2.2 at89c51引脚图 (1)at89c51主要功能指标:(a)与mcs-51指令集完全兼容;(b)4k字节可重擦写flash闪速存储器;(c)1000次擦写周期;(d)全静态

12、操作:0hz24mhz;(e)三级加密程序存储器;(f)128×8字节内部ram;(g)32个可编程i/o口;(h)2个16位定时/计数器;(i)6个中断源;(j)可编程串行uart通道;(k)低功耗空闲和掉电模式;(2)at89c51的引脚及功能介绍:(a)vcc:供电电源端。(b)gnd:接地端。(c)p0口:p0口是一组8位漏级开路型双向i/o口,也即地址/数据总线复用口。每位可吸收8个ttl门电流。p0能够用于外部程序数据存储器或者程序储存器,此时它可以分时复用为转换地址和数据总线。在运用flash编程时,p0口作为接受指令字节;在程序校检时,输出指令字节,此时要求外接上拉电

13、阻。(d)p1口:p1口是一个自带内部上拉电阻的8位双向i/o口,p1口输出缓冲器能接收输出4个ttl门电流。p1口管脚写入1后,通过内部上拉电阻使端口为高电平,此时可用作输入口,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。flash编程和校验时,p1口用做低8位地址的接收。 (e)p2口:p2口是一个自带内部上拉电阻的8位双向i/o口,p2口的输出缓冲器可驱动4个ttl逻辑门电路。对端口写“1”时,其管脚被内部上拉电阻拉高置高电平,且作为输入。作为输入口使用时,p2口的管脚被外部拉低,将输出电流。在访问外部程序存储器或16位地址外部数据存储器时,p2口送出地址的高8位。p

14、2口在flash编程和校验时,同样也接收高位地址信号和其它控制信号。(f)p3口:p3口是一组带有8位内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。对p3口写入“1”后,它们被内部上拉电阻提高为高电平,并当作输入口。作为输入端时,由于外部下拉为低电平,p3口将用上拉电阻输出电流。 (g)rst:复位输入信号。当振荡器工作时,要保持rst脚两个机器周期的高电平时间来使单片机复位。(h)ale/prog:当访问外部存储器或数据存储器时,地址锁存允许的输出电平用于锁存低8位字节。在flash编程期间,该引脚用于输入编程脉冲。工作时,ale端以振荡器频率1/6的频率周期输出固定的正脉冲信号。

15、因此它可用作对外部输出时钟或用于实现定时。要注意的是:每当访问外部数据存储器时,将跳过一个ale脉冲。此外,单片机执行外部程序时,应将ale设置为无效。(i)/psen:程序储存允许输出是对外部程序存储器的读选通信号,当单片机由于外部程序存储器取指令时,每个机器周期两次均有效,即输出两个脉冲。(j)/ea:外部允许访问端。当ea端保持低电平时,则在此期间cpu仅访问外部程序存储器(地址为0000hffffh)。如果加密lb1被设置时,ea将内部锁定为复位;当ea端保持高电平时,cpu执行内部程序存储器中的指令。在flash编程时,该脚也用于+12v的编程电源。(k)xtal1:振荡器反相放大器

16、及内部时钟工作电路的输入端。(l)xtal2:振荡器反相放大器的输出端。2.2.2 dac0832数模转换器dac0832是一种采样频率8位的d/a转换集成芯片,该芯片与单片机系统完全兼容。这个d/a转换芯片具有价格低廉、接口简单、转换容易控制等优点,在单片机应用系统中得以广泛的应用。d/a转换器由8位输入锁存器、8位dac寄存器、8位d/a转换电路和转换控制电路构成。(1)dac0832的主要功能指标:(a)8位分辨率; (b)电流稳定时间仅1us; (c)可单缓冲、双缓冲或直接数据输入; (d)在满量程下可以调整线性度; (e)可单一电源供电; (f)低功耗为20mw。 (2)dac083

17、2引脚及功能介绍:(a)d0d7:8位数据输入线,tll电平,有效时间大于90ns; (b)ile:数据锁存允许控制信号输入线,高电平有效; (c)cs:片选信号输入线,低电平有效; (d)wr1:数据锁存器写选通信号输入线,负脉冲有效; (e)wr2:dac寄存器写选通信号输入线,负脉冲有效; (f)iout1:电流输出端,当输入值为1时,iout1最大; (g)iout2:电流输出端,其值与iout1值之和为常数; (h)rfb:反馈信号输入线,芯片内部有反馈电阻; (i)vcc:电源输入端,工作电压范围为+5v+15v; (j)vref:基准电压输入端,vref的电压范围为-10v+10

18、v; (k)agnd:模拟信号接地端,模拟信号和基准电源的参考接地;(l)dgnd:数字信号接地端;2.2.3 四运算放大器lm324lm324为价格低廉的带有真差动输入的四运算放大集成电路。与单电源应用场合的标准运算放大器相比,它具有一些显著优点。该四运算放大器可以工作在3v以下或者32v以上的电源,其静态电流很低。该芯片共模输入电压范围包括了负电源,因此消除了在许多应用场合中采用外部偏置器件的必要。lm324具有5个引出脚,其中“+”、“-”为两个信号输入端,“v+”、“v-”为正、负电源输入端,“vo”为电压输出端。在两个信号输入端中,vi(-)为反相输入端,表示运放输出端vo的信号与该

19、输入端的相位相反;vi(+)为同相输入端,表示运放输出端vo的信号与该输入端的相位相同。 (1)lm324的主要参数特性描述: (a)4运算低功率放大器;(b)1.2mhz带宽;(c)3db带宽增益乘积为1.2mhz;(d)变化斜率为0.5v/s ;(e)增益带宽为1.2mhz;(f)工作温度范围为0°c70°c;(g)电源电压范围3v32v; (h)输入最大偏移电压7mv; (i)额定电源电压为+15v; (2)lm324的主要功能特点:(a)短路输出保护功能; (b)自带真差动输入级; (c)可在电压范围3v32v单电源工作:;(d)低偏置电流最大为100na;(e)具

20、有内部补偿的功能; (f)共模范围拓展至负电源; (g)具有输入端静电保护的功能;2.2.4 lcd显示电路lcd1602 可以在lcd显示屏上完整显示32 个英文字符和日文等一些字符,适合显示英文文字信息量较小的地方。可以应用在计算器、频率计、信号发生器、时钟等产品显示上。引脚图如图2.3所示。图2.3 lcd1602引脚(1)lcd1602主要技术参数:(a)显示容量:32字符;(b)芯片工作电压范围为4.5v5.5v;(c)正常工作电流2ma,不包括背光源电流;(d)模块最佳工作电压设置5v;(e)自带英文和日文字库,使用简便;(2)lcd1602引脚接口说明:(a)1脚:vss为地电源

21、;(b)2脚:vdd接5v正电源;(c)3脚:v0为液晶显示器对比度调整端,接正电源时对比度较弱,接地电源时对比度较高,对比度过高时会产生阴影,使用时可以通过一个10k的滑动变阻器调整其对比度。(d)4脚:rs为寄存器选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。(e)5脚:r/w为读写信号端,高电平时进行读操作,低电平时进行写操作。当rs和rw为低电平时可以写入指令或者显示地址。(f)6脚:e端为使能控制端,当e端由高电平变为低电平时,lcd就执行命令。(g)7脚14脚:d0d7为8位双向数据线。2.2.5 键盘电路目前键盘电路常用的主要有两种,一种是独立式键盘电路,另一种是矩阵式

22、键盘电路。独立式键盘电路是指直接用i/o口线构成的单个按键电路,每根i/o口线上按键的工作状态不会影响其它i/o口线的工作状态。这种方式无论在硬件连接还是软件编译处理上都比较简单,直接选取输入键值,简单快捷,这种方式在i/o富余的情况下可以使用。矩阵式键盘电路是指按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5v时,被钳位在高电平状态。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。独立式按键电路配置灵活,软件结构简单。在本课题中由于键盘数目较少,经过所查阅的参考资料经综合考虑最终

23、决定采用独立式键盘,这样可以充分利用i/o口,简化软件编程,并且节省电路板面积。3 硬件电路设计硬件电路主要由模拟电路和数字电路两大部分组成。本设计的数控直流电源是由51单片机为主控模块,dac0832 为数模转换器,四运算放大器lm324为比较输出芯片,键盘模块由三个独立按键组成,系统实现闭环控制。系统主要由微控制器模块、比较输出模块、显示模块、键盘模块、d/a转换模块五部分构成,具有电压可预置、可步进调整、输出的电压信号。系统框图如图3.1所示。晶振电路复位电路键盘电路51单片机lcd显示电路da转化电路电压比较电路电压输出图3.1 系统总体框图 3.1 单片机控制模块的设计单片机控制模块

24、即为主机部分,整个控制都是依靠单片机完成。从功能和价位以及本题目要求来看,我选择51单片机作为本方案的控制核心,p0 口接液晶显示作为输出数据显示传输,同时p1.5、p1.6、p1.7是液晶lcd控制端口;p2 口接 dac0832 作为输出数据传输,p3.0 为dac0832 控制端口;p1.0、p1.1、p1.2接三个独立键盘作为输入数据传输。单片机控制电路如图3.2所示。图3.2 单片机控制电路 3.2 单片机时钟电路的设计mcs-51单片机各功能部件的运行都是以时钟信号为基准,在时钟电路工作下,系统才能有条不紊的工作,因此时钟频率直接影响着单片机的速度,时钟电路的质量也直接影响着单片机

25、系统的稳定性。mcs-51单片机有两种时钟产生方式:内部时钟方式和外部时钟方式。本次毕业设计采用的是内部时钟方式作为单片机时钟产生方式。在单片机的内部有一用于构成振荡器的高增益反相放大器,即为输入端xtal1和输出端xtal2。在此两引脚跨接石英晶体和微调电容器,即可构成一个稳定的振荡器。在频率稳定性要求不高,并尽可能廉价时,可采用陶瓷谐振器和电容器组成并联谐振回路。内部振荡电路便产生自激振荡,用示波器可以观察到xtal2端输出的时钟信号。振荡频率取决于所用石英晶体的谐振频率和电容的大小。晶振的频率范围一般为1.2mhz12mhz,晶振的频率越高,系统的时钟频率越高,单片机的运行速度就越快。图

26、3.3给出了采用内部时钟方式的晶体振荡器的单片机时钟电路图。图3.3 单片机时钟电路元器件参数选择如下:at89c51的振荡频率可在1mhz24mhz范围内选取,本设计的时钟电路选取12mhz的振荡频率。c1、c2的电容取值无严格要求,因其取值对振荡频率输出稳定、大小、起振速度有略微影响。一般对石英晶体,可取典型值30pf左右,本次毕业设计c1、c2均选取了33pf的电容器。对陶瓷谐振器,可取典型值40pf左右。3.3 单片机复位电路的设计复位电路是单片机系统中必不可少的组成部分。所谓的复位就是将单片机重新启动,使单片机内部的所有寄存器都回到初始状态。复位电路方式有上电自动复位方式和手动复位方

27、式,本设计中系统采用手动复位方式。复位电路如图3.4所示。图3.4 手动复位电路手动复位过程如下:按下键后,电容器被短路放电、rst直接与vdd相连,此时为高电平,从而进入复位状态;松手后,电源开始对电容充电,此时充电电流在电阻上,形成高电平送到rst端,仍然是复位状态;最后,电容充电结束,电流降为0,电阻上的电压也降为0,rst降为低电平,系统开始正常工作。3.4 键盘模块的设计键盘电路是由一组规则排列的按键组成,一个按键实则是一个开关元件,也就是说键盘是一组规则排列的开关。键盘按照结构原理可分为两类,一类是触点式开关键盘,如机械式开关、导电橡胶式开关等;另一类是无触点开关键盘,如电气式键盘

28、,磁感应键盘等。两者相比,前者造价较低,后者寿命较长。目前,单片机系统中最常见的是触点式开关按键。 键盘按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键盘的识别,非编码键盘主要是由软件设置来实现键盘的定义与识别。全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖和多键保护电路,这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统应用较少。非编码键盘只简单地提供按键,其它工作均由软件完成,由于其经济实用,从而较多地应用于单片机系统中。本系统采用独立式按键结构,并结合非编码键盘相应原理。独

29、立式按键是直接用i/o口线构成的单个按键电路,其特点是每个按键单独占用一根i/o口线 。每个按键的工作不会影响其它i/o口线的状态。图3.5 键盘接口图独立式按键软件常采用查询式结构,先逐位查询每根i/o口线的输入状态,如某一根i/o口线输入为低电平,则可确认该i/o口线所对应的按键已按下,然后,再转向该键的功能处理程序。本设计共设计三个按键,分别为“增加”键,“减少”键,“确定”键,三个按键分别与p1.0,p1.1,p1.2连接,电路图如图3.5所示。3.5 显示模块的设计用于单片机系统设计显示的方式主要分为两类:led显示和lcd显示。前者显示亮度较高,制作成本低,适合做远距离显示,但其功

30、耗较大,所用端口随显示的数字位数增加而增加。如果采用动态扫描方式显示,则占用cpu的内存空间,如果采用静态显示则需要加锁存器,加大硬件制作量,就该题目要求来说,需要设定电压显示,又与实际电压比较再显示,lcd显示更为清晰、直观,从上面诸多因数来看,采用lcd显示比较理想。lcd最常用的就是液晶1602,lcd1602 可以在lcd显示屏上完整显示32 个英文字符和日文字符,适合显示英文文字信息量较小的地方,可以清晰显示出同时还能显示英文名称和电压/电流单位。通过单片机编程控制第4脚rs数据/命令选择端,第5脚r/w读/写选择端,第6脚使能信号,从而实现显示效果。本设计中lcd1602接法如图3

31、.6所示。图3.6 lcd1602 显示电路3.6 数模转化模块的设计本设计采用dac0832的数模转换器,p2口和dac0832的数据口直接相连,da的/cs和/wr1连接后接地,/wr2和/xefr连接输出同时也接地,ile信号引脚接高电平,da的8脚接参考电压,芯片处于直通状态,此时8位数字量一旦到达di0di7输入线上,就立刻进行d/a转换并输出结果。通过独立式键盘给单片机输入一数据,这个数据在显示电路上显示,单片机保存该数据,然后在键盘上按确认键,就是把dac0832电路打开把数据传输进去,这个芯片把送过来的数字信号转换成模拟信号后经过比较电路最终输出所要电源电压。3.7 电压比较输

32、出模块的设计本设计中真正的电压输出是通过四运算放大器lm324的末端输出的,具体的设计如图3.7所示,dac0832的11脚接lm324的6脚,lm324的5脚接地,4脚和11脚分别连接+12v和-12v,dac的9脚接1k的电阻与运放的7脚相连,构成比较回路。选用集成型电压比较器lm324是为了使电路工作更加可靠,同时该类芯片具有负载能力强、抗干扰性优越等特点,可以更好的实现电路功能。图3.7 比较输出电路4 软件设计在单片机应用系统开发中,常用的编程语言有汇编语言和c语言两种。这两种开发语言都具有各自的特点。以下就这两种开发语言的特点分别作简介并根据实际开发情况,选择适合的开发语言。汇编语

33、言的特点:可直接操纵系统的硬件资源,从而可以编写高质量的编码。但是采用汇编语言编写比较复杂的数值计算程序相对比较困难,又因汇编语言源程序的可读性远不如高级语言,如果想修改程序功能,得花费心思重新阅读程序,效率不是很高。c语言的特点:c语言程序的优点是可读性与可移植性好,程序开发周期短;使用c语言编程更符合人的思维方式和思考习惯,编写代码效率高,维护方便;采用c语言易于开发复杂的单片机应用程序,有利于单片机产品的重新选型和应用程序的移植,大大提高了单片机软件的开发速度。目前,在单片机的开发中,c语言得到越来越多的应用,而汇编语言也在很多环境下具有优势。实际应用中,要根据具体情况来选择开发语言。c

34、语言不仅仅是在软件开发上,而且具体应用在单片机以及嵌入式系统开发上。本设计中首先对系统初始化,读取预置电压,预存电压值为10v,并将其发送给lcd显示电压。之后在判断是否有键按下,当有按键按下时,接受来自键盘的电压输入值,并通过d/a把输入的数字量转化成模拟电压量,控制输出电压大小。软件的设计分为键盘的软件设计、显示的软件设计、d/a的软件设计等。各部分软件的设计综合利用了c语言中结构式语句,函数的定义与调用,逻辑判断以及循环控制,充分体现c语言的简洁紧凑、运算符丰富、数据结构丰富以及可移植性高等优点。4.1 仿真开发平台proteusproteus软件是英国labcenter电子公司设计开发

35、的一款eda工作软件。它不单具有其它eda工具软件的仿真功能,还能访问单片机及其外围设备。proteus是著名的eda仿真软件,从原理布图、代码调试到单片机与外围电路的仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。proteus不仅可将许多单片机设计系统实例功能形象化,也可将许多单片机实例运行过程形象化。proteus具有如下特点:(1)proteus软件提供了数千种元器件和多达30多个元件库;(2)个性化的编辑环境;(3)快速选取和放置器件;(4)层次化设计;(5)原理图自动连线并自动生成仿真日志;4.2 软件程序开发平台keilkeil c51软件是美国keil软件公司开发

36、的一个功能强大的单片机开发平台。单片机开发中除了必不可少的硬件电路设计外,同样离不开软件,随着单片机开发技术的不断发展,从普遍使用汇编语言到使用现在的高级语言,单片机的开发软件也在不断的发展,keil软件是目前最流行的开发mcs-51系列单片机的软件,keil提供了包括c语言编辑器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的开发方案。keil具有如下特点:(1)具有全功能的源代码编辑器;(2)元件库用来配置开发工具的设置;(3)项目管理器用来创建和维护用户的项目;(4)集成工具可以汇编、编译和连接用户嵌入式系统;(5)所有开发工具的设置都是对话框模式;(6)真正的源代码对单片机和外

37、围器件的调试器;4.3 主程序设计系统软件流程图直观描述了如何实现对系统输出电压调节。首先对系统的输出电压进行初始化设定,然后通过判断案件是“+”键或是“-”键对系统输出电压进行相应的调节,并将给定的数据给da转换器,最终使给定的电压输出。主程序框图如图4.1所示。初始化系统读取rom中保存的电压送da转换输出电压允许定时器中断显示键盘扫描是否按下增加键是否按下减少键是否按下确认键nnn电压加0.1v并送入lcd显示电压减0.1v并送入lcd显示保存电压yyy开始结束图4.1 主程序结构框图4.4 子程序设计子程序设计包括:液晶显示设计、d/a转换设计、键盘设计。下面对每部分软件设计逐一说明。

38、4.4.1 液晶读写数据的设计本设计中液晶显示是两行字符,第一行显示的英文“voltage”,第二行则用来显示设置的电压值。根据原理图,lcd1602的数据线d0d7脚分别接单片的p0口,rs、r/w和e端分别接p1.5、p1.6和p1.7,液晶显示的软件流程图如图4.2所示。读/写数据 进行一次读/写操作状态busy=0?状态busy=0? 读/写正确的数据读/写数据nnyy图4.2 液晶1602读数据结构框图4.4.2 d/a转换的设计由原理图可知,片选信号/cs、数据控制信号/xfer、/wr1、/wr2均与地线相连,dac0832为直通方式,cpu对dac0832执行一次写操作,则将一

39、个数据直接写入dac寄存器,dac输出模拟量随之变化。d/a转换程序流程图如图4.2所示。开始键盘输入调入程序d/a转换循环图4.3 d/a转换的设计4.4.3 键盘的设计单片机循环对各个按键进行扫描,如果检测到有按键按下,则判断是哪个键按下,再去执行各个按键所对应的程序。“增加”键为步增电压键,步进值为0.1v;“减少”键为步减电压键,步减值也为0.1v;“确认”键是确定输出电压值的按键。“增加”键的软件流程图如图4.4所示,其余两个按键同理。开始键盘初始化按键扫描判断为增加执行相关程序单片机步进0.1v输出显示yn图4.4 键盘的软件流程图5 系统测试与误差分析5.1 软件测试(1)测试软

40、件程序编译器keil uvision3。 (2)编译结果在编制完c语言后,即在keil uvision3 界面下,进行了调试,结果系统正常工作如图5.1所示。图5.1 编译结果图5.2 硬件测试(1)复位电路能否正常工作的调试,打开原理图,进行仿真,按下复位按钮,通过观察lcd显示判断复位电路能否正常工作。(2)键盘电路以及显示电路的调试,打开原理图,进行仿真,通过按键点击“增加”,“减少”,“确定”三个按钮观察lcd显示结果是否正常,并且观察是否以0.1v步进。 (3)比较输出电路的调试,主要是对四运算放大器lm324功能的调试,该部分电路功能实质是比较dac0832的11脚输出端与9脚电压

41、的比较,通过电压表测两端口电压即可。 5.3 系统整体测试结果分析(1)测试工具(a)双踪示波器;(b)数字万用表。(2)测量结果如表5.1所示。表5.1 测试数据及误差分析设定值(v)输出电压(v)误差(v)11.21.240.0422.52.530.0333.03.100.1044.04.120.1254.54.540.0465.85.930.1376.56.690.19888.190.1999.59.580.081010100由上表计算可得,系统的绝对误差为(0.04+0.03+-+0.08)/10=0.09v;系统的相对误差为(0.04/1.2+0.03/2.5+-+0.08/9.5)

42、/10=2.0%。(3)误差分析从电路的原理框图可以看出,系统的误差来源于三个方面: (a)dac0832 的量化误差,dac为8位d/a转换器,满量程为15v 的量化误差为 1/2l mbs=(1/2)*(1/28)*15v=29.30mv。按满度归一化的相对误差为(1/2)*(1/28)=0.20% ;(b)输入失调电压引入的误差 lm324漂移不大于7mv,故相对误差<=7mv/12v=0.06%。; (c)其它器件和线路由于温漂、不稳定等原因引起的误差。结束语经过几十天的艰苦奋战,我最终完成了毕业设计的基本要求。虽然过程是艰苦的,但最终成功的喜悦同样令我快乐。该设计采用闭环反馈调

43、整的方法,设计出了实用的直流电压源,其电压输出的级数与d/a的位数有紧密关系,本设计采用了8位的dac0832,若采用12位或16位的d/a转换器进行相应的调整,直流电源的精度会进一步提高。为了争取时间,降低成本,我们的解决方案是采用的51 单片机达到了此次毕业设计预期目的,由于该电源在结合了线性电源与开关电源各自优点的基础上还加入了单片机控制,不仅小巧、轻便、输出特性良好而且还操作简单,相信会有很好的应用前景。与此同时此次的设计还培养了我的动手能力,使我进一步了解毕业设计的基本知识,能领会和灵活运用毕业设计中目标任务、计划、过程控制、总结反馈等各个环节所涉及的内容,并且具备了迅速接受新知识的

44、能力,对新挑战具有一定的适应能力。本设计输出的电压稳压精度高,可以用在对直流要求较高的设备上,或在实验室中当作试验电源使用。本次设计的过程中,我发现很多的问题,给我的感觉就是很难,很不顺手,看似原理比较简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路,还有资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的帮助,我相信,通过这次的毕业设计,巩固了我们学习过的专业知识,也使我们把理论与实践从真正意义上结合了起来;考验了我们借助互联网络

45、搜集、查阅相关文献资料,和组织材料的综合能力;从中可以自我测验,认识到自己哪方面有欠缺、不足,以便于再日后的学习中得以改进、提高。致谢本设计是在谷亚林老师的悉心指导下完成的。他具有严谨的治学态度,丰富的实践经验,在学术及为人方面使我受益匪浅。衷心感谢他对我的关心指导和帮助。通过这次毕业设计,我把理论与实际联系起来,对平时所学的单片机和电子电路技术,将这些学科有机的联系起来,进行了本次设计。这次设计使我们将大学这几年所学的知识做了一次很好的总结,也使我们明白了学习不再是单一的学习,而是全面贯穿的去学习,去思考问题,这为我们以后的工作和学习提供了很好的思路和方法,也打下了坚实的基础。在本次设计中,

46、我同样碰到了好多的问题。孔令荣老师在这些问题上,不是像答疑一样的帮助我们去解决问题,而是去引导我们,给我们一个思路,剩下的具体的工作都要自己去进行理解和设计,这让我们学会了自己去进行一定范围内的创作。同样,我们在学科之间交叉上,存在不少的盲点,通过这次设计,我在这些学科都能进行联系,在遇到不懂的问题,也学会了自己去图书馆和网络上找资料,同样我查阅资料的能力也得到了很好的锻炼。借此机会特别向我的指导老师谷亚林教授表达我最诚挚的谢意。鉴于我的水平有限,难免在设计中存在一些错误和不当之处,望各位老师批评指正,在此对大家表示衷心的感谢。参 考 文 献1 张毅刚. mcs-51单片机应用设计m. 哈尔滨

47、:哈尔滨工业大学出版社,2003.2 何立民. 单片机系统设计m. 北京:北京航空航天大学出版社,1990.3 刘小成,吴清,夏春明. 单片机原理及c51应用m. 上海:华东理工大学出版社,2009. 4 沙占友,等. 单片机外围电路设计m. 北京:电子工业出版社,2003. 5 李朝青. pc机与8051间的通讯j. 北京:北京航天航空大学出版社,2002,4:219244.6 贾好来. mcs-51单片机原理及应用m. 北京:机械工业出版社,2007. 7 边春远. mcs-51单片机应用开发实用子程序m. 北京:人民邮电出版社,2005. 8 范蟠果. 单片机实验与应用系统设计m. 北京

48、:国防工业出版社,2007.9 周立功. 单片机实验与实践m. 北京:北京航空航天大学出版社,2004.10 南建辉. mcs-51单片机原理及应用实例m. 北京:清华大学出版社,2004.11 何立民. 单片机高级教材m. 北京:北京航空航天大学出版社,2000.12 童诗白,华成英. 模拟电子技术基础m. 北京:高等教育出社,2001.13 朱大奇. 单片机原理应用与实验m. 北京:科学出版社, 2009.14 陈有卿,谢刚. 新颖电子模块应用手册m. 北京:机械工业出版社,2003.15 赵亮,侯国锐. 单片机c语言编程与实例m. 北京:人民邮电出版社,2003.附录a 仿真电路图附录b

49、 c语言程序#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar code table="-voltage-out:+.v " ;sbit k1=p10;sbit k2=p11;sbit k3=p12;sbit e=p15;sbit rw=p16;sbit rs=p17;sbit beer=p37;uchar shiwei=0,dianya =9,gewei=0,xiao1=0,xiao2=0,qued=0;uint shuma=0;void jianpan();v

50、oid xianshi();void xianshi2();void xiang();void delay(uint ms);void init();void rwcom(uchar y);void rwdata(uchar c);void delay(uint ms)uchar t;while(ms-) for (t=0;t<120;t+);void rwcom(uchar y) rs=0; rw=0; p0=y; e=1; delay(5); e=0;void rwdata(uchar c) rs=1; rw=0; p0=c; e=1; delay(5); e=0; void init() delay(15); rwcom(0x38); delay(5); rwcom(0x06); delay(5); rwcom(0x01); delay(5); rwcom(0x0c); delay(5); rwcom(0x83); delay(5);void jianpan() if(k1=0) xianshi2(); if(k1=0)

温馨提示

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

评论

0/150

提交评论