基于单片机控制的简易数控直流电源设计Word文档格式.docx
《基于单片机控制的简易数控直流电源设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的简易数控直流电源设计Word文档格式.docx(36页珍藏版)》请在冰点文库上搜索。
g输出电压可预置在0~15V之间的任意值
(二)设计方案一
是以型号89C51单片机为控制核心进行设计的,通过按键进行控制,单片机控制数模转换芯片DAC0832,其输出0~7.5V的电压,因为要求电压为0~15V所以必须再经过放大器放大,并通过三端可调正稳压器进行稳压,输出一个较稳定的直流电压,并在数码管上显示出来,并时刻刷新调整电压后的幅值,系统流程方框图1.1
图1.1系统流程图
(三)设计方案二
是以单片机89C51为控制核心,外接按键进行控制,单片机控制8个继电器,且每个继电器串联一个一定阻值的电阻,电阻之间的关系为以2为参数的等比数列,继电器之间为并联形式。
最终电压幅值可经过
一个稳压电路后稳定输出。
且最后输出的电压值可通过单片机控制在数码显示管上显示出来,并时刻刷新调整电压后的幅值。
系统方框图1.2
图1.2系统流程图
(四)方案的优缺点及选择
方案一的电源电压切换采用DAC控制速度比较快,切换方便,且可以输出较高频率的几种波形,所需器件较少,元器件较常见而且便宜,缺点是放大器的电压要求比较高,需要0~15V的输出,需要多种电源供电。
方案二采用继电器控制为机械式。
基本原理简单,实现比较方便,电源电压也可以调整到较精确的数值,但是它需要较大的工作电流,原器件价格较贵,而且继电器会产生噪声污染。
比较之后,两种方案各有优缺点,我们选择方案一
二、硬件部分设计
(一)单片机部分
1.单片机原理
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
主流单片机包括CPU、4KB容量的ROM、128B容量的RAM、2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。
1、系统结构简单,使用方便,实现模块化;
2、单片机可靠性高,可工作到10^6~10^7小时无故障;
3、处理功能强,速度快。
4、低电压,低功耗,便于生产便携式产品
5、控制功能强
6、环境适应能力强。
2.基本结构
(1)运算器
运算器由运算部件——算术逻辑单元(Arithmetic&
LogicalUnit,简称ALU)、累加器和寄存器等几部分组成。
ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。
运算器有两个功能:
①执行各种算术运算。
②执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
(2)控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。
其主要功能有:
①从内存中取出一条指令,并指出下一条指令在内存中的位置。
②对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
③指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。
外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。
通过输入输出接口电路,实现与各种外围设备连接。
(3)主要寄存器
①累加器A
累加器A是微处理器中使用最频繁的寄存器。
在算术和逻辑运算时它有双功能:
运算前,用于保存一个操作数;
运算后,用于保存所得的和、差或逻辑运算结果。
②数据寄存器DR
数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。
它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
③指令寄存器IR和指令译码器ID
指令包括操作码和操作数。
指令寄存器是用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。
当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。
其中,指令寄存器中操作码字段的输出就是指令译码器的输入。
(4)程序计数器PC
PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。
在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。
(5)地址寄存器AR
地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。
由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。
显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。
同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。
单片机89C51是本设计中的控制核心,是一个40管脚的集成芯片,管脚图如下。
引脚部分:
单片机接脚基本电路部分与普通设计无异,40脚接Vcc+5V,20脚接地。
X1,X2两脚接12MHZ的晶振,可得单片机机器周期为1微秒。
RST脚外延一个RST复位键,一端接Vcc,一端通过10K电阻接地。
P0口中,0~3口分别通过一个PNP型三极管9012的B端,并由E端接人集成LED的COM1~4口。
4~7口则分别通过一个按键接地,通过软件编写实现6个按键的各种功能。
P1口8个端口连LED中a,b,c,d,e,f,g,db脚上。
P2口是连到DAC0832中的D0~D7。
图2.1单片机控制原理图
(二)数模转换部分
图2.2数模转换电路图
1脚—CS(反)2脚—WR1(反)3脚—AGND4脚—D3
5脚—D26脚—D17脚—D08脚—ref
9脚—Ref10脚—DGND11脚—Iout112脚—Iout2
13脚—D714脚—D615脚—D516脚—D4
17脚—XFER(反)18脚—WR2(反)19脚—ILE20脚—Vcc
DAC0832工作方式:
直通方式、单缓冲方式和双缓冲方式。
DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图:
D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
DAC0832引脚功能说明:
DI0~DI7:
数据输入线,TLL电平。
ILE:
数据锁存允许控制信号输入线,高电平有效。
CS:
片选信号输入线,低电平有效。
WR1:
为输入寄存器的写选通信号。
XFER:
数据传送控制信号输入线,低电平有效。
WR2:
为DAC寄存器写选通输入线。
Iout1:
电流输出线。
当输入全为1时Iout1最大。
Iout2:
电流输出线。
其值与Iout1之和为一常数。
Rfb:
反馈信号输入线,芯片内部有反馈电阻.
Vcc:
电源输入线(+5v~+15v)
Vref:
基准电压输入线(-10v~+10v)
AGND:
模拟地,摸拟信号和基准电源的参考地.DGND:
数字地,两种地线在基准电源处共地比较好,可通过一个高输入阻抗的线性运算放大器实现。
DAC0832是一款常用的数摸转换器,它有两种连接模式,一种是电压输出模式,另外一种是电流输出模式,为了设计的方便,选用电压输出模式。
这个芯片共有20个管脚,管脚分布图如下。
Iout1和Iout2之间接一参考电压,VREF输出可控制电压信号。
它有三种工作方式:
不带缓冲工作方式,单缓冲工作方式,双缓冲工作方式。
该电路采用单缓冲模式,由电路图可知,由于/XFER=0/CS=0/ILE=1,DAC寄存处于工作状态。
所以只要把/WR1/WR2置低电平时,写p2口,则该数字信号立即传送到输入寄存器,并直通至DAC寄存器,经过短暂的建立时间,即可以获得相应的模拟电压,一旦写入操作结束,/WR1和/WR2立即变为高电平,则写入的数据被输入寄存器锁存,直到再次写入刷新。
(三)放大器部分
放大器选择范围比较大,只要放大器满足放大值达到0~15V,放大倍数2~5倍,频率要求不高。
最大提供电源为+15V和-15V,因此不可避免线性度有较大要求。
而放大值要有15V电压差,不可避免的需要同时用到正负量程。
因此对放大器的调零也有较大要求。
先后使用TL082,TL081,OP07。
最后确定用OP07。
同时因为要在正向放大时提供正偏压,因此采用082制作了一个同项输入跟随器,做电气隔离。
对于TL082和OP07参数及优点如下
1.TL082
TL082是通用的J-FET双运算放大器。
其特点有:
较低的输入偏置电压和偏移电流;
输出设有短路保护;
输入级具有较高的输入阻抗;
内建频率补偿电路;
较高的压摆率。
最大工作电压:
-18V~18V
2.OP07
Op07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±
2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
1、超低偏移:
150μV最大
2、低输入偏置电流:
1.8nA
3、低失调电压漂移:
0.5μV/℃
4、超稳定,时间:
2μV/month最大
5、高电源电压范围:
±
3V至±
22V
图2.3放大器电路图
(四)电源输入部分
实验中主要采用L7805,L7815,L7915三种稳压器,外加电源部分设置成+/-20V,可由220V电源经变压得到,并将20V直接接到LM317中3端输入口,另外将+20V通过L7815,稳压后输出为+15V,将-20V通过L7915,稳压后输出为-15V,并将+/-15V电压加载到放大器的电源正负管脚上,另外DAC0832的电源管脚20脚和19脚ILE脚也要接+15V。
再将+15V又经过L7805后变成+5V,这个压值可供应到单片机电源及显示部分。
还需要在L7815的1,3脚,L7915的2,3脚以及L7805的1,3脚各自与地之间并联连上220微法电解电容和0.1微法磁片电容,目的是为了滤除低频杂波和高频杂波。
图2.4电源输入电路图
(五)稳压器部分
稳压电路设计采用的是常用的可调集成稳压器LM317。
LM317是美国国家半导体公司的三端可调正稳压器集成电路。
输出电压范围是1.25V至37V,负载电流最大为1.5A。
它的使用非常简单,仅需两个外接电阻来设置输出电压。
此外它的线性调整率和负载调整率也比标准的固定稳压器好。
LM317内置有过载保护、安全区保护等多种保护电路。
通常LM317不需要外接电容,除非输入滤波电容到LM317输入端的连线超过6英寸(约15厘米)。
使用输出电容能改变瞬态响应。
调整端使用滤波电容能得到比标准三端稳压器高的多的纹波抑制比。
LM317能够有许多特殊的用法。
比如把调整端悬浮到一个较高的电压上,可以用来调节高达数百伏的电压,只要输入输出压差不超过LM117/LM317的极限就行。
当然还要避免输出端短路。
还可以把调整端接到一个可编程电压上,实现可编程的电源输出。
特性简介
A可调整输出电压低到1.2V。
B保证1.5A输出电流。
C典型线性调整率0.01%。
D典型负载调整率0.1%。
E80dB纹波抑制比。
F输出短路保护。
G过流、过热保护。
H调整管安全工作区保护。
I标准三端晶体管封装。
图2.5三端晶体管的封装
图2.6稳压部分电路图
(六)按键部分
设计中共用到按键数为7个,其中一个为单片机上的复位键,另外6个分别命名为K1~K6,K1~K4分别接单片机P0口的P0.4~P0.7,K5,K6接P3.5,P3.6。
功能为:
K1键:
退出功能;
K2键:
预置数(设置一个数值为初始值);
K3键:
自动扫描键(扫描电压值,并在LED上自动显示);
K4键:
输出三角波电压/在预置数值时整数和小数部分切换;
K5键:
对输出稳定电压进行递减;
K6键:
对输出稳定电压进行递增。
(七)数码显示输出部分
这是决定系统使用是否方便的关键。
这里又有两个方案。
方案一:
采用电阵式液晶显示器(LCD)显示。
虽然其功能强大,可显示各种字体的数字,汉字,图象,还可以自定义显示内容,但是编程复杂,需要消耗大量时间完成显示部分的编程工作,成本也比普通数码管贵。
方案二:
采用通用LED数码管显示。
虽只能显示非常有限的符号和数码字,但是在本设计中完全满足显示需要,且编程简便.
分析以上两种方案的优缺点,本设计采用方案二。
这里我们使用的是通用的4位集成数码显示管如图2.7
图2.7数码管管脚分布图
1脚---com42脚---a3脚---f
4脚---com35脚---com26脚---b
7脚---com18脚---g9脚---c
10脚---db11脚---d12脚---e
其中4个com(1-4)分别对应单片机P0端口(p0.0~p0.4)
2个LED端口的8个引脚a,b,c,d,e,f,g,db对应P1端口,且之间加阻值为330欧姆的电阻,否则电流过大,使电源部分的稳压器过热,显示管显示过亮。
如图2.8
图2.8数码管显示电路
系统的软件设计采用汇编语言,对单片机进行编程实现各功能
程序是在Wnidowsxp环境下采用WAVE6000软件编写的,可以实现对按键输入高电平,对电压增加+/-0.1V,预置电压值等功能
(一)主程序流程图
判断计数器是否加一若则进行三角波判断,若是则判断是否输出三角波判断,是否进行三角波扫描,进行数模转换的输出
图3.1主程序流程图
(二)预置数流程图
图3.2预置数流程图
四、系统调试测验
(一)系统调试
1.电源部分调试:
先断开所有除输入电源以外的其他电源接入线,在外部电源输入部分加入正负20V的电压,通过L7815的1脚,和L7915的2脚,后用万用表测量L7815的3脚为15V,L7915D3脚为-15V,L7805的3脚为+5V,同时测试单片机,DA0832,放大器等底座接口供电。
电源部分正常。
2.调试LED显示:
编制简单的显示小程序验证正常。
3.按键测试:
用程序验证。
4.DAC测试:
调整Iout1/Iout2的基准电压使输入255时输出电压7.5V。
用软件测试输出。
5.放大器调试:
这是我们最感头痛的地方,从082,081,OP07,一直达不到满意的要求。
最后终于发现问题来自电源-15V的纹波干扰,为此,我们把电源模块和放大模块重新独立制作调试。
最终采用OP07加082的方式。
首先用OP07建立正项放大器,信号从正端输入,然后对OP07的2/3脚短路接地,调节调零电阻丝输出为零。
然后在正项加5V电压,调节放大倍数为2倍,因为电源为+15/-15所以放大输出最大到+14V,而且LM317的调零必须用到负电压,因此改变负端的参考电压来得到负电压。
考虑到参考电压用滑动变阻器得到,用082的一个放大器制作正项跟随器进行电器隔离。
用滑动变阻器调节输出电压,使DAC输出为0时,OP07输出-5V。
所以最终OP07输出为-5V~+10V,达到LM317的电压差要求。
图4.1放大器部分图4.2电源部分
6.LM317调试:
调节滑动变阻器,使DAC输出0V放大器输出-5V时LM317输出0V。
(二)系统测试
1系统功能测试(详细叙述略)
a、系统操作及面板说明
b、符合设计提出的基本功能及提出的部分发挥功能
2系统指标测试
表4.1数据记录(室温下)
1
2
3
4
5
6
7
8
9
10
11
预置电压/V(数码显示)
0.0
1.0
2.0
5.0
6.0
8.0
9.0
10.0
12.0
14.0
15.0
输出电压/V(数码显示)
实测电压/V(仪器测量)
0.00
1.01
2.00
5.01
6.03
8.02
9.01
10.01
12.03
14.01
15.02
(三)系统误差分析
从电路的原理框图可以看出,系统的主要误差有两个方面:
a、0832的量化误差0832为8位D/A转换器,满量程为10V的量化误差为+/-0.5Lmbs≈+/-20mV.。
按满度归一化的相对误差为+/-0.2%。
如图所示为部分测试点的误差
图4.3误差分析图
b、放大器放大的线性失真引起的误差,以及经过0点的调零误差。
c、基准电压温漂引入的误差LM317在0~40℃范围内漂移不大于4mV,故相对误差=+/-0.04%。
(四)误差调整
可以采用精度更高的10位DAC,采用线性度较好的的放大器,增加系统正负放大器电源供电电压等。
因器材限制,并未采用以上方法。
二是采用了查表法,在256个值中选取最接近所需电压的值。
下图为150个电压值对应的DAC的值。
图4.4误差调整图
总结
本设计成品经过多次测量,基本上满足了设计要求所需的各项指标。
在系统设计过程中,力求硬件线路简单,明了,整体美观,充分发挥软件变成方便灵活的特点,来满足系统设计要求。
但是因为时间有限,该系统还有许多不足之处需要改进,比如电压精度问题等等。
在本次设计的过程中,我们也遇到了许多突发事件和各种困难,(如电源干扰,放大器调零等)设计制作曾一度中断,但通过仔细分析和自我状态调整后解决了问题。
在这个、过程中我们深刻地体会到共同协作和团队精神的重要性,提高了自己解决问题的能力。
参考文献
[1]张国峰,张维编.《实用稳定电源150例》.人民邮电出版
[2]《标准集成电路数据手册——集成稳压器》
[3]黄继业.《EDA技术使用教程》.科学出版社,
[4]黄智伟.《全国大学生电子设计竞赛训练教程》.电子工业出版社
[5]张建国,张素琴.《数字电路技术》.北京理工大学出版
[6]张俊膜《单片机中级教程》.北京航空航天大学出版社
[7]《电子器材大全》.电子工业出版社
[8]张友汉.《电子线路设计应用手册》.科学出版社
致谢
大学三年很快就要画上句号了,毕业设计是我在学校中最后一分答
卷,在毕业设计完成之时,感觉到自己收益良多,心中更是充满了感激之情。
再次毕业设计中,最应感谢的就是我的毕业设计指导老师刘为民师,感谢您在这段日子里对我亲切的关怀和悉心的教导,由于自身能力
的有限在设计过程中遇到了很多的困难在老师的督促和教导下本文顺利的完成。
在这个过程中都离不开老师的辛勤,借此机会我也要感谢大学三年期间直到过我的所有老师,感谢对我无私的教诲与帮助,感谢他们的淳淳教导。
非常感谢。
附录
开关电源总电路图
开关电源设计实物图
开关电源设计总程序
led1equ30h预定义
led2equ31h
led3equ32h
led4equ33h
buffequ34h
buff1equ34h
disbuff