日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

lcd和服务器同时显示温度,51单片机LCD1602如何同时显示温度和时间

發布時間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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如何同时显示温度和时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。