IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于51单片机——AD转换电路设计(采用AD0809芯片) -> 正文阅读

[嵌入式]基于51单片机——AD转换电路设计(采用AD0809芯片)

?一、设计要求

采用AD0809对输入的模拟量进行转化,转化完成后将数字量通过LED进行二进制显示。电路图如下。

二、AD0809芯片介绍

AD0809是8位并行A/D转换芯片。该芯片应用时,IN0~IN7共八路模拟输入引脚,通过地址A、B、C选择其中一路将模拟信号送入芯片中,当转换结束后,数字量从D7~D0以8位二进制形式输出,同时E0C引脚输出高电平,表示转换结束。如图为AD0809内部逻辑结构。

?由上图可以看到,AD0809由一个8路模拟量开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁存器用于锁存A/D转换完的数字量,当OE为高电平时,才可以从三态输出锁存器取走转换完的数据。

AD0809对输入模拟量要求:信号单极性,电压范围0~5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,若模拟量变化太快,则需要在输入前添加一个采样保持电路。

ALE1为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经过译码后被选中的通道的模拟量进转换器进行转换。A,B,C为地址输入线,用于选通IN0~IN7上的一路模拟量输入。

ST为转换启动信号。当ST为上升沿时,所有内部寄存器清零。当ST为下降沿时,开始A/D转换。在转换期间,ST保持为低电平。

EOC为转换结束信号。当EOC为高电平时,标明转换结束;否则,表示正在进行A/D转换。

OE为输入允许信号,用于控制三条输出锁存器想单片机输出转换得到的数据。OE = 1时,输出转换得到的信号;OE = 0时,输出数据线呈高阻态状态。D7~D0为数字量输出线。

clk时钟输入信号线。AD0809内部没有时钟电路,所需时钟信号必须由外部提供。

VREF(+),VREF(-)为参考电压输入。

三、AD08009应用说明

1.AD0809内部带有输出锁存器,可以直接和单片机相连。

2.初始化时,将ST和OE置为低电平。

3.将要转换的通道信息传给A,B,C端口。注意,C为高位,A为低位。

4.在ST端给出一个至少有100ns宽的正脉冲。

5.根据EOC的信号状态判断是否转换完毕。若EOC = 1,表示转换完毕。

6.当EOC为高电平,这时给OE一个高电平,转换数据输出给单片机。

四、输出数字量计算

N = (Ui *255)/5,Ui为输入模拟量。

五、程序

#include <reg52.h>

#define uchar unsigned char

sbit clk = P1^3;
sbit start = P1^2;  //start和ALE都连接在P1.2
sbit EOC = P1^1;
sbit OE = P1^0;
sbit a = P1^4;
sbit b = P1^5;
sbit c = P1^6;

void delay(unsigned char xms)		
{
	unsigned char i, j;
    while(xms)
    {
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } 
        while (--i);
        xms--;
    }
	
}


void ADC_init()
{
    P2 = 0xff;
    //产生clock信号
    EA = 1;    
    TMOD = 0x02;    //定时器0,方式2,8位自动重装载
    ET0 = 1;        //允许定时器0中断
    TR0 = 1;
    TH0 = 216;
    TL0 = 216;
    start = 0;
    OE = 0;
    a = 1;      //通道3
    b = 1;
    c = 0;
}

void ad_3()
{
    OE = 0;
    EOC = 1;
    start = 0;
    a = 1;      //通道3
    b = 1;
    c = 0;
    delay(10);
    start = 1;  //上升沿
    delay(10);
    start = 0;  //下降沿
    while(!EOC);//等待转换完成
    delay(10);
    OE = 1;
    delay(5);
    P0 = P2;
    OE = 0;
    
}

void main()
{
    ADC_init();
    while(1)
    {
        ad_3();
    }
}


void t0(void) interrupt 1
{
    TH0 = 216;
    TL0 = 216;
    clk = ~clk;
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:21:45  更:2021-12-26 22:23:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:43:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码