同理,编写一个乘法器程序,先将8位ADC值乘以常数166d(二进制数10100110b),得到一个16位的乘积,然后取这个乘积的高8位作为结果输出就可以了。这个结果中,0~99对应0~3V,大于99的那部分数就是超压的数值
列:(255*100)>>8;
详见程序:
ADC_CONTR |=IO3; //启动AD
//while(ADC_CONTR&IO4); //等待转换结束
delay(2);
ADC_CONTR &=~IO4; //清AD转换标志位
a3=ADC_RES;
a3=a3*100;
a3=a3>>8;
for(a2=0;a2<50;a2++)
{
display(la[a3/10],la[a3%10],0x4f,0x66);
delay(5);
}
}