打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数控直流恒流电源 电子设计 毕业论文
本设计主要由直流电源模块、电流调整模块(电压转换电流)、电压采样模块、单片机控制模块、液晶显示模块六部分组成。采用multisim仿真,设计电路图,实现相应功能。电源采用LM317和LM337三端可调稳压器产生相应的+10V、-10V,用LM7824三端固定稳压器产生24V电压。利用89C52单片机D/A转换来输出不同的电压,从而实现对输出电流的控制。OP07引入电流负反馈将电压转换成电流,把三极管2N3055来增大输出负载的电流,采用三级扩流来增大流过负载的电流。负载中输出电流可以通过键盘任意设定,且从100mA到1000mA以10mA步进连续变换。为了实现电流的侧量,通过采样电阻将两端电压采样,送入单片机,通过A/D转换在1602液晶显示屏上显示相应的数据。最后通过电路焊接、调试、改进,完成了数控直流功能。系统测试结果: (1)输入交流200~240V,50Hz,输出直流电压+10V,-10V,+24V;(2)输出电流范围:100mA-1000mA; (3)键盘任意设置100mA-1000mA范围内电流输出,并显示输出电流给定值及实际输出电流值; (4)具有“—”“+”步进调整功能,步进为10mA ; (5)改变负载电阻的大小,要求输出电流变化的绝对值不大于1%。性能稳定。
设计关键在于电源、电压电流转换、电流调整、液晶显示以及单片机控制。创新点在于采用了多级扩流电路,来克服负载上功率过大和电流较小的缺点。难点在于焊接过程中技术问题以及调试阶段的结果分析。
关键词:直流电源  电压转换电流 多级扩流   AD转换  液晶显示  单片机控制
In this paper,
This design is mainly composed of dc powersupply module, current adjustment module voltage conversion (current), voltagesampling module and single-chip microcomputer control module, liquid crystaldisplay module of six parts., multisim simulation was adopted to design acircuit diagram, realize the corresponding function.Power source adopts theLM317 and LM337 adjustable three-terminal voltage regulator generatecorresponding + 10 v, - 10 v, with LM7824 three-terminal voltage regulatorfixed output voltage is 24 v.Using 89 c52 D/A conversion to different voltageoutput, so as to realize the control of output current.OP07 introduced currentnegative feedback to convert the voltage to current, the triode 2 n3055 toincrease the output load current, using three-step core flow current throughthe load to increase.Load in the output current can be through the keyboard setarbitrary, and ma from 100 to 1000 ma to 10 ma step continuoustransformation.In order to achieve the current measurement, through samplingresistance to both ends of the voltage sampling, into single chipmicrocomputer, through A/D conversion on the 1602 LCD screen displays thecorresponding data.Finally through the circuit welding, debugging, (kindle)improvement,to complete the function of numerical control direct current.System testingresults: (1) the input ac 200 ~ 240 v, 50 hz, the output dc voltage + 10 v, -10 v, + 24 v.(2) the range of output current: 100 ma ma - 1000;(3) the keyboardin any setting output current 100 ma - 1000 ma, scope, and display the outputcurrent for a given value and the actual output current value;(4) the"-" and "+" step adjustment function, the step of 10 ma,(5)change (www.91haoshu.com)the size of the load resistance to the absolute valueof output current is not more than 1%.Stable performance.
Design is the key to transformation,current, voltage, liquid crystal display (LCD) and single chip microcomputercontrol.Innovations is to adopt the multistage flow circuit, and to overcometoo much load on the power and the shortcoming of current is small.Thedifficulty lies in the welding process commissioning stage technical problemsand the results of the analysis.
Keywords: dc voltage conversion currentmulti-stage expansion flow AD conversion LCD single-chip microcomputer control
目录
1       数控直流横流电源设计任务与要求
2       方案讨论
3       电路设计
3.1        直流电源
3.1.1  电源变压器
3.1.2  三段可调稳压器LM317,LM337(±10V)+24V电源
3.1.3  三端固定稳压器LM7824
3.2        电流调整
3.2.1  运放OP07可调放大输出
3.2.2  多级扩流电路
3.3        电压采样
4       单片机控制模块
4.1        键盘控制模块
4.2        AD/DA转换部分
5       液晶显示模块
6       实验数据分析
7       实验中遇到的问题及解决方法
8       器件清单
9       实验成果实物图
10              感想与收获
11              实验分工
12              单片机控制模块代码(见附录)
13              参考文献
14              附录:
任务
设计并制作数控直流横流电源。
基本要求
1)       直流电源:输入交流200~240V,50Hz,输出直流电压10V;
2)       输出电流范围:100mA~1000mA;
3)       键盘任意设置100mA~1000mA范围内电流输出,并显示输出电流给定值及实际输出电流值,要求实际输出电流与给定值偏差的绝对值不大于1%;
4)       具有“—”“+”步进调整功能,步进为10mA;
5)       改变负载电阻的大小,要求输出电流变化的绝对值不大于1%;
6)       自制电源。
发挥部分
1)       输出电流的可调范围为20mA~1500mA;
2)       可同时监测显示电源交流输入电压值、输出直流电压值、直流电流输出的给定值和实测值,要求实际输出电流与给定值偏差的绝对值不大于0.1%。
项目
满分
基本要求
设计与总结报告:方案比较、设计与论证,理论分析与计算,电路图及有关设计文件,测试方法与仪器,测试数据及测试结果分析。
50
实际完成情况
50
发挥部分
完成(1)项
10
完成(2)项
20
完成(3)项
15
其他
5
根据题目要求,可以构建出如下系统框图:
电流调整
负载
直流电源
整个电路,采用自制直流电源供电,除单片机开发板由电脑USB供电。通过开发板上的键盘控制,任意设定值,再利用单片机进行D/A转换,把输出的电压给系统,经过电流调整模块,实现电压电流转换来输出电流。最后在负载上采样电压,送入单片机,通过A/D转换在1602液晶显示屏上显示相应的数据。
基本原理:
稳压电源由变压器、整流电路、滤波电路、稳压电路组成,基本框图和波形变换如下:
(1)电源变压器:将电网220V交流电压变换为整流滤波电路所需的低电压。
(2)整流电路:一般由具有单向导电性的二极管构成,应用广泛的是桥式整流电路,采用四个二极管集成,轮流导通,正负半周流过负载的方向是一致的,形成全波整流,将变压器输出的交流电压变成脉动的直流电压。
(3)滤波电路:利用电容充放电特性,使输出较平滑的电压波形,减小直流电的脉动成分,达到滤波的效果。
(4)稳压电路:利用稳压管、串联稳压或集成稳压器件,稳定输出电压。
实验电路:
实验中要求输出1A的大电流,而且对纹波要求很高。电源部分将50Hz交流220V电压经变压器输出约+18V和+36V交流电压,经过全桥整流通过电容滤波,1.2mF、100nF用于滤除高频交流成分,用LM317、LM337三端可调稳压稳压管和LM7824稳压管分别输出+10V、-10V、+24V稳定电压,用10µF、100nF再次滤除干扰,满足后续电路要求。
实验使用的变压器如下图:
该变压器在输出约+18V和 +36V交流电压时,无法调整解决共地,不能同时提供所需电压。故采用双变压器供电,原理如图。
,LM337(±10V)+24V电源
经滤波后的直流电压输入LM317、LM337三端可调稳压管,调整滑动变阻器
精确调整输出+10V、-10V电压,仿真图如下:
经滤波后的直流电压输入(好书 电子书)LM7824稳压管,输出+24V电压,仿真图如下:
可调放大输出
由于单片机的输出电压的分辨率是1/256V ,我们通过运放OP07可调放大输出电路,将电压调到我们需要的值。电路仿真图如下:
采用OP07和三极管2N3055(功率管)构成电流串联负反馈来实现电压到电流的转换。三极管2N3055的IC/P为15A/115W。为了扩大负载上的电流输出,采用三级扩流,从而在15Ω/100W可调滑动变阻器上,输出足够大的电流(满足实验要求)。最后将电流汇总到0.1Ω的电阻上,经过采样放大,将电压采样出来。电路图如下:
IL
UR
三级扩流的原理:由于OP07与三极管2N3055构成负反馈,满足“虚短,虚断”理论,因此2N3055的发射级电位与输入电压值相等。每一级流过电阻(10Ω)的电流I=U/R,负载电流正比于数模转换的输出电压U,与负载无关,数模转换的输出电压U一定,可以得到恒流输出。而流过取样电阻的电流将他们的3倍关系(好书 电子书),即IL=3I,从而达到扩大电流的目的。
电压采样原理:由于采样电路要求采集的电压必须十分准确,所以我们采样,原理图如上。
鉴于本设计要求可任意调整电流的输出值,所以考虑使用矩阵键盘可实现数字0-9的按键,因此可以实现数据0-256的任意调整。
原理
矩阵键盘的示意图如下:
我们采用行列扫描的判断方法:通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。
实现0-256数据的任意输出
利用矩阵键盘上10个按键依次设置为0-9,接通单片机的电源,然后依次按下三个键,其中第一个键代表的是百位上的数据,第二个键代表的是十位上的数据,第三个按键代表的是个位上的数据。在主程序中通过一个矩阵键盘扫描函数KeyScan()(附:具体代码见附录一)可以实时监测按键的值,在通过液晶1602显示。
实现“—”“+”步进调整功能
单独设置二个独立按键用于实现“—”“+”步进。
存在的问题:由于按键可能存在抖动和延迟等因素,所以有时会发生按键失灵的情况。
转换部分
原理
PCF8591是单片、单电源低功耗的8位数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。器件包括多路服用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模转换。
鉴于本实验需要同时测量输出电压和提供0~5V的模拟电压输出。所以采用通道AIN3作为模拟电压采样的输入,AOUT作为DA转换模拟电压的输出。(PCF8591的内部结构图如下)
AD采样电压显示
原理(附:具体AD转换代码见附录三)
转换器采用逐次逼近转换技术。具体转换特性图如下:
通过杜邦线将模拟电压采样点输入PCF8591的AIN3通道。
采样电路
存在的问题:由于PCF8591是8位的逐次逼近式A/D转换,所以其精度只能达到1/256约等于0.0039,导致在AD采样电压较小时存在一定的误差。
DA转换电压输出
原理(附:具体DA代码见附录四)
发送给PCF8591的第三个字节被存储到DAC数据寄存器,并使用D/A转换器转换成对应的模拟电压,这个D/A转换器由连接至外部的参考电压的具有256个接头的电阻分压电路和选择开关组成,提供给模拟输出AOUT的输出电压。(DAC电阻电路和DA转换特性图如下)
输出给后续电路:
(1)液晶1602与单片机的连接示意图如下:
(2)1602操作原理
根据1602的操作时序分别写出其读数据、写数据、写指令的函数(附:具体代码见附录二)。
液晶屏显示部分:
控制器部分:
控制矩阵键盘部分(见一)
控制液晶显示部分(见二)
附录五:
VO真实值/v
vo测量值/v
电压误差
io真实值/mA
IO测量值/mA
电流误差
0
0
0
0
0.05
0.03
40.000%
10.00
6
40.000%
0.10
0.07
30.000%
20.00
14
30.000%
0.15
0.11
26.667%
30.00
22
26.667%
0.20
0.15
25.000%
40.00
30
25.000%
0.25
0.21
16.000%
50.00
42
16.000%
0.30
0.29
3.333%
60.00
58
3.333%
0.35
0.31
11.429%
70.00
62
11.429%
0.40
0.37
7.500%
80.00
74
7.500%
0.45
0.41
8.889%
90.00
82
8.889%
0.50
0.48
4.000%
100.00
96
4.000%
0.55
0.52
5.455%
110.00
104
5.455%
0.60
0.58
3.333%
120.00
116
3.333%
0.65
0.62
4.615%
130.00
124
4.615%
0.70
0.68
2.857%
140.00
136
2.857%
0.75
0.72
4.000%
150.00
144
4.000%
0.80
0.78
2.500%
160.00
156
2.500%
0.85
0.83
2.353%
170.00
166
2.353%
0.90
0.89
1.111%
180.00
178
1.111%
0.95
0.95
0.000%
190.00
190
0.000%
1.00
0.99
1.000%
200.00
198
1.000%
1.10
1.09
0.909%
220.00
218
0.909%
1.20
1.17
2.500%
240.00
234
2.500%
1.30
1.26
3.077%
260.00
252
3.077%
1.40
1.38
1.429%
280.00
276
1.429%
1.50
1.50
0.000%
300.00
300
0.000%
1.60
1.56
2.500%
320.00
312
2.500%
1.70
1.67
1.765%
340.00
334
1.765%
1.80
1.77
1.667%
360.00
354
1.667%
1.90
1.89
0.526%
380.00
378
0.526%
2.00
1.99
0.500%
400.00
398
0.500%
2.10
2.07
1.429%
420.00
414
1.429%
2.20
2.18
0.909%
440.00
436
0.909%
2.30
2.30
0.000%
460.00
460
0.000%
2.40
2.40
0.000%
480.00
480
0.000%
2.50
2.49
0.400%
500.00
498
0.400%
2.60
2.59
0.385%
520.00
518
0.385%
2.70
2.71
0.370%
540.00
542
0.370%
2.80
2.77
1.071%
560.00
554
1.071%
2.90
2.90
0.000%
580.00
580
0.000%
3.00
3.00
0.000%
600.00
600
0.000%
3.10
3.12
0.645%
620.00
624
0.645%
3.20
3.22
0.625%
640.00
644
0.625%
3.30
3.32
0.606%
660.00
664
0.606%
3.40
3.38
0.588%
680.00
676
0.588%
3.50
3.53
0.857%
700.00
706
0.857%
3.60
3.59
0.278%
720.00
718
0.278%
3.70
3.67
0.811%
740.00
734
0.811%
3.80
3.82
0.526%
760.00
764
0.526%
3.90
3.92
0.513%
780.00
784
0.513%
4.00
4.04
1.000%
800.00
808
1.000%
4.10
4.08
0.488%
820.00
816
0.488%
4.20
4.18
0.476%
840.00
837
0.357%
4.30
4.35
1.163%
860.00
870
1.163%
4.40
4.45
1.136%
880.00
890
1.136%
4.50
4.51
0.222%
900.00
902
0.222%
本实验由于采样的是电压,最后我们要把它转换成电流。采样电阻上的电压经放大50倍后,才送入单片机。所以计算电流的公式是:
I=U/50/R采样电阻*1000(mA)
误差分析:由表格中的数据可知,在输入电流很小时,输出的误差较大;当电流达到180mA之后,测量误差和实际误差的百分比大约在1%左右,在允许的范围内,符合要求。
问题一:使用的变压器无法调整解决共地,同时输出约+18V和 +36V交流电压。
解决方法:将两变压器级联,采用双变压器供电。
问题二:由于电流的范围为100mA到1000mA,对负载的功率要求很大,既要得到足够的电流,又要满足负载所承受的额定功率。
解决方法:采用多级扩流将电流分散,减少各级所流过的电流,且又能够得到符合要求的电流。
问题三:由于单片机的AD采样电压的分辨率1/256,约为39mV,而而题目要求以10mA的步进变化,即取样电阻(0.1Ω)上的电压以1mV步进改变,AD采样电压模块不能很好采样。
解决方法:将取样电阻(0.1Ω)上的电压,经过一个固定倍数放大模块,本实验采用50倍放大,即即取样电阻(0.1Ω)上的电压以50mV步进改变。
器件
参数
数量
变压器
25W
2
无极电容
330nF
3
100nF
6
滤波电容
1.2mF
3
10uF
5
470uF
1
电阻
1kΩ
8
2kΩ
2
98kΩ
1
10Ω
3
0.1Ω
1
15Ω/200W
1
滑动变阻器
10 kΩ
2
5 kΩ
1
二极管
5
LM317
1
LM337
1
LM7824
1
OP07
5
DB107
2
2N3055
3
单片机实验板
1
其它
导线、插针等
通过本次实验设计,历时一个半月,最终我们完成了实验的基本要求。学会了很多,收获了也很多。体会到,团队精神的重要性,在实验中,需要的是一种耐得住的寂寞,永不言败的精神,凭着坚持不懈的毅力,将实验中一个个问题解决,突破,尤其在电源模块、扩流模块以及单片机代码模块花费了很多精力。但是在教员的指导下,我们一点一点将问题找到,并解决。
总而言之,收获蛮多,感谢教员的指导。
XXX
整体设计
电流调整
运放OP07可调放大输出
多级扩流电路
电压采样
撰写报告
XXX
焊接、调试
直流电源
电源变压器
三段可调稳压器LM317,LM337
三端固定稳压器LM7824
撰写报告
XXX
单片机控制模块
键盘控制部分
AD/DA转换部分
液晶显示模块
撰写报告
[1]张莉萍 李洪芹  编,电子技术课程,北京:清华大学出版社,2014
[2]陆利忠 王志刚 编,现代电子线路基础(上册),北京:国防工业出版社,2011
主程序:
/*------------------------------------------------
主程序
------------------------------------------------*/
voidmain()
{
intnum1=0,num2=0,num3=0;
intdat=0;(www.91haoshu.com)
unsignedcharnum;                 //DA数模输出变量
unsignedchar ADtemp;
unsignedcharADtemp2;             //定义中间变量
InitLcd();
mDelay(20);
Init_Timer1();
cmg();
//数码管锁存
while(1)
{
KeyScan();
if(KeyValue==10)
{
num3=num3+1;
if(num3==10)
{
num2=num2+1;
num3=0;
if(num2==10)
{
num1=num1+1;
num2=0;
}
}
count=0;
KeyValue=0;
}
if(count==4)
{
count=0;
}
if(count==1)
{
num1= KeyValue;
}
if(count==2)
{
num2= KeyValue;
}
if(count==3)
{
num3=KeyValue;
}
FirstLine[2]='0'+num1;
FirstLine[3]='0'+num2;
FirstLine[4]='0'+num3;
dat=100*num1+10*num2+num3;
DAC(dat);       //DA输出,可以用LED模拟电压变化
mDelay(20);    //延时用于清晰看出变化
//              if(ADFlag)      //定时采集输入模拟量
{
ADFlag=0;
P1=ADtemp;
//            ADtemp=ADtemp*100;
TempData[6]=(ReadADC(3))*0.01953;//处理1通道电压显示此通道暂时屏蔽,可以自行添加
ADtemp=  (int)(ReadADC(3)*0.01953*10)%10;
ADtemp2=  (int)(ReadADC(3)*0.01953*100)%10;
TempData[7]=ADtemp;
TempData[8]=ADtemp2;
disp();
}
}
}
附录一:
voidKeyScan(void)
{
chara = 0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//读取按键是否按下
{
Delay10ms(1);//延时10ms进行消抖
if(GPIO_KEY!=0x0f)//再次检测键盘是否按下
{
//测试列
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=4;break;
case(0X0d):KeyValue=8;break;
case(0X0e): KeyValue=12;break;
}
//测试行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue+3;break;
case(0Xb0): KeyValue=KeyValue+2;break;
case(0Xd0):KeyValue=KeyValue+1;break;
case(0Xe0): KeyValue=KeyValue;break;
}
while((a<50)&& (GPIO_KEY!=0xf0)) //检测按键松手检测
{
Delay10ms(1);
a++;
}
count++;
}
}
}
附录二:
voidWriteCommand(unsigned char c)
{
DelayMs(5);//short delay beforeoperation
E=0;
RS=0;
RW=0;
_nop_();
E=1;
Data=c;
E=0;
}
/****************************************************************/
voidWriteData(unsigned char c)
{
DelayMs(5);   //short delaybefore operation
E=0;
RS=1;
RW=0;
_nop_();
E=1;
Data=c;
E=0;
RS=0;
}
/*********************************************************************/
voidShowChar(unsigned char pos,unsignedchar c)
{
unsigned char p;
if (pos>=0x10)
p=pos+0xb0; //是第二行则命令代码高4位为0xc
else
p=pos+0x80; //是第二行则命令代码高4位为0x8
WriteCommand (p);//write command
WriteData (c);   //write data
}
/*************************************************************************/
voidShowString (unsigned char line,char*ptr)
{
unsigned char l,i;
l=line<<4;
for (i=0;i<16;i++)
ShowChar (l++,*(ptr+i));//循环显示16个字符
}
附录三:
/*------------------------------------------------
读取AD模数转换的值,有返回值
------------------------------------------------*/
unsignedchar ReadADC(unsigned char Chl)
{
unsigned char Data;
Start();        //写入芯片地址
Send(AddWr);
Ack();
Send(0x40|Chl);//写入选择的通道,本程序只用单端输入,差分部分需要自行添加
//Chl的值分别为0、1、2、3,分别代表1-4通道
Ack();
Start();
Send(AddRd);    //读入地址
Ack();
Data=Read();    //读数据
Scl=0;
NoAck();
Stop();
return Data;   //返回值
}
附录四:
/*------------------------------------------------
写入DA数模转换值
------------------------------------------------*/
voidDAC(unsigned char Data) (kindle)
{
Start();
Send(AddWr); //写入芯片地址
Ack();
Send(0x43);  //写入控制位,使能DAC输出
Ack();
Send(Data);  //写数据
Ack();
Stop();
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
什么是两线制电流变送器
分享一点STM32硬件设计的经验
电路学习01
激光二极管的测试电源电路LM317x2
三端稳压器7805/LM317的使用与改进
电流电压采样电路
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服