include <reg51.h>

sbit cs =p1^3; sbit wr =p1^2; sbit rd =P1^1; int seg []=(0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90); unsigned char dat ; void adc0804(); void display (); void delay ( int i ) while ( i --);

void main () while (1) adc0804(); display ();

void adc0804()

cs =0; wr =0; cs =1; wr = l ; delay (500); cs =0; rd =0; dat =P3; cs = l ; rd =1;void display (){ unsigned int vol ; vol = dat *500.0/255;p2=0xfb; P0= seg [ vol /100]&0x7f; delay (200); p2=0xfd; P0= seg [ vol %100/10]; delay (200); P2=0xfe; P0= seg [ vol %10]; delay (200);

**中文回答:**可以使用四舍五入的方法来让最后一位数字显示四舍五入。具体的解决方案是将vol加上0.5,然后再取整数部分作为最后一位数字的值。

**需要修改的部分:**将display函数中的vol计算方式修改为以下代码:

unsigned int vol ; 
vol = (dat *500.0/255) + 0.5;
p2=0xfb;
P0= seg [ vol /100]&0x7f; 
delay (200);
p2=0xfd;
P0= seg [ vol %100/10]; 
delay (200);
P2=0xfe;
P0= seg [ vol %10]; 
delay (200);
51单片机ADC0804电压测量并四舍五入显示

原文地址: https://www.cveoy.top/t/topic/ofHQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录