外部特性

ADC0809是8通道、片内带三态输出锁存器的A/D转换器,具有8位分辨率,转换时间100μs,内有28个引脚,如图所示:

管脚定义:

  • ADDA、ADDB、 ADDC:8选1通道地址输入端。选择转换的输入通道。比如CBA=011,则选中IN3引脚的输入电压进行A/D转换。
  • ALE:通道地址锁存选通端。输入上跳沿有效,它有效时,C、B、A的通道地址值才能进入通道地址锁存器。
  • START:启动A/D转换控制引脚。由高电平下跳为低电平时有效,可将START 与ALE连接在一起使用,安排一个CPU写端口地址,正脉冲上升沿通道地址(码)被写入通道地址锁存器,下降沿启动A/D转换。
  • EOC:ADC转换状态输出信号引脚。未启动转换时,EOC为高电平;启动转换后,EOC为低电平;一旦转换完毕,E0C变为高电平。此信号可供CPU查询或向CPU发中断。
  • D7-D0:8位数字量输出引脚。 D7为MSB,D0为LSB。
  • OE(ENABLE):数字量输出允许控制端。输入正脉冲有效,它有效时,数据输出三态门被打开,转换好的数字量各位被送到D7—D0引脚上;它无效时,D7—D0浮空(高阻隔离) 。OE端必须设置一个CPU读数据的端口地址。

内部结构

工作时序


数据输出即D7—D0,流程若是看图片看不懂可以看后面的应用举例里面的分析。

ADC0809应用

  • 用EOC引脚:查询是否为高电平进行转换数据的读取
  • 用EOC引脚:申请中断,利用中断程序读取转换数据
  • 不直接用EOC引脚:延时读取转换的数据,延时至少100us

ADC0809查询转换方法:

步骤:通道选择 → 启动A/D转换 → 读取EOC状态 → 判断转换是否完成?
→ 读取数据

ADC0809中断转换方法:

  • 通道选择
  • 主程序要对8259A初始化,设置中断向量,开中断,第1次启动A/D的工作要在主程序里做
  • 中断服务程序里要完成从ADC0809中采集数据、存数据,并启动下一次A/D转换。


注:查询和中断方式都是这个图

应用举例:

如图所示为ADC 0809芯片通过通用接口芯片8255A与CPU(8086)的接口电路,ADC 0809的输出数据通过8255A的PA口给CPU,而地址译码输入信号ADDA,ADDB和ADDC以及地址锁存信号ALE由8255A的PB口的PB3~PB0提供,A/D转换的状态信息EOC则由PC4输入,输出允许信号OE由PC0输出。

分析流程:

这个案例中0809芯片是通过8255芯片与8086CPU相连,实现与CPU之间的输入输出(一般来讲,同时与CPU合作的芯片有很多,各个芯片之间是这样的合作关系)。 0809 的第一件事是设置地址信号,然后将地址信号锁存,赋予一个开始脉冲,这时候就开始转换了。转换的时间是一个自动的过程,不可控,因此要查询EOC这个转换结束信号来确认转换是否结束,结束了再设置OE信号把转换完的数据读给CPU。

连接引脚:

  • 0809的启动START——8255的PB4
  • 0809的地址选通ALE——PB3(ALE是通道地址锁存选通端也叫地址选通)
  • EOC——PC4
  • OE——PC0

编程分析过程:

(1)因为这个过程需要8255的配合,所以准备工作需要对8255初始化:

MOV DX,86H
MOV AL,98H
OUT DX,AL

说明:
首先根据0809的工作流程的需要,可以确定与之相连的8255的各个引脚是作为输入还是输出(8255工作在方式0,那么8255初始化的控制字可以确定。其中8255的端口地址分别是80H 82H 84H 86H,每个寄存器分配了两个字节的空间):8255的A口是输入,B口是输出,C口低4位是输出,高四位是输入。即1001 1000(98H)。

(2)转化的IN3的通道工作。下一个动作就是要选通这个地址并将其锁存,这个需要CPU向B接口写数据(高四位没有使用,默认设置为0):

MOV AL,0BH     ;(ALE=1,CBA=011,向B口写数据)
OUT 82H,AL     ;B口地址为82H

(3)开启转换脉冲了,打开START信号:

MOV AL,1BH
OUT 82H,AL

(4)还要有这样一个动作,就是START是开完就关上了,脉冲信号不是一直保持高电平:

MOV AL,0BH
OUT 82H,AL

(5)检查EOC引脚,判断是否转换结束,对应8255的PC4引脚,因此要读入C口的值,并测试PC4位的值是否是1,如果是1就说明转换结束了,否则继续等待:

AGAIN: IN   AL, 84H     ;循环的程序段,如果跳出了这个循环意味着测试到PC4是1AND  AL,  10HJZ   AGAIN

(6)向OE写高电平,然后读出A口的数据:

MOV  AL, 01H
OUT  84H, AL
IN   AL, 80H

完整代码:

START:   MOV AL, 98H ;8255A控制字OUT 86H, AL ;写入8255A控制端口地址MOV    AL, 0BH ;选IN3输入端和地址锁存信号OUT   82H, AL ;选IN3通道地址写入8255A的B口地址MOV AL, 1BH ;START    PB4=1OUT  82H, AL ;启动A/D转换MOV  AL, 0BH ;OUT 82H, AL ;START ← PB4=0
AGAIN:  IN  AL, 84H ;读C口状态AND    AL, 10H ;检测EOC状态JZ   AGAIN   ;如未转换完,再测试;转换完则继续MOV   AL,01H  OUT 84H,AL  ;PC0=1,OE高电平IN  AL,80H  ;从8255A的A口地址读转换结果HLT         ;暂停

ADC0809转换器相关推荐

  1. daad转换器实验数据_实验十一DAAD转换器.doc

    实验十一DAAD转换器 实验十一 D / A.A / D转换器 一.实验目的 1.了解D / A和A / D转换器的基本工作原理和基本结构 2.掌握大规模集成D / A和A / D转换器的功能及其典型 ...

  2. 微型计算机技术段地址,微型计算机技术-中国大学mooc-题库零氪

    第1章 计算机基础知识 第1节 计算机中数值数据的表示随堂测验 1.将二进制数1010101101.1转换成十六进制数为 . A.2AD.1H B.2AC.8 C.2AC.4 D.2AD.8 2.与十 ...

  3. 8. A/D转换器【ADC0809】

    文章目录 1. A/D转换器的工作原理(逐位反馈型) 2. 主要技术指标(量化误差.转换时间.动态范围) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 ...

  4. ADC0809芯片简介

    ADC0809 A/D0809芯片特点 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器.其内部有一个8通道多路开关,可根据地址码选通其中一路输入信号进行A/ ...

  5. 用ADC0809实现八通道采集

    ADC0809完成八通道采集 1.ADC0809的概述 1.1芯片特点 1.2引脚介绍 1.3工作过程 2.使用原理图仿真 2.1实验仿真概述 2.2原理图 3.解析原理图 3.1晶振和复位模块 3. ...

  6. 单片机采集电压信号(AD转换器的应用实例)上

    单片机采集电压信号(AD转换的应用实例)上 上一篇文章我们讲了如何把一个信号的峰值采集,今天我们来讲如何把它连入单片机上,这里我们采用的是Multisim仿真. 我们都知道单片机采集的信号都是高电平和 ...

  7. 【汇编与接口】ADA转换器

    文章目录 模拟量接口 A/D转换器 A/D转换器的主要技术指标 A/D转换器的外部特性 A/D转换器与CPU接口的原理和方法 A/D转换器与CPU的连接 A/D转换器的数据传输 A/D转换器接口控制程 ...

  8. 从51开始的单片机之旅(二)----LCD1602液晶、ADC0809、DAC0832

    说在前面 上篇已经把流水灯.矩形键盘.电子时钟已经总结完了,今天来总结89E51的LCD1602液晶.ADC0809.DAC0832的相关内容 说在前面 一.基本原理介绍 二.原器件介绍 三.设计及接 ...

  9. proteus中 基于STC89C51的ADC0809模数转换仿真

    芯片介绍与分析 ***ADC0809 是采用CMOS 工艺制造的双列直插式单片8 位A/D 转换器.(分辨率) 分辨率8 位,精度7 位,带8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁 ...

最新文章

  1. java比较字符引用地址_java中的比较运算符== 与 equals()方法
  2. 网页文字对齐(CSS)
  3. Webx示例-PetStore分析1
  4. 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100手机怎么设置?
  5. Faster R-CNN WINDOWS CPU环境搭建(详细版)
  6. 前端程序员最爱用的8款代码编辑器,你用哪款?
  7. JavaScript的arguments及其子对象
  8. 【转】刨根究底字符编码之七——ANSI编码与代码页
  9. 交互设计-手机端原型尺寸规范
  10. Navicat 安装配置
  11. scum服务器里找不到车,人渣SCUM车辆机制介绍 人渣SCUM车辆为什么消失
  12. 14个SpringBoot优化小妙招
  13. excel怎么筛选出自己想要的内容
  14. 一种基于深度学习的遥感图像分类及农田识别方法
  15. 在UE4里实现四叉树查找最近点
  16. 油酸Oleic acid/氨基NH2/羧基COOH/PEG/蛋白Prote/抗体antibody/PAA/SiO2修饰的上转换纳米材料NaY(Gd/Lu/Nd)F4:Yb,Er
  17. 用于RF收发器的简单基带处理器
  18. bpm的三个标准以及如何结合使用
  19. 欧几里得定理 java,每个程序员都应该知道的基础数论
  20. 如何查看哪些进程占用了网速

热门文章

  1. notepad数据对比插件_如何使用NotePad++的compare插件进行文本对比,来研究下吧
  2. android进度条随时间走,每天一点Android干货-时间与日期、进度条
  3. 13_Android的进度条
  4. 权力与荣耀手游辅助快速升级 装备提升攻略
  5. C1.Win.C1GanttView.C1GanttView 甘特图使用经验:子任务
  6. 青云客php免费,青云客/小I智能对话机器人API免费版
  7. JQuery的可见性选择器与show、hide的关系
  8. sass入门_Sass入门
  9. 数据大屏领导驾驶舱大数据分析UI1-4(PSD-持续更新)
  10. 666666666666.com路路解密破解游戏第一部23题攻略