TI杯简易直流电子负载解析.docx

上传人:b****6 文档编号:13686216 上传时间:2023-06-16 格式:DOCX 页数:27 大小:165.01KB
下载 相关 举报
TI杯简易直流电子负载解析.docx_第1页
第1页 / 共27页
TI杯简易直流电子负载解析.docx_第2页
第2页 / 共27页
TI杯简易直流电子负载解析.docx_第3页
第3页 / 共27页
TI杯简易直流电子负载解析.docx_第4页
第4页 / 共27页
TI杯简易直流电子负载解析.docx_第5页
第5页 / 共27页
TI杯简易直流电子负载解析.docx_第6页
第6页 / 共27页
TI杯简易直流电子负载解析.docx_第7页
第7页 / 共27页
TI杯简易直流电子负载解析.docx_第8页
第8页 / 共27页
TI杯简易直流电子负载解析.docx_第9页
第9页 / 共27页
TI杯简易直流电子负载解析.docx_第10页
第10页 / 共27页
TI杯简易直流电子负载解析.docx_第11页
第11页 / 共27页
TI杯简易直流电子负载解析.docx_第12页
第12页 / 共27页
TI杯简易直流电子负载解析.docx_第13页
第13页 / 共27页
TI杯简易直流电子负载解析.docx_第14页
第14页 / 共27页
TI杯简易直流电子负载解析.docx_第15页
第15页 / 共27页
TI杯简易直流电子负载解析.docx_第16页
第16页 / 共27页
TI杯简易直流电子负载解析.docx_第17页
第17页 / 共27页
TI杯简易直流电子负载解析.docx_第18页
第18页 / 共27页
TI杯简易直流电子负载解析.docx_第19页
第19页 / 共27页
TI杯简易直流电子负载解析.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

TI杯简易直流电子负载解析.docx

《TI杯简易直流电子负载解析.docx》由会员分享,可在线阅读,更多相关《TI杯简易直流电子负载解析.docx(27页珍藏版)》请在冰点文库上搜索。

TI杯简易直流电子负载解析.docx

TI杯简易直流电子负载解析

 

简易直流电子负载设计与总结报告

 

湖北仙桃职业学院:

杨青林胡炎何方

指导教师:

刘祖云刘明江

 

简易直流电子负载的设计与总结报告

摘要

本系统设计的是直流电子负载,以TI公司16位的单片机MSP430为控制核心,由按键模块,D/A转换模块,恒流源模块、以及液晶显示模块等主要外围电路构成。

通过对DA的控制,达到对恒流值在一定范围内的控制,流过该电子负载的电流恒定,且电流值可设定。

之后通过内部AD的采集模块将实际端电压、端电流值送到单片机控制模块,能够检测被测电源的电流值、电压值;各个参数通过显示模块加以显示。

本设计着重阐述了系统框架、工作原理、软硬件设计,并给出了系统测试表。

测试结果表明,该系统具有稳定性强、调节速度快的特点,很好的满足了提出的性能指标。

关键词:

恒流源、TM12864Z-1液晶、D/A、采样电路(电压采样、电流采样)、键盘、被测电源。

 

一.系统结构原理图

本系统由以下部分组成:

电源电路、单片机、功率控制电路、电压、电流采样电路、D/A输出、键盘输入、液晶显示电路。

系统总体结构框图如图1所示:

图1系统总体结构框架图

二.方案比较与论证

1.主控芯片

方案一:

选用ATMEL公司的AT89C51作为该系统的微控制器。

51单片机软件编程灵活,自由度大,可用软件编程实现各种算法和逻辑控制,单片机为8位机,价格便宜,成本低,控制简单。

但51单片机功耗较高、运行速度慢、储存空间小内存只有8Kb,片内资源少,存储容量小,难以存储大容量的程序和实现快速精准的反应、控制、计算。

使用AT89C51需外接两路AD转换电路,实现较为复杂。

方案二:

选用TI公司MSP430单片机作为该系统的微控制器。

MSP430单片机是16位的单片机,数据处理速度快,耗能低,保密性能好,内存空间大,抗干扰性好,内部集成资源丰富,存储容量大,低电源电压(1.8V—3.6V),支持多个中断源,可任意嵌套,时钟系统灵活,具有A/D转换等电路。

考虑到本系统对单片机性能要求较高,本设计采用了方案二,选用MSP430单片机作为直流电子负载微控制器。

2.D/A转换电路

方案一:

采用DAC0832的DA芯片,DAC0832是8位分辨率,双通道A/D转换,5V电源供电,工作频率为250KHz,转换时间为32us,一般功耗为15mW。

方案二:

采用TLC5615的D/A芯片,它是一个串行10位的DA芯片,性能比早期电流型输出的DA要好,只需要通过3根串行总线就可以完成10位数据的串行输入,5V供电,微功耗,最大功耗为1.75mW,转换速率快,更新率为1.2MHz,上电时内部自动复位。

根据方案比较与论证,本系统选择方案二。

3.液晶显示电路

方案一:

用数码管进行显示。

数码管亮度高、显示速度快、显示效果简洁明了。

但是数码管需要实时的进行动态扫描,需要外加三极管或者锁存器进行驱动,硬件电路设计较为复杂。

且显示信息简单、有限,只能显示有限的数字和符号,在本题目中应用受到很大的限制。

方案二:

采用TM12864Z-1液晶显示,显示效果为蓝底白字、数据传输:

串、并口兼容STN(黄绿模、灰模、黑白模)反射型,带EL或LED背光源EL/30VAC,400HZ带EL驱动,内置ST7920简、繁体中文字库控制器,可3.3v或5v供电,显示4行,每行显示12个汉字。

根据方案比较与论证,本系统选择方案二。

4.恒流源电路

方案一:

由晶体管构成恒流源该电路的缺点之一在于电流的测量精度受到两个晶体管的匹配程度影响,其中涉及到比较复杂的工艺参数。

另一缺点在于,集电极最大输出电流约为几百毫安,而题目要求输出电流为100~1000mA,因此由晶体管构成的恒流源不适合采用。

方案二:

由运算放大器加上扩流管构成恒流电路,既能利用运算放大器准确的特性,输出又能达到要求。

采用高精度运算放大器OPA227,更能增加其准确的性能;采用IRF540场效应管进行扩流,具有很大的扩流能力,两者结合,可以实现比较精确的恒流电路。

根据方案比较与论证,本系统选择方案二。

5.A/D转换电路

方案一:

采用A/D0809芯片,此芯片是8位的A/D转换器,转换精度高,抗干扰性能好,价格便宜,但是转换速度较慢一般用于要求不高的场合。

使用时需要外接电路。

方案二:

采用MSP430内部的A/D芯片,此芯片是10位的A/D转换器,使用时不需要外接电路即可使用。

根据方案比较与论证,本系统选择方案二。

6.采样电路

采样电路的作用是为了获得实际的端电压、端电流数据,送回到单片机处理并进行显示。

因此,采样电路的就成为设计的重点。

由D/A电路,输出一个电压信号送到OPA2277进行放大,去控制场效应管IRF540两极的电流。

由INA271对本系统的电流进行监控,当从而使流经R1的电流保持恒定,成为一个非常稳定的恒流电子负载。

再有MSP430内部的A/D。

采样之后的数据需要进行处理之后才会得到所求的数据。

7.自制电源电路

方案一:

采用7805三端正电源稳压电路。

此稳压电路有热过载保护,短路保护,其缺点就是输出电流小,纹波与噪声电压(峰峰值)大,输出的电压精度不够。

故不能达到要求。

方案二:

自制一个稳压电源,本系统自制的稳压电源采用的是桥式整流电路,由电源变压器Tr,二极管D1、D2、D3、D4和电感、电容、电阻、TL431、TP31C等电路组成桥式整流。

此电路输出的电压精度高,带负载能力强,纹波与噪声电压(峰峰值)小.

根据方案比较与论证,本系统选择方案二。

三.理论分析与计算

1.电子负载及恒流电路的分析

经由单片机和D/A电路,输出一个电压信号送到OPA2277高精度运放进行放大,去控制场IRF540场效应管的源极和漏极间的电流。

当被测电压改变时,IRF540的D、S端压降改变,从而使流经R1的电流保持恒定,成为一个非常稳定的恒流电子负载。

2.电压、电流测量及精度分析

单片机经过D/A输出电压,控制IRF540的电流,电流步进值100mA,范围为100mA-1000mA。

INA271监测流经R1的电流,输出电压,该电压经过2.5K和17.5K电阻分压电路,作为采样电压。

3.直流稳压电源的组成原理

自制一个稳压电源是由电源变压器Tr,二极管D1、D2、D3、D4和电感、电容、电阻、TL431、TP31C等电路组成桥式整流。

采用π型滤波器,包括两个电容器和一个电感器,它的输入和输出都呈低阻抗。

π型电路因为元件多,所以其插入损耗特性比C型和LC型更好。

本设计中采用电感L值为57.2mH,电容C值为2200uF。

滤波后的信号经过并联稳压集成电路TL431,该器件是良好的热稳定性能的三端可调分流基准源,它的输出电压用两个电阻就可以任意的设置到从Verf(2.5V)到36V范围内的任何值,其典型动态阻抗为0.2Ω。

本设计中采用了2.7K电阻和2.7K电阻分压,得到5V输出。

在输出端采用了通用硅功率晶体管TIP31C,输出电流可以达到1A的要求。

4.电源负载调整率的测量原理

负载调整率是电源负载的变化会引起电源输出的变化,负载增加,输出降低,相反负载减少,输出升高。

好的电源负载变化引起的输出变化减到最低,通常指标为3%~5%。

测试说明:

输入电压为额定值时,因变换负载引起的输出电压波动不应超过规定的范围。

测试方法:

1)输入电压为额定值,输出电流取最小值,记录最小负载量的输出电压U1;

2)调节负载为50%满载,记录对应的输出电压U0;

3)调节负载为满载,记录对应的输出电压U2;

4)负载调整率按以下公式计算:

负载调整率={(U-U0)/U0}×100%

式中:

U为U1和U2中相对U0变化较大的值;

四.硬件电路设计

1.D/A转换电路

采用TLC5615的D/A芯片,由单片机输入信号经过上拉电阻送入TLC5615转换输出,送入恒流源电路。

D/A转换电路如图2所示:

 

图3液晶显示电路

图2D/A转换电路

2.液晶显示电路

液晶由TM12864Z-1显示,引脚接线如表一。

液晶显示电路如图3所示:

引脚号

引脚名称

方向

功能说明

1

VSS

-

模块的电源地

2

VDD

-

模块的电源正端

3

V0

-

LCD驱动电压输入端

4

RS(CS)

H/L

并行的指令/数据选择信号;串行的片选信号

5

R/W(SID)

H/L

并行的读写选择信号;串行的数据口

6

E(CLK)

H/L

并行的使能信号;串行的同步时钟

7

DB0

H/L

数据0

8

DB1

H/L

数据1

9

DB2

H/L

数据2

10

DB3

H/L

数据3

11

DB4

H/L

数据4

12

DB5

H/L

数据5

13

DB6

H/L

数据6

14

DB7

H/L

数据7

15

PSB

H/L

并/串行接口选择:

H-并行;L-串行

16

NC

空脚

17

/RET

H/L

复位低电平有效

18

VOUT

-

正压输出

19

LED_A

-

背光源正极(LED+5V)

20

LED_K

-

背光源负极(LED-OV)

图表一

3.恒流源电路

由单片机和D/A电路,输出一个电压信,由OPA2277高精度运算放大器进行放大,加上扩流管IRF540构成恒流电路,再有INA271对本系统进行电流监控,从而使流经R1的电流保持恒定,成为一个非常稳定的恒流电子负载。

恒流源负载如图4所示:

图4恒流源负载

4.自制电源电路

本系统自制的稳压电源采用的是桥式整流电路,由电源变压器Tr,四个二极管和电感、电容、电阻、TL431、TP31C等电路组成桥式整流。

由π型滤波器进行此电路的滤波,滤波后的信号经过并联稳压集成电路TL431,输出电压用两个电阻就可以任意的设置到得到5V输出,再由TP31C提高输出的电流。

自制电源电路如图5所示:

五.

图5自制电源电路

软件设计(软件设计图6)

采样输出电流、电压并在液晶上显示。

单片机通过内部自带的10位A/D对等效负载的电压和电流进行采样,将采集回来的数值在单片机内部处理后送液晶进行电压电流的显示。

图6软件设计图

六.系统测试与分析

1.测试仪器

数字万用表;

函数发生器;

示波器;

直流电源;

2.测试方法

在电路各个模块完整的制作完成后,首先要做的是再次检查硬件电路是否有错误,如虚焊,连线错误等。

如果并无此方面的问题,则在不加测试电源的情况下,对各个模块的主要部件进行测试,如单片机对D/A的控制是否正常,采样模块的A/D是否能够正常的进行工作,显示模块是否能够正常显示等。

当通过上面的测试后,则可以接入电源。

当电源在初次接入时,其电流值应该设定的很小,可以从0A开始进行调节,与此同时,还要考虑到并联限流电阻,为了确保电路的安全,初次接入时应先选取2欧进行测试。

在测试过程中,尽量保证电源电流与D/A输出模拟电流向接近,避免两者偏差过大。

当测试过程中出现异常情况时,切记先关闭电源开关。

3.测试数据

恒流源模式的测试负载调整率

通过键盘设置恒定值测得测试点电流数据如表二所示:

表二恒流模式下测试数据表

1V

3V

5V

10V

12V

15V

18V

100mA

0.98A

0.99A

0.97A

1.01A

1.02A

1.01A

1.00A

300mA

0.27A

0.28A

0.29A

0.28A

0.30A

0.31A

0.31A

500mA

0.47A

0.47A

0.49A

0.48A

0.51A

0.52A

0.51A

800mA

0.79A

0.78A

0.81A

0.82A

0.82A

0.81A

0.83A

1.0A

0.99A

0.98A

0.97A

0.99A

1.02A

1.03A

1.03A

1.5A

1.47A

1.47A

1.49A

1.54A

1.53A

1.52A

1.51A

2.0A

1.99A

1.97A

1.98A

2.01A

2.01A

2.01A

2.03A

3.0A

2.98A

2.98A

2.99A

3.01A

3.04A

3.02A

3.02A

由数据表明,实测电流的值都稳定在设定值左右,经计算,相对误差小于2%。

说明系统在恒流模式下工作正常。

七.总结

本系统设计的基于MSP430控制的电子负载,能够直接检测被测电源的电流值、电压值,以及在不同大小的负载下电源的输出电流值。

通过单片机控制使各个参数都能直观的在液晶上显示。

此电子负载能很好的替代传统的测试方法中一般采用的电阻、滑线变阻器、电阻箱等,更简单、更快捷、更可靠地对电源、变压器、蓄电池等电子设备进行输出特性的测试。

但是,本设计还存在着很多不足,希望能在以后能改善这方面的缺陷。

此次设计的电子负载,从最开始的资料搜集,到电路的设计;从最开始的元件选型,到电路板的焊接,再到现在的实物的整体调试,一步都印证着自己在完成电子设计任务上一个又一个的成功与失败,迷惑与奋发!

我们在整个设计制作过程中,始终关注系统的性能指标和运行的稳定性,本着稳定性和精确性并重的原则,我们采取了诸多的有效措施,完成了设计题目所规定的部分指标和要求,达到基本的性能指标,而且对于有些指标我们的设计还有了一定的的提高,功能也有所扩展。

遗憾时间的仓促,以及自身能力所限,此次设计存在很多有待改进的方方面面,更存在很多的错漏和失误的地方。

还请各位学术上的专家多多包涵见谅。

八.参考文献

【1】张靖武,周灵杉.单片机原理与PROTEUS仿真[M].北京:

电子工业出版社.2008.【2】严启罡.黎万平.电路设计与制版[M].武汉:

湖北科学技术出版社.2008.

【3】徐受蓉.C语言程序设计[M].重庆:

西南师范大学出版社.2006.

附录:

程序

/******************************************************************************

*模块名:

数控恒流源系统

*日期:

2012-06-27

********************************************************************************/

#include

#defineSENDCOMM0XF8//0XF1000

#defineREADCOMM0XFC//0XF1100

#defineSENDDATA0XFA//0XF1010

#defineREADDATA0XFE//0XF1110

#defineE_CLK_0P2OUT&=~BIT2//时钟信号为0

#defineE_CLK_1P2OUT|=BIT2//时钟信号为1

#defineRW_SID_0P2OUT&=~BIT1//数据信号为0

#defineRW_SID_1P2OUT|=BIT1//数据信号为1

#defineRS_CS_0P2OUT&=~BIT0//片选信号为0

#defineRS_CS_1P2OUT|=BIT0//片选信号为1

voidLCD_send_byte(unsignedchara);//声明发送字节函数

unsignedcharLCD_read_byte(void);//声明读字节函数

voidLCD_comm(unsignedcharcomm);//写指令函数声明

voidLCD_setxy(unsignedcharx,unsignedchary);

voidLCD_WriteStr(unsignedchardis_addr_x,unsignedchardis_addr_y,char*str);

voidLCD_WriteStr1(unsignedchardis_addr_x,unsignedchardis_addr_y,charyy);

voidMCU_initialize(void);

voidLCD_init(void);

voidPID(void);

voidlcd_diaoyong1();

voidPWM_1(void);

voidF_data(void);

voidInt_xs(void);

voidAction(void);

voidDY_fangda(void);

unsignedintshuzhi=0,qushu=0;

unsignedintj=0,i=0,k=200,pwm2=5,a,h;

charyy[10]={48,49,50,51,52,53,54,55,56,57};//0--9

unsignedchardata[]={0,0,0,0};

unsignedchardata1[]={0,0,0,0};

//charyy1[10]={0x32,0x33,0x34,0x35,0x36};

typedefstruct

{

charKp,Ki,Kd;

inte0,e1,e2;

longpa,vpa;

}mypid;

mypidp1;

/*********************主函数************************/

voidmain()

{

p1.Kp=6;

p1.Ki=7;

p1.Kd=3;

MCU_initialize();

LCD_init();

Int_xs();

while

(1)

{

DY_fangda();

PWM_1();

j++;

if(j>5000)

{

shuzhi=qushu*35/10;

a=shuzhi/0.1;//将取样电压转换成电流

lcd_diaoyong1();

j=0;

}

}

}

/********************************************

lcd子函数1

*******************************************/

voidlcd_diaoyong1()

{

F_data();

LCD_WriteStr(1,1,"反馈模拟电压值:

");

i=shuzhi/1000;

LCD_WriteStr1(3,2,yy[i]);

LCD_WriteStr(4,2,".");

i=shuzhi%1000/100;

LCD_WriteStr1(5,2,yy[i]);

i=shuzhi%100/10;

LCD_WriteStr1(6,2,yy[i]);

i=shuzhi%10;

LCD_WriteStr1(7,2,yy[i]);

LCD_WriteStr(8,2,"V");

LCD_WriteStr(1,3,"系统设定电流值:

");//char*str="设定转数:

",测量当前转数

LCD_WriteStr1(3,4,yy[data[0]]);

LCD_WriteStr1(4,4,yy[data[1]]);

LCD_WriteStr1(5,4,yy[data[2]]);

LCD_WriteStr1(6,4,yy[data[3]]);

LCD_WriteStr(7,4,"mA");

}

/****************发送字节函数*****************/

voidLCD_send_byte(unsignedchara)

{

unsignedchari;

for(i=8;i>0;i--)

{

if(a&(0x01<<(i-1)))

RW_SID_1;

else

RW_SID_0;

_delay_cycles(100);;

E_CLK_1;

_delay_cycles(100);

E_CLK_0;

_delay_cycles(100);

}

}

/****************读字节函数*****************/

unsignedcharLCD_read_byte(void)

{

unsignedchari,dat=0;

for(i=8;i>0;i--)

{

E_CLK_1;

_delay_cycles(100);

if(RW_SID_1)

dat|=(0x01<<(i-1));

E_CLK_0;

_delay_cycles(100);

}

returndat;

}

/****************写指令函数*****************/

voidLCD_comm(unsignedcharcomm)

{

unsignedchartemp;

_delay_cycles(100);

LCD_send_byte(SENDCOMM);

temp=comm&0XF0;

LCD_send_byte(temp);

temp=((comm&0X0F)<<4)&0XF0;

LCD_send_byte(temp);

_delay_cycles(100);

}

/****************写数据函数*****************/

voidLCD_data(unsignedcharlcd_data)//写数据

{

unsignedchartemp;

_delay_cycles(100);

LCD_send_byte(SENDDATA);

temp=lcd_data&0xf0;

LCD_send_byte(temp);

temp=(lcd_data&0X0F)<<4;

LCD_send_byte(temp);

_delay_cycles(100);

}

/****************设置显示坐标函数*****************/

voidLCD_setxy(unsignedcharx,unsignedchary)//设置显示位置X(1~16),Y(1~4)

{

switch(y)

{

case1:

LCD_comm(0X7F+x);break;

case2:

LCD_comm(0X8F+x);break;

case3:

LCD_comm(0X87+x);break;

case4:

LCD_comm(0X97+x);break;

default:

break;

}

}

/****************显示函数函数*****************/

voidLCD_WriteStr(unsignedchardis_addr_x,unsignedchardis_addr_y,char*str)//在指定位置显示字符串

{

unsignedcharLCD_temp;

LCD_setxy(dis_addr_x

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2