#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]="Temperature:";
uchar idata a[4];
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit ds=P3^7;
sbit l=P2^7;
sbit b=P3^6;
uchar num,num1;
uint num0,f_temp;
void delayms(uchar ms)
{
uchar i,j;
for(i=0;i<ms;i++)
for(j=110;j>0;j--);
}
uint temp;
bit testb;
void delay(uint z)
{
uint i;
for(i=0;i<z;i++)
{ _nop_();
}
}
void beep()
{
b=0;
delayms(100);
b=1;
delayms(100);
}
void dsreset()
{
ds=1;
delay(10);
ds=0;
delay(500);
ds=1;
delay(40);
if(ds==0)
{P1=0;}
else
{ l=0;}
}
void writebyte(uchar dat)
{
uchar j;
uchar i;
ds=0;
for(j=0;j<8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)
{ ds=0;
i=i++;
ds=1;
i=8;while(i--);
}
else
{
ds=0;
i=8;while(i--);
ds=1;
i++;i++;
}
}
}
bit tempread()
{ uchar i;
bit z;
ds=0;i++;//2uså·¦å³
ds=1;i++;i++;//6uså·¦å³
z=ds;
i=8;while(i--);//30uså·¦å³
return z;
}
uchar tempreadbyte()
{
uchar i,j,k;
for(i=0;i<8;i++)
{
k=tempread();
j=(k<<7)|(j>>1);
}
return j;
}
void tempchange()
{ dsreset();
writebyte(0xcc);
writebyte(0x44);
}
uint get_temp()
{ uchar a,b;
dsreset();
writebyte(0xcc);
writebyte(0xbe);
a=tempreadbyte();
b=tempreadbyte();
temp=b;
temp=temp<<8;
temp=temp|a;
f_temp=temp*0.0625;
temp=f_temp*10+0.5;
return f_temp;
}
void warn(uchar z)
{
if(z>=40)
{
beep();
}
}
void write_com(uchar com)
{
lcdrs=0;
P1=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar ddata)
{
lcdrs=1;
P1=ddata;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=1;
write_com(0x38);//设置åºæ¬æ令模å¼ï¼16*2æ¾ç¤ºï¼ï¼5*7ç¹éµï¼8ä½æ°æ®æ¥å£
write_com(0x0c); //å¼æ¾ç¤ºï¼å
³å
æ
write_com(0x06); //åä¸ä¸ªå符åå°åæéå 1
write_com(0x01); //åå
¥ç©ºæ ¼æ¾ç¤ºæ¸
0ï¼æ°æ®æéæ¸
0
}
void main()
{ uchar i;
init();
while(1)
{
write_com(0x80);
for(i=0;i<11;i++)
{
write_data(table1[i]);
delay(5);
}
tempchange();
num=get_temp();
P2=get_temp();
a[1]=num%1000/100;
a[2]=num%100/10;
a[3]=num%100%10;
write_com(0xc0);
for(i=0;i<5;i++)
{
write_data(a[i]+0x30);
}
write_com(0xc6);
write_data(2+0x30);
}
}
追é®è¦ä¸æç»ä½ çµè·¯å¾ ä½ å¸®æå¨æä¸
追çè¿æ¯å»å¹´6ææçå§ å¾é¿æ¶é´æ²¡çäº åªæ¯çå°ä½ é®äº æ以就æ代ç é»è´´è¿æ¥äºã ä½ æ管ææ¹æ¹å°±è¡äºå§