(4)没输入,但输出显示时产生漂移。 (5)外部信号干扰导致误差。 5.3 出现的问题与改进
(1) 输出电压不够。解决方法是 要把DA基准电压调成1.02V,把AD基准电压调到4.096V。
(2) 程序为通过计算便载入单片机。 程序、数据经过计算后再做程序设计。
(3) 开始把AD与DA模块分开做,输出值的跳动比较大,纹波大。之后把两个模块做在一块板子上,达到了预期的效果。 (4) DA/AD是通过计算把对应关系赋给单片机。 6 结论
经过长期的奋战,我的毕业设计终于完成了,但是现在回想起做群课程设计的整个过程,颇有心得,其中有苦也有甜,艰辛的同时又充满乐趣!通过这次设计发现毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。此次设计的题目是数控恒流源的设计,本系统采用12位DA转换器,精度完全满足设计要求。恒流源模块由于要求的输出电流太大,故采用的是 管对电流进行放大。在电源部分可以采用先用开关电源再用线性电源,可以将纹波电流降低到一个理想的范围。本系统中的键盘模块是采用扫描的方式和数字电源区分开来,为了尽可能的减小模拟和数字信号之间的干扰应将其分别供电。
20
本次课设是模电数电、单片机、等各种知识的综合。通过本次课设,我深刻地体会到了学科无界限,明白了学习不是学会一门就可以了的。
参考文献
[1] 王 朕,潘孟春,单庆晓.简易数控直流电流源设计与制作 [C].北京.北京工业大学. [2] 王言豪.一种小功率开关电源的设计[D].重庆:重庆大学,2006: 20~23. [3] 潘嘉柳.数控恒流源[D].广东:广东交通职业技术学院,2006:13~14.
[4] 黄庆义.基于单片机的数控直流电流源 [D].南京:南京信息工程学院,2008: 7~8. [5] 姚庆亮.基于单片机的数控直流恒流源的设计[D] .安徽:安徽工程科技学院,2009. [6] 户川治朗(日)著 高玉苹,唐伯雁等译.实用电源电路设计[M].北京:科学出版社,
2006:104~329.
[7] 高吉祥 模拟电子技术 北京:电子工业出版社 2009年6月.
[8] 潘永雄 电子线路CAD使用教程 西安:西安电子科技大学出版社2007年7月. [9] 郭天祥 新概念51单片机C语言教程 北京:电子工业出版社 2010年3月.
[10] 高吉祥 全国大学生电子设计竞赛培训系列教程 北京:电子工业出版社2009年4月. 2006:16~19.
[11] 王 朕,潘孟春,单庆晓.UC3842应用于电压反馈电路中的探讨[J] .模拟电路.1998,
26(3): 27~28.
[12] 王福瑞. 单片微机测控系统设计大全[J] .单片机原理.1998,36(7):24~25.
21
附录A 程序清单 Main
#include
#include\#include\
#include\#include\
uint DA_data=0,AD_data=0;
uchar DA_data1=0,DA_data2=0,DA_data3=0,DA_data4=0; void main() {
uchar key_value=0; lcd_init();
Printf_string(1,\ Printf_string(0x40+0,\ while(1) {
key_value=key_scan();
if(key_scan) {
switch(key_value)
{
case 1: DA_data1++;if(DA_data1>9)DA_data1=0;break; case 2: DA_data2++;if(DA_data2>9)DA_data2=0;break; case 3: DA_data3++;if(DA_data3>9)DA_data3=0;break; case 4: DA_data4++;if(DA_data4>9)DA_data4=0;break; default: break; }
DA_data= DA_data4*1000+DA_data3*100+DA_data2*10+DA_data1; if(DA_data>4096)DA_data=0;
Write_A_B(0x0000,DA_data*1.08,Channal_B,0);
22
} }
}
AD_data=AD_conver();
lcd_write_num4(7,DA_data); Printf_string(11,\
lcd_write_num4(0X40+7,AD_data*1.78-18); Printf_string(0x40+11,\
AD TLC2551
#include
#include\
uint AD_conver() {
unsigned int temp = 0 , sum = 0 ; unsigned char i, n = 10 ;
///////////////////////////////////第一次 数据不要 sclk = 0; AD_cs = 0; AD_out = 1;
//////////第一次采样数据///////// for(i = 0;i < 16;i ++) {
sclk = 1; }
temp <<= 1; sclk = 0;
if(AD_out) temp += 1;
temp >>= 4;
////////////第一次采样数据///////// for(i = 0;i < 32;i ++)
23
{ sclk = 1; sclk = 0; }
AD_cs = 1; for(i = 0;i < 8;i ++) { sclk = 1; sclk = 0; }
_nop_ ();
temp = 0 ;
while(n--) {
sclk = 0; AD_cs = 0;
AD_out = 1;
///////////正式采样/////////////// for(i = 0;i < 16;i ++) {
sclk = 1;
temp <<= 1;
sclk = 0;
if(AD_out) temp += 1;
}
temp >>= 4;
///////////正式采样/////////////// for(i = 0;i < 32;i ++) { sclk = 1;
sclk = 0;
}
AD_cs = 1;
for(i = 0;i < 8;i ++)
24
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库数控恒流源的设计与实现 - 图文(6)在线全文阅读。
相关推荐: