dat = 0;
for( i = 1; i <= 8; i++ )
{
j = DS18B20_Readbit();
dat = ( j << 7 ) | ( dat >> 1 );
}
return(dat);
}
/***************************************************/
/* DS18B20函数:void DS18B20_WriteByte() */
/* 功能:向DQ18B20写一个字节数据函数 */
/***************************************************/
void DS18B20_WriteByte(uchar dat) //向DQ18B20写一个字节数据函数
{
uint i;
uchar j;
bit testb;
for( j=1; j<=8; j++)
{
testb = dat&0x01;
dat= dat>>1;
if(testb) //写1
{
DQ = 0;
i++;i++;
DQ = 1;
i = 8;while(i>0)i--;
}
else
{
DQ = 0; //写0
i = 8;while(i>0)i--;
DQ = 1;
i++;i++;
}
}
}
/***********************************************/
/* LCD函数:void LCD_WriteCom() */
/* 功能:向LCD写入命令 */
/***********************************************/
void LCD_WriteCom(uchar com)
{
rs = 0;
P0 = com;
delay(5);
lcden = 0;
delay(5);
lcden = 1;
delay(5);
lcden = 0;
}
/***********************************************/
/* LCD函数:void LCD_WriteData(uchar dat) */
/* 功能:向LCD写入数据 */
/***********************************************/
void LCD_WriteData(uchar dat)
{
rs = 1; //选择LCD为写入数据状态
lcden = 0;
P0 = dat; //将待写入数据放到总线上
delay(5);
lcden = 1; //给LCD使能端一个脉冲
delay(5); //信号将之前放到总线上
lcden = 0; //的数据写入LCD
delay(5);
}
/***********************************************/
/* LCD函数:void LCD_Init() */
/* 功能:初始化LCD,设定LCD的初始状态 */
/***********************************************/
void LCD_Init()
{
LCD_WriteCom(0x38); //LCD显示模式设定
delay(15);
LCD_WriteCom(0x08); //关闭LCD显示
delay(3);
LCD_WriteCom(0x01); //LCD显示清屏
delay(3);
LCD_WriteCom(0x06); //设定光标地址指针为
自动加1
delay(3);
LCD_WriteCom(0x0c); //打开LCD显示,但不显示光标
}
/**********************************************/
/* */
/* 显示18B20序列号 */
/* */
/**********************************************/
void Display18B20Rom(char Rom)
{
uchar h,l;
l = Rom & 0x0f; //取低4位
h = Rom & 0xf0; //取高4位
上一页 [1] [2] [3] 下一页
本文关键字:温度传感器 程序 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制