电子设计大赛-直流数控稳压电源(共24页)_第1页
电子设计大赛-直流数控稳压电源(共24页)_第2页
电子设计大赛-直流数控稳压电源(共24页)_第3页
电子设计大赛-直流数控稳压电源(共24页)_第4页
电子设计大赛-直流数控稳压电源(共24页)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上电子设计大赛参赛题目:数控直流稳压电压源设计参赛队员:王默超 徐建 孟祥举 李艳娇 张春娜摘要:本系统以直流电压源为核心,ATC89S52 单片机为主控制器,通过键盘来设置直流电源的输出电压,设置步进等级可达0.1V,输出电压范围为09.9V,输出电流为500mA,并 由数码管显示输出电压值。由“”、“”两键分别控制输出电压步进增减,并且输出电 压可预置在09.9V 之间的任意一个值。扩展输出电压种类后可输出三角波、梯形波、锯齿波、方波等波形。本系统由单片机程控输出数字信号,经过D/A 转换器(DA0832)输出模拟电流量,再经过运算放大器隔离放大输出模拟电压量,控制

2、稳压芯片LM7805 电压的变化而输出不同的电压。实际测试结果表明本系统输出电压值精确度较高。本系统实际应用于需要高稳定度小功率恒压源的领域。 关键词:数控直流电源,ATC89S52,DAC0832,OP07,精密基准源LM336-2.5一.绪论1.1 设计背景随着电子技术的迅速发展,各种电子产品层出不穷,不过不管是哪种电子产品或设备,都需要电源供电才能进行正常的工作,而且对于不同的产品或设备来说,其需要不同的工作电源,但是往往市面上的很多电源模块都只能输出固定而单一的电压,从而不能提供各种不同数值的电压,因此,在这里做一个数控直流电源的设计。该数控电源采用步进调整方式,调整范围为0.0V9.

3、9V,调整手段采用按键进行调整,当需要改变电压值时,启动数控系统,输入想要得到的电压值,再按下确定键,即可输出相应的电压。该系统采用单片机作主控器件,结合软件和硬件设计方法,使该系统的结构较简单,可控性强,使用也很方便。1.2 设计任务1. 基本功能实现:(1) 可输出电压:范围09.9V,步进0.1V,纹波不大于10mV;(2) 可输出电压值由数码管显示;(3) 由“+”、“-”两键分别控制输出电压步进增减;(4) 为实现上述几部件工作,自制一稳压直流电源,输出输出 15v,+5v;2扩展功能与创新:(1)输出电压可预置在09.9V之间的任意一个值; (2)扩展输出电压种类(比如三角波等);

4、(3)最大输出电流可达1.5A;(4)负载电流在01.5A间变化时输出电压的变化量不超过0.1V; (5)设计并制作一个电子负载,用于测试上述电源的负载调整率,电子负载恒定电流的可调范围为0.1A1.5A。二.方案论证2.1方案一说明把220V 的交流电经过变压,整流,滤波,调整后输出,对输出电压的控制是通过键盘给 单片机ATC89S52 输入数据,经过DAC0832 转换输出-0.990V 的电压。再经过运放放大比较,通过L7805 输出09.9V 的电压并显示在数码管上。方案一原理框图2.2方案二说明通过键盘给单片机ATC89S52 输入一个数据,这个数据在数码管上显示出来,单片机把这个数

5、据给DAC0832 转换成模拟信号后经过运算放大器的处理后最终输出。方案二原理框图比较这两种方案,两种方案均是通过按键命令单片机给DAC 数字量然后经过DAC 和运放输出模拟量。但第一种方案又将输出量采集回来与放大后的电压量比较使得输出电压更加精准,同时方案一是经过LM7805 稳压芯片调整稳压,7805输出电流最大可达到1.5A,使得输出电流 能够达到要求。而方案二是经过运放放大后的电压直接输出,电流很小。所以采用第一种设计方案完成设计任务。三.硬件系统设计3.1电源设计作为一个电路系统来说,电源当然是必不可少的,这里需要三电源供电,即+5V、15V。+5V供数字部分使用,15V供模拟放大部

6、分使用,三种电压都共用一个地。电源电路如图所示,首先采用带中间抽头的15V变压器,获得15V的交流电压,再通过整流、滤波电路,获得15V的直流电压,这时已经获得了两个电压值,再利用所获得的电压进行处理,即可获得+5V电压,这里采用三端稳压器LM7805,LM7805的稳压输出值为+5V,正好符合要求,它的体积较小,且只有三个引脚,即输入、接地和输出,接线比较方便,重要的是用它来降压可使电路结构很简单。3.2 单片机控制电路设计我们采用8052系列的AT89S52作为CPU,AT89S52是一种带4K字节FLASH可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高

7、密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。主要特性1)与MCS-51兼容 ;2)8位字长的CPU;3)可在线ISP编程的4KB片内FLASH存储器,用于程序存储,可擦写1000次;4) 256B的片内数据存储器,其中高128字节地址被特殊功能寄存器SFR占用;5)可编程的32根I/O口线(P0P3);6)2个可编程16位定时器;7)一个数据指针DPTR;8)1个可编程的全双工串行通信口;9)具有“空闲”和“掉电”两种低功耗工作方式;10)可编程的3级程序锁定位;11)工作电源的电压为5(10.2)V;12)振荡器最高频率为24MHz;13)编程频率3 24

8、MHz,编程电流1mA,编程电压为5V。3.3 数模转换电路设计由于数控电源输出的是模拟信号,而单片机输出的是数字信号,所以,必须要通过数/模转换。数/模转换芯片众多,有电流输出,也有电压输出,分辨率也有所不同,有8位,12位,16位等等,不同的分辨率,价格也有很大的差距,因数控电源输出的精确度要求不是很高,且从成本上考虑,这里使用8位的数/模转换器DAC0832即可。3.3.1 DAC0832的结构及引脚功能DAC0832是用CMOS工艺制成的8位D/A转换芯片,它主要包括两个8位寄存器和一个8位D/A转换器构成,其两个寄存器可以进行两次缓冲操作,使器件的操作有更大的灵活性。DAC0832芯

9、片采用20引脚双列直插封装,各引脚功能如下: CS:片选信号(低电平有效)。ILE:输入锁存允许信号。WR1:写信号1(低电平有效)。当ILE=1时,且当CS与WR1同时有效才能把数字量锁存到8位输入寄存器中;当WR1为高电平时输入数据锁存到输入寄存器中。以上三个信号构成一级输入锁存。XFER:控制传送信号。WR2:写信号2(低电平有效),用于将锁存在输入寄存器数据送到DAC寄存器中,只有在XFER和WR2同时有效时才把输入寄存器中的数据锁入DAC寄存器中。这样构成了二级锁存。D0D7:8位数据输入线,TTL电平。Iout1和Iout2:输出电流。其中Iout1在D/A寄存器内容全为1时,输出

10、电流最大;Iout2在D/A寄存器内容全为0时,输出电流最大,Iout1和Iout2之和为常数。AGND:模拟信号地。DGND:数字地。UREF:基准电压。一般为-10V+10V。Rfb :反馈电阻。该电阻被制作在芯片内,用作运算放大器的反馈电阻。3.3.2 DAC0832的数字接口因在本系统中,单片机不仅要送D/A转换数据,还要送显示数据,且都是和P0口相连,而且,数控电源的转换速率要求不高,输出也只有一路,因此,本系统采用单缓冲工作方式DAC0832与单片机的连接电路图如图3.1所示。图 3.1 DAC0832与单片机的连接电路图 当需要进行转换时,CS和WR有效,单片机从P0口输出数据到

11、DAC0832上并启动转换,这时,DAC0832将转换后的电流值从Iout1和Iout2输出。3.3.3 DAC0832的模拟输出DAC0832转换器输出的是电流信号,因此必须要经过电流-电压转换才能输出电压信号。DAC0832是8位数/模转换器,基准电源为+5V时,其输出电压的计算公式为D输入数据;u输出电压.因为DAC0832的分辨率不是很高,所以转换精度必然有些欠缺,不过由于数控电源的电压输出范围为0.0V9.9V,步进电压调整值为0.1V,而DAC0832的输出模拟电压步进值约为0.02V,若再放大5倍,则刚好使数控电源的步进值为0.1V,当输入数据为65H(十进制101)时,输出电压

12、u1.98V,再放大5倍后约为9.9V,即为要求的最大值。因此,DAC0832转换器的数据输入范围为0065H,以提供100个调整步进。3.4 运算放大部分设计 预算放大电路选用双电源供电的高精度运算放大器OP-07。将其连成反向比例放大电路用。于反向和放大D/A 转换后输出的负电压,将此电压反向后放大10倍得到需要的0-9.9V。 为防止通过电源内阻造成低频振荡或高频振荡需要在OP-07 正负供电电源的输入端对地一端分别加入一个10mF 的电解电容和一个0.01mF-0.1mF 的高频滤波电容。3.5稳压基准源设计 稳压基准源采用LM336-2.5稳压芯片来稳定电压,将电压稳定在2.56V。

13、然后提供给DAC,就可以使得8位DAC 的最小精度达到0.01V这个精确值,从而减小转换误差。3.6按键部分设计 为使得编程简单,按键采用四个独立式按键Key0-Key3。分别接于单片机的P2.0-P2.3 口。其中Key0 为功能键,采用自锁按键。实现功能一:预设电压模式和步进模式电压的转换;实现功能二:输出波形的确定和三角波,梯形波,锯齿波和方波的转换。 Key1 键和Key2 键集步进和预设功能为一体,由Key0 功能键配合使用。Key3 键为波形调整键,通过Key3 可选择输出的波形类型。3.7显示部分设计 LED显示电路有静态显示和动态显示,静态显示是指所有的LED数码管同时显示,这

14、种显示方法使得软件结构比较简单,显示效果好,不过电路结构比较复杂,占用处理器的端口较多,功耗也较大。动态显示是指处理器定时地对LED数码管扫描,数码管分时工作,每次只有一个数码管显示,由于扫描的频率比较高,又因人眼的视觉暂留,所以,看起来,似乎所有的数码管同时在显示,采用这种方法的电路结构变得较简单,占用处理器的端口较少,功耗也较低,不过软件结构比较复杂,必须要在软件中消隐,而且显示的效果受到扫描频率的影响。数码管采用四位一体共阴极数码管,考虑到节省I/O 口,其驱动电路由两片74HC573 锁存器来实现。3.8功率放大部分设计 电压经过7805 比较输出后再经过TIP122 和TIP127

15、搭建的推挽放大将功率二次放大。四.系统软件调试部分4.1预设电压流程图电压预设断开Key0Key1”闭合Key0输出电压4.2主程序流程图是是否变换波形开始初 始 化否是否输出波形波形输出确定波形种类选择否是是否跳出波形输出是是否步进“”输出电压按Key1 Key2实现步进“”否是按下功能键确定输出按Key1 Key2预置数值功能键 设置是否预置电压否4.3输出波形流程图按下Key3键选择波形 数码管显示预设波形代码闭合Key0键确认输出波形输出波形再次按下Key3再次确认输出断开Key0键五.系统功能指标及参数5.1 系统调试(1)电源部分调试:先断开所有除输入电源以外的其他电源接入线,在外

16、部电源输入部分加入正负20 V的压, 通过L7815 的1脚,和L7915 的2脚,后用万用表测量L7815 的3脚为15V,L7915D 3 脚为 -15V,L7805 的3脚为+5V,同时测试单片机,DAC0832,放大器等底座接口供电。电源部分正常。 (2)单片机系统测试:编写简单程序(点亮发光二极管)测试单片机系统正常。(3)调试LED 显示:编制简单的显示小程序验证正常。 (4)按键测试:编写简单程序验证正常。 (5)DAC 测试:调整基准电压使输入255 时输出电压-2.56V;输入0 时输出电压为0。 (6)放大器调试:首先使输入电压量为0,调整OP07 的1脚和8脚之间的调零电

17、阻,使零飘为0。然后使输入电压量为设计最大值,调整OP07的R电阻使得放大倍数为10倍。5.2 系统测试测试时间:2011年7月8日星期五测试数据表格(常温下)123456789预置 电压1.002.003.004.005.006.007.008.009.00实测 电压1.051.942.963.914.945.976.957.948.905.3 系统误差分析从电路原理图分析得出,系统的主要误差有: (1)自制稳压电源电压不稳,影响系统供电和LM336 的基准精度。 (2) DAC0832 的量化误差,和由于LM336-2.5 所给出的VREF不是准确的2.56V 造成DAC 的转换精度不是0

18、.01V。 (3)放大器放大的线性失真引起的误差,以及经过0 点的调零误差。六.附录名称型号封装数量单位三抽头双输出变压器18V 50W1个集成电路LM7805直插2个集成电路KA7815直插1个集成电路KA7915直插1个集成电路OP07DIP-83个集成电路DAC0832DIP-201个集成电路74HC573DIP-202个集成电路LM336-2.5直插1个集成电路AT89S52DIP-401个数码管共阴直插1个晶振12M直插1个二极管IN4007直插5个整流桥KBL406直插1个电位器102直插1个电位器103直插1个电位器203直插3个电位器503直插1个电位器104直插1个按钮开关直

19、插4个电解电容4700uf 35V直插2个电解电容4700uf 25V直插2个电解电容4700uf 16V直插1个电解电容10uf 50V直插6个瓷片电容104直插10个瓷片电容30PF直插2个瓷片电容150PF直插2个排阻10K直插1个电阻100K直插个电阻50K直插个电阻1K直插个附录一 使用原件清单附录二 电路原理图附录三 程序清单#include #define uint unsigned int /无符号字符 8位 #define uchar unsigned char /无符号整数 16位 sbit dula=P26; /锁存器段选 sbit wela=P27; /锁存器位选 sb

20、it lcdrs=P31; /1602数据命令选择 sbit lcden=P30; /1602使能信号端 sbit key1=P23; /+键 sbit key2=P22; /-键 sbit key3=P21; /波产生键 sbit key0=P20; /功能键 sbit wr_da=P25; /DAC选通 uchar num,num0,num1,zsys,xsys,bxsz; uchar code table_x= /编码表 无点数码管显示 0x3f,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0f,0x7f,0x5f; uchar code table_z= /编码表

21、带点数码管显示 0xbf,0x8c,0xf6,0xde,0xcd,0xdb,0xfb,0x8f,0xff,0xdf; void delay(uint z); void display_bjys(uchar zsys,uchar xsys); void display_bxsz(uchar bxsz); void trigle(); void trap(); void saw(); void square(); void keycan_bjys(); void keycan_bxsz(); void write_com(uchar com); void write_date(uchar date

22、); void init_kjhm(); void init_bjhm(); void init_yshm(); void init_bxxzhm(); void init_trigle(); void init_trap(); void init_saw(); void init_square(); void init(); void main() init_kjhm(); init(); /初始化子程序 while(1) dula=1; P1=0x3f; dula=0; wela=1; P1=0xf0; wela=0; if(key1=0|key2=0) if(key0=0) init_b

23、jhm(); if(key0!=0) init_yshm(); while(1) keycan_bjys(); if(key3=0) dula=1; P1=0xff; dula=0; wela=1; P1=0xff; wela=0; if(key3=0) break; if(key3=0) init_bxxzhm(); while(1) keycan_bxsz(); if(key1=0|key2=0) dula=1; P1=0xff; dula=0; wela=1; P1=0xff; wela=0; if(key1=0|key2=0) break; void delay(uint z) /延时

24、函数 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void display_bjys(uchar zsys,uchar xsys) /预设&步进 数 dula=1; P1=table_zzsys; dula=0; P1=0xff; wela=1; P1=0xfe; wela=0; delay(1); dula=1; P1=table_xxsys; dula=0; P1=0xff; wela=1; P1=0xfd; wela=0; delay(1); void display_bxsz(uchar bxsz) /波形设置 数码管扫描子函数 dula=1;

25、 P1=table_xbxsz; dula=0; P1=0xff; wela=1; P1=0xf0; wela=0; delay(1); void keycan_bjys() /预设&步进 按键扫描 if(key1=0) /按key1键加数 delay(5); if(key1=0) num+; if(num=100) num=0; while(!key1); delay(5); while(!key1); if(key2=0) /按key2键减数 delay(5); if(key2=0) num-; if(num=-1) num=99; while(!key2); delay(5); whil

26、e(!key2); zsys=num/10; xsys=num%10; display_bjys(zsys,xsys); if(key0=0) /预设功能 P0=num; wr_da=0; delay(1); void keycan_bxsz() /波形 按键扫描 if(key3=0) delay(5); if(key3=0) num1+;/num1自加 选择波形 if(num1=5) num1=1; bxsz=num1; display_bxsz(bxsz); while(!key3); delay(5); while(!key3); if(key0=0)/功能键按下 确定波形输出 if(n

27、um1=1) init_trigle(); while(1) trigle(); if(key0!=0) break; if(num1=2) init_trap(); while(1) trap(); if(key0!=0) break; if(num1=3) init_saw(); while(1) saw(); if(key0!=0) break; if(num1=4) init_square(); while(1) square(); if(key0!=0) break; void init_kjhm() /初始化 1 开机显示画面函数 dula=0; wela=0; lcden=0;

28、write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_bjhm() /初始化2 步进电压画面显示函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_yshm() /初始化3 预设电压画面显示函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_bxxzhm() /初始化4 波形设置画面显示函数 dula=0; wela=0; lcden=0; write_c

温馨提示

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

评论

0/150

提交评论