课程设计(论文)基于STC89C52单片机数控直流电压源.doc

上传人:仙人指路1688 文档编号:4150637 上传时间:2023-04-07 格式:DOC 页数:30 大小:299KB
返回 下载 相关 举报
课程设计(论文)基于STC89C52单片机数控直流电压源.doc_第1页
第1页 / 共30页
课程设计(论文)基于STC89C52单片机数控直流电压源.doc_第2页
第2页 / 共30页
课程设计(论文)基于STC89C52单片机数控直流电压源.doc_第3页
第3页 / 共30页
课程设计(论文)基于STC89C52单片机数控直流电压源.doc_第4页
第4页 / 共30页
课程设计(论文)基于STC89C52单片机数控直流电压源.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《课程设计(论文)基于STC89C52单片机数控直流电压源.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于STC89C52单片机数控直流电压源.doc(30页珍藏版)》请在三一办公上搜索。

1、1 前言 在现代家庭中各种电器的不断出现,并要求着各种不同值的电源出现,使得家庭购买不同值得电源。数字化的也更加贴近人们的生活,因为它更加的直观,易被接受,大家都开始追求数字化的各类电子产品。数控直流电源有着直观,易操作,各种电压集一身,输出精度和稳定性都较高等优点,所以越来越受广大人们的喜爱。以后家里的电视遥控,电动玩具等都可以共用一个电源。 稳压电源按输出电压的类型分为直流稳压电源和交流稳压电源。其中直流稳压电源是电子技术常用的设备之一,直流稳压电源有许多基本功能要求,例如输出电压值能够在额定输出电压值以下任意设定和正常工作;对输出的电压值要求精确的显示和识别。而普通的直流稳压电源或多或少

2、存在这样或那样的问题,他们的电源输出时通过波段开关盒电位器来控制的,当输出电压需要精确输出,或者在一个小范围内微调时,困难相对来说就很大;而且随着使用时间的增加,模拟电路元件在使用过程中难免发生磨损,波段开关与电位器均会或多或少产生接触不良现象,这会造成电压输出的误差。另外,传统的串联型稳压电路构成较为复杂,稳压精度不高。总体来说,传统稳压电源实现方式亟待改进。现当代社会是信息技术不断发展的社会,模拟技术逐渐被更为优越方便的数字技术取代,大规模的社会化生产也要求更高的技术和效率。众多家用电器以及各类电子电器设备均需要直流稳压电源对其进行供电。而我们生活中用电均为220V的交流供电,这就需要通过

3、变压、整流、滤波、稳压电路将交流电转换为稳定的直流电。滤波器用于滤除整流输出中的纹波,一般传统电路由于滤波扼流圈和电容器组成,若由晶体管滤波器来代替,则可缩小直流电源的体积,减轻其重量,而且晶体管滤波直流电源不需要直流稳压器就能作家用电器的电源,这既降低了家用电器的成本,又降低了其成本,又缩小了其体积,使家用电器小型化。基于单片机控制的数控直流电压源可以克服稳压电源构成复杂,元器件磨损严重,稳压精度不高,读数不方便等缺点,更稳定更直观的完成模拟稳压电源的任务。而且成本小,经济实惠,便于在大规模的社会生产中采用。所以,对于数控直流电压源的研究与设计进步是技术上的革新,而且有实际的经济性,可以提高

4、生产效率,是现代工业生产应用中的不二选择。2 设计要求 设计并制作有一定输出电压调节范围和功能的数控直流稳压电源,基本要求如下:1、 输出直流电压调节范围1.4-9.9V,纹波小于10mv;2、 电压误差少于1%;3、 输出电流为500mA;4、 稳压系数小于0.2,直流电源内阻小于0.5;5、输出直流电压能步进调节,步进值为0.1V;6、由“+”“-”两间分别控制输出电压步进增和减。3 总体设计方案 3.1 设计方案 本设计采用以单片机作为控制元件来实现数控元件直流电压源的设计。本设计采用STC89C52芯片作为单片机的控制单元,以常用的DAC0832作为D/A转换单元,STC89C52芯片

5、的P0口和DAC0832 的数据口直接相连,DA的,接地,让DA工作在直通方式下。DA的8脚接参考电压,DA的参考电压接5V电源,所以在DAC0832的8脚输出电压的分辨率为5V/256约为0.02V,也就是说DA输入数据端每增加1,电压增加0.02V。通过运放UA741将DA的输出电流转化为电压,再通过UA741将电压反相并放大。最后经LM350调整输出电压并稳压。其具体硬件框图如图1所示: 图1 原理框图3.2设计方案优势STC89C52单片机作为一个整体,完成整个数控部分的功能。STC89C52作为一个智能化的可编程器件,便于系统功能的扩展。方案中使用运算放大器放大电压,由于运算放大器具

6、有很大的电源电压抑制化,可以大大减少输出端的纹波电压,避免了线性调压电源整流滤波后的纹波对输出的影响。该方案中采用三位数码管直接对电压值进行显示,可以直观明了的反映电压值以及其对按键所作出的电压变化。根据上述数控直流电压源硬件框图1,我们选用以下芯片来实现该数控直流电压源的硬件电路接线:STC89C52单片机,DAC0832数模转换器,集成运放UA741,电压稳压器LM350等。4 设计原理 本系统选用的模块包括:单片机系统,D/A转换模块,LED显示模块,直流电源模块,具体的电路图参照附录一。4.1 单片机模块 4.1.1单片机介绍STC89C52是一种带8K字节FLASH存储器的低电压、高

7、性能CMOS 8位未处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其特点是拥有8K字节可编程FLASH存储器,256*8位内部RAM,三个16位定时器/计数器,8个中断源,拥有低功耗的闲置和掉电模式,以及片内振荡器和时钟电路。STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式是在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2-12MHz之间选

8、择,电容值在5-30pF之间选择,电容值的大小可对频率起到微调的作用。 外部方式是RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相对时钟P1和P2,供单片机使用。 此次设计时钟电路采用的是内部方式。CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。 STC89C52的引脚功能如下:主电源引脚(根)VCC(Pin40):电源输入,接电源。 GND(Pin20):接地线。外接晶振引脚(根) XTAL1(Pin19):片内振荡电路的

9、输入端。 XTAL2(Pin20):片内振荡电路的输出端。控制引脚(根) RSTVPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。 ALEPROG(Pin30):地址锁存允许信号。 PSEN(Pin29):外部存储器读选通信号。 EAVPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。 d .可编程输入输出引脚(32根) STC89C52单片机有4组8位的可编程I/O口,分别是P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。 P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0

10、P0.7。 P1口(Pin1Pin8):8位双向I/O口线,名称为P1.0P1.7。 P2口(Pin21Pin28):8位双向I/O口线,名称为P2.0P2.7。 P3口(Pin10Pin17):8位双向I/O口线,名称为P3.0P3.7。单片机处理周期包括12个振荡周期每12个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12取倒数然后指令执行所须的周期数因此如果你的系统时钟是11.059MHz 除以12后就得到了每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms 。STC89C52的管脚图如图2: 图2 STC89C52的管脚图4.1.2

11、 单片机外围电路a.电压预置复位电路复位是单片机的一个重要工作方式。在单片机工作时,上电时首先要复位,发生故障后也要复位。复位操作有两种基本形式:一种是上电复位,另一种是按键复位,即要复位时,只要按图中的KEY1键,电源VCC经电阻R1和R2分压,在RESET端产生一个高电平。在上电复位时,电路要求接通电源后,通过外部电容来充电实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容充电,RESET引脚的高电平将逐渐下降。RESET引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这表明单

12、片机复位期间不会有任何操作。复位后:PC值为0000H,表明复位后程序从0000H开始执行:SP值为07H,需要重新置SP值:单片机复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好准备。复位电路图如图所示: 图3 复位电路b.时钟振荡电路单片机控制中心的各项工作都是在时钟信号的控制下协调工作的,单片机的时钟电路可为单片机提供一个时钟信号。单片机本身就如一个复杂的同步时序电路,为保证工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。单片机内部有一个用于构成振荡器的高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片内部,XTAL1和X

13、TAL2之间跨接晶体管振荡器和微调电容,从而构成一个稳定的自激振荡器。单片机时钟电路可分为内部时钟电路和外部时钟电路。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。电容C1和C2的只要功能是协调振荡器频率及帮助振荡器起振,其电容值一般在20pF-60pF,典型值为30pF。外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多单片机同时工作,以便于个单片机的同步。一般要求外部信号高电平的持续时间大于20us,且为频率低于12MHz的方波。本设计采用内部时钟电路来确保整个电路的协调工作。电路图如图所示: 图4 时钟电路4.2 D

14、/A模块 4.2.1 数模转换器DAC0832 DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。它的特点有,分辨率为8位,电流稳定时间1us,可单缓冲、双缓冲或直接数字输入,需要+5V+15V的电源供电。DAC0832是一种典型的8位转换器,内部为双缓冲寄存器既输入寄存器和DAC寄存器,、分别为该寄存器的写信号输出端,ILE为输入锁存使能端,高电平有效,为片选端,VREF为传输控制端,它和共同控制DAC寄存器的工作状态。DAC0832有两个接地端,一般情况下,这两个地端均并联在接地。DAC0832的D/A转换电路为倒型R-2R电阻网络,故有Iout1和Iout2两个电流输出端

15、,根据不同的电路组成,该芯片可以有两种输出模式,一种是电流输出模式,这种模式基准电压加在VREF端,由Iout1和Iout2输出的电流经运算放大器相加后输出;另一种为电压输出方式,这种模式基准电压加在Iout1和Iout2之间,模拟电压从VREF端输出。本设计采用电流输出模式,再使输出电流通过一个高输入阻抗的线性运算放大器实现相应的模拟信号电压输出,该D/A转换器有三种工作方式,单缓冲工作方式,双缓冲工作方式,直通方式,该电路采用直通方式,DA的、和接地,让DA工作在直通状态下。 DAC0832的管脚图如图3所示:图5 DAC0832管脚图管脚的具体名称和用法: D0 D7:数字量输入端; :

16、片选信号,低电平有效; ILE:数据锁存允许信号,高电平有效; :第1写信号,低电平有效; :第2写信号,低电平有效; :数据传送控制信号,低电平有效; Iout1:电流输出端1; Iout2:电流输出端2; RFB:反馈电阻端; Vref:基准电压,基电压范围为-10V +10V; GND:数字地; AGND:模拟地 ; 单片机与DAC0832的接口可按二级缓冲器方式、单缓冲器方式和直通方式联接。如上图4的联接方式是直通方式联接方式。由OUT1脚输出的为一个模拟电流值,经过运算放大器后为一个电压值,这电压值输入到后面的运算放大部分,作为后面部分的输入。4.2.2 D/A转换电路工作原理本设计

17、是采用DAC0832实现数据的数模转换,其数据口与单片机的P0口直接相连,DA的、和相互连接后接地,让DA工作在直通方式下。DA的8脚接参考电压,为简化设计,在本次设计中采用5V的参考电压,DAC的8脚输出电压的分辨率为5V/256=0.01950.02V,也就是说DA输入数据端每增加1,就意味着电压输出增加0.02V。再在DA的电压输出端接运放UA741,将DA输出的模拟电源转换为电压。如此一来,我们只要改变单片机P0口的数据输出便可以改变DAC0832的输出电压,设当P0口的输出数据位00H时,DAC0832的输出电压就为0V。其电路图如图所示: 图6 D/A转换电路图4.3 电压调整电路

18、模块4.3.1 集成运放UA741UA741是一款集成运算放大器,集成运算放大器是一种高增益多级直接耦合放大器,其各部分作用如图7所示:(1) 差动输入级 使运放有尽可能高的输入阻抗级共模抑制比。(2) 中间放大级 由多级直接耦合放大器组成,以获得足够高的电压增益。(3) 输出级 可使运放具有一定幅度的输出电压、输出电流和尽可能小的输出电阻。在输出过载时有自动保护作用以免损坏集成块。输出级一般为互补对称推挽电路。(4) 偏执电路 为各级提供合适的静态工作点。为使工作点稳定,一般采用恒流源偏置电路。 在本设计中用到UA741共有两个作用:放大电压和反相作用。其引脚图如图8所示: 差动输入级输 出

19、 级中间输入级 偏置电路 图7 集成运放UA741组成框图 图8 UA741管脚图4.3.2 电路工作原理 本设计这一部分的工作原理为:将前一步电路输出的反相电压再接上一个UA741进行放大,此UA741采用反相接法,由于前一个UA741中输出的电压是负电压,所以该部分接上的UA741作为负反馈放大电路对输出电压进行反相放大,再通过一个可调的滑动变阻器调节该运算放大器的电压放大倍数。接下来,该集成运放UA741的输出端通过电阻接到LM350的调整端,通过改变UA741的输出电压即可控制LM350的输出电压,也就是数控电压源的最终输出电压值。如图9所示,因为输出电压Vout=Vref*(1+R1

20、0/R11)+Iadj*R10。设节点A的电压为Ux,运放UA741的输出电压为U,则有VoutUx=Vref,又有Ux=(Vout-U)/(R10/R11)*R10+U,由此可见,Vout与U之间存在线性关系,Vout随着U的变化而变化,改变电位器RV1的阻值即可改变U的值,进而改变整个电路的输出Vout。数值计算:(1)输出电压最小值Vmin的计算 由LM350的输出电压公式可知Vmin=1,25(1+27/220)=1.4V(2) 单片机送给DAC0832的数值 在设计时,要求单片机送给DAC0832的数值为00H时,输出端输出的电压为1.4V,及单片机送给DAC0832的数值为0FFH

21、时输出电压值为9.9V,所以每当电压增加0.1V时,单片机送给DAC0832的数值就要增加3。所以在编程时,按一下步进键,P0口的数据便要变化3.所以可以通过调节电位器来改变运放的放大倍数,使单片机送给DAC0832的数值增加3,输出电压就要增加0.1V。 电压调整电路的工作电路如图9所示。Vout口输出电压即是最终电压。 图9 电压调整电路图4.4 键盘电路模块4.4.1 键盘电路的分类 键盘接口通常包括硬件和软件两部分。硬件是指键盘的结构及其主机的连接方式;软件是指对键盘的操作的识别与分析,即键盘管理程序。键盘一般是一组开关(按键)的集合。常用的按键有三种:机械触点式:利用金属的弹性使键盘

22、复位。导电橡胶式:利用橡胶的弹性使按键复位。柔性按键:外形及面板布局等可按整机要求设计,在价格、寿命、防潮、防锈等方面显示出加强的优越性。键盘按其工作原理又可分为编码式键盘和非编码式键盘。这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别。非编码键盘主要是由软件来实现键盘的定义与识别。非编码式键盘按照与主机连接方式的不同,分为独立键盘和矩阵式键盘。 (1)独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外

23、部可不接上拉电阻。 (2)矩阵式键盘:行列式键盘采用行列电路结构,当按键较多时所占用的口线相对较少,键盘规模越大,其优点越明显。所以,当按键数目大于8时,一般采用矩阵式键盘结构。本设计采用机械触点式键盘按非编码方式工作。 4.4.2 键盘电路的工作原理当无键按下时,单片机的P1.0、P1.1口为高电平。当有按键按下时,单片机相应口线通过按键与地相连的电路被接通,单片机接口被拉成低电平,此时其他口线的电平状态不变。所以,通过检测P1.0、P1.1口的电平状态,即可判断键盘上哪个键被按下。键盘电路工作原理图如图10所示: 图10 键盘电路图4.5 LED数码管显示模块 4.5.1 数码管显示简介

24、LED显示器是一种通过控制半导体发光二极管的显示方式,用来显示图像等各种信息的显示屏幕。本设计所用到的LED显示器由七个发光二极管组成,因此也称为七段LED显示器。此外,在本设计所用到的LED显示器中还有一个圆点型发光二极管(在图中以dp表示),作为小数点的显示使用。通过七段发光二极管的不同组合,可以显示多种数字、字母或者其他符号。LED中的发光二极管有两种接法:a.共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时将公共阳极连接到+5V电源上。这样若阴极端输入低电平,则该发光二极管就导通点亮,若阴极端输入高电平,则不点亮。b.共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时

25、公共阴极接地,这样若二极管的阳极端输入高电平,则该发光二极管就导通点亮,若阳极端输入低电平,则该发光二极管不点亮。本设计采用共阴极接法。七段发光二极管,再加上一个小数点,共计8段。采用LED显示器。LED显示器由七个发光二极管组成,本设计采用共阳极接法。显示器采用动态显示方式。原因在于:静态显示方式要求口线多,占用资源多,成本就高,而动态显示方式,电路简单、节省口线、成本低。 LED通常有两种显示方法:动态显示和静态显示。 动态显示:即逐位点亮显示器的每一位,对于显示器的每一位而言,每隔一段时间点亮一次显示器的亮度与导通电流有关,也与点亮时间和间隔时间有关。在多位LED显示时,为了简化电路、降

26、低成本,将所有位的段选码并联在一起,由一个8位输入端口控制,而共阴极或共阳极点分别由相应的口线控制。 静态显示:是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止,并且显示器的各位同时显示。静态显示时,较小的驱动电流就能得到较高的显示亮度。LED显示器工作在静态显示方式下,共阴极点或共阳极点连接在一起接地:每位的段选(a-dp)与一个8位并行口相连。静态显示显示效果好,但是功耗大,但不占用端口,只需两个串口线输出,变成较为简单。而且采用静态显示需要的驱动器件多,硬件成本相对更高。 比较以上两种方案,方案一硬件简单程序复杂,方案二硬件复杂程序简单,考虑到实惠和对自己的编程锻炼,选择方案

27、动态显示。本次设计用到的是三位动态显示。动态显示是一位一位地轮流点亮各位数码管。在本次设计中采用的是共阳极的三位一体的LED,1、2、3分别为三个数码显示的分别为三个数码管显示的控制引脚,其原理与单个LED的显示原理完全相同。显示部分电路图: 图12 显示部分电路图4.5.2 数码管编码表 7段数码管可以包括小数点的09的数字和部分的英文字母,为了获得不同的字符,数码管各段所加的电平也不同,编码也不一样。共阴极数码管的字型,字段和编码的关系如下表1: 十六进制数 h gf edcba 显示代码 0 0xc0 1 0xf9 2 0xa4 3 0xb0 4 0x99 5 0x92 6 0x82 7

28、 0xf8 8 0x80 9 0x90 . 0x7f 表 1 数码管编码表(共阳)5 软件部分5.1 开发工具介绍 单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发MCS-51系列单片机的软件。Keilc51汇编,PLM语言和C语言的程序设计,界面友好。Keil是美国keil software公司出品的52系列兼容单片机c语言开发系统。用过汇编语言后

29、再使用C语言来开发,体会更加深刻。 KeilC51软件提供丰富的库,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到KeilC51DE 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。5.2 直流电压源软件系统的设计5.2.1 主程序源程序本设计的关键是对直流电压源的控制和显示。其中,当电源打开的时候,单片机控制单元STC89C52进行复位,寄存器清零,单片机送给DAC0832的数值为00H

30、,输出电压为0V,此时经过两个运算放大器的倒相放大后,电压仍为0V,再经过稳压器LM350后,输出为Vout=1.25*(1+27/220)=1.4V。调整单片机的输出数值到0FFH时,令输出电压变为9.9V。也即每当单片机数值增加3时,电压增加0.1V。所以,软件程序负责循环检测是否有按键信号,如果KEY2按下,则输出电压增加0.1V;如果KEY3按下,则输出电压减小0.1V;如果KEY1按下,则单片机复位,返回初始状态,单片机输出再次变为00H,输出电压再次变为1.4V。 主程序的工作是循环调用键扫描函数,根据键扫描函数的值判断有无按键按下。若无按键按下,直接调用显示函数,显示当前的电压值

31、。若KEY2按下,令P0的数据加3,令输出电压增加0.1V,然后调用显示子函数,显示当前电压值。若KEY3按下,令P0口的数据减3,令输出电压减小0.1V。然后再次调用显示子函数,显示减小后的电压值。主程序流程图如图13所示。主程序源代码见附录2.1。5.2.2 显示子程序源程序本设计采用LED显示器动态显示电压数值,所以需要两组单片机接口,一组为P0口,一组为P2口,P2口负责接收段控码。先将显示电压的整数位表示出来,再将小数点后第一位表示出来,最后表示出小数点后第二位。再通过一个循环语句依次点亮三位LED显示器,使它们的值对应显示三位电压值。显示子程序流程图如图14所示。 显示子程序源代码

32、见附录2。 开 始 初 始 化显示初值送显示缓存调显示子程序调延时子程序调键扫子程序是否有键按下Y电压增加0.1VKRY2键按下Y N电压减小0.1VKEY3键按下Y N调显示子程序 调延时子程序 N返 回 图13 子程序流程图 开 始初 始 化暂存显示的电压查表取段控码段控码送P2口位控码送P1口调延时子程序修改段控码修改位控码三位扫描完NY 返 回 图14 显示子程序流程图5.2.3 键扫子程序源程序 键扫子程序负责扫描P1口,屏蔽掉高四位数据后,得到P1口的处理函数,即P1口低四位的反码,然后调键扫描,判断P1口是否为0,经显示子程序延时去抖后,为零即无键按下,不为零即有键按下,然后返回

33、键值给主函数。 键扫子程序流程图如图15所示。 键扫子程序源代码见附录。 开 始有键闭合N Y调显示子程序延时去抖有键闭合N Y调显示子程序键是否释放 N Y 保存键值 结 束 图15 键扫子程序流程图6.结 论本文完成了一个数控电压源的设计,此数控电压源输出电压值在1.4-9.9V之间,通过两个按键控制直流电压源输出的增加。本设计实现步骤如下:采用STC89C52芯片作为单片机的控制单元,以常用的DAC0832作为D/A转换单元,让DAC0832工作在直通方式下。DAC0832的8脚接参考电压,DA的参考电压接5V电源,所以在DAC0832的8脚输出电压的分辨率为5V/256约等于0.02V

34、,也就是说DAC0832输入数据端每增加1,电压增加0.02V。通过运放UA741将DAC0832的输出电流转换为电压,再经过运放UA741将电压反相并放大。最后经LM350调整输出电压并稳压。软件部分设计为控制按键每按一次,单片机P0口输出数据增加3,DAC0832输出电压增加0.06V,此时调整UA741的放大系数,使电压调整电路最终输出电压增加0.1V。即控制按键每按下一次,输出电压增加0.1V。同时,主程序调用显示子程序,将电压值显示在LED显示屏上。本设计的具体功能是使输出电压值在1.4V-9.9V之间,KEY1键用于单片机控制单元复位,KEY2键用于电源步进增加0.1V,KEY3键

35、用于电源步进减0.1V。使用该多功能数控电压源操作简单。当上电时,电源会输出设置的1.4V电压,若在此时按下KEY2键,电压加0.1V,按KEY3键电压减0.1V,然后通过一个三位一体的LED显示器显示输出的电压值。本设计仍有不足之处,其中主要的不足之处在于没有达到0V的设计要求。其主要原因是设计条件不够,使得DAC0832的基准电压只能为+5V,所以只能输出负电压。而且LM350的输出端比输入端也至少高1.4V的电压,所以在本次设计中不能达到0V的电压,但如果在0832的基准电压上再加上一个-5V的基准电压便可达到输出0V的要求。7.总结与体会在本次设计的过程中,我遇到了很多问题,这给我很难

36、的感觉。比如,单片机程序的编写,虽然以前学过一点C语言,但是基本上不知道如何用C语言编写单片机程序,汇编语言更是没有学好。还有一些看似很简单的电路,要动手把它设计出来是一件很难的事情,主要原因是自己没有经常动手设计过电路以及在设计过程中用到的知识我们学得不扎实,还有对于资料的查找也是一个问题,在网上查资料的时候常常发现在不同的网站上关于同一个器件的资料有所不同。因此在以后的学习中我们应该学会如何高效快速地查找资料,同时我们也要学会把书本中的知识和实际连接起来,这不论是对我们以后的就业还是学习,都会起到很大的帮助。在老师详细说明了任务要求后,我们就开始大量的查资料,上网,去图书馆搜索相关的东西,

37、后来终于在查阅大量网络和图书资料后做出了原理图。在这次的课程设计中,我收获的东西很多。这次课程设计不但加深了我对课本知识的理解,而且还加深了对单片机的了解。我们课本上所学知识是有限的,因此我们在解决实际问题的时候,不但要充分利用已学的知识,还要积极的运用网络,常到图书馆查阅资料。在这次课程设计中我不仅学到了非常多的知识还深深地感受到了团结就是力量与智慧。这段时间里,在我们组成员默契的配合下,圆满地完成了课程设计任务。这次课程设计不仅巩固了我们在课堂上所学到的知识还极大的增长了见识。同时,也使我们把理论与实践真正意义上相结合起来,考验了我们借助网络搜集查阅相关文献资料和组织材料的综合能力。从中可

38、以自我检测,认识到自己哪方面有欠缺、不足,以便在日后的工作中得以改进、提高。通过此次课程设计,我也对Keil、Proteus、AD09等软件的使用,加深了对它们的了解。总之,我非常地感谢这次课程设计,它让我懂得了很多东西,也学会了很多东西,这是一件非常有意义的任务。8 谢辞在这次课程设计中,要特别感谢带领我们的老师,虽然这是我们第二次做课程设计,但是我们对于这次的设计题目没有多少思路,不知如何下手,每次见面你都会给我们讲的特别仔细,让我们明白接下来一步该做什么,该借阅什么样的参考书,最后是报告的格式,格式非常重要,包括以后的毕业论文。还要感谢我们这组的每个成员,你们都非常有知识,教会了我很多不

39、明白的地方,让我懂得了团队合作的重要性。最后我们要感谢尊敬的学校领导及学院领导和老师,感谢你们把课程设计安排在假期中,让我们不用担心什么考试,有充足的时间完成课程设计,可以充分利用图书馆的资源,增长我们的见识,为以后的毕业设计打好了基础。有了这些,我们才能这么圆满地完成这次课程设计的任务,感谢你们。9参考文献 1胡辉、单片机原理及应用设计、中国水利水电出版社、2005 2杨素行、模拟电子技术基础简明教程、高等教育出版社、2008 3余孟尝、数字电子技术基础简明教程、高等教育出版社、2007 4谭浩强、C程序设计、清华大学出版社、2007 5龚尚福、微机原理与接口技术、西安电子科技大学出版社、2

40、006 6何希才 张明莉、新型稳压电源及其应用实例、电子工业出版社、2004 7裴云庆 杨旭 王兆安、开关稳压电源的设计和应用、机械工业出版社、2010附录1:电路原理图附录2:软件部分源程序#include#include#include#include#define uchar unsigned char#define uint unsigned int#define DAC0832 XBYTE0XEFFFfloat vol;void delay(uint a);sbit e=P16;sbit f=P15;sbit g=P14;uchar led3;uchar t=0;uchar keyc

41、huli();uchar key();void put_on_leds(); /显示输出函数char code ledm=0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0x7f,/*.*/ ; void main(void) uchar keyzhiii; vol=1.4; /输出5V电压 put_on_leds(); /调显示函数 delay(100); /调延时函数 while(1) keyzhiii=key(); /调键扫描 switch(keyzhiii) /按键功能控制 case 0: / 没键按下,等待 put_on_leds();/ 调显示函数delay(10); / 调延时函数 break; case 1: /KEY2键按下处理程序 t=t+3; /

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号