uint y; for(x=z;x>0;x--) for(y=125;y>0;y--); }
void LCD_BUSY() //LCD忙检测 { uchar sta; P0=0xff; lcdrs=0; lcdrw=1; do{ lcden=1; sta=P0; lcden=0; }while(sta & 0x80); }
void writelcdcmd(uchar cmd) { LCD_BUSY(); delayms(1); lcdrs=0; lcdrw=0; lcden=0; P0=cmd; delayms(1); lcden=1; delayms(1); lcden=0; }
void writelcddat(uchar dat) { LCD_BUSY(); delayms(1); lcdrs=1; lcdrw=0; lcden=0; P0=dat; delayms(1);
//LCD写命令//LCD写数据 lcden=1; delayms(1); lcden=0; }
void inilcd() //LCD初始化 { delayms(15); writelcdcmd(0x38); delayms(5); writelcdcmd(0x0c); delayms(5); writelcdcmd(0x06); delayms(5); writelcdcmd(0x01); delayms(5); }
void play(unsigned char *p)//显示// {
while(*p!='\\0') {
writelcddat(*p); p++;
delayms(1); } }
void xianshi(void) { uchar TL; //储存暂存器的温度低位 uchar TH; //储存暂存器的温度高位 TH=tm[0] ; TL=tm[1]; //这样得到的是温度小数部分的第一位数字(保留1位小数)
value=TH; value<<=8; value=value|TL; if(value<0x0fff) //是否是负值 tflag=0; else { value=~value+1; tflag=1;
} value=value*(0.625)+0.5; //扩大10倍方便读取小数 disdat[0]=value/1000+0x30;//百位数 disdat[1]=value00/100+0x30;//十位数 disdat[2]=value0/10+0x30;//个位数 disdat[3]=value+0x30;//小数位 if(tflag==0) disdat[4]=0x20; else disdat[4]=0x2d; if(disdat[0]==0x30) { disdat[0]=0x20; if(disdat[1]==0x30) disdat[1]=0x20; } /*显示当前温度*/ writelcdcmd(0x86); writelcddat(disdat[4]); writelcdcmd(0x87); writelcddat(disdat[0]); writelcdcmd(0x88); writelcddat(disdat[1]); writelcdcmd(0x89); writelcddat(disdat[2]); writelcdcmd(0x8a); writelcddat(0x2e); writelcdcmd(0x8b); writelcddat(disdat[3]); writelcdcmd(0x8d); writelcddat(0xdf); writelcdcmd(0x8e); writelcddat('C'); }
void main(void) { uchar xx; inilcd(); init_io(); RX_Mode(); while(1) { flag=0;
//当最高位为0时,最高位不显示//符号位 //小数点 //单位℃ checkflag(); if(flag!=1)
{ writelcdcmd(0x01); writelcdcmd(0x01); writelcdcmd(0x80); play(str1);
writelcdcmd(0x80+0x40); play(str2);
delayms(60000); } else if(flag) { writelcdcmd(0x01); for(xx=0;xx<2;xx++) {tm[xx]=rx_buf[xx]; delay_ms(1); writelcdcmd(0x80); play(str); xianshi(); delayms(60000); } }
delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000);
}
}
2014 8
相关推荐: