lcd和服务器同时显示温度,51单片机LCD1602如何同时显示温度和时间
按鍵是設置時間的
void main()
{
unsigned char i;
Int0Configuration();
LcdInit();
Ds1302Init();
while(1)
{
if(SetState==0)
{
Ds1302ReadTime();
}
else
{
if(K1==0)? ? ? ? ? ? ? ? //?ì2a°′?üK1ê?·?°′??
{
Delay10ms();? ? ? ? //??3y???ˉ
if(K1==0)
{
SetPlace++;
if(SetPlace>=7)
SetPlace=0;
}
while((i<50)&&(K1==0))? ? ? ???//?ì2a°′?üê?·??é?a
{
Delay10ms();
i++;
}
i=0;
}
if(K2==0)? ? ? ? ? ? ? ? //?ì2a°′?üK2ê?·?°′??
{
Delay10ms();? ? ? ? //??3y???ˉ
if(K2==0)
{
TIME[SetPlace]++;
if((TIME[SetPlace]&0x0f)>9)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//??3éBCD???£
{
TIME[SetPlace]=TIME[SetPlace]+6;
}
if((TIME[SetPlace]>=0x60)&&(SetPlace<2))? ? ? ? ? ? ? ? //·??????üμ?59
{
TIME[SetPlace]=0;
}
if((TIME[SetPlace]>=0x24)&&(SetPlace==2))? ? ? ? ? ? ? ? //D?ê±???üμ?23
{
TIME[SetPlace]=0;
}
if((TIME[SetPlace]>=0x32)&&(SetPlace==3))? ? ? ? ? ? ? ? //è????üμ?31
{
TIME[SetPlace]=0;
}
if((TIME[SetPlace]>=0x13)&&(SetPlace==4))? ? ? ? ? ? ? ? //?????üμ?12
{
TIME[SetPlace]=0;
}
if((TIME[SetPlace]>=0x7)&&(SetPlace==5))? ? ? ? ? ? ? ? //?ü???üμ?7
{
TIME[SetPlace]=1;
}
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(SetPlace==5)? ? ? ? ? ? ? ? //?????üμ?12
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TIME[SetPlace]=;
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
}
while((i<50)&&(K2==0))? ? ? ???//?ì2a°′?üê?·??é?a
{
Delay10ms();
i++;
}
i=0;
}
}
LcdTimeDisplay();
LcdTempDisplay(Ds18b20ReadTemp());
}
}
void LcdTimeDisplay()
{
LcdWriteCom(0x80+0X40);
LcdWriteData('0'+TIME[2]/16);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //ê±
LcdWriteData('0'+(TIME[2]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[1]/16);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //·?
LcdWriteData('0'+(TIME[1]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[0]/16);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //??
LcdWriteData('0'+(TIME[0]&0x0f));
LcdWriteCom(0x80);
LcdWriteData('2');
LcdWriteData('0');
LcdWriteData('0'+TIME[6]/16);? ? ? ? ? ? ? ? ? ? ? ? //?ê
LcdWriteData('0'+(TIME[6]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[4]/16);? ? ? ? ? ? ? ? ? ? ? ? //??
LcdWriteData('0'+(TIME[4]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[3]/16);? ? ? ? ? ? ? ? ? ? ? ? //è?
LcdWriteData('0'+(TIME[3]&0x0f));
LcdWriteCom(0x8D);
LcdWriteData('0'+(TIME[5]&0x07));? ? ? ? //D??ú
}
void LcdTempDisplay(int temp)
{
unsigned char i, datas[] = {0, 0, 0, 0, 0}
float tp;
if(temp< 0)
{
LcdWriteCom(0x80);
SBUF='-'
while(!TI);
TI=0;
LcdWriteData('-');
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
else
{
LcdWriteCom(0x4a+0x80);
LcdWriteData('+');
SBUF='+'
while(!TI);
TI=0;
tp=temp
temp=tp*0.0625*100+0.5;
}
datas[0] = temp / 10000;
datas[1] = temp % 10000 / 1000;
datas[2] = temp % 1000 / 100;
datas[3] = temp % 100 / 10;
datas[4] = temp % 10;
LcdWriteCom(0x4b+0x80);
LcdWriteData('0'+datas[1])
SBUF = '0'+datas[1]
while (!TI);
TI = 0;
LcdWriteCom(0x4c+0x80);
LcdWriteData('0'+datas[2]);
SBUF = '0'+datas[2]
while (!TI);
TI = 0;
LcdWriteCom(0x4d+0x80);
LcdWriteData('.');
SBUF = '.'
while (!TI);
TI = 0;
LcdWriteCom(0x4e+0x80);
LcdWriteData('0'+datas[3])
SBUF = '0'+datas[3]
while (!TI);
TI = 0;
LcdWriteCom(0x4f+0x80);
LcdWriteData('0'+datas[4])
SBUF = '0'+datas[4]
while (!TI);
TI = 0;
for(i=0; i<6; i++)
{
SBUF = CNCHAR[i]
while (!TI);
TI = 0;
}
}
總結
以上是生活随笔為你收集整理的lcd和服务器同时显示温度,51单片机LCD1602如何同时显示温度和时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chrome jquery ajax请求
- 下一篇: dwr和ajax的区别,dwr的ajax