找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8852|回复: 9
打印 上一主题 下一主题
收起左侧

单片机AD转换出来的数值,到底怎么显示在数码管上?

  [复制链接]
跳转到指定楼层
楼主
ID:488382 发表于 2019-3-12 19:14 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于AD转换我还是不懂啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2019-3-13 09:47 | 只看该作者
以8位AD转换为例,AD转换得到的数值是0x00~0xff,也就是0~255。其对应的电压值是0~VCC,需要换算:
输入电压=转换结果*VCC/256。例如用2位数码管显示测量电压,假设转换结果是0xA6,
data=(0xA6*5/256*100+5)/10,放大100倍+5是小数四舍五入,得到整数结果data=32,显示时在十位数加小数点即可显示成3.2 。

评分

参与人数 1黑币 +16 收起 理由
angmall + 16 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:472268 发表于 2019-3-13 10:52 | 只看该作者
wulin 发表于 2019-3-13 09:47
以8位AD转换为例,AD转换得到的数值是0x00~0xff,也就是0~255。其对应的电压值是0~VCC,需要换算:
输入电 ...

很好,写的很详细!解疑释惑就要这样!very good!

评分

参与人数 1黑币 +10 收起 理由
shuisheng60 + 10 很给力!

查看全部评分

回复

使用道具 举报

地板
ID:488382 发表于 2019-4-30 20:00 来自手机 | 只看该作者
wulin 发表于 2019-3-13 09:47
以8位AD转换为例,AD转换得到的数值是0x00~0xff,也就是0~255。其对应的电压值是0~VCC,需要换算:
输入电 ...

老哥,我我用ADC0832如果要做一个0-10V的电压表,是不是把你写的vcc改成10就可以了?
回复

使用道具 举报

5#
ID:56809 发表于 2019-9-4 20:23 | 只看该作者
wulin 发表于 2019-3-13 09:47
以8位AD转换为例,AD转换得到的数值是0x00~0xff,也就是0~255。其对应的电压值是0~VCC,需要换算:
输入电 ...

方法讲解的很详细,使人很快就懂了。暂时不知道怎么评分。
回复

使用道具 举报

6#
ID:743654 发表于 2020-12-29 11:08 | 只看该作者
一楼讲解通俗易懂,转换懂了,显示就是工具的事了,数码管,LCD,TFT,OLED都可以显示
回复

使用道具 举报

7#
ID:771095 发表于 2020-12-29 12:29 | 只看该作者
数码管的编码也要知道啊
回复

使用道具 举报

8#
ID:280000 发表于 2020-12-29 14:51 | 只看该作者
采集的数据值转变成 百位  十位 个位 然后依次显示在数码管就行
回复

使用道具 举报

9#
ID:387856 发表于 2020-12-30 17:44 | 只看该作者
教教我单片机把 发表于 2019-4-30 20:00
老哥,我我用ADC0832如果要做一个0-10V的电压表,是不是把你写的vcc改成10就可以了?

单片机和AD类的IC只能检测5V以下的电压。你要检测10V,就得把10V缩小到5V以内。转换完了在等比放大就行了。
回复

使用道具 举报

10#
ID:517951 发表于 2020-12-30 19:45 | 只看该作者
void display_temp(unsigned char add, unsigned short dat)//ÏòLCDD′ζèêy¾Y,2¢Ö¸¶¨ÏÔê¾Î»ÖÃ
{        unsigned char gw,sw,xw,a,sign;
        if(dat&0xf800)
        {  sign=1;
           dat=~dat;
                 dat+=1;
        }       
        else sign=0;
       
        a=dat&0x0f;
        xw=ditab[a];
        dat>>=4;
        gw=dat%10;//è¡μøöλêy×Ö
        sw=(dat/10)%10;//è¡μÃê®Î»êy×Ö
  write_1602com(add);       
        if(sw)        write_1602dat(0x30+sw);//10μÃμ½¸Ãêy×ÖμÄLCD1602ÏÔê¾Âë
        else write_1602dat(' ');
        if(sign)
        {        write_1602com(add);               
                write_1602dat('-');
        }
        if(sw&&sign)
        { write_1602com(add-1);               
                write_1602dat('-');
                write_1602dat(0x30+sw);
        }
        write_1602dat(0x30+gw);//μÃμ½¸Ãêy×ÖμÄLCD1602ÏÔê¾Âë
  write_1602dat('.'); //
        write_1602dat(0x30+xw); //xiaoshuwei
  write_1602dat(0xdf);//ÏÔê¾Î¶èμÄD¡Ô2è|·ûoÅ£¬0xdfêÇòo¾§Æá×Ö·û¿aμĸ÷ûoÅμØÖ·Âë
  write_1602dat('C');        //ÏÔê¾"C"·ûoÅ£¬0x43êÇòo¾§Æá×Ö·û¿aàï′óD′CμÄμØÖ·Âë               
}

以上18b20的代码在LCD1602上显示数值可以供参考,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表