数控电压源题Word格式.docx

上传人:b****3 文档编号:16587293 上传时间:2022-11-24 格式:DOCX 页数:22 大小:204.29KB
下载 相关 举报
数控电压源题Word格式.docx_第1页
第1页 / 共22页
数控电压源题Word格式.docx_第2页
第2页 / 共22页
数控电压源题Word格式.docx_第3页
第3页 / 共22页
数控电压源题Word格式.docx_第4页
第4页 / 共22页
数控电压源题Word格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数控电压源题Word格式.docx

《数控电压源题Word格式.docx》由会员分享,可在线阅读,更多相关《数控电压源题Word格式.docx(22页珍藏版)》请在冰豆网上搜索。

数控电压源题Word格式.docx

电路图图纸10

附4:

程序清单11

1.前言

 

数控直流电压源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。

传统地多功能数控直流电压源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。

普通数控直流电源品种很多,但均存在以下二个问题:

(1)输出电压是通过粗调(波段开关及细调(电位器)来调节。

这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如1.05~1.07V),困难就较大。

另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。

(2)稳压方式均是采用串联型稳压电路,对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。

在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。

但在实际生活中,都是由220V的交流电网供电。

这就需要

通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电。

滤波器用于滤除整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体积,使家用电器小型化。

传统的数控直流电压源通常采用电位器和波段开关来实现电压的调节,并由电压表指示电压值的大小。

因此,电压的调整精度不高,读数欠直观,电位器也易磨损,而基于单片机控制的数控直流电源能较好地解决以上传统稳压电源的不足。

随着科学技术的不断发展,特别是计算机技术的突飞猛进,现代工业应用的工控产品均需要有低纹波、宽调整范围的高压电源,特别是在一些高能物理领域,急需电脑或单片机控制的低纹波、宽调整范围的电源。

从上世纪九十年代末起,随着对系统更高效率和更低功耗的需求,电信与数据通讯设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性和智能化方向发展。

整流系统由以前的分立元件和集成电路控制发展为微机控制,从而使直流电源智能化,具有遥测、遥信、遥控的三遥功能,基本实现了直流电源的无人值数控直流电压源设计遵守“设计的直流稳压电源主要由单片机系统、键盘、数码管显示器、指示灯及报警电路、检测电路、D/A转换电路、直流稳压电路等几部分组成,直流稳压电源是最常用的仪器设备,在科研及实验中都是必不可少的。

数控电源采用按键盘,可对输出电压及报警阈值以快慢两种方式进行设置,输出由单片机通过D/A,控制驱动模块输出一个稳定电压。

同时稳压方法采用单片机控制,单片机通过A/D采样输出电压,与设定值进行比较,若有偏差则调整输出,越限则输出报警信号并截流。

工作过程中,稳压电源的工作状态(输出电压、电流等各种工作状态)均由单片机输出驱动LCD显示,由键盘控制进行动态逻辑切换。

以单片机为核心的智能化高精度简易直流电源的设计,电源采用数字调节、输出精度高,特别适用于各种有较高精度要求的场合。

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

(1)

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

(2)

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

(3)

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

(4)

系统维护方便,一旦出现故障,可以很方便地通过RS232接口或RS485接口USB接口进行调试,故障查询,历史记录查询,故障诊断,软件修复,甚至控制参的在线修改、调试;

也可以通过MODEM远程操作。

(5)

系统的一致性好,成本低,生产制造方便。

由于控制软件不像模拟器件那样存在差异,所以,其一致性很好。

由于采用软件控制,控制板的体积将大大减小,生产成本下降。

(6)

易组成高可靠性的多模块逆变电源并联运行系统。

为了得到高性能的并联运行逆变电源系统,每个并联运行的逆变电源单元模块都采用全数字化控制,易于在模块之间更好地进行均流控制和通讯或者在模块中实现复杂的均流控制算法(不需要通讯),从而实现高可靠性、高冗余度的逆变电源并联运行系统。

2.方案论证与比较

2.1采样方法比较与选择

方案一:

采用单片机的数控电压源的设计

采用常用的52芯片作为控制器,P0口和DAC0832的数据口直接相连,DA的CS数控直流电压源设计和XFER连接后接P3.4,WR2和WR1接单片机的WR端,让DA工作在单缓冲方式下。

DA的8脚接参考电压,D/A的基准电压接5V电源,在DAC的8脚输出电压的分辨率为约等于0.5V,也就是说D/A输入数据端每增加1,电压增加0.5V。

通过运放OP07将D/A的输出电流转化为电压,再通过运放LM358将电压反相并放大。

其硬件框图如图

方案二:

采用调整管的双计数器的数控电压源的设计

此方案采用传统的调整管方案,主要特点在于使用一套双计数器完成系统的控制功能,其中二进制计数器的输出经过D/A变换后去控制误差放大的基准电压,以控制输出步进。

十进制计数器通过译码后数码管显示输出电压值,为了使系统工作正常,必须保证双十计数器同步工作。

其硬件框图如图所示:

方案三:

采用调整管的十进制计数器的数控电压源的设计

此方案不同于方案之二处在于使用一套十进制计数器,一方面完成电压的译码显示,另一方面其作为EPROM的地址输入,而由EPROM的输出经D/A转变后控制误差放大的基准电压来实现输出步进,只使用了一套计数器,回避了方案二中必须保证双计数器同步的问题,但由于控制数据烧录在EPROM中,使系统设计灵活性降低。

2.2数控部分的比较

方案二、三中采用中、小规模器件实现系统的数控部分,使用的芯片很多,造成控制电路内部接口信号繁琐,中间相互关联多,抗干扰能力差。

在方案一中采用了89C52单片机完成整个数控部分的功能,同时,89C52作为一个智能化的可编程器件,便于系统功能的扩展。

2.3显示部分的比较

方案二、三中的显示输出是对电压的量化值直接进行译码显示输出,显示值为D/A变化输入量,由于D/A变换与功率驱动电路引入的误差,显示值与电源实际输出值之间可能出现较大偏差,而方案一中采用LCD直接对电压值进行显示。

总之,方案一的优点是具有精度高,使用方便,硬件电路简单等特点,它使用了单片机,使得进一步扩展功能较为方便;

方案二、三的优点是电路结构简单,其缺点是使用比较复杂,精度没有那么高。

考虑到各种因素,本设计采用方案一。

3.数控电压源的原理

3.1整机电路框图

数控电压源的电路框图如图所示:

输出

工作原理:

本设计介绍了以89C52单片机为控制单元,以数模转换器DAC0832输出参考电压,以该参考电压控制电压转换模块LM350的输出电压大小的数控电压源。

通过改变送给单片机的数字量而达到改变输出电压的方法。

通过三端稳压器LM350达到输出电压的稳定。

3.2.1DA转换电路工作原理

本设计是采用DAC0832实现数据的数模转换,其数据口与P0口直接相连,D/A的CS和XFER连接后接P3.4,WR2和WR1接单片机的WR端,让D/A工作在单缓冲方式下。

D/A的8脚接参考电压,D/A的电压输出端接OP07将D/A的输出电流转换成电压。

改变P0口的数据便可改变0832的输出电压,如当P0=00H时,DAC0832的输出电压就应为0V。

其电路图如图所示:

3.2.2电压调整电路工作原理

本设计的输出信号采用OP07芯片进行电流/电压转换,再将OP07的输出电流LM358进行反相放大,LM358接成反馈放大电路,通过调节电位器可以调节运放的电压放大倍数。

由于LM358的输出电压Vout=1.25V(1+R0/R13),由电路图知R13是个定值,而R0则是由R12和下面的电路来确定的,可知R0是个变量,所以LM358的输出电压与R0是成线性关系变化的。

通过调节RV2,即可调节LM358的输出电压。

4.各部分元件

4.1.1键盘电路

键盘接口通常包括硬件和软件两部分。

硬件是指键盘的结构及其主机的连接方式;

软件是指对键盘操作的识别与分析,即键盘管理程序。

键盘一般是一组开关(按键)的集合。

常用的按键有三种:

机械触点式:

利用金属的弹性使按键复位。

导电橡胶式:

利用利用橡胶接弹性使按键复位。

柔性按键:

外形及面板布局等可按整机要求设计,在价格、寿命、防潮、防锈等方面显示出较强的优越性。

键盘按其工作原理又可分为编码式键盘和非编码式键盘。

这两类键盘的主要区别是识别键符及给出相应键码的方法。

编码键盘主要是用硬件来实现对键的识别;

非编码键盘主要是由软件来实现键盘的定义与识别。

非编码式键盘接照与主机连接方式的不同,可分独立式键盘和矩阵式键盘。

(1)独立式键盘:

独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。

I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。

I/O口内部有上拉电阻时,外部可不接上拉电阻。

(2)矩阵式键盘:

行列式键盘采用行列电路结构,当按键较多时所占用的口线相对较少,键盘规模越大,其优点越明显。

所以,当按键数目大于8时,一般采用矩阵式键盘结构。

4.1.2键盘电路工作原理

(1)键盘电路原理图如图所示:

(2)键盘电路工作原理如图4.3所示,当无键按下时,单片机的P1.0~P1.3及P3.3为高电平。

当有键按下时,单片机的相应口线通过按键与地相连被拉成低电平,其它口线电平状态不变。

因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下。

4.4D/A转换电路

D/A转换电路主要由STC89C522(单片机)、数码转换器DAC0832及LM358运算放大器等芯片组成。

STC89C52的P2口作为数据端口与DAC0832的8位数据线相连。

本系统中,因为CPU的工作任务是单一的,而且数据传送的目的地址也是单一的,因此,DAC0832采用单缓冲的工作方式,该芯片的CS(低电平有效)、WR1、XFER、WR2四个使能端均与地相接处于有效状态,这个工作方式不需要给DAC0832分配地址空间,CPU的P1口的数据变化直接反映到DAC0832的输出端。

5.数控电压源的软件

系统初始化后,默认输出0V电压,此时,LCD显示0.0V;

然后扫描KEY2,KEY3键,当KEY2,KEY3有键按下时,程序跳转至相应的按键处理子程序;

经过按键处理子程序处理后,置相应的标志位,并处理相应的寄存器的值;

再回到主程序中,依据不同的标志位送出相应的数字量给DAC0832,并把相应的数据送入显示缓冲区,最后显示电源输出的电压值;

程序继续扫描KEY2,KEY3键,再循环执行前面的步骤。

5.1主程序

5.2子程序

本程序设定KEY2为电压+,当按住KEY2键不松开时,输出电压以0.5V连续步进,直至KEY2键松开。

当以一定的时间间隔点动KEY2键时,输出电压也为点动步进。

KEY3为电压-,与KEY2功能基本相同;

同时输出电压的值显示在LCD上。

通过这种人机交换互设置,可以方便对电压源输出进行控制。

6.电路的调试

6.1硬件的调试

6.1.1硬件的调试过程

电路调试过程中遇到的问题和解决办法:

(1).电路线路比较多,容易出现短路现象,数码显示由于短路出现显示不正常显示,整理线路后能够正常显示。

(2).制作和测试-12V电源时,由于没有认真参考整流管的接法和7912的芯片资料,出现三次整流电容爆裂。

(3).稳压管7812的输出端输出电压,检查电路,发现输出端需要增加一个电容,增加后问题得到解决。

(4).由于LCD显示的电压不是从LM358输出的实际电压值,所以显示的电压与实际的电压值有一点的差距,为了减少误差,且从前面的电压调整电路可知输出电压与电阻是成线性关系的,所以首先必须调节输出电压的线性关系。

线性关系主要是这样调节的:

①首先输入1.5V的电压,调节电位器,使输出也为1.5V的电压;

②通过键盘设置,使输入为3.5V的电压,反复调节电位器,使输出为3.4-3.6V的电压;

③通过键盘设置,使输入为5.5V的电压,反复调节电位器,使输出为5.4-5.6V的电压;

④通过键盘设置,使输入为7.5V的电压,反复调节电位器,使输出为7.4-7.6V的电压;

⑤通过键盘设置,使输入为9.5V的电压,反复调节电位器,使输出为9.4-9.6V的电压。

通过调节输入输出电压的线性关系,确定电位器的阻值。

调好了线性关系后,电位器使固定下来了,在以后的操作中不能改变电位器的阻值。

随着电位器阻值的确定,运算放大器的放大倍数也就确定下来了。

6.1.2电路数据的测试

(1).电压输出范围的测试

主要测试仪器:

数字万用表

①设计要求的范围内,通过程序电压极值,先设最低值,再设最高值,用数字万用表测量相应的输出电压,重复测试三次,具体测试数据如表:

②误差分析

从上表的数据看出,实际输出的电压最低值达不到要求的0V,主要原因是在设计电路原理的时候考虑到条件不足,0832的基准电压只能是+5V,如果能使0832的基准电压能够是-5V,则可以达到要求。

最低值误差=(0.04+0.05+0)/3=0.03V=30mV

最高值误差=(0.04+0.05+0.02)/3=0.036V=36mV

总体分析:

由以上数据分析可知,在两端点处,系统最大误差为36mV,完全达到题目设计要求。

(2).步进控制测试:

主要测试仪器:

①在规定的范围内,先设定一个初始值。

然后通过功能键在初始值的基础上进行先步进控制,然后再步减。

测试五组数据如表

分析上表,在中间段误差较小,两端误差变大,这一方面与电源部分影响有关,另外受运放比较精度及0832的基准电压和0832的量化误差的影响。

可通过调节电位器对数模输出补偿来减小误差。

总体来说本系统基本上达到设计要求。

6.2软件调试

(1)主程序的调试

在调试主程序时,由于没有调启动0832的程序,DA转换不能正常进行,调用后能正常进行DA转换。

(2)中断子程序的调试

在调试中断子程序时,开始我采用的是电平触发方式,但达不到要求,按下调整按键没有松开,中断程序一直在执行,也就是说中断程序不只执行一次,改为脉冲触发方式后,能达到理想的效果。

7.结论

由于本系统架构设计较为合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。

《模拟电子技术基础》童诗白华成英著,北京:

高等教育出版社,2006年;

《单片机系统及应用》,金建设著,北京:

北京邮电大学出版社,2009年;

《电路设计与仿真教程》,李秀霞郑春厚等著,北京:

北京航空航天大学出版社,2008年;

《模拟电子线路基础》,吴运昌著,广州:

华南理工大学出版社,2004年;

《数字电子技术基础》,阎石著,北京:

高等教育出版社,1997年。

1、STC89C52

2、DAC0832

3、液晶LM016L

4、OP07

5、LM358

仪器设备清单

1、双15V变压器

2、数字万用表

3、稳压电源

整体电路图图纸

程序清单

#include<

reg51.h>

#defineucharunsignedchar

ucharcodevoltage[25]={0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,

0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0};

ucharcodeV1[]="

volt0V"

;

ucharcodeV2[]="

volt0.5V"

ucharcodeV3[]="

volt1V"

ucharcodeV4[]="

volt1.5V"

ucharcodeV5[]="

volt2V"

ucharcodeV6[]="

volt2.5V"

ucharcodeV7[]="

volt3V"

ucharcodeV8[]="

volt3.5V"

ucharcodeV9[]="

volt4V"

ucharcodeV10[]="

volt4.5V"

ucharcodeV11[]="

volt5V"

ucharcodeV12[]="

volt5.5V"

ucharcodeV13[]="

volt6V"

ucharcodeV14[]="

volt6.5V"

ucharcodeV15[]="

volt7V"

ucharcodeV16[]="

volt7.5V"

ucharcodeV17[]="

volt8V"

ucharcodeV18[]="

volt8.5V"

ucharcodeV19[]="

volt9V"

ucharcodeV20[]="

volt9.5V"

ucharcodeV21[]="

volt10V"

ucharcodeV22[]="

volt10.5V"

ucharcodeV23[]="

volt11V"

ucharcodeV24[]="

volt11.5V"

ucharcodeV25[]="

volt12V"

sbitkey1=P1^0;

sbitkey2=P1^1;

sbitkey3=P1^2;

sbitkey4=P1^3;

sbitlcden=P3^5;

sbitlcdrs=P3^4;

inti,j,num;

voiddelay(intz)

{

inti,j;

for(i=z;

i>

0;

i--)

for(j=110;

j>

j--);

}

voidwrite_com(ucharcom)

lcdrs=0;

//命令选择端

P0=com;

delay(5);

lcden=1;

lcden=0;

voidwrite_data(ucharsta)

lcdrs=1;

//写数据

P0=sta;

voidinit()//初始化

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

////////////////////////////////////////////////

//////////////////主函数在此////////////////////

///////////////////////////////////////////////

voidmain()

i=0;

P2=0;

while

(1)

{

if(key1==0)

{

delay(10);

j=0;

i=10;

P2=voltage[i];

while(j<

50&

&

key1==0)

j++;

}

elseif(key2==0)

if(key2==0)

j=0;

i++;

if(i==25)

i=0;

P2=voltage[i];

{

}

while(!

key2);

elseif(key3==0)

if(key3==0)

i--;

if(i<

0)

i=24;

de

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1