基于单片机直流稳压电源的设计与实现Word格式文档下载.docx
《基于单片机直流稳压电源的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机直流稳压电源的设计与实现Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
2。
2稳压电路的设计
稳压电源是电子设备的重要部分,其质量好坏直接影响着电子设备的可靠性,而且电子设备的故障大部分来自电源,因此电源越来越受到人们的重视。
电子电路及电子设备对电源最基本的要求就是电源的输出电压或输出电流要稳定。
电子产品中,常见的三端稳压集成电路有正电压输出的LM78XX系列和负电压输出
的LM79XX系列.用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路
内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜,所以本设计采用LM78XX系列三端稳压器稳压[9]。
电路图如图2
图2
由于图2电路输出的电压固定不变,不能实现对输出电压的步进可调,所以为了能使输出电压步进可调,必须加以相关的电路来实现其功能[2],电路图如图3。
图3
这样,电路2实现对单片机所需工作电压的供给,而电路3既可实现稳定的电压输出,而且输出电压可以步进可调,所以本设计采用电路2与电路3的结合。
3系统框图的设计
经过对稳压电源基本原理的分析,基本对电路有了一个大概的设计.系统由各个模块组成,各个模块组成的系统框图如图4.
图4
本设计通过按键设置数字电压值并且在数码管上显示,而设置的电压值通过单片机的PWM输出经RC滤波电路转换成模拟电压值[5],通过模拟放大器将电压放大后送给控制7805得到稳压输出.
各部分功能:
单片机:
起到控制作用
显示电路:
用来显示预置电压
电源电路:
对单片机和稳压电路进行供电
按键控制:
对预置电压进行改变
RC电路:
将PWM方波信号转换成模拟电压值
稳压电路:
输出恒定的电压
3硬件电路设计
3.1器件选择
3。
1。
1STC12C5410AD单片机
STC12C5410AD系列单片机[1]是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8—12倍,内部集成MAX810专用复位电路。
4路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。
STC12C2052AD系列只有2路PWM,8路高速8位A/D转换。
STC12C5410AD基本结构框图如图5,引脚功能如表1.
STC12C5410AD主要特性:
增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;
2.工作电压:
5.5V—3.5V(5V单片机)/3。
8V-2。
2V(3V单片机);
工作频率范围:
0—35MHz,相当于普通8051的0~420MHz;
4。
用户应用程序空间1K/2K/4K/6K/8K/10K/12K字节.。
.。
..
5。
片上集成512字节RAM;
6。
通用I/O口(27/23/15个),复位后为:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏;
7.时钟源:
外部高精度晶体/时钟,内部R/C振荡器,用户在下载用户程序时,可选择使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:
2MHz~6.8MHz;
8.共6个16位定时器/计数器,两个专用16位定时器T0和T1再加上PCA模块可再实现4个16位定时器;
9.外部中断2路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断唤醒;
10。
PWM(4路)/PCA(可编程计数器阵列,4路),5410系列是4路,可用来当4路D/A使用,也可用来再实现4个定时器,还可用来再实现4个外部中断(上升沿中断/下降沿中断均可分别或同时支持);
11。
A/D转换,10位精度ADC,共8路。
图5
表1
管脚
说明
P0。
标准I/O口
P0.1
P0.2
3
P1。
0/ADC0/CLKOUT0
P1.0
ADC0
ADC输入通道-0
CLKOUT0
定时器、计数器0的时钟输出
P1.1/ADC1/CLKOUT1
1
ADC1
ADC输入通道—1
CLKOUT1
定时器、计数器1的时钟输出
2/ADC2
2
ADC2
ADC输入通道—2
P1.3/ADC3
ADC3
ADC输入通道-3
4/ADC4/SS
P1.4
ADC4
ADC输入通道—4
SS
SP1同步串行接口的从机选择信号
P1.5/ADC5/MOSI
P1.5
ADC5
ADC输入通道-5
MOSI
SP1同步串行接口的主出从入
6/ADC6/MISO
P1.6
ADC6
ADC输入通道-6
MISO
SP1同步串行接口的主入从出
7/ADC7/SCLK
P1.7
ADC7
ADC输入通道—7
SCLK
SP1同步串行接口的时钟信号
P2。
0/PCA2/PWM2
P2.0
PCA2
可编程阵列输出2
PWM2
脉宽调制输出2
P2.1
P2.2
P2.4/PCA3/PWM3
4
PCA3
可编程阵列输出3
PWM3
脉宽调制输出3
5
6
P2.7
P3。
0/RxD
RxD
串口数据接收端
P3.1/TxD
TxD
串口数据发送端
2/INT0
INTO
外部中断0,下降沿中断或低电平中断
3/INT1
INT1
外部中断1,下降沿中断或低电平中断
P3.4/TO/EC1
标准I/O口
T0
定时器/计数器0的外部输入
EC1
PCA计数器的外部脉冲输入脚
5/T1/PCA1/PWM1
T1
定时器/计数器1的外部输入
PCA1
可编程阵列输出1
PWM1
脉宽调制输出1
7/PCA0/PWM0
P3.7
PCA0
可编程阵列输出0
PWM0
脉宽调制输出0
RST
复位脚
XTAL1
内部时钟电路反相放大器输入端,外部接晶振的一个引脚。
当直接使用外部时钟源时,此引脚是外部时钟源的输入端。
XTAL2
当直接使用外部时钟源时,此引脚可悬空。
VCC
电源正极
GND
接地
1.2四位一体数码管
本设计采用四位一体共阳极数码管[8]。
由于把4个数码管做在一起了,减少了接正、负电源的引出端脚,能简化电路,使得焊接电路更加简单、方便。
其原理与一般1位数
码管相同.数码管是由发光二极管构成的,亦称半导体数码管。
将条状发光二极管按照
共阴极或共阳极的方法连接,组成”8”字,再把发光二极管另一电极作笔段电极,就构成了数码管。
若按规定使某些笔段上的发光二极管就能显示从0~9的…系列数字.
常见数码管的结构如图6(a)所示。
图6(b)属于共阳极结构,图6(c)采用共阴极结构.a~g是7个笔段电极,DP为小数点。
图6(a)
图6(b)图6(c)
为了使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码.a,b,c,d,e,f,g,h(h为小数点),哪个段码给低电平哪段就会点亮。
例如0是要让a,b,c,d,e,f段亮,输入的显示码为11000000B十六进制为0C0H,以此类推一到九也是这样算。
共阴码就是把共阳码取反。
求得数码管共阴极、共阳极字形或符号的编码如表2[4]。
表2
字符显示
共阴极段码
共阳极段码
显示字符
3FH
C0H
b
7CH
83H
06FH
F9H
c
39H
C6
5BH
A4H
d
5EH
A1H
4FH
B0
e
79H
86H
66H
99H
f
71H
84H
5
6DH
92H
p
73H
82H
7DH
r
31H
CEH
7
07H
F8H
y
6EH
91H
8
7FH
80H
_
40H
BFH
9
6FH
90H
.
a
77H
88H
熄灭
00H
FFH
3.2单元电路
2.1STC12C5410AD主控模块
单片机STC12C5410AD是稳压电源系统的控制核心[6],原理图如图7,其主要作用有以下三点:
1.通过控制P3.7口PWM的输出信号的占空比从而控制DAC输出电压;
2.产生正确的数码管显示段码传送给四位数码管,从而显示所控制的电压值;
3.根据键盘的输出指令,完成输出电压的增大或减小。
图7
(1)
主控电路中包括STC12C5410AD工作的基本电路:
复位电路和晶振电路,还有两个
按键:
S2键和S3键,这两个按键用于控制输出电压的增加与减小.
3.2.2PWM的电压输出DAC模块
DAC是整个系统的纽带,连接着单片机控制部分与稳压部分。
本设计采用STC12C5410AD单片机提供的PWM输出功能,应用STC12C5410AD单片机的PWM输出经过简单的变换电路实现DAC,这大大降低电子设备的成本,减少体积,并且容易提高精度。
应用PWM实现DAC的原理如下[7]:
PWM是一种周期一定而高低电平的占空比可以调制的方波信号。
图8是一种在电路经常遇到的PWM波。
该PWM的高低电平分别为VH和VL,理想的情况VL等于0,但是实际中一般不等于0,这往往是应用中产生误差的一个主要原因。
图8的PWM波形可以用分段函数表示为:
f(t)=
(1)
其中:
T是单片机中计数脉冲的基本周期,N是PWM波一个周期的计数脉冲个数,n是PWM波一个周期中高电平的计数脉冲个数,VH和VL分别是PWM波中高低电平的电压值,k为谐波次数,t为时间。
把
(1)所表示的函数展开成傅里叶级数,得到
(2)式:
(2)
图8
从
(2)式可以看出,式中第一项为直流分量,第二项为一次谐波,第三项为高次谐波分量。
式
(2)中的直流分量与n成线性关系,并随着n从0到N,直流分量从VL到VH
之间变化,这正是电压输出的DAC所需要的.因此,只要把式
(2)中除直流分量的谐波
过滤掉,则可以得到从PWM波到电压输出DAC的转换,转换电路图如图9。
图9
3.2.3串联稳压模块
串联稳压部分是本设计实现的核心[2],电路图如图10,DAC电压输出电压决定稳压电路的输出。
该稳压电路由稳压器LM7805和运算放大器U3A组成,并且用A将稳压器与采样电阻隔离。
图中DAC输出电压Vo(即V+)为稳压电路的参考电压,运算放大器U3A的输出电压为Vo'
,稳压器LM7805的输出电压为V1(V1=5V),串联稳压电路的输出为Vout,其输出与DAC电压Vo成比例。
当调节电位器的动端位置时,稳压电路输出电压Vout随之变化[10],当Vout下降时,电位器由于串联分压使运放U3A的V-减小,从而使Vo'
增大,由于Vout=V1+Vo'
所以又有Vout增大.当Vout增大时,V—增大,使Vo’减小,由于Vout=V1+Vo'
所以又有Vout减小。
从而维持Vout基本稳定.其稳定过程可简单表示如下:
VoutV-Vo’Vout
VoutV-Vo'
Vout
图10
2.3显示部分模块
显示电路是对系统输出电压进行显示,使得系统输出的电压值一目了然,由于只显示输出的电压,所以本设计显示器件采用四位一体数码管,电路图如图11.
图11
4软件设计
4.1主程序流程图
2键盘输入流程图
N
Y
YY
5测试结果与误差分析
1测试结果
数据测试目的在于研究分析输出电压与设定值之间的误差。
测试的结果如表3
表3
次数
设定值(V)
输出电压(V)
绝对误差(V)
相对误差(%)
30
32
0.02
0。
31
6.78
7。
50
7.49
0.01
13
7.95
97
02
25
8。
43
44
01
11
9。
12
9.15
03
60
62
0.20
10.05
10
0.05
53
10.57
0.04
38
28
27
其中设定值是通过数码管直接显示出来的电压值,输出电压则是通过万用表测量串联稳压电路的输出Vout得到的电压值。
从表2中可以看出设定值与输出电压的误差并不大,在能接受的误差范围内.
5.2误差分析
经分析,系统产生误差的原因主要体现在以下3个方面[6]:
PWM方波并不是理想的方波,它的低电平并不等于零,这就导致了PWM信号在转换成DAC电压时存在着一定的误差,又因为DAC输出电压为稳压电路的参考电压,所以系统的输出电压必然存在误差.
2.PWM信号为8位输出,其分辨率为0.0196(5/255),精确度为0.02V,所以系统的输出电压存在着误差.
在用万用表测量输出电压的过程中,不可避免的会出现测量或读数的误差,所以设定值与测量值之间存在着误差。
参考文献
[1]张友德等.单片微型机原理、应用与实验[M].复旦大学出版社,2006,12~180.
[2]刘琳,薛智宏,杨国福.STC89C52单片机的智能型稳压电源的设[J].江苏电器.2008.
[3]伍乾永。
一种数控直流电源的设计[J].科技信息.2010.
[4]王增刚,苏淑靖,贾成伟.宽范围可调稳压电源的设计[J]。
自动化与仪表,2010.
[5]胡亚琦.单片机原理及应用系统设计[M].西安电子科技大学出版社,2010.
[6]李建忠。
单片机原理及应用[M].西安电子科技大学出版社,2002.
[7]秦健.一种基于PWM的电压输出DAC电路设计。
现代电子技术.2004。
[8]王春梅.实验室简易数控直流稳压电源的设计。
技改与创新。
2011。
[9]李曼,王立红.数控直流稳压可调电源.山西电子技术.2011。
[10]康光华.电子技术基础.高等教育出版社.2005。
附录一
系统源程序
#include〈stc12c5410ad.h〉
#defineucharunsignedchar
#defineuintunsignedint
sbitkey1=P3^4;
sbitkey2=P3^5;
uchartemp,A;
uintDA;
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
voiddelay(uintn)
{
while(n——);
}
voiddisplay()
{
DA=(A/51.2)*1000;
P2=0xbf;
P1=table[DA/1000]&0x7f;
delay(500);
P2=0xfd;
P1=table[DA%1000/100];
delay(500);
P2=0xfe;
P1=table[DA%100/10];
P2=0x7f;
P1=table[DA%10];
voidmain()
{
CCON=0;
CL=0;
CH=0;
CMOD=0x02;
CCAPM0=0x42;
CR=1;
CCAP0H=CCAP0L=0xff;
temp=CCAP0H;
A=0;
while
(1)
{
if(key1==0)
{
delay(50);
if(key1==0)
{
while(!
key1);
temp-=4;
A+=4;
display();
}
}
if(key2==0)
{
delay(50);
if(key2==0)
{
key2);
temp+=4;
A-=4;
}
display();
CCAP0H=temp;
}
}
附录二
系统总电路图
附录三
电源实物图