ADC0809实验 您所在的位置:网站首页 adc0809接口原理图 ADC0809实验

ADC0809实验

2023-11-18 06:46| 来源: 网络整理| 查看: 265

实验十 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 实验室设备网 版权所有