设置做大显示为55.00,当测得电压为55V时,AD取样端口为5V,对应的是4096。
我主要想问什么样把4096转换成55.00然后在4位8段共阳数码管显示。
用的就是8位单片机!-_-!⊙﹏⊙b汗
这样啊,看来我搞错了,我的理解8位以上(不含8位)的AD是应用于高精度计算机内部计算控制用的。如果需要显示的话,8位机处理12位的,这里给你个简单的方法,将4096缩小16倍,变为8位来处理,即FFF/10=FF(8位的满量程),我有个8位AD4位显示程序,因为字数限制的问题,只把计算和显示转换部分附上。你如果会8位数据显示的话,下面就无所谓了
void chuli(uint num) //显示程序,num为AD子程序中的返回的AD值为0.00-55.00
{ qian=num/1000; //千,百,十,个处理
bai=num/100%10;
shi=num/10%10;
ge=num%10;
}
switch(j)
{//扫描显示部分
case 0: P0 = tb[ge]; break;
case 1: P0 = tb[shi]; break;
case 2: P0 = tb[bai]&0x7f; break;//&0x7f为在该位插入小数点
case 3: P0 = tb[qian]; break;
}
data_ad = data_ad * (500/ 256) *11; //这是AD处理中的一条语句,*11之前为5.00显示,*11在显示上调整为你对应的55V满量程的显示,附上EDA仿真,要源程序的话,给个信箱。仿真显示56.10是因为16进制定点运算的原因。这里只是示意说明,要提高显示精度,须要更好的算法。