ADC0809多路数据采集和控制系统设计说明Word下载.docx
《ADC0809多路数据采集和控制系统设计说明Word下载.docx》由会员分享,可在线阅读,更多相关《ADC0809多路数据采集和控制系统设计说明Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
信号调理的任务:
将被测对象的输出信号变换成计算机要求的输入信号。
多路数据采集输入通道的结构图如下图:
图5-1-1多路数据采集输入通道结构图
注:
缓慢变化的信号和直流信号,采样保持电路可以省略。
5.2A/D转换器的选取
转换速度是指完成一次A/D转换所需时间的倒数,是一个很重要的指标。
A/D转换器型号不同,转换速度差别很大。
通常,8位逐次比较式ADC的转换时间为100us左右。
由于本系统的控制时间允许,可选8位逐次比较式A/D转换器。
5.3A/D转换
对于该八路通道输入信号,八位A/D转换器,其精度为
输入为0~5V时,分辨率为
其中:
—A/D转换器的满量程值
—ADC的二进制位数
量化误差为
ADC0809是TI公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。
用它可直接将8个单端模拟信号输入,分时进行A/D转换,在多点巡回监测、过程控制等领域中使用非常广泛,所以本设计中选用该芯片作为A/D转换电路的核心。
5.4芯片ADC0809的引脚功能和主要性能
ADC0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。
8路转换开关能直接联通8个单端模拟信号中的任意一个。
ADC0809的引脚图及51单片机引脚图:
图5-4-1ADC0809管脚图及51单片机芯片管脚图
ADC0809模数转换器的引脚功能:
IN0~IN7:
8路模拟量输入。
A、B、C:
3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。
ALE:
地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。
D0~D7:
八位数据输出线,A/D转换结果由这8根线传送给单片机。
OE:
允许输出信号。
当OE=1时,即为高电平,允许输出锁存器输出数据。
START:
启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。
EOC:
转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。
CLK:
时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。
当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存并译码,在START上升沿时所有的内部寄存器清零,在下降沿时,开始进入A/D装换,此期间START应保持低电平。
在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,在高电平时,表示转换结束。
OE为低电平时,表示正在转换,为高电平时,允许转换结果输出。
ADC0809的主要性能:
◆逐次比较型
◆CMOS工艺制造
◆单电源供电
◆无需零点和满刻度调整
◆具有三态锁存输出缓冲器,输出与TTL兼容
◆易与各种微控制器接口
◆具有锁存控制的8路模拟开关
◆分辨率:
8位
◆功耗:
15mW
◆最大不可调误差小于±
1LSB
◆转换时间128us
◆转换精度:
±
0.4%
◆ADC0809没有内部时钟,必须由外部提供,其范围为10~1280kHZ,典型的时钟频率为640kHZ。
5.5ADC0809的接线图
此电路图主要接线将八路输入模拟信号转换为数字信号,为数据处理及监控模块提供输入信号。
5.6ADC0809与51单片机的接口
由于ADC0809无片内时钟,时钟信号有51单片机的ALE信号经D触发器二分频后获得。
此外,由于ADC0809内部设有地址锁存器,所以通道地址由P0口的低3位直接与ADC0809的ABC相连。
通道基本地址为0000H~0007H。
其对应关系如下表所示:
地址码
输入通道
C
B
A
IN0
1
IN1
IN2
IN3
IN4
IN5
IN6
IN7
表5-6-1ADC0809输入通道地址
ADC0809与51单片机的接口方法:
ADC0809与51单片机的接口有3种形式,分别是查询方式、中断方式和延时等待方式,本题中选用中断接口方式。
由于ADC0809无片内时钟,时钟信号时可由单片机的ALE信号经D触发器二分频后获得。
ALE引脚得脉冲频率是8051时钟频率的1/6.该题目中单片机时钟频率采用6MHz,则ALE输出的频率是1MHz,二分频后为500Hz,符合ADC0809对频率的要求。
由于ADC0809内部没有地址锁存器,所以通道地址有P0口的低3位直接与ADC0809的A,B,C相连。
控制信号:
将P2.7作为片选信号,在启动A/D转换时。
由单片机的写信号和P2.7控制ADC的地址锁存和启动转换。
由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。
在读取转换结果时,用单片机的读信号
和P2.7引脚经或非门后,产生正脉冲作为OE信号用一打开三态输出锁存器。
ADC0809与51单片机的接口电路如图所示:
5.7控制器、振荡源和复位电路
复位电路即使电路回复到初始状态,是单片机经常的工作状态。
单片机振荡电路的振荡周期和时钟电路的时钟周期决定了CPU的时序。
复位电路:
采用上电外部复位电路
图5-7-1上电外部复位电路图5-7-2内部振荡器方式
5.8键盘与显示电路
键盘由一组常开按键开关组成,键盘系统的主要工作包括及时发现有键闭
合,并做出相应的处理。
本系统采用中断方式的开关代替键盘,完成采集通道的选择。
硬件逻辑如下图所示。
图5-8-1键盘硬件电路
显示部分为八个共阴极的七段LED显示器,8个七段LED的a~dp字段的引脚分别由8个OC门同相驱动器驱动。
OC门驱动器用7407,当7407输出低电平时,没有电流流过LED,当7407输出为开路状态时,电流经100
限流电阻流入LED显示器,每个七段LED的公共端都接一个反相驱动器,反相驱动器使用75452,当某一字段需要亮时,该LED公共端的反相驱动器必须是低电平输出,并且这一字段的同相驱动器必须是高电平输出。
单片机通过8155接口芯片的A口的位选,经B口确定那些字段LED发光。
图5-8-2显示部分硬件电路
5.9通信电路
51单片机有一个全双工的串行口,所以单片机和PC之间可以方便的进行串口通信。
进行串行通信时要满足一定的条件,如PC的串口是RS232电平的,而单片机的串口是TTL电平的,两者直接必须有一个电平转换电路,这里用专用芯片MAX485进行转换。
图5-9-1MAX485引脚图
图5-9-2通信接口电路
6.软件程序设计
系统的软件的设计采用的是汇编语言,对单片机进行编程实现各种功能。
程序是在windowsxp环境下采用keil软件编写的,可以实现对八路数据的采集与处理,能实现对数据、地址的显示。
6.1主程序流程图及其程序:
主程序:
ORG0100H
MAIN:
MOVSP,#60H;
给堆栈指针赋初值
MOVSCON,#50H;
设置串口方式1控制字
MOVTMOD,#21H;
设置波特率为9600
MOVTH1,#0FDH
MOVTL1,#0FDH;
给定时器赋初值
SETBTR1;
启动定时器
CLRP1.7;
清空P1.7口
SETBP1.6;
置1P1.6
LOOP:
MOVR0,#0FFH;
在寄存器R0中写入FF
MOVR4,#00H;
清空寄存器R4
LOOP1:
MOVA,R4;
将寄存器R4的值送入累加器A
SWAPA;
交换A中的值
ANLA,R4;
将A与R4中的值相与
MOVR2,A;
将A的值放入寄存器R2,发送指令内容
MOVTDH,R4
LCALLFAS;
调用发送子程序
LCALLSJCL
MOVR7,#064H
XH:
LCALLDISPLAY
DJNZR7,XH;
调用数码管显示子程序
INCR0
INCR4
CJNER4,#08H,LOOP1
AJMPLOOP
6.2、数码管显示子程序:
DISPLAY:
MOVDPTR,#DISTAB
MOVR3,#01H
MOVR1,#TDH
DPLOP:
MOVA,@R1
MOVCA,@A+DPTR
MOVP2,R3
MOVP0,A
CJINER3,#02H,DPNEXT
SETBP0.7
DPNEXT:
MOVA,R3
RLA
MOVR3,A
INCR1
LCALLDS1M
CLRP0.7
CJINER3,#10H,DPLOP
MOVP0,#00H;
一次显示结束,P0口复位
MOVP2,#00H;
P2口复位
RET
6.3、发送子程序:
FAS:
SETBP1.7
MOVA,R2
MOVSBUF,A;
发送数据
LCALLDSIM
CLRP1.7
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0;
启动定时器0
S1:
JBR1,S2
CLRTI;
等待接受
JNBTF0,S1
CLRTF0
MOVTL0,#BOH;
给定时器0设初值
SETBTR0
S0:
DJNZCUOWU,FAS
MOVCUOWU,#04H
LCALLBAOJING;
跳到报警程序
S2:
MOVA,SBUF
MOVZCI,A
CLRRI
CLRTF0
S3:
JBRI,S4
JNBTF0,S3
CLRTF0
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
MOVCUOWU,#04H
LCALLBAOJING;
S4:
MOVA,SBUF
MOVZC2,A
CLRRI
CJNEA,ZC1,S0
MOV@R0,ZC1
SETBP1.6
AJMPFANHUI;
返回程序
BAOJING:
CLRP1.6
FANHUI:
RET
6.4、A/D转换程序流程图:
ORG0000H
MOVR1,#20H
MOVR2,#08H;
设定8个通道
MOVTL0,#00H
MOVTH,#0B8H
MOVTMOD,#01H;
给计数器设定初值并初始化
CLRET0;
SETBTR0;
启动计数器
MOVSCON,#40H
MOVDPTR,#78FFH;
置DPTR,使模拟通道对应的入口地址为78FFH
LOOP:
MOVA,R2
SUBBA,R1
JNZLOOP2;
跳转至LOOP2
MOVR1,#00H
MOVDPTR,#78FFH
LOOP1:
JNBTF0,LOOP1
MOVTH0,#0B8H;
重新给计数器设初值
LOOP2:
MOVX@DPTR,A;
重启A/D
LOOP3:
JPP1.0,LOOP3
LOOP4:
JNPP1.0,LOOP4;
由P1.0查询ADC0809的EOC信号,确定转换是否完成
MOVXA,@DPTR;
查询结果
MOV@R1,A;
保存结果
INCDPH;
查询下一模拟通道
INCR1;
同时将下一通道的值保存
LJMPLOOP
END
7.课程设计心得
通过这次课程设计,我深刻的了解到了数据采集系统的原理、构成部分和数据采集系统和电气工程及其自动化之间的紧密联系,该系统可以采集的发电厂运行数据包括电气参数和非电气参数两类。
在此次课程设计当中学到了很多东西,确实对自己专业的理论知识和实践的结合有了很大的帮助,对我个人而言确实受益匪浅。
本次课程设计是一个由微机控制的A/D数据采集控制系统,这卡上对应有8个通道0到5V的模拟电压采集的能力,要求用键盘选择转换通道。
在以上的设计里,基本满足了设计需求的要素。
这次的课程设计主要应用的知识,有计算机控制系统的构成,接口电路与应用程序,再一次巩固了所学的理论知识。
结合自己大学期间的实际积累的专业基础知识和相关专业课程知识。
总体来说这是一次,理论与实践的结合,有助于我们应用专业的理论知识解决实际问题。
在这次课程设计里有很多不尽如人意的地方,但是这个设计是在我的能力范围内做的最好的设计成果。
当然有些理念是参考了网上相应的资源,但是整个设计过程中,有自己的想法,总之,此次课程设计是我尽最大的努力完成的。
8.参考文献
1.顾德英.计算机控制技术(第二版).北京邮电大学出版社,2005年
2.李顺增.吴国东.微机原理及接口技术.机械工业出版社,2004年
3.李朝青.单片机原理及接口技术(第三版).北京航空航天大学出版社,2005年
4.邬宽明.单片机外围器件使用手册,数据传输接口器件分册.北京航空航天大学出版社,1998年
5.李顺增、吴国东.微机原理及接口技术.机械工业出版社,2004年
6.张毅刚、彭喜元、孟升卫、刘兆庆.单片机使用子程序设计(第二版).哈尔冰工业大学出版社,2003年
7.徐爱卿、孙涵芳、盛焕明.单片微型计算机应用和开发系统.北京航空航天大学出版社,1992年
8.王兆安.电力电子技术(第四版).西安交通大学出版社,2002年
9.毕满清.模拟电子技术基础.电子工业出版社,2008年
10.韩焱.数字电子技术基础.电子工业出版社,2009年