#include
sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;
sbit S0=P1^0;
sbit SCK=P1^1;
sbit CS=P1^2;
float temp;
int wendu;
unsigned wd[2];
void delay(unsigned int t)
{
unsigned int i=0,j=0;
for(i=0;i<t;i++)
{
for(j=0;j<120;j++);
}
}
Read_temp()
{
unsigned int i=0,j=0;
unsigned long temp;
temp=0;
CS=1;
SCK=0;
delay(10);
CS=0;
for(i=0;i<16;i++)
{
temp<<=1;
SCK=1;
if(S0==1){temp=temp|0x01;}
else {temp=temp|0x00;}
SCK=0;
}
temp=temp&0x7FF8;
temp=temp*0.25;
delay(200);
return(temp);
}
void write_com(unsigned char com)
{
RS=0;
RW=0;
E=0;
P2=com;
delay(5);
E=1;
delay(5);
E=0;
}
void write_dat(unsigned char dat)
{
RS=1;
RW=0;
E=0;
P2=dat;
delay(5);
E=1;
delay(5);
E=0;
}
void init()
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void display()
{
unsigned int i=0;
write_com(0x80);
delay(5);
wd[0]=wendu/100%10;
wd[1]=wendu/10%10;
wd[2]=wendu/1%10;
while(wd[i]!='\0')
{
write_dat(wd[i]+0x30);
delay(5);
i++;
}
}
void main()
{
init();
while(1)
{
wendu=Read_temp();
display();
}
}