d18b20_qs(); //初始化
d18b20_x(0xCC); //跳过序列号的操作(因为18b20在总线上可以挂很多个,这个序列号和网卡MAC地址类似)
d18b20_x(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
i = d18b20_d(); //读取低8位
j = d18b20_d(); //读取高8位
k = j;
k <<= 8;
k = k + i;
return k; //返回读取到的16位数据
}
void zh(unsigned int i) //1602显示缓存写入函数
{
unsigned char x,z;
x = i & 0x0f; //取出小数
i >>=4;
switch(x) //小数位转换
{
case 0: z=0;break;
case 1: z=1;break;
case 2: z=1;break;
case 3: z=2;break;
case 4: z=3;break;
case 5: z=3;break;
case 6: z=4;break;
case 7: z=4;break;
case 8: z=5;break;
case 9: z=6;break;
case 10: z=6;break;
case 11: z=7;break;
case 12: z=8;break;
case 13: z=8;break;
case 14: z=9;break;
case 15: z=9;break;
}
z = z +48; //转换成ascii码
zf_1602(5,1,z); //写入1602缓存
z = i & 0xff; //取出整数
x = z/10; //取出十位
x= x+48; //转换成ascii码
zf_1602(2,1,x); //写入1602缓存
x = z%10; //取出个位
x= x+48; //转换成ascii码
zf_1602(3,1,x); //写入1602缓存
}
void Delayus(unsigned char t) // us级别延时
{
while(--t);
}
void Delayms(unsigned char t)// ms级别延时
{