单片机 ADC0804 读取电压并显示,实现四舍五入功能
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);
怎么让最后一位数字,显示四舍五入?
可以使用四舍五入函数来解决。例如,使用round()函数对取得的数据进行四舍五入,然后再进行显示。具体实现可以在display()函数中添加代码:
vol = round(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);
这样就可以实现最后一位数字的四舍五入显示了。
原文地址: https://www.cveoy.top/t/topic/ofHL 著作权归作者所有。请勿转载和采集!