• 大小: 3KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-07-13
  • 语言: 其他
  • 标签:

资源简介

温度传感器程序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()//读一个字节
{

评论

共有 条评论

相关资源