数控可预设稳压电源的设计--毕业论文.doc_第1页
数控可预设稳压电源的设计--毕业论文.doc_第2页
数控可预设稳压电源的设计--毕业论文.doc_第3页
数控可预设稳压电源的设计--毕业论文.doc_第4页
数控可预设稳压电源的设计--毕业论文.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

数控可预设稳压电源的设计【摘要】本设计以直流电压源为核心,STC89S52单片机为主控制器,单片机系统是数控电源的核心。它通过软件的运行来控制整个仪器的工作,从而完成设定的功能。通过数字矩阵键盘来设置直流电源的输出电压,输出电压范围为021.5V,并可由液晶屏LCD1602显示实际输出电压值。本设计由单片机程控输出数字信号,经过D/A转换器(DAC0832)输出模拟量,再经过运算放大器OP07隔离放大,最后输出各种设备所需要的电压。实际测试结果表明,本系统输出电压稳定,系统功能良好。【关键字】直流稳压电源,单片机,数控,DAC0832 目录摘要2第一章 方案设计与论证1.1 控制方案比较41.2 稳压输出方案比较41.3 显示方案比较41.4 总体方案框图.5第二章 电路设计2.1 控制单元电路设计.52.1.1 STC89S52引脚图.52.1.2 管脚说明62.2 A/D转换单元电路设计.82.3 电压预设单元电路设计.102.4 显示单元电路设计.112.5 稳压输出单元电路.12第三章 测试方法与测试结果3.1 测试仪器.133.2 测试方法.133.3 测试结果.13第四章 讨论4.1 主要成果.154.2 展望.15参考文献.17附录一整机电路图.18附录二PCB电路图.19附录三原程序清单.20第一章:方案设计与论证1.1 控制方案比较方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用CPLD等可编程逻辑器件。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:采用16位凌阳单片机,作为系统的控制单元,利用其本身自带的数模转换和语音功能可以更好的实现外围的扩展电路。方案三:采用STC89S52单片机作为这个系统的控制单元,可以通过DAC0832的数据采样和OP07的电压调整可以改变系统输出电压的大小。为了能够使系统具备检测实际输出电压值的大小,可以将输出电压经过DAC0832进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及送LCD1602显示。显示的电压值便是输出的电压大小。此系统比较灵活,采用软件方法来解决数据的预置以及电压的大小控制,使系统硬件更加简洁,各类功能易于实现,能很好地满足题目的要求。比较以上三种方案的优缺点,方案一采用中、小规模器件实现系统的数控部分,使用的芯片很多,造成控制电路内部接口信号繁琐,中间相互关联多,抗干扰能力差。在方案二中采用16位凌阳单片机完成整个数控部分的功能,也便于系统功能的扩展。但是考虑到自身对于单片机的驾驭能力和外围扩展功能的实际需要,我们最终决定舍弃。采用方案三STC89S52单片机完成整个数控部分的功能,也便于系统功能的扩展,从芯片的市场价格和性能的选择上来看方案三比较优越。1.2稳压输出方案比较 方案一:采用线性调压电源以改变其基准电压的方式使输出不仅增加而且可以减少, 这样不能不考虑整流滤波后的纹波对输出的影响。方案二:使用运算放大器对电压的比较放大由于运算放大器具有很大的电源电压抑制比,可以大大减小输出端的纹波电压。在方案一中输出的电压很难跟踪电压的快速变化,而方案二中的输出电压波形与 DAC0832的输出波形相同,不仅可以输出直流电平,而且只要预先生成产生波形的量化数据,便可以输出多种波形,使系统产生的信号源有一定的驱动能力。本设计采用方案二。 1.3显示部分比较 方案一:使用数码管显示使用多位数码管显示,显示不灵活。方案二:使用LCD1602液晶显示液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点。本方案采用LCD1602,它具有两行显示,每行显示16个字符,采用单+5V供电,外围电路简单,价格便宜,具有很高的性价比。而数码管虽然便宜,但显示单调。占用过多的I/O。综合比较,我们采用方案二。1.4总体方案框图系统总体方案框图如图1-1所示。图1-1 系统总体方案框图第二章:电路设计2.1 控制单元电路设计2.1.1 SCT89S52引脚图(图2-1) 图2-12.1.2 管脚说明 控制部分采用AT89S52单片机作为控制核心,其内部组成包括:一个8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器RAM低128字节,存放读/写数据;高128字节被特殊功能寄存器占用;片内程序存储器8KB ROM;四个8位并行I/O(输入/输出)接口P3 -P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口。VCC:供电电压。GND:接地。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:来自反向振荡器的输出。AT89S52 单片机外部有32个端口可供用户使用。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口也可作为AT89S52的一些特殊功能口,如下所示: 口管脚 备选功能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(外部数据存储器读选通)(3)AT89S52的晶振及其连接方法 CPU工作时都必须有一个时钟脉冲。有两种方式可以向AT89S52提供时钟脉冲:一是外部时钟方式,即使用外部电路向AT89S52提供时钟脉冲,见图2-2(a);二是内部时钟方式,即使用晶振由AT89S52内部电路产生时钟脉冲。一般常用第二种方法,其电路见图2-2(b)89S52XTAL2XTAL189S52XTAL2XTAL1悬空外部时钟信号C1C2X(a)外部时钟方式(b)内部时钟方式X一般为石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。一般来说,使用石英晶体时,C1=C2=30pF。使用陶瓷滤波器时,C1=C2=47pF。(4)AT89S52的复位 复位是单片机的初始化操作,其主要的作用是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作失误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。另外,复位操作还对单片机的个别引脚有影响,例如会把ALE和PSEN变成无效状态,即使ALE=0,PSEN=1.RST变成低电平后,退出复位状态,CPU从初始状态开始工作。AT89S52复位操作有3种方式:上电复位、上电按钮复位和系统复位。上电复位电路如图2-3所示。对于CMOS型单片机因RST引脚的内部有一个拉低电阻,故电阻R可不接。单片机在上电瞬间,RC电路充电,RST引脚端出现正脉冲,只要RST端保持两个机器周期以上的高电平,就能使单片机有效地复位。当晶体振荡频率为12MHz时,RC的典型值为C=10uF,R=8.2K欧姆。简单复位电路中,干扰信号易串入复位端,可能会引起内部某些寄存器错误复位,这时可在RST引脚上接一去耦电容。通常因为系统运行等的需要,常常需要人工按钮复位,复位电路如图2-4所示,其中R2R1,只需将一个常开按钮开关并联于上电复位电路,按下开关一定时间就能使RST引脚端为高电平,从而使单片机复位。RST AT89S52RST 89S52+5VCR+5VR1R2C图2-3 上电复位电路 图2-4 上电按钮复位电路2.2 A/D转换单元电路设计DAC0832的电路图如图2-5所示图2-5DAC0832是一个8位D/A转换器,单电源供电,从+5V+15V均正常工作,基准电压的范围为+_10V,电流建立时间为1us,CMOS工艺,低功耗20mW。因为输出量程为10V,VREF基准电压范围为-10+10V,基准电压可以为5.12V,这样,在DAC0832的8脚输出电压的分辨率为:5.12V/256=0.02V即D/A输入数据端每增加1,则电压增加0.02V。D/A的电压输出端接运算放大器OP27的输入端,放大器的放大倍数为5,才能得到输出电压的电压分辨率:0.02V5=0.1V这样,当调节电压时,即以每次0.1V的梯度增加或降低。主要特性:1)8位分辨率。2)电流建立时间1us:3)数据输入可采用双缓冲,单缓冲或直通方式:4)输出电流线性度可在满意程下调节5)逻辑电平输入与TTL电平兼容6)单一电源供电(+5V+15V)7)低功耗,20mW。各引脚定义如下:片选信号输入端,低电平有效。输入寄存器的写选通输入端,负脉冲有效(脉冲宽度应大于500ns)。当CS为0,ILE为1,WR1有效时DI0DI7状态被锁存到输入寄存器。DI0DI7数据输入端,TTL电平,有效时间应大于90 ns。VREF基准电压输入端,电压范围为-10V+10V。RFB反馈电阻端,芯片内部此端与IOUT1接有一个15千欧的电阻。IOUT1电流输出端,当输入全为1时,其电流最大。IOUT2电流输出端,其值与IOUT1端电流之和为一个常数。数据传输控制信号输入端,低电平有效。DAC寄存器的写选通输入端,负脉冲有效(脉冲宽度应大于500ns)。当XEFR为0且WR2有效时,输入寄存器的状态被传到DAC寄存器中。ILE数据锁存允许信号输入端,高电平有效。VCC电源电压端,电压范围+5V+15V.GND模拟地和数字地,模拟地为模拟信号与基准电压参考地,数字地为工作电源地与数字逻辑地(两地最好在基准电压电源处一点共地)。DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。实验线路如图2-6所示。 图2-6在本设计中,我们采用OP07运算放大器将DAC0832输出的模拟电流量转化为电流,为了提高电路最终输出的精度,在调节基准电压的时候,我们引用了一个LM336稳压管,将基准电压精确调整到2.56V,详见电路图2-7图2-72.3 电压预设单元电路利用44的矩阵键盘,实现从021.5V的电压预设,再用一个独立键盘实现位选通和预设电压确定的功能。2.4 显示单元电路1 LCD1602主要技术参数显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm2 引脚功能说明LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 表2 引脚接口说明表第1脚 VSS为地电源第2脚 VDD接5V第3脚 VL为液晶显示器对比度调整端,接正电源时,对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚 RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器第5脚 R/W为读写信号线,高电平时进行读操作,低电平时进行写操作,当RS和R/W共同为低电平时,可以写入指令或者显示地址,当RS为低电平R/W为高电平时,可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚 E端为使能端,当E端由高电平天跳为低电平时,液晶模块执行命令。第714脚 D0_D7为8位双向数据线第15脚 背光源正极第16脚 背光源负极 2.5 稳压输出单元电路 电路图如下:从DAC0832输出的模拟量为电流,通过第一个OP07及其外围电路将模拟的电流量转化为电压,再经过第二级的OP07将电压稳定放大十倍,经二级运算放大器输出口输出的电压与液晶屏上显示的基本保持一致。第三章 测试方法与测试结果3.1 测试仪器万用表3.2 测试方法在OP07的6脚输出端上测量电压3.3 测试结果显示电压(V)测量电压(V)111.51.5222.52.533.013.53.5444.54.5155.015.55.5166.016.56.5477.017.57.5188.018.58.5299.029.59.521010.0110.510.521111.0111.511.521212.0112.512.52131313.513.52141414.514.51515.0215.515.521615.9916.516.521717.0217.517.531818.0118.518.521919.0419.519.51202020.520.5212121.521.4第四章 讨论4.1 主要成果本次设计在自己的努力,同学的帮助,老师的指点下已全部完成,结果重要,过程也很珍贵,因为好的结果必然得经过一个艰辛的过程,而从这个艰辛的过程中我们获得了珍贵的经验和教训,仔细认真的总结将对自己是个质的提升。现先将此次设计的成果简要汇报如下:1.完整的数控直流稳压电源设计方案;2.模块化的 “C”源代码;3.电压最小调整范围: Sv=0.1V;4.采用1602液晶显示作为按键输入的设定电压;5.输出电压范围: 0-21.5v,每个电压值可以通过键盘 输入直接控制;6.支持系统扩展,低成本;4.2 展望下一步的工作可以在本设计的基础上进一步的完善。可以增设过流保护,过压保护和声光报警等电路,还可以通过修改软件增大输出电压范围,以便适用于更多的电子设备供电。参考文献1 宋开军,杨国渝.智能稳压电源设计J.电子技术,2003(10):48-49.2 数控直流稳压电源EB/OL. .盛方单片机整理3 冯泽虎,朱相磊,滕春梅.基于单片机的可编程直流稳压电源设计J.中国高新技术企业,2009(21):36-37.4 高松.基于单片机的数控直流稳压电源J.陶瓷研究与职业教育,2008(2):43-44.5 谢明亮,马学强,苏向阳.数控直流稳压电源J.数字技术与应用,2009(12):10-11.6 Dave Garza .The 8051 MicrocontrollerM. America:Library of Congress Cataloging-in-PublicationData.1995,30-40.7 DAC0830/DAC0832 EB/OL. /Data/DAC0832.html.8 李洪明.LM324四运放的应用J.无线电,1991(9):39-40.9 胡桂阳,卢月琼,李昌禧.用单片机制作的直流稳压可调电源J.电子世界,2005(12):24-25.10 刘桂英,刘高潮,黄国华.串联型直流稳压电源的仿真分析J.广西师范学院学报,2004,21(2):55-59.11 赵亮.液晶显示模块LCD1602应用J.电子制作,2007(3):58-59. 12 高伟.AT89C51单片机原理及应用(第一版)M.北京:国防工业出版社,2008,71-7513 潘永雄.新编单片机原理与应用M.西安:西安电子科技大学出版社,2007,19-25,65-66.14 江太辉.MCS-51系列单片机原理与应用M.广州:华南理工大学出版社,1900,40-45.15 汤竞南,沈国琴.51单片机C语言开发与实例M.北京:人民邮电出版社,2008,1-4,89-9516 张萌,和湘,姜斌.单片机应用系统开发综合实例(第一版)M.北京:清华大学出版社,2007,94-97.附录一:整机电路附录二 PCB电路图附录三 原程序清单#include/*-变量定义-*/#define uchar unsigned char#define uint unsigned intsbit kz=P27; /端口定义sbit rs=P30;sbit en=P31;sbit DAC_CS=P32;sbit DAC_WR=P36;uchar code table1= JING SAI 2 ZU ; /初始化显示uchar code table2= Volt :05.0V ; /初始化电源uchar s1,s2,s3,keynum,volt,temp;/*-函数全称: void delay(uint z)函数功能: 延时函数 (毫秒级)输 入:unit z返 回:调用函数: 注意事项:提示说明:-*/void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);/*-函数全称: void write_com()函数功能: 写指令到LCD1602输 入:uchar com返 回:调用函数: 注意事项:提示说明:-*/void write_com(uchar com) rs=0; en=0; P1=com; delay(5); en=1; delay(5); en=0;/*-函数全称: void write_date()函数功能: 写数据到LCD1602输 入:uchar data返 回:无调用函数: 无注意事项:提示说明:-*/void write_date(uchar date) rs=1; en=0; P1=date; delay(5); en=1; delay(5); en=0;/*-函数全称: void Init()函数功能: lcd1602初始化子程序输 入:无返 回:无调用函数: 无注意事项:提示说明: w-*/void Init() uchar num; P1=0xff; en=0; write_com(0x38); /置地址write_com(0x0c); write_com(0x06); /光标右移write_com(0x01); /清显示write_com(0x80); /lcd DDRAM设置 for(num=0;num16;num+) write_date(table1num);delay(50);write_com(0x80+0x40); /lcd第二行 for(num=0;num14;num+)write_date(table2num);delay(50);/*-函数全称: void write_voltage()函数功能: 写电压到lcd1602输 入:uchar add,uchar dat返 回:无调用函数: 无注意事项:提示说明:-*/void write_voltage(uchar add,uchar dat) write_com(0x80+0x40+add); /确定第二行位置 write_date(0x30+dat); /写数据 /*-函数全称: void da0832out()函数功能: 写电压数据到DAC0832输 入char dadata返 回:无调用函数: 无注意事项:提示说明:-*/void da0832out(uchar dadata) DAC_CS=0; P0=dadata; DAC_WR=0; delay(5); DAC_WR=1; DAC_CS=1; /*-函数全称: void keyscan()函数功能: 键盘扫描子程序输 入char dadata返 回:无调用函数:write_com();write_voltage(); da0832out();注意事项:提示说明:-*/ void kongzhi(uchar ss) /对应液晶的显示位置if(keynum=1) /操作0.01位 s1=ss; write_com(0x80+0x40+11); /写0.1 位 write_com(0x0c); / 无光标write_voltage(11,s1); /写电压 if(keynum=2) /操作0.1位 s2=ss; write_com(0x80+0x40+9); /写0.1 位 write_com(0x0c); / 无光标write_voltage(9,s2); /写电压 if(keynum=3) /操作个位 s3=ss;write_com(0x80+0x40+8); /写个位 write_com(0x0c); /无光标 write_voltage(8,s3); /写电压 /* if(keynum=4) /操作十位 s4=ss;write_com(0x80+0x40+8); /写十位 write_com(0x0c); /无光标 write_voltage(8,s4); /写电压 */void keyscan() uint flag; if(kz=0) delay(5); if(kz=0) keynum+; while(!kz); /按住置一直到放手 if(keynum=1) /等于 1 write_com(0x80+0x40+11); /置数据显示地址 write_com(0x0f); /光标在该位闪烁 if(keynum=2) /等于 1 write_com(0x80+0x40+9); /置数据显示地址 write_com(0x0f); /光标在该位闪烁 if(keynum=3) /deng=2,ce jia 1 write_com(0x80+0x40+8); /置数据显示地址 write_com(0x0f); /* if(keynum=4) /deng=3,ce jia 1 write_com(0x80+0x40+8); /置数据显示地址 write_com(0x0f); */ if(keynum=4) /若等于 4, keynum=0; write_com(0x0c); /测无关标 delay(5); volt=100*s3+10*s2+s1; da0832out(volt); /输出电源值 if(keynum!=0) flag=1; P2=0xfe; if (flag=0)goto loop; temp=P2;temp=temp&0xf0;while(temp!=0xf0)delay(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0)temp=P2;switch(temp)c

温馨提示

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

评论

0/150

提交评论