void change(unsigned long temp) { uchar i; signed long x ; uint y; x=temp; //y=temp; //y=10*0.35*(x); //y=10*log(x); //为什么此处加入LOG对数,LCD上就不能正常显示?去掉则正常。 y=10*(x); for(i=1;i<5;i++) { if(y!=0) { serial_buff[5-i]=y%10; y/=10; } else { serial_buff[5-i]=0; } } if(serial_buff[1]==0) { serial_buff[1]=12; //空格 if(serial_buff[2]==0) { serial_buff[2]=12; //空格 } } } void display_Pi() { //unsigned int Pi; float pow; //int value; unsigned char i; //Pi=read7896(); //pow=Pi*AD_Loop_PickVol_PER;//AD采集数值 pow=VariablePi*AD_Loop_PickVol_PER;//AD采集数值 //pow=VariableVl*AD_Loop_PickVol_PER;//AD采集数值 // value = pow * 100 + (value > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0减0.5 if(pow>=1) { change(pow); draw_bmp(96,1,8,ELAPHT[3]);//显示"d" draw_bmp(104,1,8,ELAPHT[4]);//显示"B" draw_bmp(112,1,8,ELAPHT[12]);//显示"W" } else if(pow>=1e-3) { change(pow*1e3); draw_bmp(96,1,8,ELAPHT[3]);//显示"d" draw_bmp(104,1,8,ELAPHT[4]);//显示"B" draw_bmp(112,1,8,ELAPHT[11]);//显示"m" } else if(pow>=1e-6) { change(pow*1e6); draw_bmp(96,1,8,ELAPHT[3]);//显示"d" draw_bmp(104,1,8,ELAPHT[4]);//显示"B" draw_bmp(112,1,8,ELAPHT[11]);//显示"m" } else { change(0); for(i=1;i<5;i++)serial_buff=12; draw_bmp(96,1,8,ELAPHT[3]);//显示"d" draw_bmp(104,1,8,ELAPHT[4]);//显示"B" draw_bmp(112,1,8,ELAPHT[11]);//显示"m" } //显示读数 for(i = 1; i <5; i++) { draw_bmp(32+i*8,1,8,num[serial_buff]]); } draw_bmp(8,1,8,num[15]);//显示":" draw_bmp(0,1,8,ELAPHT[13]);//显示"Pi" } |