ADC0809实验 | 您所在的位置:网站首页 › adc0809接口原理图 › ADC0809实验 |
实验十 ADC0809实验
一、实验目的 熟悉A/D转换的基本原理,掌握ADC0809的使用方法。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块。 三、实验内容 从ADIN0输入一路模拟信号,启动A/D转换,用简单输入口(74LS244)查询EOC信号,转换结束后查看转换结果。同时用万用表测量输入的模拟电压,与转换后的数字量比较。作图,横坐标是模拟电压,纵坐标是转换的数字量,检查A/D转换的线性度。 其它通道实验与通道0类似,相应修改地址即可。 四、实验原理介绍 本实验用到两部分电路:简单I/O口扩展电路、A/D电路 八路八位A/D实验电路由一片ADC0809,一片74LS04,一片74LS32组成,该电路中,ADIN0—ADIN7是ADC0809的模拟量输入插孔,CS0809是0809的AD启动和片选的输入插孔,EOC是0809转换结束标志,高电平表示转换结束。齐纳二极管LM336-5提供5V的参考电源,ADC0809的参考电压,数据总线输出,通道控制线均已接好。 五、实验步骤 1、实验连线 AN0 « ADIN0 CS0 «CS0809 CS1 «CS244 EOC «IN0 用实验箱左上角的“VERF.ADJ”电位器调节ADC0809 12脚上的参考电压至5V。 3、编写程序并全速运行。 4、检查显示数据是否与电位器输出的电压相符合。 六、实验提示 实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为: MOV DX,ADDRESS ;ADDRESS是ADC0809的端口地址 OUT DX, AL ;发片选及IOW信号,启动0通道 七、实验结果 在输入电压AN0分别为0V,1V,2V,3V,4V,5V时显示数据分别为00H,33H,66H,99H,0CCH,0FFH(数据低位略有偏差属正常现象)。 以下图为当模拟电压为4V时,输出的数据量为CFH。
八、程序框图
九、实验程序 con8279 equ 0492h dat8279 equ 0490h assume cs:code code segment public org 100h start:jmp start1 segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h start1:mov dx,04a0h out dx,ax ;启动通道 0 wait1: mov dx,04b0h ;CS244 in ax,dx ;读 EOC and ax,1 cmp ax,1 jne wait1 ;如果EOC=0,waiting.... mov dx,04a0h in ax,dx ;读转换结果 and ax,0ffh mov bx,ax nop disp: mov di,offset segcod mov ax,08h ;工作方式,16位,左入 mov dx,con8279 out dx,ax mov ax,90h mov dx,con8279 out dx,ax ;写显示RAM命令,地址自增 mov dx,dat8279 push bx and bx,0f0h ;取高4位 mov cl,4 shr bx,cl add di,bx mov al,cs:[di] mov ah,0 out dx,ax ;写RAM0 nop nop mov di,offset segcod pop bx and bx,0fh ;取低4位 add di,bx mov al,cs:[di] mov ah,0 out dx,ax ;写RAM1 delay: mov cx,0ffffh ;time delay delay1: nop nop loop delay1 jmp start1 code ends end start
十、实验拓展 1、查询方式 (1)程序流程图 (2)程序清单 assume cs:code code segment public org 100h start: start1: mov dx,00h mov ax,00h out dx,ax ;启动通道0 wait1: mov dx,20h ; in ax,dx ;读 EOC and ax,1 cmp ax,1 jne wait1 ;如果EOC=0,waiting.... mov dx,00h in ax,dx ;读转换结果 mov dx,40h out dx,al code ends end start
(3)仿真实验连线图 2、中断方式 (1)程序流程图 (2)程序清单 assume cs:code code segment public org 100h start: cli ;设置中断向量 mov ax,0 mov es,ax mov si,60h*4 mov ax,offset int0 mov es:[si],ax mov ax,800h ;8086仿真模型中程序装入段地址 mov es:[si+2],ax ;8259初始化 mov dx,20h ;8259偶地址,设置ICW1 mov al,13h ;边沿触发,单片,ICW4 NEEDED out dx,al mov dx,22h ;8259奇地址,设置ICW2 mov al,60h ;中断类型号为60h out dx,al mov al,03h ;ICW4,自动清除中断,8086CPU out dx,al mov al,00h ;OCW1, 开放所有中断 out dx,al ;设置指示灯的初始状态 mov bl,1 mov al,bl mov dx,40h out dx,al mov dx,00h out dx,ax sti lp: jmp lp int0: mov dx,00h in ax,dx ;读转换结果 mov dx,40h out dx,al iret ;返回主程序 ret code ends end start(3)仿真实验连线图
十一、实验总结 (1)proteus中ADC0809和下图中第一个ADC0808不支持仿真。 (2)实验台中断方式不成功。仿真实验中断方式能进行成功,然而在实验台上,我们正确连好线路,将程序拷贝过来(中断向量程序装入段地址已改),实验进行失败,小灯亮的情况为设置的初始状态。
|
CopyRight 2018-2019 实验室设备网 版权所有 |