0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用ADC0832与单片机的电量指示电路设计

王子变青蛙_35400519 来源:王子变青蛙_35400519 作者:王子变青蛙_35400 2022-06-13 08:58 次阅读

一、前言

数字电路中,电平只有高和低两种状态,而在模拟电路中,电平理论上有无数个状态,在使用过程中就需要将两者联系起来。ADC0832是一款A/D转换芯片,是模拟电路与数字电路转换的一种渠道。本设计通过比较输入端电压的大小从而点亮不同颜色的LED灯。电压4.5~5V时为绿灯,3.5~4.5V为黄灯,低于3.5V为红灯。如果有想法,在此基础上还可以加入蜂鸣报警功能,电压低于多少时进行报警。此设计电路简单容易操作。

二、ADC0832介绍

1、基本信息

引脚功能:

引脚编号 引脚功能 描述
1 CS- 低电平芯片使能端
2 CH0 模拟信号输入通道0
3 CH1 模拟信号输入通道1
4 GND 低电平(地)
5 D1 数据信号输入,选择通道控制
6 D0 数据信号输入,转换数据输出
7 CLK 时钟输入
8 VCC 高电平

特点:

(1)8位分辨率;

(2)双通道A/D转换;

(3)供电电压在0~5之间;

(4)低功耗;

(5)工作频率为250KHZ,转换时间为32微妙;

2、使用

在正常使用情况下ADC0832与单片机接口为4条数据线,分别为CS-、CLK、D0、D1。但D0D1在使用时并未同时有效并与单片机端口,所以在电路连接时可连于同一引脚。

当ADC0832为工作时端口CS为高电平,此时芯片处于禁用状态,CLK、D0和D1电平任意。

当ADC0832工作时需先将CS端口置于低电平,并且维持低电平直至转换结束。开始转换工作时,单片机向时钟输入端CLK输入脉冲信号,此时使用D1的输入通道选择功能。在第一个脉冲下降之前D1必须为高电平,用来表示启动信号。在第2、3个脉冲下降之前DI端应输入2位数据用于选择通道功能,到第3 个脉冲的下降之后DI端的输入电平就失去输入作用﹐此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DО端输出转换数据最高位 DATA7,随后每一个脉冲下降DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

三、硬件连接

poYBAGKlx8CAJjRGAAAUSR4Fq6o586.png

CS连接P20;CLK连接P21;DI、DO连接P22;CH0、CH1为信号输入端。

四、软件代码

pYYBAGKlx9mAeQe7AACnaJ3XjoU227.png

main主函数

启动定时器,根据比较后的值判断需要点亮的LED灯。

void main(void)
{
	uchar AD1;
	uint vt1;   
	uint while_times = 0;
	
	delayms(300);
	ET0  = 1;
    TR0  = 1;
    ET1  = 1;
    TR1  = 1;
    EA   = 1;     //打开总中断
    CLK = 0;      //ADC0832初始化
    CS   = 1;   
	while(1)
	{			
	   AD1 = Get_AD_Result1();
	   vt1=	(500.0/256.0)*AD1;
	   if(vt1>=450)
	   {
	   led1=0;led2=1;led3=1;
	   }
	   else	if(vt1>=350&&vt1<450)
	   {
	   led1=1;led2=0;led3=1;
	   }
	   else	if(vt1<350)
	   {
	   led1=1;led2=1;led3=0;
	   }
	}
}

获取AD转换结果(0通道)

uchar Get_AD_Result1()         //包含11个CLK下降沿      
{
    uchar i, dat;
    CS = 1;              //ADC0832未工作时,CS端为高电平,此时芯片禁用
    CLK =1;                  
    CS = 0;
    DIDO = 1; CLK = 0;  CLK = 1; //SCLK第一个下降沿来到时,DI = 1启动ADC0832
    DIDO = 1; CLK = 0;  CLK = 1;  //SCLK第二个下降沿 
    DIDO = 0; CLK = 0;  CLK = 1; //SCLK第三个下降沿,发送1,0选择通道cho
    DIDO = 1;                                //释放总线
    for(i = 0; i < 8; i++)                  //第4个下降沿到第11个下降沿
    {
        CLK = 0;           //clk处于下降沿,每一个下降沿DO端输入下一个
        if(DIDO) dat |= 0x01;   
        // dat = dat | 0x01,dat和0x01做“或”的运算,意思是最低位置1,其它位保持不变。
        CLK = 1;                       //clk处于上升沿
        dat <<= 1;                          //数据左移
    }
    return (dat);
    CS = 1;                                  //ADC0832停止工作
}

五、效果展示

poYBAGKlx-WAXzIHAAClMdFrG9s965.pngpYYBAGKlx-2AHDF7AACn95T2iHI753.pngpoYBAGKlx_mAdKELAACneLUmn8s841.png

六、代码链接

关注公众号“小小创客者”回复“ADC0832电量指示电路”获得代码,如有错误欢迎指正。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620804
  • 指示电路
    +关注

    关注

    0

    文章

    32

    浏览量

    17168
  • adc0832
    +关注

    关注

    3

    文章

    82

    浏览量

    28027
收藏 人收藏

    评论

    相关推荐

    基于51单片机ADC0832数字电压表(仿真+程序)

    基于51单片机ADC0832数字电压表(仿真+程序)
    发表于 06-16 08:50

    求助 ADC0832电压采集

    (1)、利用89C51设计一单片机系统;(2)、设计一A/D转换电路,A/D器件使用ADC0832;(3)、将A/D转换的数值量通过串行口传送给PC显示(虚拟终端);(4)、将A/D
    发表于 07-14 15:21

    ADC0832不工作,电路焊好的,程序没问题

    程序在proteus仿真中可以实现,电路两排插针与ADC0832底座焊在一起,用杜邦线与51单片机相连,用电压表测量底座电压与排针的电压一致,换了两个ADC0832,液晶屏还是没反应。
    发表于 10-26 23:27

    单片机实践项目》之基于51单片机+ADC0832的数字电压表的设计(两种ADC0832电路仿真图绘制) 精选资料分享

    ”,“课程设计”,“实物制作”,“单片机”,“学习”,“教学视频”,“C语言”,“汇编语言”《单片机实践项目》之基于51单片机+ADC0832的数字电压表的设计(两种
    发表于 07-21 06:51

    ADC0832功能特点与引脚说明介绍

    文章目录一、ADC0832介绍1、功能特点2、引脚说明3、ADC0832单片机接口4、工作时序二、例程一、ADC0832介绍ADC0832
    发表于 01-25 06:27

    求助51单片机adc0832

    烟雾报警模块的adc0832怎么接到51单片机上,单片机只剩下p1.6,p1.7和p2.0-2.4口
    发表于 04-15 10:43

    adc0832引脚图及程序

    adc0832引脚图:ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好
    发表于 04-01 09:17 4w次阅读
    <b class='flag-5'>adc0832</b>引脚图及程序

    ADC0832的相关资料

    adc0832的相关资料adc0832的相关资料adc0832的相关资料adc0832的相关资料
    发表于 11-25 10:18 142次下载

    adc0832简单应用c程序

    ADC0832由于体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832可使我们了解A/D转换器的原理,有助于我们单片机技术水平的提
    发表于 12-19 10:41 6307次阅读

    adc0832是什么_adc0832adc0809区别

    本文首先阐述了adc0832的概念,其次阐述了adc0832的特点,最后介绍了adc0832adc0809区别。
    发表于 04-26 08:42 3.4w次阅读

    adc0832在ad中怎么画_51单片机adc0832汇编程序

    单片机学习中AD是必须要了解的,所谓的AD就是把模拟信号转换为数字信号,本文为大家介绍的是如何在proteus中绘制ADC0832
    发表于 04-26 08:56 5746次阅读

    单片机实践项目》之基于51单片机+ADC0832的数字电压表的设计(两种ADC0832电路仿真图绘制)

    ”,“课程设计”,“实物制作”,“单片机”,“学习”,“教学视频”,“C语言”,“汇编语言”《单片机实践项目》之基于51单片机+ADC0832的数字电压表的设计(两种
    发表于 11-23 16:20 87次下载
    《<b class='flag-5'>单片机</b>实践项目》之基于51<b class='flag-5'>单片机</b>+<b class='flag-5'>ADC0832</b>的数字电压表的设计(两种<b class='flag-5'>ADC0832</b><b class='flag-5'>电路</b>仿真图绘制)

    单片机基础】ADC0832详解

    文章目录一、ADC0832介绍1、功能特点2、引脚说明3、ADC0832单片机接口4、工作时序二、例程一、ADC0832介绍ADC0832
    发表于 11-30 20:36 123次下载
    【<b class='flag-5'>单片机</b>基础】<b class='flag-5'>ADC0832</b>详解

    基于51单片机的数字电压表(ADC0832)

    方案介绍基于51单片机的数字电压表(ADC0832)本设计由51单片机最小系统+ADC0832模块+两路模拟量输入模块+液晶1602显示模块1、主控制器是AT89C82
    发表于 12-30 17:11 12次下载

    基于单片机ADC0832两路模数转换仿真程序

    基于单片机ADC0832两路模数转换仿真设计资料
    发表于 05-22 15:22 3次下载