简易数控直流电源的设计.doc_第1页
简易数控直流电源的设计.doc_第2页
简易数控直流电源的设计.doc_第3页
简易数控直流电源的设计.doc_第4页
简易数控直流电源的设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

简易数控直流电源的设计组员:通信-2011136103俞力 通信-2011136125叶明坤 电自-2011126234黄娇摘要:该电源系统以ATMEGA16单片机为核心控制芯片,实现数控直流稳压电源功能的方案。设计采用8位精度的DA转换器DAC0832,运算放大器UA741构成电流放大电路,实现输出电压范围为09.9V,电压步进0.1V的数控稳压电源,另外该方案只采用了两按键实现输出电压的增减,显示部分我们采用2个数码管来显示输出电压值。关键词:数控直流电源,单片机最小系统,DAC0832数模转换1.任务要求分析1.1 设计任务设计出有一定输出电压范围和功能的数控电源。其原理示意图如下: 图1 任务要求1.2.设计要求1基本要求 (1)输出电压:范围09.9V,步进0.1V,纹波不大于10mV;(2)输出电流:500mA; (3)输出电压值由数码管显示; (4)由“”、“”两键分别控制输出电压步进增减; (5)为实现上述几部件工作,自制一稳压直流电源,输出15V,5V。2发挥部分 (1)可通过一个扫描式矩阵键盘对输出电压进行预置在09.9V之间的任意一个值; (2)用按键可进行加减电压值,实现输出电压变化(步进0.1V不变); (3)扩展输出电压种类(比如三角波,方波)。 2.1 系统设计框图自制稳压电源模块D/A转换模块单片机控制电路模块按键控制模块数字显示模块功率放大模块 图2 系统框图2.2 系统设计思路首先根据设计要求确定系统的六大模块。将一个系统的设计划分成一系列模块,然后进行各部分电路的设计。然后经过方案比较确定了各个模块的基本电路:按键控制模块输入某个信号给单片机最小系统,单片机通过程序产生不同的电压值,利用DAC0832数模转换,实现不同电压值的输出及稳定;利用单片机对数码管显示进行控制;控制电路由单片机最小系统及外围电路组成,单片机采用AVR MEGA16,通过I/O口进行对系统的控制;自制电压电源为系统提供需要的工作电压。系统程序用C语言在Codevision环境下编写。程序共分为四个部分:主函数、按键扫描函数、延时子函数、数码显示子函数。编写完成并编译无误后由串口下载电路下载到单片机中进行调试。2.3主要器件介绍2.3.1 ATmage16的简介ATmega16是AVR系列单片机中比较典型的芯片,其主要特点有:(1)采用先进RISC结构的AVR内核(2)片内含有较大容量的非易失性的程序和数据存储器(3)片内含JTAG接口(4)宽电压、高速度、低功耗(5)片内含有1M/2M/4M/8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用等等。 ATmage16的引脚分析 其外部引脚封装如图所示 图3 ATmage16 外部引脚与封装示意图其中,各个引脚的功能如下:(1) 电源、系统晶振、芯片复位引脚Vcc: 芯片供电(片内数字电路电源)输入引脚,使用时连接到电源正极。AVcc:为端口A和片内ADC模拟电路电源输入引脚。不使用ADC时,直接连接到电源正极;使用ADC时,应通过一个低通电源滤波器与Vcc连接。AREF:使用ADC时,可作为外部ADC参考源的输入引脚。GND: 芯片接地引脚,使用时接地。XTAL2:片内反相振荡放大器的输出端。XTAL1:片内反相振荡放大器和内部时钟操作电路的输入端。RESET:RESET为芯片复位输入引脚。在该引脚上施加(拉低)一个最小脉冲宽度为1.5us的低电平,将引起芯片的硬件复位(外部复位)。(2) 32根I/O引脚,分成PA、PB、PC和PD四个8位端口,他们全部是可编程控制的双(多)功能复用的I/O引脚(口)。四个端口的第一功能是通用的双向数字输入/输出(I/O)口,其中每一位都可以由指令设置为独立的输入口,或输出口。当I/O设置为输入时,引脚内部还配置有上拉电阻,这个内部的上拉电阻可通过编程设置为上拉有效或上拉无效。如果AVR的I/O口设置为输出方式工作,当其输出高电平时,能够输出20mA的电流,而当其输出低电平时,可以吸收40mA的电流。因此AVR的I/O口驱动能力非常强,能够直接驱动LED发光二极管、数码管等。2.3.2 DAC0832简介DAC0832是一款采用CMOS工艺制成的单片电流输出型8位数 / 模转换器,图是它的逻辑框图和引脚排列。DAC0832有三种工作方式:不带缓冲工作方式,单缓冲工作方式,双缓冲工作方式。 图4 DAC0832的逻辑框图和引脚排列D/A转换器(DAC)输入的是数字量,经转换输出的是模拟量。DAC的技术指标很多,如:分辨率、满刻度误差、线性度、绝对精度、相对精度、建立时间、输入/输出特性等。 分辨率:DAC的分辨率反映了它的输出模拟电压的最小变化量。其定义为输出满刻度电 压与 的比值,其中 n 为DAC的位数。如:8位DAC的满刻度输出电压为5V,则其分辨率为 。2.3.3 UA741运放uA741M,uA741I,uA741C(单运放)是高增益运算放大器,用于军事,工业和商业应用.这类单片硅集成电路器件提供输出短路保护和闭锁自由运作。 这些类型还具有广泛的共同模式,差模信号范围和低失调电压调零能力与使用适当的电位。 图5 UA741封装图uA741M,uA741I,uA741C芯片引脚和工作说明:1和5为偏置(调零端),2为正向输入端,3为反向输入端,4接地,6为输出,7接电源 8空脚3. 系统硬件设计方案3.1 稳压电源部分 图6电源电路 该电路用了7805和7905,7915制成了两组稳压直流电源分别得到15V和+5V的电源。对于滤波电容的选择,要考虑:整流管的压降;7915最小允许压降Ud;电网波动10%。从而允许纹波的峰峰值按近似电流放电计算,并设(通角),则 选取滤波电容C=3.2单片机控制电路 作为控制系统核心的单片机采用AVR MEGA16,其最小系统由主控芯片,时钟振荡电路组成,如图所示。 图7 单片机最小系统原理图 AVR MEGA16是单一+5V供电,包括CPU、存储器(ROM、RAM)、I/O接口等计算机的基本组成。该单片机有4个8位并行I/O口,P0P3,共32根口线。每个端口都包括:锁存器、输出驱动器、三态缓冲器以及控制电路。在XTAL1、XTAL2跨接晶振和两个电容就构成了自激振荡器,起微调和稳定作用。本实验中MEGA16外接晶振作为时钟频率。控制电路利用PA口作为D/A转换芯片DAC0832的接口,再经过功放,输出设定的电压值,PC口作为数码管显示的接口,PB0,PB1口作为按键的接口,PD0,PD1口作为数码管的片选接口,数码管显示的示数应与输出电压值相同。3.1.3 DAC0832数模转换及功放的工作原理 当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号ILE引脚接5V时,如图3.1.3所示,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。这样,DAC就可直接根据D0-D7口的输入值变化。 单片机向DAC0832发送数字编码,产生不同的输出。由于DAC0832的输出量为电流量需要用运放将电流信号转变为电压信号。为了实现电压值稳定输出,还需要通过运放实现。因为输出电压量程为15V,VREF基准电压范围为-15V-+15V,基准电压可以为5.12V,这样在DAC0832的8脚输出电压的分辨率为:即D/A输入数据端每增加1,电压增加0.02V。 D/A的电压输出端接放大器UA741的输入端,放大器的放大倍数为5 ,才能得到输出电压的电压分辨率:0.02V5=0.1V,这样当调节电压的时候,以每次0.1V的梯度增加或者降低电压。在通过UA741运放的电流放大作用,提高设计电压源的带载能力。其连接电路图如图所示。 图8 数模转换及功放部分3.1.4 调整输出的设计 调整输出级采用采用运放作射极跟随器,使调整管的输出电压精确地与D/A转换器输出电压保持一致。输出电压的调整,主要是运用射极输出器发射极上所接的100k电位器来完成的。3.1.5 按键控制部分 图9按键控制部分此部分电路主要用多按钮开关作为电压调整键,通过按键可以预置电压,扫描电压,增加或减少电压值,还可以进行波形变化,进而反馈到单片机控制系统,使数码管显示相应的数值。3.1.6 数码管显示部分 鉴于实验要求输出两位电压值,故采用两个七段共阴数码管显示输出。用单片机控制使数码管显示相应的数字,单位为V。在实际的连线过程中,一定要注意线与线之间的对应关系,否则会导致显示错误。 图10 数码管显示部分 仿真电路1.自制稳压电源电路:为整个电路提供“+15V”,“15V”,“+5V”电压。 图112按键,显示,数模转换,调节等电路。 图12 四 软件设计与流程图 程序流程图开始系统初始化+键按下扫描按键显示5.0YN执行电压增加子程序Y执行电压减小子程序-键按下NN 图 135 程序如下#include /和单片机类型相对应的头文件,选择Atmega16做实验;#include /延时头文件#include unsigned char CNT = 50; /记数值unsigned char j,flag=0;unsigned int temp1=0;flash unsigned char table10 = 0x3f, /0 0x06, /1 0x5b, /2 0x4f, /3 0x66, /4 0x6d, /5 0x7d, /6 0x07, /7 0x7f, /8 0x6f, /9;void fangbo(void) unsigned char t; for(t=0;t100;t+) PORTA=99; delay_us(702); for(t=0;t100;t+) PORTA=0; delay_us(702); void sanjiaobo(void) unsigned char s; for(s=0;s0;s-) PORTA=s; delay_us(702); void InitIo(void) /端口初始化程序 PORTA = 0xff; DDRA = 0xff; PORTB = 0xFF; DDRB = 0xF0; /B端口设为输入方式,其他端口为输出方式 PORTC = 0xff; DDRC = 0xff; PORTD = 0xff; DDRD = 0x0f; void display(unsigned char i) /数码管扫描显示 PORTB.5 = 0; PORTB.4 = 1; PORTC = tablei/10; delay_ms(1); PORTC.7 = 1; /显示小数点 delay_ms(1); PORTB.4 = 0; PORTB.5 = 1; PORTC = tablei%10; delay_ms(1);void Control(unsigned char CNT) /端口A的数值输出给DAC0832,控制输出电压值 PORTA=CNT;unsigned char KEYSCAN(void) /获取按键值 unsigned char i,temp,temp2=0xff; for(i=0;i4;i+) PORTD=(1=100) temp1=0; if(key 10) temp1=temp1*10+key; /PORTB.5=1; /CNT=temp1; /PORTC=table(unsigned char)temp1; /delay_ms(200); if(key = 10) if(flag=0) while(CheckKey() != 10) sanjiaobo(); ; flag=1; else if(flag=1) while(CheckKey() != 10) fangbo(); ; flag=0; if(key = 11) /确定键 CNT=(unsigned char)temp1; temp1=0; if(key = 12) /UP键 if(CNT!= 99) CNT+; /记数值加一,电压值加0.1V,数码管显示值加0.1 if(key = 13) /DOWN键 if(CNT != 0) CNT-; /记数值减一,电压值减0.1V,数码管显示值减0.1 if(key = 14) /BACK键 CNT=50; /记数值归50,电压值5.0V,数码管显示5.0V if(key = 15) /SCAN键 for( CNT=0;CNT100;CNT+) Control(CNT); for(j=0;j50;j+) display(CNT); if(CheckKey() = 14) break; if(CheckKey() = 14) break; if(

温馨提示

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

评论

0/150

提交评论