8通道精密模拟量数据采集器 单片机原理课程设计.docx
《8通道精密模拟量数据采集器 单片机原理课程设计.docx》由会员分享,可在线阅读,更多相关《8通道精密模拟量数据采集器 单片机原理课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
8通道精密模拟量数据采集器单片机原理课程设计
8通道精密模拟量数据采集器单片机原理课程设计
嘉应学院
电子信息工程学院
<单片机原理课程设计报告>
8通道精密模拟量数据采集器
指导老师吴华波
专业
自动化
班级
082班
姓名
叶真良
同组人
赖柳明
同组人
温伟江
座号
17号
学号
2081022117
摘要
数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
数据采集技术广泛引用在各个领域。
它是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。
本数据采集设计是一种基于单片机的数据采集系统,采用MAX308多路选择开关,可以采集八通道的模拟量,A/D转换器ICL7109的数据输出形式为12为二进制码,且与微处理器有良好的兼容特性,所以可以与89C51单片机直接相连。
ICL7109所需的基准电压由ICL7660供给,采集的数据经过单片机的简单处理,通过与计算机的连接在串口调试助手中直接显示。
本设计称为8通道精密模拟量数据采集器,可以采集8路模拟量,并且采用杜邦线接线模式,方便加在其他设备中使用,8路模拟信号输入也留有接线端子,可以任意选择一路或多路进行采集、监控。
本设计制作简单,体积小,携带方便,并可以直接附加在其他设备上,用途广泛。
摘要................................................................2
1设计目的...........................................................4
2设计任务...........................................................4
3.设计方案...........................................................4
4.数据采集器的电路设计..............................................5
4.1电源电路的设计..................................................5
4.2数据输入电路设计..................................................5
4.3ICL7109与89C51单片机的硬件接口设计............................6
4.3.1ICL7109的内部结构与芯片引脚功能................................7
4.4单片机转串口与计算机通信设计....................................10
4.6整体电路........................................................11
4.6.1整体电路原理图..............................................12
4.6整体电路PCB图...................................................13
5.软件调试..........................................................16
5.1程序流程图.......................................................16
5.2程序清单.........................................................16
6.电路的装配与调试过程..............................................17
6.1电路焊接..........................................................17
6.2调试过程..........................................................17
7收获、体会和建议....................................................18
致谢..................................................................18
参考文献..............................................................18
附录元件清单.........................................................19
1设计目的
1.使学生在学完了《单片机原理与接口技术》课程的基本理论,基本知识后,能够综合运用所学理论知识、拓宽知识面,系统地进行电子电路的工程实践训练,锻炼动手能力,培养工程师的基本技能,提高分析问题和解决问题的能力。
2.熟悉集成电路的引脚安排,掌握各芯片的逻辑功能及使用方法了解面包板结构及其接线方法,了解数据采集器的组成及工作原理。
学会检查电路的故障与排除故障的一般方法
3.学会检查电路的故障与排除故障的一般方法,掌握虚拟设计,熟悉proteus仿真软件的使用,熟悉protel设计软件的使用,掌握在计算机上进行电路设计与分析的方法。
2.设计任务
设计一能采集8个通道的模拟量的精密数据采集系统。
主要技术指标:
(1)模拟量通道数:
8;
(2)AD转换分辨率:
14位(数据实质是12位,加符号位和过量程指示位,总共14位);
(3)模拟量输入范围:
0-4.8V;
(3)数据通信与显示方式:
采集到的数据通过串口发送到上位计算机,由计算机显示数据;
(4)上位计算机与数据采集系统(下位机)通信方式:
串口通信,主从通信方式,上位机为主机,下位机为从机。
由上位机发起通信,下位机响应,将采集到的8路数据一并发送到计算机中。
3.设计方案
按要求,设计数据采集器方案如下所示:
数据采集器采用STC51系列单片机作为微控制器,模拟开关MAX308的地址A0、A1、A2分别与P1.0~P1.2连接,通过控制P1口输出来选择输入信号,将信号依次输入送入双积分AD转换器ICL7109的模拟信号输入端,在使用模拟开关时,将模拟开关的输出端连接到ICL7109的输入通道即可。
ICL7109的转换结果通过P0口传给单片机,单片机将采集结果通过串行通信RS232接口上传给上位PC机,实现数据的采集。
图1数据采集器方案示意图
4.数据采集器的电路设计
下面将介绍设计电路具体方案。
其中包括电源电路的设计、数据输入设计、ICL7109与单片机连接设计、模数转换设计、单片机转串口与计算机通信设计。
4.1电源电路的设计
利用ICL7660将+5V电源变换成-5V电源的电路如下图所示。
C1、C2 采用漏电小、介质损耗低的10uF旦电容,以提高电源转换效率。
当UDD﹤+6.5V时,5脚可直接作为输出(将5脚沿虚线接输出端Uo);当UDD﹥6.5V时,为避免损坏芯片,输出电路需串入二极管D。
该电路的输出电流不宜超过10mA
图2电源电路
4.2数据输入电路设计
数据输入部分由模拟开关MAX308实现多路信号的切换。
MAX308是单8路(单刀16位)模拟开关,各开关由外部输入二进制的地址码A0、A1、A2来切换。
其中脚1、14和16是地址码A0、A1、A2的输入端;输入脚A0、A1、A2分别与单片机P1.0~P1.2相连,改变P1输出即可切换输入通道,控制脚接高。
带串行接口的14位模数转换集成电路(ADC),它包含有跟踪/保持电路的一个底飘溢、底噪声、掩埋式齐纳电压基准电源。
它的转换速度快、功率消耗底、采样速率高达308ks/s点,满量程输入电压范围为±5V,功耗为210mW。
可与大多数流行的数字信号处理器的串行接口直接接口,该输入可以接收TTL或CMOS的信号电平,时钟频率为0.1-5.5MHz。
模拟多路复用
精密,8-Channel/Dual4通道,高性能,CMOS模拟多路复用器
图3MAX308功能引脚图
图4数据输入电路
4.3ICL7109与89C51单片机的硬件接口设计
A/D转换器ICL7109的数据输出形式为12为二进制码,且与微处理器有良好的兼容
特性,所以可以与8031单片机直接相连。
硬件接口电路如图6示:
图中将ICL7109的MODE引脚接地。
使其工作于直接输出工作方式。
将RUN/HOLD
接+5V,这样ICL7109可进行连续转换。
将STATUS线与8031的INT0相连,这样每完成一次转换便向889C51发一次中断请求。
由于采用了3.85MHZ的晶振,故ICL7109完成一次转换所需的时间为T=8192(脉冲周期)x58/3.85MHZ=132.72ms,即转换速率为7.5次/秒。
其中ICL7660是+5V输入—5V输出的电源极性变换器。
图中是利用STATUS的下降沿发中断请求信号,在中断服务程序中12位数据要分两次读出,分别用HBEN,LBEN控制,并能同时得到极性和是否溢出的标志。
下面介绍ICL7109连续转换时的转换程序:
ICL7109是美国Intersil公司生产的一种高精度、低噪声、低漂移、价格低廉的双积分式12位A/D转换器。
由于目前逐次比较式的高速12位A/D转换器一般价格都很高,在要求速度不太高的场合,如用于称重,测压力等各种高精度测量系统时,可以采用廉价的双积分式高精度A/D转换器ICL7109。
ICL7109最大的特点是其数据输出为12位二进制数,
并配有较强的接口功能,能方便的与各种微处理器相连。
4.3.1ICL7109的内部结构与芯片引脚功能
1、ICL7109的内部电路结构
ICL7109的内部电路有模拟电路和数字电路部分组成。
模拟电路部分由模拟信号输入
振荡电路、积分、比较电路以及基准电压源电路组成。
图5ICL7109与8031单片机的硬件接口
下图为数字电路部分的结构。
他由时钟振荡器、异步通讯握手逻辑、转换控制逻辑以及计数器、锁存器、三态门组成。
高位字节输出引脚低位字节输出引脚
17345678910111213141516
ICL710918
1620
电压比较
器输出
226222324252127
图6ICL7109数字电路部分内部结构
1、模拟信号输入
模拟信号可差分输入,分别接入差分输入高端INHI(35脚)和差分输入低端INLO(34脚)。
模拟信号公共端为COMMON(33脚)。
2、时钟电路
ICL7109片内有振动器及时钟电路。
片内提供的多功能时钟振动器既可用作RC振荡器,也可作为晶体振荡器。
OSCSEL(24端)为振荡器选择。
OSCSEL(24端)为高电平或开路时片内为RC振荡器,此时OSCOUT(23端)和BUFOSCOUT(25端)外接电阻、电容到OSCIN(22端),如图4所示;OSCSEL为低电平时,外接振荡晶体,片内为晶体振荡器如图5所示。
接成RC振荡器时,振荡器频率为0﹒45/RC(电容不能小于50PF)。
接成晶体振荡器时,内部时钟为58分频后的振荡器频率。
为了使电路具有抗50串模干扰能力。
A/D转换时应选择积分时间(2048个时钟数)等于50HZ的整数倍。
例如取积分时间为50HZ的1倍,即20MS,则晶体频率F=(2048个时钟周期)x(58/20MS)=5﹒939MHZ;对于RC振荡器,则F=(2048个时钟数)/20ms=102﹒4KHZ。
3、接口方式
ICL7109内部有一个14位(12位数据和一个极性,一位溢出)的锁存器和一个14位的三态输出寄存器,可以很方便地与各种微处理器直接连接,而无须外部加额外的锁存器。
ICL7109有两种接口方式,一种是直接接口方式,另一种是挂钩接口方式。
在直接接口方式中,ICL7109转换结束时,由STATUS发出转换结束信号到单片机,单片机对转换后数据分高位字节和低位字节进行读数。
在挂钩接口方式时,ICL7109提供工业标准的(通用异步接收发送器)数据交换模式,适用于远距离的数据采集系统。
4、ICL7109外部电路的参数选择
ICL7109外部电路的连接及元件参数值如图。
A﹒积分电阻RINT的选择
缓冲放大器和积分器能够提供20UA的推动电流,积分电阻要选得足够大,以保证在输入电压范围的线性。
积分电阻RINT=满度电压/20UA
当输入满度电压=4﹒096V时,RINT=200KΩ,此时基准电压REFIN-和REFIN+之间为+2V,由电阻R2和电位器R1分压取得。
如满度电压为方便用户4﹒096MV,则RINT=20KΩ,基准电压=0.2V。
RINT接入缓冲放大器输出端BUF(30脚)。
B.积分电容CINT的选择
积分电容根据积分器给出的最大输出摆幅电压选择。
此电压应使
积分器不饱和(大约低于电源0.3V)。
对ICL7109的±5V电源。
模拟公共点接地,积分器输出摆幅一般为±3.5V至±4V。
对不同的时钟频率,电容值也要改变,以保证积分器输出电压的摆幅。
CINT=2048*时钟周期*20UA/积分器输出摆幅
为了使积分器不饱和,积分器输出的摆幅最大为±4V,所以积分器的最小电容为1UF。
积分器电容越大,积分器输出摆幅越小,所以,CINT也不应选的过大,如果电路设计时选用不同的时钟频率,则积分电容应根据上面的公式计算,以便选择合适的CINT的值。
积分电容CINT接入积分电容连接端INT(32脚)。
C.自动调零电容CAZ的选择
积分电容CINT选定以后,自动调零电容CAZ的选择是非常容易的。
在模拟输入信号较小时,如0—409.6MV,这时抑制噪声是主要的。
而这时积分电阻又较小,所以,自动调零电容CAZ可选为比积分电容CAZ大一倍,以减少噪声。
CAZ的值越小,噪声越小。
对于大部分实际应用系统,由传感器来的微小信号都要经过放大器放大成较大的信号,如0—+4﹒096mV。
这时噪声的影响不是主要的,可把积分电容Cint选大一些以减少复零误差,使Cint=2Caz。
D﹒基准电容Cref的选择
一般情况下Cref取值1uf较好。
但如果存在一个大的共模电压(即基准电压低端不是模拟公共点),对于模拟输入为0—+409﹒6MV的情况下,要求电容值较大,以防止滚动误差,在这种情况下,如选Cref=10uf可以使滚动误差在0﹒5以内。
4.4单片机转串口与计算机通信设计
图8单片机转串口与计算机通信设计
图9单片机转串口与计算机通信设计
4.6整体电路
4.6.1.整体电路原理图
图10数据采集整体电路
4.6.2.整体电路PCB图
图11整体电路PCB图
5.软件调试:
5.1程序设计主流程图
图12程序主流程图
图13中断流程图
5.2程序清单
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitLBEN=P2^0;
sbitHBEN=P2^1;
sbitCE=P2^2;
sbitRUN=P2^3;
bitflag,flag1;
uintdatanum[9];
uchardataa,con[2],i,t=0,b,f;
voidinit()
{
EX0=1;//开放外部中断0
IT0=1;//选择外部中断0的中断方式为下降沿触发方式
TMOD=0x20;//采用T1定时器,工作方式2(8位自动再装入方式)
SCON=0x50;//串行口控制寄存器采取工作方式1
TH1=0xFD;
TL1=TH1;
PCON=0x00;
ES=1;//开放串行口中断
TR1=1;//启动定时器1
EA=1;//开总中断
LBEN=1;
HBEN=1;
P0=0xff;
}
voidsend(uintc)
{
uchardat1,dat2;
dat1=c/256;
SBUF=dat1;
while(!
TI);
TI=0;
dat2=c%256;
SBUF=dat2;
while(!
TI);
TI=0;
}
voidmain()
{
init();
while
(1)
{
switch(f)
{
case1:
P1=0x00;break;
case2:
P1=0x01;break;
case3:
P1=0x02;break;
case4:
P1=0x03;break;
case5:
P1=0x04;break;
case6:
P1=0x05;break;
case7:
P1=0x06;break;
case8:
P1=0x07;break;
default:
break;
}
CE=0;
RUN=1;
while(!
flag);
flag=0;
num[f]=num[0];
RUN=0;
CE=1;
if(f!
=0&&!
flag1)
send(num[f]);
if(flag1!
=1)
f=0;
if(con[0]=='a'&&con[1]=='l')
{con[0]=0;
con[1]=0;
flag1=1;
f=0;
}
if(flag1==1)
{
f++;
if(f>=9)
{
flag1=0;
for(i=1;i<8;i++)
{
send(num[i]);
}
}
}
if(con[0]=='H')
{
switch(con[1])
{
case'1':
f=1;break;
case'2':
f=2;break;
case'3':
f=3;break;
case'4':
f=4;break;
case'5':
f=5;break;
case'6':
f=6;break;
case'7':
f=7;break;
case'8':
f=8;break;
default:
break;
}
con[0]=0;
con[1]=0;
}
t=0;
}
}
voidread()interrupt0
{
LBEN=1;
HBEN=0;
num[0]=P0;
num[0]=num[0]*256;
LBEN=0;
HBEN=1;
num[0]=P0|num[0];
LBEN=1;
HBEN=1;
flag=1;
}
voidUARTInterrupt(void)interrupt4
{
if(RI)
{
RI=0;
con[t]=SBUF;
t++;
if(t==2)
t=0;
}
else
TI=0;
}
6.电路的装配与调试过程
6.1电路焊接
焊接时要主要布线和焊点的合理分布,采用手工布线,尽量做到美观。
实际焊接过程中,要保证焊笔不要碰到已经焊好的线,否则焊好的线很容易脱落。
每焊接完一部分电路,就立即进行调试,测试无误后方可进心下一阶段的焊接。
插拔集成芯片时用力要均匀,避免芯片管脚在插拔中变弯、折断
6.2调试过程
实际调试中出现了不少问题,如通讯不正常,采集不稳定等等。
仔细检测后发现主要是电路的一些接线有错以及虚焊。
下面是我们的通电源逐级调试,逐级排除故障错误的调试调试过程。
7收获、体会和建议
收获与体会:
1、加强了团队合作精神,磨练了我们的意志力。
我们各人之间好好的配合,分工合作,设计过程没有一团乱麻。
更为可贵的是,我们彼此鼓励,同舟共济地处理每个问题。
这种团队精神将是我们美好的回忆。
我们花了很多心血来做这个课程设计,凡事不是一帆风顺的,我们遇到了许多困难。
有些困难甚至看起来难于解决,确实也是打击了我们的信心。
但我们毫不气馁,认真地检查电路,检查焊接的好坏,用坚强的意志解决问题,最终功夫不负有心人,我们终于把这个单片机课程设计—8通道精密数据采集器设计完成了!
2、加强我们对电子器件的了解。
一直以来,我们都对电子器件都很感兴趣,对电子应用感到好奇。
这次我们亲自制作一个电子器件,虽然原理并不太复杂,但我们在这一个过程,了解电子应用的奇妙之处。
3、提高了我们使用电脑对电路进行仿真的能力。
我们要进一步熟悉软件proteus来画电路图,并用它进行仿真;并用protel进行合理规划、布线。
这又让我们的知识增多了。
4、做到理论联系实际。
刚刚学过了单片机原理与接口技术这门课程,还没完全弄懂某些元器件的原理和用途,而此次课程设计恰恰提供了一个好机会,让我们从实践中加深了对所学知识的理解。
5、以前我们在电路实习中学习了焊接电路板,但只是学了很短的时间,此次设计给我们上再多一次机会,提高了我们的动手能力,焊接技术也有了很大提高。
6、通过撰写说明书,掌握了毕业论文的写作规范,我们以后撰写毕业设计论文打下了坚定的基础。
致谢
指导老师:
吴华波
参考文献
1、牛昱光.2008年.单片机原理与接口技术电子工业出版社
1、康华光.2006年.电子技术基础数字部分(第五版).北京:
高等教育出版社.
2、模拟电子技术第五版康华光主编高等教育出版社2006
附录元件清单
元件清单
元件名称
元件
单片机AT89S52
1
ICL7109
1
MAX232
1
MAX308
1
ICL7660
1
TL431
1
10UF
5
0.1UF
3
1UF
6
0.022UF
1
0.33UF
1
CBB电容105j
1
CBB电容154j
CBB电容334j
0.15UF
1
3.3NF
1
22PF
2
1M
1
10K
2
2.2K
1
2K
1
20K可调电阻
1
200K
1