很多人在使用ADC0832的时候不知怎么实现双通道AD转换,下面我将简单介绍一下,附有程序和仿真电路图。

ADC0832使用介绍:

ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。

ADC0832 具有以下特点:
· 8位分辨率;
· 双通道A/D转换;
· 输入输出电平与TTL/CMOS相兼容;
· 5V电源供电时输入电压在0~5V之间;
· 工作频率为250KHZ,转换时间为32μS;
· 一般功耗仅为15mW;
· 8P、14P—DIP(双列直插)、PICC 多种封装;
· 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为−40°C to +85°C;

芯片接口说明:
· CS_ 片选使能,低电平芯片使能。
· CH0 模拟输入通道0,或作为IN+/-使用。
· CH1 模拟输入通道1,或作为IN+/-使用。
· GND 芯片参考0 电位(地)。
· DI 数据信号输入,选择通道控制。
· DO 数据信号输出,转换数据输出。
· CLK 芯片时钟输入。
· Vcc/REF 电源输入及参考电压输入(复用)。

ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。

单片机对ADC0832 的控制原理:
正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能,其功能项见官方资料。

如资料 所示,当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行
输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

程序:

#include
sbit ADC_CLK=P0^0;
sbit ADC_DI =P0^1;
sbit ADC_DO =P0^2;
sbit ADC_CS =P0^3;

/*******************************************************************/
void Delay(unsigned char x)

{
unsigned char i;
for(i=0;i

}

unsigned char ReadADC(void) //把模拟电压值转换成8位二进制数并返回

{
unsigned char i,ch;

ADC_CS=0; //片选,DO为高阻态
ADC_DO=0;
Delay(2);

ADC_CLK=0;
Delay(2);
ADC_DI=1;
ADC_CLK=1;//第一个脉冲,起始位
Delay(2);

ADC_CLK=0;
Delay(2);
ADC_DI=1;
ADC_CLK=1;//第二个脉冲,DI=1表示双通道单极性输入
Delay(2);

ADC_CLK=0;
Delay(2);
ADC_DI=0; //第三个脉冲,DI=1表示选择通道1(CH2),DI=0时选择通0(CH1)
ADC_CLK=1;
Delay(2);

ADC_DI=0; //DI转为高阻态,失去输入意义;
ADC_DO=1; //DO脱离高阻态为输出数据作准备

ADC_CLK=1;
Delay(2);
ADC_CLK=0; //第一个下降沿,为去数准备;
Delay(2); //这里加一个脉冲AD才能正确读出数据,不加的话读出的数据少一位,且是错的。

for (i=0; i<8; i++) //读取数据
    {
    ADC_CLK=1;
    Delay(2);
    ADC_CLK=0;
    Delay(2);
    ch=(ch<<1)|ADC_DO;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数
   }
  
     ADC_CS=1;//取消片选,一个转换周期结束
   return(ch);//把转换结果返回
}
main()
{
while(1)
{
   P3=ReadADC();//观察P3仿真结果变化
}
}

ADC0832双通道实现AD电压转换相关推荐

  1. 案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/120345072 红胖子(红模仿)的博文大全:开发技术集 ...

  2. 单片机 -AD电压检测调试遇到的坑,请避让!

    简单的驱动模块,却遭遇一波三折,实现功能简单,但做到稳定却不一回事: 一.电路设计问题 1.AD电路中,设计滤波电路,采用的电容值过大(104),本身AD电路对电压十分敏感,电容有缓慢充电的特性,而A ...

  3. AD/DA转换(XPT2046)

    AD/DA介绍 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转 ...

  4. 3.3.13 电流-电压转换电路

    3.3.13 电流-电压转换电路 电流-电压(I-V)转换电路将微弱的输入电流转换为与之成比例.容易测量的电压输出,I-V电路在光电二极管.光电池.光电倍增管等传感器前置放大单元中比较常见. I-V转 ...

  5. 案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110941614 长期持续带来更多项目与技术分 ...

  6. [网友问答1]STM32驱动PCF8591模块,实现AD/DA转换

    欢迎关注 程序员小哈带你玩转嵌入式,微信搜索:嵌入式从0到1,更多干货等着你. 想进小哈技术交流群,请加程序员小哈个人微信,带你嵌入式入门进阶. 问题原由 粉丝提问,STM32如何驱动PCF8591? ...

  7. PCF8591芯片的AD/DA转换(适用于蓝桥杯单片机)

    目录 1.PCF8591的引脚介绍 2.用IIC发送或接收字节 发送的第一个字节 发送的第二个字节 发送第三个字节 3.发送和接收的字节转换 4.全部代码 IIC部分 接收电压数据 发送电压数据 1. ...

  8. 使用LDO进行电压转换,24V转5V电路为什么中间要加一个中间电压做转化

    问题:我的输入是24v,输出是5V,有两个方案, 方案一:使用LM7805直接从24V转5V 假如后面的负载电流是100ma 那么LM7805上的发热功率就是W=19*0.1w=1.9w 方案二:先使 ...

  9. K型热电偶(k-type)温度与电压转换计算笔记

    一.热电偶简介 热电偶是一种简单的温度测量装置,由两种不同金属组成 热电偶类别 代号 分度号 测量范围 电压范围 基本误差限 镍铬-镍硅 WRN K -200-1370℃ -6.5mV~55mV ±0 ...

最新文章

  1. 运用层通过shell脚本直接操控gpio
  2. sql移动加权计算利润_一文搞懂股票指数的4种加权方式
  3. JZOJ 5701. 【gdoi2018 day2】第一题 谈笑风生(magic)
  4. java测试用例编写_TestNG测试用例编写和执行
  5. 【Python】字符串(String)
  6. Using dispatch_async
  7. 计算机专业英语常用词汇
  8. Java 使用阿里巴巴 Dns Cache Manipulator
  9. bash不能运行c语言,解决:无法加载文件 C:\\Program Files\\.. 因为在此系统上禁止运行脚本。...
  10. 计算机课又叫什么课,计算机课学电脑的书叫什么?
  11. 百度编辑器上传图片配置php,谁配置过百度编辑器ueditor1.4.3的图片上传路径?
  12. 上周热点回顾(4.30-5.6)
  13. Navicat连接Mysql教程
  14. 旋转式光电编码器的设计动向
  15. PowerShell,AnkhSVN和Subversion
  16. python人民币和美元转换-【菜鸟学Python】案例一:汇率换算
  17. span标签置灰_ant-desgin-vue——tree自定义不可选用的置灰或禁用
  18. 生产计划排产软件三大操作流程
  19. 数据预处理利器 Amazon Glue DataBrew
  20. 定风波·三月七日沙湖道中遇雨

热门文章

  1. AD633低成本模拟乘法器
  2. 全国大学生智能汽车竞赛证书打印方法
  3. 为什么我们不愿意读论文,原来都是作者害的
  4. 关于第十五届全国大学生智能车竞赛 STC 单片机
  5. 基于Manim针对FT教学过程的一种可行性设计
  6. ai的弹窗点了都不响应_【评价集合】拼多多评价,你所不知道的点都在这里!...
  7. 用dblink能修改_【学习笔记】通过修改基表(link$)让非public dblink变为public
  8. 图书借阅系统java_基于JAVAWEB的图书借阅系统
  9. 流 java_java8——使用流
  10. 安装itunes需要管理员身份_Windows 10 在microsoft store 微软商店里安装的itunes如何更改备份位置...