typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;
char num=0;u8 DisplayData[8];u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};u8 CNCHAR[]=' 摄氏度 ';void delay(u16 i){ while(i--); }void datapros(int temp) {
float tp; if(temp< 0) //当温度值为负数 { DisplayData[0] = 0x40; temp=temp-1; temp=~temp; tp=temp; temp=tp*0.0625*100+0.5; } else { DisplayData[0] = 0x00; tp=temp; temp=tp*0.0625*100+0.5; }
DisplayData[1] = smgduan[temp / 10000]; DisplayData[2] = smgduan[temp % 10000 / 1000]; DisplayData[3] = smgduan[temp % 1000 / 100] | 0x80; DisplayData[4] = smgduan[temp % 100 / 10]; DisplayData[5] = smgduan[temp % 10];}void DigDisplay(){ u8 i; for(i=0;i<6;i++) { switch(i) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 case(3): LSA=1;LSB=1;LSC=0; break;//显示第3位 case(4): LSA=0;LSB=0;LSC=1; break;//显示第4位 case(5): LSA=1;LSB=0;LSC=1; break;//显示第5位 } P0=DisplayData[5-i];//发送数据 delay(100); //间隔一段时间扫描 P0=0x00;//消隐 } }// LCD显示读取到的温度void LcdDisplay(int temp) //lcd显示{
unsigned char i, datas[] = {0, 0, 0, 0, 0}; //定义数组 float tp; if(temp< 0) //当温度值为负数 { LcdWriteCom(0x80); //写地址 80表示初始地址 SBUF='-'; //将接收到的数据放入到发送寄存器 while(!TI); //等待发送数据完成 TI=0; //清除发送完成标志位 LcdWriteData('-'); //显示负
以上就是小编带给大家的如何操作的关键所在,如果觉得本经验对你们有帮助,请点击正下方的或者是右上角的“大拇指”或分享或“关注TA”给小编我进行一点小小的支持。大家也可以下面发表一下自己的看法。(未经同意,谢绝转载或复制)