数控直流源.docx
- 文档编号:26316082
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:31
- 大小:475.48KB
数控直流源.docx
《数控直流源.docx》由会员分享,可在线阅读,更多相关《数控直流源.docx(31页珍藏版)》请在冰豆网上搜索。
数控直流源
合肥学院暑期培训电子设计报告
作品名称:
简易数控直流电流源
学校全称:
合肥学院
系别班级:
电子系09级电气
(1)班
队员姓名:
解光飞刘畅李群
简易数控直流电流源
摘要:
本系统设计以AT89S52为核心,通过D/A转换、、功率放大电路、I/V转换、独特的算法及ICL7107电压测量实现了高精度的电压输出范围在0~9.9V范围内的数控直流电流源。
此外本电流源还具有菜单选择功能、电压可预置,多种波形供选择、并可以以0.1V电压步进、显示给定值和实测值等功能并具备过流保护的功能。
关键词:
单片机DA转换数字控制功率放大
一、引言
1.1系统设计目的
设计出有一定输出电压范围和功能的数控电源。
满足下列要求:
(1)输出电压:
范围0~+9.9V,步进0.1V,纹波不大于10mV;
(2)输出电流:
500mA;
(3)输出电压值由数码管显示;
(4)由“+”、“-”两键分别控制输出电压步进增减;
(5)为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。
设计概念图如下所示:
图一:
设计概念图
另外还可以实现如下要求:
(1)输出电压可预置在0~9.9V之间的任意一个值;
(2)用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变);
(3)扩展输出电压种类(比如三角波等)。
1.2系统设计思想
本系统以AT89S52为系统控制单元、DA转换器为数字控制输出单元、运放组合电路为功率放大单元、ICL7107为实际电压测量反馈单元、4*4键盘为预置控制输入单元,12864为显示单元。
通过键盘控制实现预置初始化,由单片机给DA转换器相应的数据,通过功率放大电路运放,最后经射极输出器完成输出。
ICL7107接至输出,显示实际的输出电压。
综上所述,系统最终的方框模块图如下所示。
图二:
系统方框图
二、方案比较及确定
2.1、主要控制模块
方案
(1):
凌阳单片机是本身具备语音识别功能的十六位单片机,具有基本的DSP功能,具备语音识别的优点。
如常见的语音控制机器人,语音控制小车等。
方案
(2):
采用AT89S52作为控制模块核心。
单片机最小系统相对简单,容易制作PCB,算术功能强,软件编程灵活、可以通过ISP方式将程序快速下载到芯片,方便的实现程序的更新,自由度大,较好的发挥C语言的灵活性,可用编程实现各种算法和逻辑控制,同时其具有功耗低、体积小、技术成熟和成本低等优点。
基于以上分析,选择方案
(2),利用89S52单片机将电压步进值或预先设定值通过换算由D/A转换,驱动功率放大电路最终实现电压输出。
输出电流经处理电路显示到数码管上,通过过流保护电路提高输出的稳定性及电路的安全性。
2.2稳压电源模块
方案
(1):
使用LM337、317作为三端稳压器的可调电压电源。
方案
(2):
使用固定电压输出的7805、7815、7915作为三端稳压器的电源。
在本设计中,运放需±15V供电,单片机和DAC、ICL7107需要5V供电,采用三端稳压器7805、7812、7912构成一稳压电源,固定输出稳压电压电源较可调电压电源相对稳定,因此采用第二种电源方案。
图三:
电源电路
本系统要求自制一稳压直流电源,输出±15V,+5V。
电源主要为单片机系统、DA转换器、功率放大电路及实际显示电路供电。
电源为同一电源供电,并且要求共地,这种状态下的电路工作起来更加稳定。
2.3、显示模块
方案
(1):
数码管显示
方案
(2):
12864液晶显示。
本系统使用液晶LCD12864作为显示模块。
数码管使用起来简单方便,显示简洁,但是占用的I/O资源较多。
LCD12864显示功能较齐全,能够显示汉字、字符等。
LCD12864是带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式的图形液晶显示器。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示汉字.也可完成图形显示,丰富人机对话界面.本系统使用串行方式对液晶写操作,这样节约了I/O资源。
2.4、DA电路转换模块
(1)AD5320是单片12位电压输出D/A转换器,单电源工作,该器件具有省电功能以降低器件的电流损耗,5V时对应的典型值为200nA。
(2)DAC0832是NS公司生产的一种,8位CMOS数模转换芯片,其特点有:
8位并行D/A转换、片内二级数据锁存,提供数据输入双缓冲、单缓冲、直通三种工作方式、电流输出型芯片,具有双缓冲控制输出、参考电压为-10~+10V而且与MCS-51连接方便,使用简单。
本DA芯片以其价格低廉、接口简单、转换控制容易等优点在单片机应用系统中得到广泛的应用。
结合本系统的实际要求,选择DAC0832作为数模转换器。
2.5、实际电压测量模块
方案
(1):
使用AD芯片采样转换
方案
(2):
数字电压测量芯片ICL7107。
AD芯片需要的外围电路多,控制起来较繁杂而且不利于整个系统的稳定。
采用ICL7107和共阳极半导体数码管LED组成的显示电路,它的特点有:
能够直接驱动共阳极的LED显示器,不需要另加驱动器件,使整机线路简化;采用+5V和—5V两组电源供电;LED属于电流控制器件,在31/2位数字仪表中采用直流驱动方式,芯片本身功耗较小;显示亮度较高。
综上所述,选择ICL7107与四位数码管组成的测量电路。
2.6、输出模块
(1)电压跟随器他的显著特点就是,输入阻抗高,而输出阻抗低,这样带负载能力相对较强。
一般来说,输入阻抗要达到几兆欧姆是很容易做到的。
输出阻抗低,通常可以到几欧姆,甚至更低。
电压跟随器的电压放大倍数恒小于且接近1。
电压跟随器常用做缓冲级及隔离级。
图四:
电压跟随器
(2)推挽式射极输出器。
这种射极输出器是由二种射极输出器组合而成,这种基本的互补对称电路实现了弥补交越失真的缺点。
同时又具备输入阻抗高输出阻抗低的特点。
因此本系统使用推挽式输出。
图五:
推挽式设计输出
三、系统硬件设计及理论分析
3.1单元硬件模块设计
根据本次设计要实现的功能本系统分为六个模块:
控制模块、DA转换模块、稳压电源模块、功率放大模块、显示模块、过流保护模块和输出模块。
3.1.1控制模块
本系统采用AT89S52单片机作为主控芯片。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在本系统中单片机的主要功能是根据外围键盘的操作判断预置请求,从而对DA发出相应的数据信号经功率放大后输出。
此外单片机还分别控制液晶12864的显示以及对过流保护电路的控制。
实现的功能较多,本系统使用的是4*4矩阵键盘。
单片机的驱动是靠最小系统来完成,包括一个复位电路和振荡电路。
两个电路分别为单片机提供复位与时钟信号。
3.1.2DA转换电路模块
本系统使用的是逐次逼近型DAC0832芯片。
DAC0832是8分辨率的D/A转换集成芯片。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
经预置后单片机给DA发送数据经芯片运算完成后,以电流形式输出,在DA输出后加一电流——电压转换电路。
设计中用两个电压控制字代表0.1V,当电压控制字从0,2,4,……198时,电源输出电压为0.1V,0.2V,……9.9V.DA转换部分输出电压Ui作为电源功放级的输入电压。
根据基准电压,当8位数据口全为一的时候输出为基准电压值,这样根据输入数据的不同就可以实现输出电压的连续变化,从而达到数控的目的。
计算式如下:
Uimax=(198/256)*5.0V=3.882V
Ui=(UREF/28-1)*∑(2iDi)(i=0--7)
3.1.3显示模块
本系统使用的是LCD12864作为总的显示模块。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,硬件电路结构以及显示程序都要简洁得多,使用简单、方便、价格相对较低廉。
该液晶主要显示的是操作菜单,为预置设置提供了良好的可视化操作。
本系统为节约I/O口、控制简便,使用串口方式操作该液晶。
3.1.4稳压电源模块
本系统要求自制5V,±15V稳压电源,满足对系统的供电。
(1)对于5V电源,我们制作了使用7805芯片的稳压电源。
电路主要包括:
整流电路、滤波电路、稳压电路组成。
整流电路采用四个二极管整流,经2200uf电容使电流平缓后用0.1uf电容滤波,然后接至7805,输出是纹波较小的5V直流电压。
电路图如下所示:
图六:
5V电源制作图
(2)对于±15V的稳压电源,类似的,本系统使用以7815、7915为三端稳压器的电源。
本电源外接的是由220—15V变压器输出的交流电压。
这里整流电路已省去。
3.1.5功率放大模块
根据上述,当DA的8位数据口全为1时,输出为最高电压即为基准电压,因为基准电压有限,并不能达到设计要求为此我们在DAC0832后加一级功率放大电路。
基准电压最高为5V,要求的最高电压为9.9V,因此确定放大倍数为2.第一级运放为I—V转换,通过一级运放实现了DAC输出从电流到电压的转换。
第二级运放为功率放大级,通过调节滑动变阻器改变它与输入端电阻的比值可以调节整个放大电路的放大倍数。
当DAC输出为5V时,功率放大输出端应为10V.
原理图如下图所示:
图七:
功率放大电路
ICL7107是双积型的A/D转换器,还集成了A/D转换器的模拟部分电路,如缓冲器、积分器、电压比较器、正负电压参考源和模拟开关,以及数字电路部分如振荡源、计数器、锁存器、译码器、驱动器和控制逻辑电路等,使用时只需外接少量的电阻、电容元件和显示器件,就可以完成模拟到数字量的转换,从而满足设计要求。
显示稳定可读和测量反应速度快,是本设计的关键。
内部逻辑控制电路不断地重复产生AZ、INT、DE3个阶段的控制信号,适时地指挥计数器、锁存器、译码器等协调工作,使输出对应于输入信号的数值。
只需按照典型测量电路图连接好,即可使用。
仿真图如附录一图一所示。
图八:
ICL7107典型电路图
3.1.7过流保护模块
本模块主要由两个晶体管组成,其原理是:
正常情况下,电流输出正常,两晶体管均处于截止状态;当输出电流过大时,并联在输出电阻上的采样电阻的电压会相应的提高,电平的升高导致了晶体管状态的改变,此时晶体管导通,给单片机外部中断口一个低电平,触发中断。
在中断函数中,使系统初始化,这样就保证了整个电路的稳定。
如附录一图三所示。
四、系统软件设计
本系统程序采用KeiluVision2软件编译,通过独立键盘来对电压输出和波形输出进行功能选择,然后分别通过矩阵键盘来实现多种方式调节输出电压和不同波形的功能。
整个系统软件的流程图如下图所示:
图4软件流程图
五、系统测试
5.1测试条件
测试使用的仪器设备如表4.1所示
表1测试使用的仪器设备
序号
名称、型号、规格
数量
备注
1
WYK-303B2直流稳压稳流电源
1
2
DT-9202数字万用表
1
31/2位
5.2对系统精确度的测试。
表2空载时记录表
电压设定值Up/V
实际电压Ur/V
系统输出电压Us/V
(数码管)
0.0
0.010
-0.01
1.0
1.01
0.99
2.0
2.01
1.99
3.0
3.01
2.99
4.0
4.01
4.00
5.0
5.01
5.00
6.0
6.01
6.01
7.0
7.02
7.01
8.0
8.02
8.02
9.0
9.02
9.02
9.9
9.92
9.93
本题要求输出电流在500mA,由于条件限制,没有相应的可调负载,因此本部分无法测试。
表3:
带载0.5A时记录表
/V
1
2
3
4
5
6
7
8
9
10
11
预置电压
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
9.9
输出电压
0.0
实测电压
0.0
六、系统所用到的材料及仪器
本系统用到的元器件如下表所示。
表5系统元器件清单
名称
数量
AT89S52单片机
1
LCD12864液晶
1
ICL7107
1
7805芯片
1
7815芯片
1
7915芯片
1
LM336
若干
散热片
若干
发光二极管
若干
数码管
4
电阻
若干
电容
若干
导线
若干
键盘
若干
OP07
若干
七、总结
本系统预先设计的是一简易数控直流电源,该系统可以完成菜单预置、0.1V电压步进、输出多种可供选择波形以及电压的自动扫描功能。
在系统设计过程中,力求硬件电路参数合理,线路简单,发挥软件编程灵活的特点,通过多次的调试,不断提高系统的精度和电流的稳定性,来满足系统设计的要求。
由于时间关系,该系统还有许多值得改进的地方。
参考文献:
[1]郭天祥.51单片机C语言教程—入门、提高、开发、拓展全攻略.北京:
电子工业出版社,2009.
[2]于永.51单片机C语言常用模块与综合系统设计.北京:
电子工业出版社,2007
[3]陈永真.全国大学生电子设计竞赛试题精解选.北京:
电子工业出版社,2007
附录一:
电路图
图一:
ICL7107仿真图
图二:
系统原理仿真图
图三:
过流保护
附录2部分程序清单
voidmain()
{
init();//初始化函数
while
(1)
{
keyzhi=keyscan();//将矩阵键盘扫描得到的键值赋给变量keyzhi
/*******按下独立键选择电压输出或波形输出********/
if(key==0&&flag_f==1)
{
delay_bo(10);
if(key==0&&flag_f==1)
{
while(!
key);
delay_bo(10);
while(!
key);
flag=0;
flag_f=0;
key_times=0;
set_num=0;
send_command(0x01);
send_command(0x0c);
display(0x80,disps);
display(0x88,dispx);
v_lcd=0;
send_command(0x8d);
send_data(v_lcd/10+0x30);
send_data('.');
send_data(v_lcd%10+0x30);
v_real=v_lcd*2;
P0=v_real;
}
}
if(key==0&&flag_f==0)
{
delay_bo(10);
if(key==0&&flag_f==0)
{
while(!
key);
delay_bo(10);
while(!
key);
flag=1;
flag_f=1;
send_command(0x01);
display(0x90,dispy);
display(0x88,dispz);
display(0x98,dispv);
}
}
/*******以下为电压输出模块********/
if(flag==0)
{
if(keyzhi==13&&TR0==0)//手动增加电压值
{
v_lcd++;
if(v_lcd==100)
{
v_lcd=99;
}
send_command(0x8d);
send_data(v_lcd/10+0x30);
send_data('.');
send_data(v_lcd%10+0x30);
v_real=v_lcd*2;
P0=v_real;
}
if(keyzhi==12&&TR0==0)//手动减小电压值
{
v_lcd--;
if(v_lcd==-1)
{
v_lcd=0;
}
send_command(0x8d);
send_data(v_lcd/10+0x30);
send_data('.');
send_data(v_lcd%10+0x30);
v_real=v_lcd*2;
P0=v_real;
}
if(keyzhi==15)//开启定时器中断自动增加电压值
{
TR0=1;
flag_st=1;
flag_jiajian=0;
}
if(keyzhi==14)//开启定时器中断自动减小电压值
{
TR0=1;
flag_st=1;
flag_jiajian=1;
}
if(keyzhi==11&&flag_st==1)//暂停自动扫描
{
TR0=0;
}
if(keyzhi==11&&flag_st==2)//对预置的电压经行确定
{
key_times=0;
v_real=v_lcd*2;
P0=v_real;
}
if(keyzhi>=0&&keyzhi<=10)//预置电压
{
key_times++;
if(keyzhi!
=10)
{
if(key_times==1)
{
v_lcd_shi=keyzhi;
send_command(0x8d);
send_data(v_lcd_shi+0x30);
send_data('');
send_data('');
}
}
if(keyzhi==10&&key_times==2)
{
send_command(0x8d);
send_data(v_lcd_shi+0x30);
send_data('.');
send_data('');
}
if(key_times==3)
{
v_lcd_ge=keyzhi;
send_command(0x8d);
send_data(v_lcd_shi+0x30);
send_data('.');
send_data(v_lcd_ge+0x30);
}
v_lcd=v_lcd_shi*10+v_lcd_ge;
if(keyzhi!
=10)
flag_st=2;
if(keyzhi==10&&key_times!
=2)
{
v_lcd=0;
send_command(0x8d);
send_data(v_lcd/10+0x30);
send_data('.');
send_data(v_lcd%10+0x30);
v_real=v_lcd*2;
P0=v_real;
key_times=0;
}
}
}
/*******以下为波形输出模块********/
if(flag==1)
{
if(key_s==0)
{
delay_bo(10);
if(key_s==0)
{
while(!
key_s);
delay_bo(10);
while(!
key_s);
set_num++;
if(set_num==1)
{
send_command(0x88);
send_command(0x0f);
}
if(set_num==2)
{
send_command(0x8d);
send_command(0x0f);
}
if(set_num==3)
{
send_command(0x98);
send_command(0x0f);
}
if(set_num==4)
{
send_command(0x9d);
send_command(0x0f);
}
if(set_num==5)
{
set_num=0;
send_command(0x0c);
}
}
}
if(key_q==0&&set_num==1)//产生三角波
{
delay_bo(10);
if(key_q==0&&set_num==1)
{
while(!
key_q);
delay_bo(10);
while(!
key_q);
while
(1)
{
sanjiaobo();
if(key==0)
{
delay_bo(10);
if(key==0)
{
while(!
key);
delay_bo(10);
while(!
key);
flag=0;
flag_f=0;
key_times=0;
set_num=0;
send_command(0x01);
send_command(0x0c);
display(0x80,disps);
display(0x88,dispx);
v_lcd=0;
send_command(0x8d);
send_da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 直流