ADC0832在1602中,该咋显示电压值咧?

2019-03-24 19:42发布

这几天模仿着写了个ADC0832模数转换与显示的例子。仿真时发现,显示部分(1602)出了问题。(关于电压显示的部分)。
程序部分:void main(void)
{
uchar i=0;
uint A=0;
      initlcd();
     while(1)
   {
        displaytext(0,0,w1);
       i=readADC();
   A=i;
   displaybyte(1,5,(196*i)/10000+0x30);  //应该是这部分的算法出了问题。但是俺不知道该怎么改。因为这个部分是模仿的,一直未看懂. 敬请高手大力赐教!!!
   displaybyte(1,6,',');
   displaybyte(1,7,(196*i)/1000%10+0x30);
   displaybyte(1,8,(196*i)/100%10+0x30);
   displaybyte(1,9,'V');
   delayms(10);
   }
}

图示: ADC0832.jpg 当1602显示为4.93V,而电压表显示为5v.
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
anqi90
2019-03-25 07:39
加0x30是因为1602显示的不是“数字”,就是说要他显示1、2、3时给它的数据不是数字1、2、3,而是相应数字的ASCII码,即0x31、0x32、0x33,0x30是数字0的ASCII码,其他数字就是在0的基础上加出来的
你去看一下ASCII码表就明白了

另外有条件的话最好是把电路是机搭出来,不要太依赖仿真软件,我就遇到过仿真不行但是实际可以工作的情况

[ 本帖最后由 anqi90 于 2011-10-23 16:17 编辑 ]

一周热门 更多>