数控直流稳压电源毕业设计论文

优秀论文审核通过

未经允许切勿外传

毕业论文设计

设计题目:数控直流电流源设计

姓名:曾翔

班级:09电信3班

院系:电子信息学院

指导老师:龚老师

目录

绪论 (3)

一、前言………………………………………………………………………………

二、系统功能…………………………………………………………………………

三、方案论证与比较…………………………………………………………………

3.1 稳压电源的分类……………………………………………………………

3.2 稳压电源部分方案…………………………………………………………

3.3 三端集成稳压芯片…………………………………………………………

3.4 数字显示部分………………………………………………………………

四、系统硬件设计……………………………………………………………………

4.1电路原理……………………………………………………………………

4.2硬件模块分析………………………………………………………………

4.2.1 ATmage16单片机模块………………………………………………

4.2.2 L6203驱动模块………………………………………………………

4.2.3 5V系统电源模块………………………………………………………

4.2.4 1602液晶显示模块……………………………………………………

4.2.5 输出电压采集反馈电路模块…………………………………………

五、系统的软件设计………………………………………………………………

5.1 程序设计………………………………………………………………

5.2 程序流程图………………………………………………………………

六、结束语……………………………………………………………………

七、参考文献……………………………………………………………………

致谢…………………………………………………………………………

附录1…………………………………………………………………………

附录2………………………………………………………………………………

绪论

AVR 系列的单片机不仅具有良好的集成性能, 而且都具备在线编程接口, 其中的Mega 系列还具备JTAG 仿真和下载功能; 含有片内看门狗电路、片内Flash、同步串行接口SPI; 多数AVR 单片机还内嵌了AD 转换器、EEPROM、模拟比较器、PWM 定时计数器等多种功能; AVR 单片机的IO 接口具有很强的驱动能力, 灌入电流可直接驱动继电器、LCD 等元件, 从而省去驱动电路, 节约系统成本。

关键词:直流稳压电源;AVR单片机;液晶显示。

一、前言

数控电源是从80年代才真正的发展起来的,期间系统的电力电子理论开始建立。在以后的一段时间里,数控电源技术有了长足的发展。但其产品存在数控程度达不到要求、分辨率不高、功率密度比较低、可靠性较差的缺点。因此数控电源主要的发展方向,是针对上述缺点不断加以改善。单片机技术及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到90年代,己出现了数控精度达到0.05V的数控电源,功率密度达到每立方英寸50W的数控电源。从组成上,数控电源可分成器件、主电路与控制等三部分。

电源采用数字控制,具有以下明显优点:

1)易于采用先进的控制方法和智能控制策略,使电源模块的智能化程度更高,性能更完美。

2)控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。

3)控制系统的可靠性提高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。

二、系统功能

系统电压调节范围为0~12V,最大输出电流1A,具有过载和短路保护功能。输出电压可用1602LCD液晶显示。键盘设有6个键,复位键,步进增减1V两个键,步进增减0.1V两个键以及确认键。复位键用于启动参数设定状态(5V),步进增减键用于设定参数数值,确认键用于确认输出设定值[2,3].

电源开机设定电压输出默认值为5V。通过步进增减按键功能选择可在不同的设定参数之间切换,再按确认键进入设定电压输出状态。若按复位键,则电压输出恢复5V。系统设有自动识别功能,将不接受超出使用范围(0~12V)的设定值。

三、方案论证与比较

3.1 稳压电源的分类

稳压电源的分类方法繁多,按输出电源的类型分有直流稳压电源和交流稳压电源;按稳压电路与负载的连接方式分有串联稳压电源和并联稳压电源;按调整管的工作状态分有线性稳压电源和开关稳压电源;按电路类型分有简单稳压电源和反馈型稳压电源。我们必须弄清楚各个类别的特点,才能从中选出最佳方案。

3.2 稳压电源部分方案

方案一:简单的并联型稳压电源

并联型稳压电源的调整元件与负载并联,因而具有极低的输出电阻,动态特性好,电路简单,并具有自动保护功能;负载短路时调整管截止,可靠性高,但

效率低,尤其是在小电流时调整管需承受很大的电流,损耗过大[1]。

方案二:串联型稳压电源

并联稳压电源有效率低、输出电压调节范围小和稳定度不高这三个缺点。而串联稳压电源可以避免这些缺点。而简易串联稳压电源输出电压受稳压管稳压值得限制无法调节,必须对简易稳压电源进行改进,增加一级放大电路,专门负责将输出电压的变化量放大后控制调整管的工作。由于整个控制过程是一个负反馈过程,所以这样的稳压电源叫串联负反馈稳压电源。而这部分电路的设计会比较麻烦[1]。

方案三:输出可调的开关电源

开关电源的功能元件工作在开关状态,因而效率高,输出功率大;且容易实现短路保护与过流保护,只是电路在低输出电压时开关频率低,纹波大,稳定度差。

综合考虑效率,输出功率,输入输出电压,负载调整率, 本设计选用方案三,要求较低,较易实现.对于效率和纹波的要求可以通过仔细调整磁性元件的参数(L,Q,M等)使其工作在最佳状态。我们在选择方案的时候考虑到电路要简单,元件要容易找,所以我们选择了上述的方案中的第三个方案[1]。

稳压电路部分可以采用三极管等分立元件来实现,也可以采用集成三端集成稳压芯片。从性价比来说,采用三端集成稳压芯片来实现要好很多,现在的稳压芯片功能强大,且价格低廉,很适合我们此次的设计。

3.3 三端集成稳压芯片

方案一:采用LM317可调式三端稳压器电源

LM317可调式三端稳压器电源能够连续输出可调的直流电压.,不过它只能连续调正电压,稳压器内部含有过流,过热保护电路;由一个电阻(R)和一个可变电位器(RP)组成电压输出调节电路,输出电压为:V o=1.25(1+RPR).

方案二:采用7805三端稳压器电源

固定式三端稳压电源(7805)是由输出脚V o,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于CW78xx系列的稳压器,输入端接电容可以进一步的

滤波,输出端也要接电容可以改善负载的瞬间影响,此电路的稳定性也比较好,使用起来可靠、方便,而且价格便宜。

本设计只需使用到5V输出作为单片机的电源输入,所以选用方案一

3.4 数字显示部分

方案一:用Atmage16实现模数转换

利用单片机的软硬件资源实现高精度高速AD转换,转换精度和转换速度还可以通过软件来改变,价格也低廉。不过对软件部分要求较高。

方案二:采用三位半AD转换器ICL7107

ICL7107是高性能,低功耗的三位半AD转换器,它含有七段译码器,显示驱动,参考源和时钟系统,它将高性能和低成本结合在一起。精度相对方案一要差,所以数字显示部分采用方案一。

四、系统硬件设计

1、电路原理

电路系统结构如图1所示,系统选用Atmage16单片机为控制核心,外部扩展1602驱动芯片用以实现电压输出功能,同时1602液晶显示相应的输出电压值。单片机计算设定值与AD转换采样反馈值的偏差以及偏差的变化率,得出相应的输出值,由DA转换变换为模拟量去驱动电压输出控制电路,从而使电压稳定在设定值[5]。

图1 电路系统结构图

2、硬件模块分析

2.1 ATmage16单片机模块

1)ATmage16的简介

ATmega16是AVR系列单片机中比较典型的芯片,其主要特点有:

(1)采用先进RISC结构的AVR内核(2)片内含有较大容量的非易失性的程序和数据存储器(3)片内含JTAG接口(4)宽电压、高速度、低功耗(5)

片内含上电复位电路以及可编程的掉电检测复位电路BOD;片内含有1M2M4M8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用;多达21个各种类型的内外部中断源;有6种休眠模式支持省电方式工作等等。

2)ATmage16的引脚分析[4]。

其外部引脚封装如图2所示

图2 ATmage16 外部引脚与封装示意图

其中,各个引脚的功能如下:

(1)电源、系统晶振、芯片复位引脚

Vcc: 芯片供电(片内数字电路电源)输入引脚,使用时连接到电源正极。

AVcc:为端口A和片内ADC模拟电路电源输入引脚。不使用ADC时,直接连接到电源正极;使用ADC时,应通过一个低通电源滤波器与Vcc连接。

AREF:使用ADC时,可作为外部ADC参考源的输入引脚。

GND: 芯片接地引脚,使用时接地。

XTAL2:片内反相振荡放大器的输出端。

XTAL1:片内反相振荡放大器和内部时钟操作电路的输入端。

RESET:RESET为芯片复位输入引脚。在该引脚上施加(拉低)一个最小脉冲宽度为1.5us的低电平,将引起芯片的硬件复位(外部复位)。

(2) 32根IO引脚,分成PA、PB、PC和PD四个8位端口,他们全部是可编程控制的双(多)功能复用的IO引脚(口)。

四个端口的第一功能是通用的双向数字输入输出(IO)口,其中每一位都可以由指令设置为独立的输入口,或输出口。当IO设置为输入时,引脚内部还配

置有上拉电阻,这个内部的上拉电阻可通过编程设置为上拉有效或上拉无效。

如果AVR的IO口设置为输出方式工作,当其输出高电平时,能够输出20mA 的电流,而当其输出低电平时,可以吸收40mA的电流。因此AVR的IO口驱动能力非常强,能够直接驱动LED发光二极管、数码管等。而早期单片机IO口的驱动能力只有5mA,驱动LED时,还需要增加外部的驱动电路和器件。

芯片Reset复位后,所有IO口的缺省状态为输入方式,上拉电阻无效,即IO为输入高阻的三态状态[4]。

3)AT mage16在电路中的主控作用

应用AT mage16主要完成PWM 波的输出及控制功能。它可以先产生一定脉宽的PWM 波,作为L1603 驱动电路输入信号,然后根据所需要的基准电压与检测到的输出电压的比较,调整脉宽,即改变占空比,最终实现高性能可调直流稳压

图3内部晶体振荡器外接电路

2.2 L6203驱动模块

L6203驱动模块就是将5V的输入电压变成Vin的电压24V,一方面提高电压,一方面提高电流。电源驱动芯片的选择,由于器材的限制以及使用CMOS管需要的驱动需要注意比较多的前级推动,如果直接使用电机驱动芯片L6203,其价格实惠,电路简单而且效果非常好。

图4 L6203驱动模块

图5 L6203的外观图

L6203的各管脚说明见下表

Name Function

Device

L6203

1 OUT

2 Ouput of 2nd Half Bridge

2 Vs Supply Voltage

3 OUT1 Output of first Half Bridge

4 BOOT1 A boostrap capacitor connected to this pin

ensures efficient driving of the upper POWER

DMOS transistor.

5

IN1 Digital Input from the Motor Controller 6

GND Common Ground Terminal 7

IN2 Digital Input from the Motor Controller 8 BOOT2 A boostrap capacitor connected to this pin

ensures efficient driving of the upper POWER

DMOS transistor

9 Vref Internal voltage reference. A capacitor from

this pin to GND isrecommended. The internal

Ref. Voltage can source out a

current of 2mA max.

10 SENSE A resistor Rsense connected to this pin

provides feedback for motor current control

11

ENAB LE When a logic this pin the DMOS POWER transistors are enabled to be selectively

driven by IN1 and IN2.

2.3 5V 系统电源模块

单片机要工作需要有5V 电源输入,本设计采用7805稳压电源电路

图6 5V 系统电源模块

2.4 1602液晶显示模块

如果采用数码管显示,其价格便宜,但是占用端口较多,功耗大、显示不功能不全。而用1602液晶显示,则占用端口少,显示功能较全面,驱动电流小。所以选择选择1602液晶显示[6]。

图7 给出1602 字符液晶作为信号显示部分

2.5 输出电压采集反馈电路模块

图7 1602液晶显示模块图8 输出电压采集反馈电路

五、系统的软件设计

5.1 程序设计

数控直流稳压电源的程序主要包括3个方面的内容:一是单片机从按键中读取数据,而后和原有的输出电压进行比较;二是利用按键进行输出的调整;三是从单片机中读取数据传输到1602液晶显示器,进而显示输出电压值。

5.2程序流程图如图9所示

图9程序流程图

六.结束语

利用单片机对直流稳压电源进行控制,改善了电源的性能,使用方便灵活,且成本较低。另一方面,根据对电源的新要求,控制系统在软件上还可进一步改进,以扩展其功能,而并不需要增加硬件开销,从而提高了电源的性能价格比。七.参考文献

[1]王兆安,黄俊.电力电子技术[M].北京:机械工业出版社,2005

[2]李文元.高精度工业用可调直流电源的设计和制造[R].兰州理工大

学,2000.

[3]张毅刚.单片机原理及应用I-M].北京:高等教育出版社,2004

[4]E33范立南.单片微型计算机控制系统设计[M].北京;人民邮电出版社,2004

[5]王水平,史俊杰,田庆安.开关稳压电源—原理、设计及实用电路(修订

版)[M].西安:西安电子科技大学出版社,2005

[6]潘永雄.新编单片机原理与应用[M].西安:西安电子科技大学出版

社,2003

致谢

作为一个即将毕业大学生,由于经验的匮乏,在许多地方考虑不周全,如果没有指导老师的帮助和指导,想要完成这个设计是非常困难的。

在这里首先向治学严谨,诲人不倦的老师表示我最衷心的感谢!本次设计从最初的选题到任务的制定,系统的设计与开发及在论文的撰写过程中都得到了老师的悉心指导与帮助。正是陈老师的教导和帮助使我较快的熟悉了用编程语言来实现项目的过程,并最终顺利完成本文。陈老师,他的治学严谨和科学研究的精神也是我永远学习的榜样,他的循循善诱的教导将积极影响我今后的学习和工作。

其次要感谢大学几年来所有的老师,为我们打下了专业知识的基础。

曾翔 2011年10月 20 日附录1(电路原理图)

附录2(数控直流稳压电源程序)

***************************************************** This program was produced by the

CodeWizardAVR V1.25.7a Evaluation

Automatic Program Generator

:

Author : Freeware, for evaluation and non-commercial use only Company :

Comments:

Chip type : ATmega16

Program type : Application

Clock frequency : 8.000000 MHz

Memory model : Small

External SRAM size : 0

Data Stack size : 256

***************************************************** #include

#define right PIND.2

#define left PIND.1

#define ok PIND.3

#define Enable PORTD.7

**********************定义界面内容*******

flash uchar set1[]="Plese set Volt: ";

flash uchar putvolt[]=" Volt: ";

flash uchar putamp[]=" Amp: ";

flash uchar start[]="Starting";

flash uchar error[]="error";

uint volt=50;

功能:进入系统的初始化函数

void intosys()

{

uchar i;

lcd_init();

write_com(0x80);

delay_ms(5);

for(i=0;i<8;i++)

{

write_data(start[i]); 启动开机界面

delay_ms(2); 延时写入,可以防止液晶处于忙状态

}

write_com(0x80+0x40);

delay_ms(5);

for(i=0;i<16;i++)

{

write_data('-');

delay_ms(100);

}

}

用户界面一,设置界面

void user_1()

{

uchar i;

write_com(lcd_clr);

write_com(0x80);

delay_ms(5);

for(i=0;i<16;i++)

{

write_data(putvolt[i]);

delay_ms(5);

}

delay_ms(5);

for(i=0;i<16;i++)

{

write_data(putamp[i]); delay_ms(5);

}

};

用户界面2,输出状态下

void user_2()

{

uchar i;

write_com(lcd_clr);

write_com(0x80+1);

delay_ms(5);

for(i=0;i<16;i++)

{

write_data(putvolt[i]); delay_ms(3);

}

write_com(0x80+0x40);

delay_ms(5);

for(i=0;i<16;i++)

{

write_data(set1[i]);

delay_ms(3);

}

}

显示数据函数,将数据分开

void show_data(uint data)

{

char ch1,ch2,ch3;

ch1=data100;

ch2=data10%10;

ch3=data%10;

if(ch1==0)

{

write_data(0x30+ch2); delay_ms(4);

write_data('.');

delay_ms(4);

write_data(0x30+ch3); delay_ms(4);

write_data(0x20);

}

else

{

write_data(0x30+ch1); delay_ms(4);

write_data(0x30+ch2); delay_ms(4);

write_data('.');

delay_ms(4);

write_data(0x30+ch3); delay_ms(4);

}

}

显示电压值

void show_volt(uint data)

{

write_com(0x80+6);

show_data( data);

}

显示电流值

void show_amp(uint data)

{

char ch1,ch2,ch3,ch4;

write_com(0x80+0x45);

ch1=data1000;

ch2=data100%10;

ch3=data10%10;

ch4=data%10;

write_data(0x30+ch1);

delay_ms(4);

write_data('.');

delay_ms(4);

write_data(0x30+ch2); delay_ms(4);

write_data(0x30+ch3); delay_ms(4);

write_data(0x30+ch4); delay_ms(4); }

读取电流值

uint Read_Amp()

{

unsigned int freeback_amp,ampdata[],temp;

uchar chi,i,j;

for(chi=0;chi<50;chi++)

{

ampdata[chi]=mega16_ad(0)*2.610;

delay_ms(2);

}

for(i=0;i<50;i++)

{

for(j=0;j<50;j++)

{

if(ampdata[i]

{

temp=ampdata[i];

ampdata[i]=ampdata[j];

ampdata[j]=temp;

}

}

}

freeback_amp=(ampdata[24]+ampdata[25]+ampdata[26])3; return freeback_amp;

}

读取输出电压

uint Read_Output_Volt()

{

unsigned int freeback_volt,data[],temp;

相关文档
最新文档