这几天模仿着写了个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);
}
}
图示:
当1602显示为4.93V,而电压表显示为5v.
此帖出自
小平头技术问答
displaybyte(1,8,(196*i)/100%10+0x30); 5/255=0.0196=196/10000 ,这个东西我明白了。 但是,为什么+0x30. 0x30是’0‘。 这个知道。可是为什么加它呢?
另: 数据值,1602与电压表显示的不符。这个也是困惑中。。。。。
[ 本帖最后由 yanse51 于 2011-10-23 16:00 编辑 ]一周热门 更多>