基于AT89S51单片机控制的数控电源装置.docx
- 文档编号:26586398
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:25
- 大小:65.47KB
基于AT89S51单片机控制的数控电源装置.docx
《基于AT89S51单片机控制的数控电源装置.docx》由会员分享,可在线阅读,更多相关《基于AT89S51单片机控制的数控电源装置.docx(25页珍藏版)》请在冰豆网上搜索。
基于AT89S51单片机控制的数控电源装置
摘要:
本文介绍的是以AT89S51单片机为核心,设计制作的一种数控电源装置。
它是用按键步进的方式来调节输出电压,该装置能实时的显示电压调节过程和输出电压结果,电压调节范围宽,精确度高,调整方便,同时还有电流监控的过流保护功能,是微机技术和数模转换技术相结合的具体应用。
关键词:
键盘,步进,显示,调整,D/A转换
前言:
直流稳压电源是电子技术中经常用到的,它广泛应用于电子设备的科研,生产和生
活的各领域,传统的直流电源的输出电压的调节要经过粗调(波段开关)和细调(电位器)来调节,当输出电压需要精确输出,或者需要在一个很小的范围,如需±0.1V变化的电压时,困难较大,不容易实现。
随着使用时间久了,波段开关及电位器难免出现接触不良,阻值大小发生变化的情况,这对输出电压的调整结果肯定会有影响的。
在普通的直流电源中大多使用指针式电压表来指示电压的大小,这种表的误差大,其指示的电压值只能作为参考,不能准确的显示实际电压值,准确度差。
从直流稳压电源的结构方面看,多数直流稳压电源采用串联稳压电路对过载进行限流或者是采用截流型保护电路构成的,电路复杂,稳压精度不高。
现代的科学技术日新月异,突飞猛进,由数字技术和微机技术相结合的,具有智能化的直流电源开发和应用,不但可以解决传统直流稳压电源的各种问题,而且可实现传统的直流稳压电源无法实现的功能。
这是电源技术里程碑式的一大进步,本文介绍的单片机数控电源的设计就是这两种技术的具体应用。
正文
一,方案的选择
数控电源电路要实现步进调整电压,有三种方案
第一种是采用标准逻辑器件,它的集成度低更改设计困难。
第二种是采用可编程逻辑器件如PLC,外围元件少,它可以根据现场工控设备的实际控制要求,通过更改设计程序来满足,编程容易,但是价格成本相对较高,
第三种是采用微处理器如单片机,可方便的通过编程来满足控制要求,容易实现信号的处理,价格成本低,本装置选择用单片机来实现数控电源的设计。
二,设计的要求:
1:
输出电压的调整范围是:
0.0V~9.9V
2:
输出电压的调整方式为步进,每步即每按一下按键,电压有±0.1V的变化。
3:
最大输出电流为100mA。
4:
电路具有过电流保护功能。
5:
用两位数码管来显示电压的调整过程和输出电压的大小。
三,硬件设计方框图如下
数码管显示电路
键盘电路
单片机电路
数字/模拟转换电路
模拟信号放大电路
负载
过流保护电路
如图所示,通过键盘把需要输出的电压用按键的方式,每步0.1V输入给单片机,由单片机驱动数码管显示电压调整的过程,待调整完成以后,把数码管显示的十进制数送数模转换电路DAC0832数据线上,执行D/A转换。
此时数码管显示的数据既是送到D/A转换的十进制数,即BCD码(00H~99H),又表示的是数控电源输出的电压值,输出电压范围是(0.0V~9.9V)。
经数模转换电路输出的模拟电压是很小的,通过外补偿运放LM301把模拟信号的电压放大,使输出电压大小与数码管显示的值相符,满足负载的实际要求。
再经过三极管的电流放大电路,提高了输出电流,降低了负载变化对输出电压的影响,使负载上的电压稳定。
为了防止当负载电阻变得很小,甚至当电源的输出端有短路的情况下,引起输出电流过大而危及电源的安全,在电路中加了一级电流保护回路。
当输出电流超出允许值时,过流保护起作用,关闭D/A转换电路,使输出电压为0,同时给出警告信号。
这就是这个调压装置整个工作过程的简述。
四,本装置用到的主要硬件简介:
1:
单片机AT89S51
是ATMEL公司生产的,采用PDIP-40封装形式,内部有4KB的在系统可编程的FLASH程序存储器ROM,和256B的数据存储器RAM,外部均可扩展至64KB,内外部的程序存储器ROM是统一编址的,内部ROM地址从0000H开始到0FFFH,外部ROM地址接着从1000H开始直到0FFFFH止,ROM总共有64KB。
内外部数据存储器RAM是分开编址的,内部RAM的地址从0000H到00FFH,有256B,外部RAM地址从0000H到0FFFFH,有64KB。
CS
VCC
AT89S51单片机具有时钟静态工作方式,降低了本身的功耗,非常适合便携式仪器选用。
这种单片机的外部40个引脚和功能,以及应用的指令和时钟频率等均与INTEL公司的8051系列的单片机相同,在此不再缀诉。
WR1
ILE
120
219
318
417
516
615
714
813
912
1011
4
s
2:
数字/模拟转换器DAC0832
AGND
XFER
WR2
是一种接口与MCS51系列的单片机完全
DI4
DI2
DI3
兼容匹配的,具有8位分辨率的数字/模拟
DI1
DI6
DI5
转换芯片,它的PDIP-20引脚排列如图所示
DI7
VR
DI0
IOUT2
RF
IOUT1
DGND
DI0—DI7是8位数据输入线,VR是接入基准电源,IOUT1和IOUT2用来输出模拟电流,RFB用来从输出端向芯片引入反馈信号。
CS为片选信号,WR1是输入锁存器写选通信号,ILE是输入锁存允许信号。
当CS和WR1为低电平,ILE为高电平时,输入锁存器的允许信号LE1有效,单片机传送的数据通过DI0-DI7数据线锁进输入锁存器。
XFER为数据传送控制信号输入线,WR2为DAC寄存器写选通信号输入线,当XFER和WR2同时有效时,DAC锁存器的允许信号LE2有效,输入锁存器内被锁存的数据又被锁存到DAC锁存器中,同时进入D/A转换器开始转换成模拟信号。
AGND是芯片的模拟电路接地点,DGND是芯片的数字电路接地点。
DACO832与单片机的连接方式有三种,下面分别介绍
(1)直通方式:
就是将CS,WR1,WR2,XFER信号引脚都直接接地,ILE引脚接高电平时,输入锁存器与DAC锁存器都处于直通方式。
8位数字量一旦送到DI0-DI7数据输入线上,立即进行D/A转换,不用选通,直接完成一次D/A转换。
这种方法简单,较少采用。
(2)单缓冲方式:
就是将WR2和XFER直接接地,使DAC锁存器处于直通状态,而输入锁存器处于受控状态。
只要数据通过输入锁存器,就能完成D/A转换,有一次选通过程。
(3)双缓冲方式:
输入锁存器和DAC锁存器均处于受控状态,此时单片机的数据送到8位数据线上时,经过两次选通才能完成D/A转换。
它的优点是数据接收和启动转换可同步进行。
可在D/A转换的同时,进行下一个数据的接收。
提高了转换速度。
本装置不强调工作速度,输出转换好的模拟电流既可,采用直通方式与单片机连接。
3:
运算放大器LM324
由4组相同的运算放大器构成,是一种高放大倍数的直接耦合,线性集成放大器。
每组运算器有二个输入端(同相输入端和反相输入端),一个输出端,使用时,作为反相比例放大器,可从反相端输入信号。
作为同相比例放大器,可从同相端输入信号。
作为差动比例放大器时,可从正反相两端同时输入信号。
LM324可用来放大直流信号。
本装置是利用LM324将DAC0832输出的模拟电流转换成模拟电压输出,具体见后面调试过程所述。
RG
RG
18
27
36
45
4:
精密仪表运算放大器INA126
V+
-VIN
-
-
INA126的管脚如左图所示
V0
+VIN
REF
-V
INA126是低噪声差分信号采集精密仪表放大器,用于便携式仪表和数据采集系统
内部采用两个运算放大器设计。
INA126用在单电源时,其共模电压大小为1/2VCC,使用的传感器如果是电桥型的,中点电位在1/2VCC处。
当输入信号为0时,输出直流电压是1/2VCC。
在1和8两个RG之间接可调电阻,可以调整INA126的电压放大倍数。
其参数如下
a:
宽电源电压的供电范围:
(±1.35V~±18V)
b:
低失调电压:
最大250µA
c:
低失调漂移电压:
最大3µV/度
d:
低静态电流:
最大175µA
e:
低噪声:
最大380dB
f:
低输入偏置电流:
(+250nA~-250nA)
本装置采用可调电阻W2来调整INA126的电压放大倍数,使得当数控电源的输出电流为100mA时,使74LS14的输出电压发生翻转,输出低电平,单片机进入外中断0的中断服务程序。
5:
显示译码驱动MC14495
MC14495能把十六进制数对应的BCD码,译成能在数码管上显示的七段字型码,驱动LED数码管发光显示的芯片。
6:
与门芯片CD4082BE
CD4082是4个输入端和1个输出端的与门电路,当4个输入端都是高电平时,输出是高电平,当有1个输入是低电平时,输出就是低电平。
电路中用CD4082输出的低电平使单片机进入外部中断1的中断服务程序。
7:
外补偿通用运算放大器LM301
LM301是单片通用的外补偿运算放大器,具有输入输出过载保护,失调电压调零,无阻塞现象,较小的输入电流,有保证的漂移特点。
电源电压最大可达±18V,输入失调电压最大10µV,温度漂移电压最大30µV/度,输入失调电流最大70PA,输入偏置电流最大0.3µA。
本装置是利用LM301将LM324输出的模拟电压放大成与数码管上显示的数据相同。
电路中用到的其它元器件的型号规格见后面附录二
五,软件程序的设计
程序中用到外部中断0和外部中断1,外部中断0用来在数控电源的输出电流过大时,起保护作用。
关闭D/A转换,显示报警信息。
由于过流保护作用的重要性,它的中断优先等级设为高级。
外中断1用在4个按键的操作上,分别是数位选择键,增加键,减少键和D/A转换键。
开机时单片机初始化,两数码管均显示0,负载上没有电压,当按下键盘上任一键,就使单片机的程序进入外部中断1,在此中断服务程序中,先延时消除按键的抖动,再判断是否有键按下,无键按下就返回主程序,有键按下了,根据按下键的键号来产生相应的操作,执行完后返回主程序。
按K1键来判断要调整的数位,每按一次,数码管显示00和01不断的交替,00表示要调整的是十位,01表示要调整的是个位。
按K2键,使相应的数位加1,按K3键,使相应的数位减1,两数码管分别显示电压的调节的过程,用寄存器R3保存十位数值,用寄存器R5保存个位数值。
通过按K2和K3调出一个数据,当按下K4时,将R3和R5两寄存器中的数组成一个十进数送DAC0832,完成数模转换。
在程序中用寄存器R3和R5存数,有利于十进制数的两位分别调试和组合。
程序流程图见附录三
程序见附录四,
六,调试过程
见附录一图,单片机数控电源工作原理图,数控电源的输出电压为手动按键步进调整,每步0.1V,输出电压的范围是(0.0V~9.9V),共需99步来调整电压,BCD码为(00H~99H),其数字量为十六进制数(00H~63H),送到DAC0832的8位数据线上,数模转换的公式为:
255/5=D/A。
D是已知的数字量,模拟电压A=5×D/255,最大输出模拟量电压A=5×99/255,
算得A=1.94V,要求输出的电压是9.9V,则电压放大倍数为Av=9.9/1.94=5.1倍。
按键盘输入DAC0832数字量,测量LM324转换后的模拟输出电压,与理论上计算得出的输出电压数据比较列表如下。
表一:
DAC0832数字/模拟转换电路的测试结果表,
输入数据
理论输出模拟电压/V
实测输出模拟电压/V
绝对误差/﹪
相对误差/﹪
00H
0.00
0.00
0.00
0.0
10H
-0.31
-0.30
0.01
3.2
20H
-0.63
-0.62
0.01
1.6
30H
-0.94
-0.93
0.01
1.1
40H
-1.25
-1.24
0.01
0.8
50H
-1.57
-1.55
0.02
1.3
60H
-1.88
-1.86
0.02
1,1
63H
-1.94
-1.92
0.02
1.0
由上表,经DAC0832数模转换后在LM324的输出测量出的模拟电压,与理论上经公式推导出的数据有一定的误差。
采用LM301来放大数模转换后LM324输出的模拟电压,由附录一原理图所见,从DAC0832输出的电流模拟信号从IOUT1送到LM324的反相端,这是个反相运算放大器,输出的模拟电压为负值。
再经LM301放大成与两位数码管的数据相同。
。
由三极管T1的T2组成的达林顿管结构的射极输出器把负载的电流放大,这样会降低数控电源的输出电阻,使负载较小,即输出电流较大时,数控电源的输出电压下降的不会太多。
LM301反馈电阻接法可进一步降低它的输出电阻,稳定数控电源的输出电压。
下面是在数控电源的输出端接阻值为100欧负载时,实际测量的输出电压与要求的输出电压数据比较表
表二:
要求输出电压/V
实测输电压/V
绝对误差﹪
相对误差﹪
0.0
0.00
0.00
0.00
1.0
1.01
+0.01
1.00
2.0
2.01
+0.01
0.50
3.0
3.01
+0.01
0.33
4.0
4.02
+0.02
0.50
5.0
5.02
+0.02
0.40
6.0
6.03
+0.03
0.50
7.0
7.04
+0.04
0.57
8.0
8.05
+0.05
0.62
9.0
9.04
+0.04
0.44
通过表二与表一的分析比较,经运算放大器LM301放大调整后测量的输出电压,与要求的电压误差精确度,比在LM324输出的电压误差的精确度提高了。
数控电源的过流保护工作,来自采样电阻R9上的电压,采样电阻R9与负载RL是串联的,R9的阻值与RL相比是极小的,正常工作时,其上的压降小,不会影响RL上的电压,当输出电流增大,R9上的电压增大,R9并接到差分精密仪表运算放大器INA126的IN+和IN-两输入端。
调节INA126的1和8脚两个RG端的电位器W2,确定INA126的电压放大倍数,当输出电流达到保护动作值时,R9上的电压增大,INA126的输出电压使反相施密特触发比较器74LS14的输出由高电平5V翻转为低电平0V。
这个低电平信号送到AT89S51单片机的外部中断0(INT0),使单片机的程序进入外部中断0的服务程序,在此程序中,把00H数据送到DAC0832,关闭D/A转换,负载上的输出电压为0V,同时在两数码管上显示EE的报警信号。
此时根据实际情况,按键盘调出相应数据送DAC0832,使输出电压满足负载要求。
表三:
负载为100欧时,通过测量计算得到的过流保护电路的数据如表
数控电源输出电压/V
0.00
2.01
4.02
6.03
8.04
10.05
数控电源输出电流/mA
0.00
20.1
40.2
60.3
80.4
100.5
INA126输出电压/V
0.00
0.60
1.23
1.86
2.49
3.11
74LS14输出电压/V
5.00
5.00
5.00
5.00
5.00
0.20
当数控电源的输出电流达到100.5mA时,INA126的输出电压为3.11V,使74LS14的输出电平发生翻转。
七,注意事项
1:
本装置的供电电压有+12V,-12V,+5V三种,单片机AT89S51和数模转换DAC0832由+5V的电压供电,运算放大器LM324和差分精密仪表放大器INA126由+12V和-12V两种电压供电。
注意不要把12V电压加到单片机上,或电路中任何5V电源的地方,以免烧坏单片机和其它事故的发生。
2:
在使用步进方式调整数据时,输出电压不能随着变化,以免在调整过程中加到负载上的电压不能满足要求。
在完成数据的步进调整以后,再按K4键,实现D/A转换,向负载输出电压
结论:
本装置用单片机和各种芯片设计制作的数控直流电源,该电源的输出电压是由键盘步进调整,这种调压方法比用电位器更方便,更准确,而且调节电压的范围宽,每调一次的电压只有0.1V,精确度提高了。
用数码管显示电压的调节过程和输出电压的大小,比用指针表更加准确,直观。
调整电压和输出电压分两步进行,使电压满足负载的要求。
输出电流采用闭环实时监控保护,完善了装置的使用功能,如果在此电路中加上变压器和整流,滤波和功放部份,在软件程序设计中把抗干扰因素考虑进去,就能做成应用在10V以下精确调压的实用电源。
致谢:
在论文的写作过程中,得到深圳市睿马电源有限公司的孙秀燕工程师的大力帮助,在此表示感谢。
由于本人知识水平有限,写作时间仓促,有些问题没有完全搞懂,阐述的不好,文中的错误和疏漏之处在所难免,肯请各位老师,专家和同行不吝赐教,批评指正,提出宝贵的意见。
参考文献。
1:
王为青,邱文勋著.51单片机应用开发案例精选.北京:
人民邮电出版社,2007.7
2:
赫建国著.单片机在电子电路设计中的应用.北京:
清华大学出版社,2006.5
3:
石文华著.单片机原理及应用.北京:
中国电力出版社,2005.2
4:
张大明著.单片微机控制应用技术.北京:
机械工业出版社,2006.4
5:
付家才著.单片机控制工程实践技术.北京:
化学工业出版社,2004.5
附录一:
单片机数控电源工作原理图
附录二:
元件明细表
序号
元件符号
元件名称
型号规格
数量
备注
1
R1~R4
碳膜电阻
RXT-5.1K-1/4W
4
2
R5
碳膜电阻
RXT-4.7K-1/4W
1
3
R6,R7,R10
碳膜电阻
RXT-10K-1/4W
3
4
R8
碳膜电阻
RXT-47K-1/4W
1
5
R9
碳膜电阻
RXT-5R-1/4W
1
6
W1
可调电阻
134T-8.7K
1
7
W2
可调电阻
B102AE-1K
1
8
C1
电解电容
CXD-10UF-25V
1
9
C2,C3
瓷片电容
CP-30PF
2
10
H
晶振
12MHZ
1
11
T1,T2
三极管
S9014-C331
2
12
LED
数码管
ULS-3161AS
2
13
K1~K4
按键
4
14
U1
运算放大器
LM324
1
15
U2
单片机
AT89S51
1
16
U3
BCD译码驱动器
MC14495
2
17
U4
数模转换
DAC0832
1
18
U5
精密仪表放大器
INA126
1
19
U6
六反相施密特触发器
74LS14
1
20
U7
四输入与门集成块
CD4082BE
1
附录三:
程序流程图
1:
主程序和外中断0过流保护报警程序
开始
系统初始化
开中断0和中断1
30H,40H,50H内容清零
等中断
结束
NO
NO
INT1=0
INT0=0
YES
YES
AP2
A﹟0EEH
A(A)∧﹟0FH
P1A
20HA
P0﹟00H
延时10毫秒按键去抖动
AP2
A(A)∧﹟0FH
NO
A=20H
YES
D/A转换
数值减少
数值增加
数据位选择
A=20H
2:
数据位选择程序
NO
P2.0=0
YES主S
A50H
`
A=0
NO
YES
50H﹟00H
50H﹟01H
P1(50H)
等中断
A=20H
3:
D/A转换程序
NO
P2.3=0
YES
AR3
A3—0A7—4
A(A)∨R5
@DPTRA
P1A
等中断
A=20H
4:
数值增加程序
NO
P2.1=0
YES
A50H
A=0
调十位
调个位
NO
YES
A40H
A30H
P1A
R3A
R5A
A3—0A7—4
P1A
40H(40H)+1
30H(30H)+1
NO
R5=﹟09H
R3=﹟09H
NO
YES
YES
40H#00H
30H#00H
等中断
A=20H
5:
数值减少程序
NO
P2.2=0
YES
A50H(505
A=0
调十位
NO
调个位
YES
A30H
A40H
R3A
P1A
A3—0A7—4
R5A
P1A
40H(40H)-1
30H(30H)-1
AR3
NO
NO
A=#00H
A=#00H
YES
YES
40H#09H
30H#09H
等中断
附录四:
程序
ORG0000H;主程序开始
LJMPMAIN;主程序跳到MAIN
ORG0003H;外中断0入口地址
LJMPWZT0;外中断0跳到WZT0
ORG0013H;外中断1入口地址
LJMPWZT1;外中断1跳到WZT1
ORG0100H;主程序在标号为MAIN,地址为0100H地方执行
MAIN:
MOVSP,#70H;设堆栈指针地址为70H
MOVIE,#85H;开中断0和中断1
SETBIT1;设外中断1触发方式为负脉冲下降沿
CLRIT0;设外中断0触发方式为低电平
SETBPX0;设外中断为高优先级
MOVP0,#00H;输出DAC0832的数据为00H
MOVP1,#00H;两数码管均显示0
MOVP2,#0FFH;把P2口设为键盘输入口
MOV30H,#00H;输出电压十位缓冲存储器30H内容为00H
MOV40H,#00H;输出电压个位缓冲存储器40H内容为00H
MOV50H,#00H;十位和个位的选择缓冲存储器50H内容为00H
SJMP$;主程序在此等待中断
ORG0200H;外中断1在标号为WZT1,地址为0200H地方执行
WZT1:
PUSHPSW;将PSW内容压栈
PUSHACC;将ACC内容压栈
SETBRS1;寄存器选择组2
MOVA,P2;把P2口各键的内容读入累加器
ANLA,#0FH;将读入的数据只保留低四位
MOV20H,A;数据结果存入20H
ACALLTIMS;延时0.1秒,消除按键抖动
MOVA,P2;延时时间到后再读入P2的数据
ANLA,#0FH;再保留P2数据低四位
CJNEA,20H,KEY;判A与20H中的内容比较,不等没有键按下转到KEY,相等有键按下顺序执行
JNBP2.0,KEY0;判数据位选择键是否按下
JNBP2.1,KEY1;判数据增加键是否按下
JNBP2.2,K
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S51 单片机 控制 数控 电源 装置