自写个数码显示程序,不知错哪里了,请哪位帮忙指点下. #include<reg52.h> #define uint unsigned int #define uchar unsigned char void delay(uint delaytime)/*延时*/ { uint a,b; for(; delaytime>0;delaytime--) { for(a=0;a<4;a++) { for(b=0;b<255;b++) {;} } } } void main() { uint a,b,c,d,m,n; float w=576.8; uint bittab[8]={0xfe,0xfd,0xfB,0xf7,0xef,0xdf,0xbf,0x7f};/*对应第1-7位数码管*/ uint tab[10]={0XC0,0xF9,0XA4,0XB0,0X99,0X92,0X82,0XD8,0X80,0X90};/*对应0-9数字*/ a=w*10/1000;/*a=5*/ m=tab[a];/*为了调试时看是不是等于0X92,即数字5,结果是正确的。*/ b=w*10/100-a*10;/*b=7*/ n=tab;/*为了调试时看是不是等于0XD8,即数字7,结果是正确的。*/ c=w*10/10-a*100-b*10;/*c=6*/ d=w*10-a*1000-b*100-c*10;/*d=8*/ while(1) { P2=bittab[0]; P0=tab[a]; delay(10); P2=bittab[1]; P0=tab; delay(10); P2=bittab[2]; P0=tab[c]&0x7f;/*为把小数点也点亮特跟01111111(即0X7F)按位与*/ delay(10); P2=bittab[3]; P0=tab[d]; delay(10); } } 5 8. 8 在实验板上实验时却显示 0X92 0X00 (空的) 0X80 另,我用求余运算符'%'后,在编译时报错,是怎么回事? |