DS18B20 温度控制 1602 LCD显示文档格式.docx
- 文档编号:16103116
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:21
- 大小:18.64KB
DS18B20 温度控制 1602 LCD显示文档格式.docx
《DS18B20 温度控制 1602 LCD显示文档格式.docx》由会员分享,可在线阅读,更多相关《DS18B20 温度控制 1602 LCD显示文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
sbitLCD_EN=P3^4;
ucharcodecdis1[]={"
READ_ROMCORD"
};
ucharcodecdis2[]={"
"
ucharcodecdis3[]={"
DS18B20ERR0R"
ucharcodecdis4[]={"
PLEASECHECK"
ucharcodecdis5[]={"
TEMP:
ucharcodecdis6[]={"
TH:
TL:
unsignedchardatatemp_data[2]={0x00,0x00};
unsignedchardatatemp_alarm[2]={0x20,0x10};
unsignedchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};
//温度值显示
unsignedchardatadisplay1[3]={0x00,0x00,0x00};
//温度报警值显示
unsignedchardataRomCode[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsignedcharcodemytab1[8]={0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00};
unsignedcharcodemytab2[8]={0x01,0x1b,0x1d,0x19,0x1d,0x1b,0x01,0x00};
//小喇叭
#definedelayNOP();
{_nop_();
_nop_();
unsignedcharTemp,temp_comp,timecount,count;
unsignedcharcrc;
voidDisp_Temp_alarm(ucharaddr,ucharnum);
voidspk(ucharaddr);
voidset_temp_alarm();
voidtemp_compare();
voidbeep();
/*******************************************************************/
voiddelay1(intms)
{
unsignedchary;
while(ms--)
{
for(y=0;
y<
250;
y++)
_nop_();
}
}
/******************************************************************/
/**/
/*检查LCD忙状态*/
/*lcd_busy为1时,忙,等待。
lcd-busy为0时,闲,可写指令与数据。
*/
/******************************************************************/
bitlcd_busy()
{
bitresult;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
delayNOP();
result=(bit)(P0&
0x80);
LCD_EN=0;
return(result);
/*写指令数据到LCD*/
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。
voidlcd_wcmd(ucharcmd)
{
delay1(10);
LCD_RW=0;
P0=cmd;
/*写显示数据到LCD*/
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。
voidlcd_wdat(uchardat)
LCD_RS=1;
P0=dat;
/*自定义字符写入CGRAM*/
voidwritetab()
unsignedchari;
lcd_wcmd(0x40);
//写CGRAM
for(i=0;
i<
8;
i++)
lcd_wdat(mytab1[i]);
lcd_wdat(mytab2[i]);
/*LCD初始化设定*/
voidlcd_init()
delay1(15);
lcd_wcmd(0x01);
//清除LCD的显示内容
lcd_wcmd(0x38);
//16*2显示,5*7点阵,8位数据
delay1(5);
lcd_wcmd(0x0c);
//显示开,关光标
lcd_wcmd(0x06);
//移动光标
//清除LCD的显示内容
writetab();
//自定义字符写入CGRAM
/*设定显示位置*/
voidlcd_pos(ucharpos)
lcd_wcmd(pos|0x80);
//数据指针=80+地址变量
/*us级延时函数*/
voidDelay(unsignedintnum)
while(--num);
/*初始化ds1820*/
Init_DS18B20(void)
DQ=1;
//DQ复位
Delay(8);
//稍做延时
DQ=0;
//单片机将DQ拉低
Delay(90);
//精确延时大于480us
//拉高总线
presence=DQ;
//如果=0则初始化成功=1则初始化失败
Delay(100);
return(presence);
//返回信号,0=presence,1=nopresence
/*读一个字节*/
ReadOneChar(void)
unsignedchari=0;
unsignedchardat=0;
for(i=8;
i>
0;
i--)
//给脉冲信号
dat>
>
=1;
if(DQ)
dat|=0x80;
Delay(4);
return(dat);
/*写一个字节*/
WriteOneChar(unsignedchardat)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS18B20 温度控制 1602 LCD显示 温度 控制 LCD 显示
![提示](https://static.bdocx.com/images/bang_tan.gif)