wulin 发表于 2019-8-29 21:34 谢谢你的指导,结果出来了 |
csmyldl 发表于 2019-8-29 18:46 非常感谢 我弄出来了 |
本帖最后由 wulin 于 2019-8-30 04:30 编辑 #define VCC_V 5 //宏定义电源电压5V unsigned int ADC_RESX; //10位ADC转换结果 unsigned int ADC_V; //ADC mV unsigned char data dis_buf[4]; //显示缓存 ADC_RESX=512; //模拟ADC转换结果512 ADC_V=(VCC_V*(long)ADC_RESX*10000/1024+5)/10; //强制转换数据类型(32位)运算,得到(4舍5入)mV dis_buf[0] = ADC_V/1000%10;//千 dis_buf[1] = ADC_V/100%10; //百 dis_buf[2] = ADC_V/10%10; //十 dis_buf[3] = ADC_V%10; //个 |
ADC_Read()函数所得到的值需放在一个变量中,主程序的ADC_Read();应改为 AD_zhi=ADC_Read();然后对AD_zhi处理. 程序中虽然用到全程变量temp可传递转换值,这样不显示的原因主要是扫描显示程序不正确,m++未判断加的上限,可以把m++改成n++;m=n%2;后面加一定的延时,使之显示能看得到,另外段码输出和位码输出均直接IO口有些不妥 |