ADC0809转换器
外部特性
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转换器相关推荐
- daad转换器实验数据_实验十一DAAD转换器.doc
实验十一DAAD转换器 实验十一 D / A.A / D转换器 一.实验目的 1.了解D / A和A / D转换器的基本工作原理和基本结构 2.掌握大规模集成D / A和A / D转换器的功能及其典型 ...
- 微型计算机技术段地址,微型计算机技术-中国大学mooc-题库零氪
第1章 计算机基础知识 第1节 计算机中数值数据的表示随堂测验 1.将二进制数1010101101.1转换成十六进制数为 . A.2AD.1H B.2AC.8 C.2AC.4 D.2AD.8 2.与十 ...
- 8. A/D转换器【ADC0809】
文章目录 1. A/D转换器的工作原理(逐位反馈型) 2. 主要技术指标(量化误差.转换时间.动态范围) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 ...
- ADC0809芯片简介
ADC0809 A/D0809芯片特点 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器.其内部有一个8通道多路开关,可根据地址码选通其中一路输入信号进行A/ ...
- 用ADC0809实现八通道采集
ADC0809完成八通道采集 1.ADC0809的概述 1.1芯片特点 1.2引脚介绍 1.3工作过程 2.使用原理图仿真 2.1实验仿真概述 2.2原理图 3.解析原理图 3.1晶振和复位模块 3. ...
- 单片机采集电压信号(AD转换器的应用实例)上
单片机采集电压信号(AD转换的应用实例)上 上一篇文章我们讲了如何把一个信号的峰值采集,今天我们来讲如何把它连入单片机上,这里我们采用的是Multisim仿真. 我们都知道单片机采集的信号都是高电平和 ...
- 【汇编与接口】ADA转换器
文章目录 模拟量接口 A/D转换器 A/D转换器的主要技术指标 A/D转换器的外部特性 A/D转换器与CPU接口的原理和方法 A/D转换器与CPU的连接 A/D转换器的数据传输 A/D转换器接口控制程 ...
- 从51开始的单片机之旅(二)----LCD1602液晶、ADC0809、DAC0832
说在前面 上篇已经把流水灯.矩形键盘.电子时钟已经总结完了,今天来总结89E51的LCD1602液晶.ADC0809.DAC0832的相关内容 说在前面 一.基本原理介绍 二.原器件介绍 三.设计及接 ...
- proteus中 基于STC89C51的ADC0809模数转换仿真
芯片介绍与分析 ***ADC0809 是采用CMOS 工艺制造的双列直插式单片8 位A/D 转换器.(分辨率) 分辨率8 位,精度7 位,带8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁 ...
最新文章
- java比较字符引用地址_java中的比较运算符== 与 equals()方法
- 网页文字对齐(CSS)
- Webx示例-PetStore分析1
- 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100手机怎么设置?
- Faster R-CNN WINDOWS CPU环境搭建(详细版)
- 前端程序员最爱用的8款代码编辑器,你用哪款?
- JavaScript的arguments及其子对象
- 【转】刨根究底字符编码之七——ANSI编码与代码页
- 交互设计-手机端原型尺寸规范
- Navicat 安装配置
- scum服务器里找不到车,人渣SCUM车辆机制介绍 人渣SCUM车辆为什么消失
- 14个SpringBoot优化小妙招
- excel怎么筛选出自己想要的内容
- 一种基于深度学习的遥感图像分类及农田识别方法
- 在UE4里实现四叉树查找最近点
- 油酸Oleic acid/氨基NH2/羧基COOH/PEG/蛋白Prote/抗体antibody/PAA/SiO2修饰的上转换纳米材料NaY(Gd/Lu/Nd)F4:Yb,Er
- 用于RF收发器的简单基带处理器
- bpm的三个标准以及如何结合使用
- 欧几里得定理 java,每个程序员都应该知道的基础数论
- 如何查看哪些进程占用了网速
热门文章
- notepad数据对比插件_如何使用NotePad++的compare插件进行文本对比,来研究下吧
- android进度条随时间走,每天一点Android干货-时间与日期、进度条
- 13_Android的进度条
- 权力与荣耀手游辅助快速升级 装备提升攻略
- C1.Win.C1GanttView.C1GanttView 甘特图使用经验:子任务
- 青云客php免费,青云客/小I智能对话机器人API免费版
- JQuery的可见性选择器与show、hide的关系
- sass入门_Sass入门
- 数据大屏领导驾驶舱大数据分析UI1-4(PSD-持续更新)
- 666666666666.com路路解密破解游戏第一部23题攻略