资源简介
温度传感器程序stc89c52的单片机,1602字符液晶,经过我的板子测试正确无误
代码片段和文件信息
/*********************************************************************************************/
/*【铁牛单片机】仅用于学习与参考,引用请注明版权和作者信息!http://shop34517266.taobao.com */
/*********************************************************************************************/
#include
#define uchar unsigned char
#define uint unsigned int
sbit P3_2=P3^2;
uint k;
uchar i;
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P1^2;
sbit fm=P3^4;
uchar code t0[]=“The temperature “;
uchar code t1[]=“ is “;
uchar code wendu[]=“0123456789“; //利用一个温度表解决温度显示乱码
//温度传感器定义
sbit DQ = P3^3;//定义ds18B20总线IO
void delay(uchar z)
{
uchar xy;
for(x=1000;x>1;x--)
for(y=z;y>1;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init_lcd()
{
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x01);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
for(i=0;i<16;i++)
{
write_date(t0[i]);
delay(0);
}
write_com(0x80+0x40);
for(i=0;i<16;i++)
{
write_date(t1[i]);
delay(0);
}
}
/*************DS18B20温度读取模块*************/
void tmpDelay(int num)//延时函数
{
while(num--) ;
}
void Init_DS18B20()//初始化ds1820
{
unsigned char x=0;
DQ = 1; //DQ复位
tmpDelay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
tmpDelay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
tmpDelay(14);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
tmpDelay(20);
}
unsigned char ReadOneChar()//读一个字节
{
- 上一篇:labview温度超限报警器
- 下一篇:搜索引擎考试重点
评论
共有 条评论