AD数据采集卡设计.docx
- 文档编号:28125697
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:15
- 大小:234.26KB
AD数据采集卡设计.docx
《AD数据采集卡设计.docx》由会员分享,可在线阅读,更多相关《AD数据采集卡设计.docx(15页珍藏版)》请在冰豆网上搜索。
AD数据采集卡设计
微机原理课程设计报告
设计题目:
A/D数据采集卡设计
1.课程设计目的通过课程设计,提高理论联系实际的解决实际问题的能力;提高对接口技术等相关硬件知识的深入理解;掌握8255A的控制字的设置、工作方式、编程原理和微机接口方法。
加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D输入程序的设计和调试方法。
熟悉ADC0809模数转换器的特性和接口方法,掌握A/D输出程序的设计和调试方法,进而提高动手能力和学习兴趣为顺利进入毕业环节做必要的准备。
2.课程设计内容设计一块A/D卡,该卡具有对0~5V的模拟电压进行采集功能的能力,该卡通过系统的I/O扩展接口与微机系统连接。
选用芯片:
ADC0809等。
3.设计要求画出电路原理图,说明工作原理,编写利用该卡进行256个数据的采集并显示在显示器上的程序.
4.概要设计ADC0809是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度—1/512到+1/512,适合于多路采集系统。
ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。
ADC0809的CLK信号接系统的CLK输入,基准电压Vref(+)接Vcc。
一般实际应用系统中应该接精度+5v,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。
ADC0809CS连译码输出的00H-0FH。
ADC0809的转换结束信号EOC接IOR。
本试验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C接系统数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H、06H、07H。
调节电位器W1,以改变模拟电压值,用ADC0809做A/D转换,其模拟量与数字量对应关系的典型值为+5V—FFH、2.5V—80H、0V—00H。
译码器:
通过一片SN74AHC138N实现对ADC0809、8255A二片芯片的选择,138的OE1接+5v的Vcc。
OE2A、OE2B接地,通过AD4、AD5、AD6实现对芯片0809、8255的选择
5.实验原理及程序流程图
1.A/D转换器的一般工作原理
A/D转换方法很多,最常用的有以下两种:
逐次逼近式A/D转换器和双积公式A/D转换器。
逐次逼近式A/D转换器的主要原理为:
将一个待转换的模拟输入信号VIN与一个“推测”信号V1相比较,根据推测信号是大于还是小于输入信号来决定减小还是增大该推测信号,以便模拟输入信号逼近。
推测信号由D/A变换器的输出获得,当推测信号与模拟输入信号“相等”时,向D/A转换器输入的数字即为对应的模拟输入的数字。
其“推测”的算法是这样的,它使二进制计数器的二进制数的每一位从最高位起依次置1。
每接一位时,都要进行测试。
若模拟输入信号VIN小于推测信号V1,则比较器的输出为零,并使该位置零;否则比较器的输出为1,并使该位保持1。
无论哪种情况,均应继续比较下一位,直到最末位为止。
此时在D/A变换器的数字输入即为对应于模拟输入信号的数字量,将此数字输出,即完成其A/D转换过程。
双积分式A/D转换器先对未知的输入电压进行固定时间的积分,然后转为对标准电压进行反向积分,直至积分输出返回到起始值。
则对标准电压进行积分的时间T正比于输入模拟电压。
输入电压大,则反向积分时间长。
用高频率标准时钟脉冲来测量这个时间,即可得到相应于输入模拟电压的数字量。
逐次逼近式A/D转换器的转换速度较快,一般在几微秒到上百微秒之间,但成本较高。
双积分A/D转换器容易做到较高的分辨率(位数),抗扰性能好,对时间和温度也有较好的稳定性,缺点是转换速度比逐次逼近式A/D转换器要慢得多(尤其在位数较多的情况下)。
2.A/D转换器的主要参数及其连接特性
由A/D转换器一般工作原理分析得知其转换性能的主要参数有:
(1)分辨率:
指A/D转换器可转换成数字量的最小模拟电压值,如果要再小于这个电压值,则A/D转换器就分辨不出来。
(2)转换时间:
指从输入启动转换信号开始到转换结束,所得到稳定的数字输出量为止的时间。
A/D转换器的外部特性:
A/D转换芯片一般具有输入/输出信号线为:
转换启动线,由系统控制器发出的控制信号,表明A/D转换立即开始;
转换结束线,转换完毕后由ADC发出的状态信号,表明转换结束,用它申请中断或DMA传送,或作查询信号之用;模拟信号输入线,来自被转换的对象,有单通道输入与多通道输入之分;数字量输出线,由ADC送给CPU的数据线。
3.ADC0809芯片
ADC0809是CMOS材料的8位单片A/D转换器件。
片内有8路模拟开关、模拟开关的地址锁存与译码电路、比较器、256R电阻T型网络、树状电子开关、逐次逼近寄存器SAR、三态输出锁存缓冲器、控制与时序电路等。
ADC0809通过引脚IN0、IN1、……IN7可输入8路单片模拟输入电压。
ALE将三位地址线ADDA、ADDB、ADDC进行锁存,然后由译码器选通8路中的一路进行A/D转换。
三态输出锁存器输出对应于数字量最高位的D7,对应于最低位D0。
OE端为输出允许信号,当OE端为最高电平时,将三态输出锁存器中的数字量放在数据总线上,以供CPU读入。
START和EOC分别为启动信号和转换结束信号,EOC用来申请中断。
ADC0809芯片引脚图
4.8255芯片
8255是可编程I/O口扩展芯片。
对8255输入不同的指令可改变I/O口的工作方式。
8255与单片机系统连接方式简单,工作方式由程序设定。
8255内部有4个寄存器:
分别为寄存器A、B、C和控制寄存器。
A、B、C寄存器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据。
而控制寄存器的数据则表明PA、PB、PC的工作方式。
通过CS、A0、A1、RD和WR对4个寄存器进行操作。
1)CS为低电平时选通8255;
2)A1、A0为地址选通;
3)RD和WR为读、写信号:
RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。
4)D0~D7为数据口。
向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。
这里只介绍应用最多的方式0。
方式0下8255的PA、PB及PC口上半部分(PC7~PC4)和下半部分(PC3~PC0)中任何一个端口都可以设定为输入或输出,PC口还可以进行位操作。
RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:
读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
8255方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。
当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。
通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。
方式1是一种选通输人偷出方式,A口和B口均可工作在这种方式。
方式1可作为查询式传送方式,此时握手联络信号,C口要用6位(分成两个3位)分别作为A口和B口的应答联络信号。
方式1也可用作中断方式,此时要写对应的C口的按位置位字,打开中断。
方式2是A口独有的双向传送方式,一般使用中断传送方式。
5.流程图
主程序流程图:
1)、初始化8255:
A,B,C均为方式0,A入B出,CL入。
由工作方式可得到,控制字为91H
从电路图可知A口地址为37BH;
2)、A/D转化:
256个数要设置一个256次的循环;
每次循环应包括:
选择通道0;
ALE信号产生上升沿;START信号产生下降沿;
判断EOC的状态,若为0表示这种转换结束,若不为0继续等待EOC直到其状态为0;
将转换结果,从8255的A口输入到AL中,再将AL中的内容存入存储器中。
子流程图:
(1)显示高四位
1)、流SI中的值存放在AL中,由于后面的显示低4位时还用到AL中的数据,所以先将AL中的数据存放到BX中已备后面调用,AL中的高4位保持低4位置0,由于该程序中循环用到CX中的内容所以需用CX时得保护CX中的内容,将AL中的数据左移4位,AL中的内容加上30H,判断AL中的值与39H进行比较,若(AL)<=39H则直接显示,否则将AL中的值加上07H然后再在屏幕上显示。
2)流程图
(2)显示低四位
1)、将AL中低4位保持.高4位置0,
AL中的内容加30H,由于0~15在ASCII中用0~9,A~F表示,故需要判断低4位
表示的ASCII是0~9还是A~F,若是0~9直接在屏幕上显示,若是A~F则需将AL中的值加上07H再在屏幕上显示。
这个图好像不对,你到时候改一下吧
六:
原程序:
DATASEGMENT
RESULTDB256DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
INT_8255PROCNEAR;8255初始化
MOVDX,37BH
MOVAL,91H;A,B,C均为方式0,A入B出,cL入
OUTDX,AL
RET
INT_8255ENDP
START:
MOVAX,SEGDATA
MOVDS,AX
MOVSI,OFFSETDATA
CALLINT_8255;8255初始化
MOVBL,0;选择通道0
MOVCX,256
AGAIN:
MOVAL,BL
MOVDX,379H
OUTDX,AL;送通道地址
ORAL,10H
OUTDX,AL;送ALE信号(上升沿)
ANDAL,0EFH
OUTDX,AL;输出START信号(下降沿)
MOVDX,37AH
WAIT1:
INAL,DX;读EOC状态
ANDAL,02H
JZWAIT1;若EOC为低电平则等待
MOVAL,BL
MOVDX,379H
ORAL,20H
OUTDX,AL;EOC端为高电平则输出读允许信号;OE=1
MOVDX,378H
INAL,DX;读入转换结果
MOV[SI],AL;将转换的数字量送存储器
INCSI;修改指针
LOOPAGAIN
DISPLAY:
MOVAL,[SI]
MOV[BX],AL
ANDAL,0F0H;高位十六进制转ASCII码
PUSHCX
MOVCL,04H
SHRAL,CL
POPCX
ADDAL,30H
CMPAL,39H
JBEAS1
ADDAL,07H
JMPAS1
AS1:
MOVDL,AL;显示高位
MOVAH,02H
INT21H
MOVAL,BX
ANDAL,0FH
ADDAL,30H
CMPAL,39H
JBEAS2
ADDAL,07H
JMPAS2
AS2:
MOVDL,AL;显示低位
MOVAH,02H
INT21H
MOVDL,20H;显示两个空格
MOVAH,02H
INT21H
INCSI
LOOPDISPLAY
MOVAH,4CH;返回DOS
INT21H
CODEENDS
ENDSTART
七:
硬件连接图
1、电路图模块设计思路
本设计采用的芯片有A\D转换器ADC0809,并行接口芯片8255,以及用于译码的74LS138.基本采集过程如下:
外界模拟信号通过A\D转换器ADC0809的0通道输入,由于需要采集256个模拟量,所以需要输入256次.输入的模拟量经ADC0809转换成数字量,然后通过并行接口8255,输入系统内部进行处理.
八:
设计总结:
此次课程设计中从确定设计题目,进行分析,查阅相关资料,初步确定了设计思路,最终实现A/D转换器的设计。
通过这次微机课程设计,使我们对书本上的知识又有了新的认识和更深刻的了解,将把知识学活了,并了解了如何运用ADC0809芯片。
此期间,我们翻了大量的资料,不但解决了课本上的疑点难点,而且学到很多课外的知识,例如:
知道了I/O扩展槽的作用及应用,了解了74LS138的结构功能,并且更加熟悉Protel99SE软件的操作,认识了ADC0809的内部结构,清楚了A/D转换器是怎样使得模拟正弦信号变为数字信号的,进一步掌握其在不同工作方式下各印脚的功能。
我们组共有四个组员,虽然每个人的分工不同,但大家一起推理组装,发挥各自的特长,取长补短,以求设计更加好,尽管如此还存在很多不足之处请老师多加指点。
在最后感谢老师在此次课程设计中对我们的指导。
参考文献:
《微型机接口原理技术》(编著:
王承发、刘岩高等教育出版社)
《微型计算机原理接口及应用》(编著:
吕杨、刘瑞敏、邹金慧、蔡光程重庆大学出版社)
《电路原理图与电路板设计教程Protell99SE》(编著:
夏路易、石宗义北京希望电子出版社)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AD 数据 采集 设计