精选接口实验报告4.docx
《精选接口实验报告4.docx》由会员分享,可在线阅读,更多相关《精选接口实验报告4.docx(14页珍藏版)》请在冰豆网上搜索。
![精选接口实验报告4.docx](https://file1.bdocx.com/fileroot1/2022-10/20/0d5068c1-10d1-4d66-90fd-fff994f5c35d/0d5068c1-10d1-4d66-90fd-fff994f5c35d1.gif)
精选接口实验报告4
计算机接口技术实验报告
姓名:
陈世阳
班级:
计算机01班
学号:
10055008
实验名称:
A/D转换实验
实验目的
1.熟悉逐次逼近式A/D转换器芯片的工作原理。
2.掌握0809A/D转换芯片的硬件电路和软件编程。
实验内容:
ADC0809的主要性能:
(1)8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。
(2)带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。
(3)输出具有三态锁存功能。
(4)分辨率:
8位,转换时间:
100μs。
(5)不可调误差:
±1LBS,功耗:
15mW。
(6)工作电压:
+5V,参考电压标准值+5V。
(7)片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。
ADC0809的内部结构:
ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。
模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。
A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。
另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。
ADC0809的多路转换:
在实时控制与实时检测系统中,被控制与被测量的电路往往是几路或几十路,对这些电路的参数进行模/数、数/模转换时,常采用公共的模数、数模转换电路。
因此,对各路进行转换是分时进行的。
此时,必须轮流切换各被测电路与模数、数模转换电路之间的通道,以达到分时切换的功能。
ADC0809转换时序:
首先输入地址选择信号,在ALE信号作用下,地址信号被锁存,产生译码信号,选中一路模拟量输入。
然后输入启动转换控制信号START(不小于100ns),启动A/D转换。
转换结束,数据送三态门锁存,同时发出EOC信号,在允许输出信号控制下,再将转换结果输出到外部数据总线。
图1-ADC0809转换时序图
本实验利用实验板上的ADC0809做A/D转换实验,将模拟信号转换成数字信号并在屏幕上显示,调节电位器观察屏幕上显示的变化。
实验原理图
图2-ADC0809电路
实验原理
1.电路组成及转换原理
ADC0809是带有8位A/D转换器、8路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件。
8位A/D转换器的转换方法为逐次逼近法。
在A/D转换器内部含有一个高阻抗斩波稳定比较器,一个带有模拟开关数组的256电阻分压器,以及一个逐次逼近的寄存器。
8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个单边的模拟信号。
其原理图如图3所示。
图3-ADC0809内部原理图
从图中可以看出,ADC0809由两部分组成,第一部分为八通道多路模拟开关,控制C、B、A和地址锁存允许端子,可使其中一个通道被选中。
第二部分为一个逐次逼近型A/D转换器,它由比较器、控制逻辑、输出锁存缓冲器、逐次逼近寄存器以及开关数组和256R梯型解码网络组成,由后两种电路(开关数组和256R梯型电阻)组成D/A转换器。
控制逻辑用来控制逐次逼近寄存器从高位到低位逐次取“1”,然后将此数字量送到开关数组(8位开关),以控制开关K7~K0是否与参考电压相连。
参考电压经256R梯型电阻输出一个模拟电压Vc,Vc与输入模拟量Vx在比较器中进行比较。
当Vc>Vx时,该位Di=0;若Vc≤Vx,则Di=1。
因此,从D7~D0比较8次,逐次逼近寄存器中的数字量,即与模拟量Vx所相当的数字量相等。
此数字量送入输出寄存器,并同时发出转换结束信号。
2.ADC0809的引脚功能
ADC0809的引脚,如图4所示。
图4-ADC0809引脚图
图4所示各引脚功能如下:
⑴IN7~IN0:
八个模拟量输入端。
⑵START:
启动A/D转换,当START为高电平时,A/D转换开始。
⑶EOC:
转换结束信号。
当A/D转换结束后,发出一个正脉冲,表示A/D转换完毕。
此信号可用作A/D转换是否完成的检测信号或向CPU申请中断的信号(需加一级反相器)。
⑷OUTPUTENABLE:
输出允许信号。
当此信号被选中时,允许从A/D转换器的锁存器中读取数字量。
此信号即为ADC0809的片选信号,高电平有效。
⑸CLOCK:
实时时钟,可通过外接RC电路改变时钟频率。
⑹ALE:
地址锁存允许,高电平有效。
当ALE为高电平时,允许C、B、A所示的通道被选中,并把该通道的模拟量接入A/D转换器。
⑺ADDA、ADDB、ADDC:
通道号端子,C为最高位,A为最低位。
⑻D7~D0:
数字量输出端。
⑼Vref(+),Vref(-):
参考电压端子,用来提供D/A转换器权电阻的标准电平。
一般Vref(+)=+5V,Vref(-)=0V。
⑽Vcc:
电源电压,接+5V。
⑾GND:
接地端。
ADC0809的主要性能如下:
⑴分辨率为8位。
⑵总的不可调误差为±1LSB。
⑶工作时钟典型值为640KHZ,转换时间约为100µs。
⑷采用单+5V电源。
⑸模拟量的输入电平范围为0~5V,不需要零点和满度调节。
⑹具有8通道闩锁开关控制,可以直接接入8个单端模拟量。
⑺数字量输出采用三态逻辑,输出符合TTL电平。
⑻低功耗为15mW。
⑼温度范围为-40ºC~+85ºC。
实验步骤流程图
信号源模块短路262.14KHz,CLK0连到
AD0809模块的时钟输入端ADCLK。
AD0809模块的ADWR、ADRD连到分别
连到ISA总线接口模块的IOWR、IORD。
AD0809模块的数据(AD0~AD7)、
地址线(A0~A7)分别连到ISA
总线接口模块的数据(LD0~
LD7)、地址线(LA0~LA7)。
AD0809模块选通线ADCS连到
ISA总线接口模块的0020H。
AD0809模块IN0接到电位器的DCOUT。
运行程序:
0809.ASM,调节电位
器观察屏幕的变化。
实验结果
按照实验流程图完成接线且调试成功后,可以观察到二极管每秒一次有规律地亮灭交替地闪烁。
当改变信号源模块的频率时,二极管闪烁的频率也随之改变。
通过改变频率,可以观测到定时器在该实验中起到的定时中断的作用。
实验小结
虽本次实验最大的收获就是锻炼了自己的动手操作能力以及遇到问题能够通过分析找到原因并且解决问题,也使我明白了再强的理论知识也要付诸到实践中去,否则这是不行的。
在以后的学习中,要明白理论与实践相结合的重要性。
必须将两者结合起来,才能对学到的知识进行全面的掌握。
通过本次A/D转换器ADC0809实验,我掌握了A/D转换的工作原理及实验过程,熟悉了ADC0809芯片的引脚及工作原理能够正确的连接各引脚之间的线路,而且也了解了一些A/D转换器的应用与接口技术,同时对汇编语言程序的编写、编译、调试有了进一步巩固,为以后的学习提供很大的帮助。
附录:
实验源程序
MY_STACKSEGMENTPARA'STACK'
DB100DUP(?
)
MY_STACKENDS
MY_DATASEGMENTPARA'DATA'
IO_9054base_addressDB4DUP(0);PCI卡9054芯片I/O基地址暂存空间
IO_base_addressDB4DUP(0);PCI卡I/O基地址暂存空间
pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror!
!
!
',0DH,0AH,'$'
GOODDB0DH,0AH,'TheProgramisExecuting!
',0DH,0AH,'$'
MESSDB0DH,0AH,'TheADresultis',0DH,0AH,'$'
AD0809DW0020H
DELAY_SETEQU0FFH;延时常数
DIDATADB?
;要显示的数据
MY_DATAENDs
MY_CODESEGMENTPARA'CODE'
MY_PROCPROCFAR
ASSUMECS:
MY_CODE,DS:
MY_DATA,SS:
MY_STACK
MAIN:
.386;386模式编译
MOVAX,MY_DATA
MOVDS,AX
MOVES,AX
MOVAX,MY_STACK
MOVSS,AX
CALLFINDPCI;自动查找PCI卡资源及IO口基址
MOVCX,wordptrIO_base_address
;MOVCX,0E800H;直接加入(E800:
本机PCI卡IO口基址)
ADDAD0809,CX;PCI卡IO基址+偏移
MOVDX,offsetMESS;显示提示信息
MOVAH,09H
INT21H
MOVDIDATA,00H
STARTAD:
MOVDX,AD0809
MOVAL,00H
OUTDX,AL;启动AD转换
CALLDELAY
INAL,DX;转换结束读取结果
CMPAL,DIDATA;如果是原来的数据不刷新显示
CALLBREAK
JZSTARTAD
CALLDSUP;显示
JMPSTARTAD
MY_PROCENDP
;
;*****************************************************************************
;/*显示子程序*/
;*****************************************************************************
;
DSUPPROCNEAR
PUSHF
PUSHCX
MOVDIDATA,AL
MOVCX,04;取高位
SHRAL,CL
CALLSEND
MOVAL,DIDATA
ANDAL,0FH;低位
CALLSEND
CALLCR
POPCX
POPF
RET
DSUPENDP
SENDPROCNEAR
CMPAL,09H
JGSEND1
ADDAL,30H
JMPSEND2
SEND1:
ADDAL,37H
SEND2:
MOVAH,0EH
INT10H
RET
SEND