中山大学计算机原理接口技术实验报告模板实验八.docx
- 文档编号:5950836
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:15
- 大小:259.23KB
中山大学计算机原理接口技术实验报告模板实验八.docx
《中山大学计算机原理接口技术实验报告模板实验八.docx》由会员分享,可在线阅读,更多相关《中山大学计算机原理接口技术实验报告模板实验八.docx(15页珍藏版)》请在冰豆网上搜索。
中山大学计算机原理接口技术实验报告模板实验八
实验报告
实验人:
学号:
日期:
院(系):
专业(班级):
实验题目:
[实验八]模/数转换器;
[实验八]模/数转换器
一、实验目的
了解模/数转换的基本原理,掌握ADC0809的使用方法。
二、实验原理
A/D转换的原理:
1、A/D转换器基本结构
A/D转换芯片是由集成在单一芯片上的模拟多路开关、采样/保持器、A/D转换电路及数字输出接口构成。
如图7.73所示。
(1)模拟多路开关:
用于切换多路模拟输入信号,根据地址信号选择某一个通道,使芯片能够分时转换多路模拟输入信号。
(2)采样/保持器:
缩短采样时间,减小误差。
(3)精密基准电压源:
产生芯片所需要的基准电压。
(4)A/D转换电路:
完成模拟量到数字量的转换。
(5)数字接口和控制逻辑:
将微机总线与芯片相连,接收控制命令、地址信息,输出转换结果。
为了适应不同的自动测控系统和信息处理系统对分辨率、精度、速度、价格等提出的各种要求,很多厂家设计生产出多种类型、多种功能的A/D转换芯片。
下面以ADC0809为例介绍模/数转换器的工作原理及应用。
2、逐次逼近式A/D转换原理
逐次逼近式A/D转换器与计数式A/D转换类似,只是数字量由“逐次逼近寄存器SAR”产生。
SAR使用“对分搜索法”产生数字量,以8位数字量为例,SAR首先产生8位数字量的一半,即10000000B,试探模拟量Vi的大小,若Vo>Vi,清除最高位,若Vo 在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位)试探模拟量Vi的大小。 在bit6确定后,SAR以对分搜索法确定bit5位,即以低6位的一半yy100000B(y为已确定位)试探模拟量的大小。 重复这一过程,直到最低位bit0被确定,转换结束。 转换过程: (1)首先发出“启动信号”信号S。 当S由高变低时,“逐次逼近寄存器SAR”清0,DAC输出Vo=0,“比较器”输出1。 当S变为高电平时,“控制电路”使SAR开始工作。 (2)SAR首先产生8位数字量的一半,即10000000B,试探模拟量的Vi大小,若Vo>Vi,“控制电路”清除最高位,若Vo (3)在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位)试探模拟量Vi的大小。 在bit6确定后,SAR以对分搜索法确定bit5位,即以低6位的一半yy100000B(y为已确定位)试探模拟量Vi的大小。 重复这一过程,直到最低位bit0被确定。 (4)在最低位bit0确定后,转换结束,“控制电路”发出“转换结束”信号EOC。 该信号的下降沿把SAR的输出锁存在“缓冲寄存器”里,从而得到数字量输出。 从转换过程可以看出: 启动信号为负脉冲有效。 转换结束信号为低电平。 ADC0809的结构和引脚以及与CPU的接口方法: 1、ADC0809内部结构及其应用 (1)ADC0809的转换时序 从图可以看出,启动脉冲START利地址锁存允许脉冲ALE的上升沿将地址送上地址总线,模拟量经C、B、A选择开关所指定的通道送到A/D转换器。 在START信号下降沿的作用下,逐次逼近过程开始,在|时钟的控制下,一位一位地逼近。 此时,转换结束信号EOC呈低电平状态。 由于逐次逼近需要一定的过程,所以,在此期间内,模拟输入值应维持不变,比较器要一次次进行比较,直到转换结束。 此时,如果计算机发出一个输出允许命令(EOC呈高电平),则可读出数据。 (2)内部结构及引脚信号 ADC0809是28引脚双列直插式芯片,内部结构和引脚信号如图7.74所示。 ADC0809的引脚信号 ADC0809内部由8位模拟通道选择开关、地址锁存与译码单元、定时与控制单元、逐次逼近寄存器、树状开关、电阻网络和输出锁存缓冲器组成。 8位模拟通道选择开关通过3位地址输入ADDC,ADDB,ADDA的不同组合来选择模拟输入通道。 树状开关和电阻网络的作用是实现单调性的D/A转换。 定时与控制单元的START信号控制A/D转换开始,转换后的数字信号在内部锁存,通过三态缓冲器输出。 IN7~IN0(inputchannel): 8路模拟电压输入引脚。 D7~D0(digitaloutput): 8位数字量输出引脚。 ADDC,ADDB,ADDA(address): 地址输入引脚,地址与输入通道的关系见表7.14。 START(startcontrolsignal): 启动A/D转换的控制信号,输入,高电平有效。 输入通道 地址 ADDC ADDB ADDA 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 表7.14 ADC0809地址与输入通道的关系 ALE(addresslatchenable): 地址锁存允许控制信号,输入,高电平有效。 ALE有效时,ADDC,ADDB,ADDA才能控制选择8路模拟输入中的某一通道。 START和ALE两个引脚可以连接在一起,当通过软件输入一个正脉冲时,便立即启动A/D转换。 EOC(endofconversion): 转换结束状态信号,输出,高电平有效。 OE(outputenable): 数据输出允许信号,高电平有效。 只有OE信号有效时,才能打开输出三态缓冲器,用于指示转换已经完成,在查询方式下,OE信号可以作为A/D转换结束的状态信号。 CLOCK(clock): 时钟信号,要求频率在10kHz~1MHz范围内,典型值为640kHz,可由微处理器时钟分频后得到。 VCC: +5V电源。 GND: 接地端。 VREF(+)(noninvertingreferencevoltageinput): 参考电压输入引脚,通常与VCC相连。 VREF(-)(invertingreferencevoltageinput): 参考电压接地端,通常与GND相连。 (3)转换结束信号EOC的处理 当A/D转换结束后,ADC0809将输出一个转换结束信号EOC,通知CPU读取转换结果。 主机查询判断A/D转换是否结束的方式有四种。 CPU对转换结束信号EOC的处理方式不同,对应的硬件电路和程序设计方法也就不同。 查询方式: 把转换结束信号EOC作为状态信号经三态缓冲器送到CPU的数据总线的某一位上。 CPU启动ADC0809开始转换后,就不断地查询这个状态位,当EOC有效时,便读取转换结果。 这种方式程序设计比较简单,实时性也较强,是比较常用的一种方法。 中断方式: 把转换结束信号EOC作为中断请求信号接到CPU的中断请求线上。 ADC0809转换结束,向CPU申请中断。 CPU响应中断请求后,在中断服务程序中读取转换结果。 这种方式ADC0809与CPU并行工作,适用于实时性较强和参数较多的数据采集系统。 延时方式: 在这种方式下,不使用转换结束信号EOC。 CPU启动A/D转换后,延时一段时间(略大于A/D转换时间),此时转换已经结束,可以读取转换结果。 这种方式,通常采用软件延时的方法(也可以采用硬件延时电路),无须硬件连线,但要占用主机大量时间,多用于主机处理任务较少的系统中。 DMA方式: 把转换结束信号EOC作为DMA请求信号。 A/D转换结束,即可启动DMA传送,通过DMA控制器直接将数据送入内存缓冲区。 这种方式特别适合要求高速采集大量数据的系统。 2、ADC0809与CPU的连接及其应用举例 【例7.11】 编写启动A/D转换的子程序,将转换结果存入以BUFFER为首地址的内存单元。 CPU采用查询方式处理转换结果。 查询方式的硬件电路如图7.75所示。 我们将转换结束信号EOC作为状态信号,经三态门接入系统数据总线最高位D7。 系统地址总线的A2~A0与ADC0809的ADDC,ADDB,ADDA相连,状态端口的I/O地址假设为238H。 在启动A/D转换的同时,选定要进行转换的模拟通道,对应8个模拟通道的I/O地址分别为220H~227H。 分别对8个通道IN7~IN0采样10点,存入指定内存单元,程序如下: MOV BX,OFFSETBUFFER ;BX地址指针,指向BUFFER存储单元 MOV CL,10 ;计数初始值CL=10次 START: MOV DX,220H ;通道IN0地址 CAI: OUT DX,AL ;启动A/D转换 PUSH DX ;保存通道IN0地址 NOP ;等待,根据CPU的速度决定NOP指令的个数 NOP MOV DX,238H WAIT: IN AL,DX TEXT AL,80H ;测试转换结束信号EOC JZ WAIT ;转换未结束,返回等待 POP DX ;恢复保存的通道地址 IN AL,DX ;读转换结果 MOV [BX],AL ;存入BUFER内存单元 INC BX ;修改地址指针 INC DX ;修改通道地址 CMP DX,227H ;判断8个通道是否均采样一次 JNZ CAI ;未完,返回启动下一个通道 DEC CL ;修改计数值 JNZ START ;未完,返回继续 HLT ;8个通道均采样10个点,暂停 三、实验内容 实验预备: 按要求连接实验台数据线,并打开TPC-USB实验机。 注意检查硬件是否连接以及驱动是否正常安装。 1、实验电路原理图如图。 通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。 启动IN0开始转换: Out02980 读取转换结果: In0298 2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。 3、将JP3的1、2短接,使IN1处于双极性工作方式,并给IN1输入一个低频交流信号(幅度-5V~+5V),编程采集这个信号的数据并且在屏幕上显示波形。 四、实验器材 实验所用器材 1、TPC-USB通用微机接口实验系统(包含TPC-USB实验台及对应的TPC-USB实验系统集成开发环境) 2、若干导线 五、实验分析与设计 按实验要求连线: 连线: ADC0809CS----298H~29FH(片选信号)RW1----INO 实验分析: 1、IN0单极性输入电压与转换后数字的关系为: 其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。 2、一次A/D转换的程序可以为 MOVDX,“口地址” OUTDX,AL;启动转换 ;延时 INAL,DX;读取转换结果放在AL中 编写并运行程序: (1)AD_1 io0809aequ298h;选择模拟通道IN0 codesegment assumecs: code start: movdx,io0809a;启动A/D转换器 outdx,al movcx,0ffh;延时 delay: loopdelay inal,dx;从A/D转换器输入数据存放到AL movbl,al;将AL保存到BL movcl,4 shral,cl;将AL右移四位 calldisp;调显示子程序显示其高四位 moval,bl andal,0fh calldisp;调显示子程序显示其低四位 movah,02 movdl,20h;利用中断功能加回车符 int21h movdl,20h int21h pushdx movah,06h;判断是否有键按下 movdl,0ffh int21h popdx jestart;若没有转START movah,4ch;退出 int21h ;显示子程序 dispprocnear movdl,al cmpdl,9;比较DL是否>9 jleddd;若不大于则为'0'-'9',加30h为其ASCII码 adddl,7;否则为'A'-'F',再加7 ddd: adddl,30h;显示 movah,02 int21h ret dispendp codeends endstart 预计运行结果: 采集INO输入的电压,在屏幕上显示转换后的数据。 (2)AD_2 io0809bequ299h;选择模拟通道IN1 codesegment assumecs: code start: movax,0012h;设屏幕显示方式为VGA640X480模示 int10h start1: movax,0600h int10h;清屏 andcx,0;设初始横坐标cx为0 draw: movdx,io0809b;启动A/D转换器通道1 outdx,al movbx,200;延时 delay: decbx jnzdelay inal,dx;读入数据 movah,0;高4位清零 movdx,368;dx为纵坐标 subdx,ax moval,0ah;设置颜色 movah,0ch;画点 int10h cmpcx,639;一行是否满 jzstart1;是则转start inccx;继续画点 pushdx movah,06h;判断是否有键按下 movdl,0ffh int21h popdx jedraw;无,则继续画点 movax,0003;有恢复屏幕为字符方式 int10h movah,4ch;返回 int21h codeends endstart 预计运行结果: 将JP3(ADC0809右下方)的1、2短路使IN2处于双极性工作方式,给IN1输入一个低频交流信号(幅度为+5V),编程采集这个数据并在屏幕上显示对应的波形。 六、思考题 1、把测量的输入模拟电压与数字显示列出表格。 [答]: 序号 输入模拟电压 数字显示 1 2 3 4 5 6 7 8 9 10 2、小结A/D转换芯片与CPU的接口及编程方法。 ①数据输出 模拟信号经A/D转换,通过三态锁存缓冲器,向CPU送出数字量。 因此ADC芯片的数据输出端D0~D7必须连接到数据总线D0~D7上。 ②启动转换 ADC开始转换时,需要一个正脉冲有效的启动信号START。 因此可以将ADC的START端与CPU的 端相连,并与读取数字量占用同一个I/O地址,如220H。 编程如下: MOVDX,220h OUTDX,AL 即可启动相应模拟通道。 ③转换结束 当A/D转换结束,ADC输出一个转换结束信号EOC,通知主机读取结果。 要使ADC工作于查询方式,则把结束信号作为状态信号经三态缓冲器送到系统数据总线的某一位上。 ADC开始转换后,主机不断查询这个状态位,发现结束信号有效就读取数据。 要使ADC工作于查询方式,则把结束信号作为中断请求信号接到主机的中断请求线上。 对应的编程方法见题目3。 3、若程序中不是用延时等待A/D转换完成,而是用查询或中断的方法,程序应该如何编写? ①查询方式: 连线EOC---D7(系统总线)其余与延时方式一致 ;数据段 BUFFERDB10dup(0) ;代码段 MOV BX,OFFSETBUFFER ;BX地址指针,指向BUFFER存储单元 MOV CL,10 ;计数初始值CL=10次 START: MOV DX,220H ;通道IN0地址 CAI: OUT DX,AL ;启动A/D转换 PUSH DX ;保存通道IN0地址 NOP ;等待,根据CPU的速度决定NOP指令的个数 NOP MOV DX,238H WAIT: IN AL,DX TEXT AL,80H ;测试转换结束信号EOC JZ WAIT ;转换未结束,返回等待 POP DX ;恢复保存的通道地址 IN AL,DX ;读转换结果 MOV [BX],AL ;存入BUFER内存单元 INC BX ;修改地址指针 INC DX ;修改通道地址 CMP DX,227H ;判断8个通道是否均采样一次 JNZ CAI ;未完,返回启动下一个通道 DEC CL ;修改计数值 JNZ START ;未完,返回继续 HLT ;8个通道均采样10个点,暂停 ②中断方式: 连线EOC---IRQ2其余与延时方式一致 ;数据段 ADTEMPDB0 ;代码段 ;…设置中断向量 STI;开中断 MOVDX,220H OUTDX,AL;启动A/D转换 ;中断服务程序 ADINTPROC STI;开中断 PUSHAX;保护寄存器 PUSHDX PUSHDS MOVAX,@DATA;设置数据段DS的段地址 MOVDS,AX MOVDX,220H INAL,DX;读取A/D转换后的数字量 MOVADTEMP,AL;送入缓冲区 MOVAL,20H;给中断控制器发送EOI命令 OUT20H,AL POPDS;恢复寄存器 POPDX POPAX IRET;中断返回 ADINTENDP 七、实验心得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中山 大学计算机 原理 接口 技术 实验 报告 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)