基于单片机的多路温度检测系统设计.docx

基于单片机的多路温度检测系统设计.docx

ID:54716169

大小:35.13 KB

页数:13页

时间:2020-04-20

基于单片机的多路温度检测系统设计.docx_第1页
基于单片机的多路温度检测系统设计.docx_第2页
基于单片机的多路温度检测系统设计.docx_第3页
基于单片机的多路温度检测系统设计.docx_第4页
基于单片机的多路温度检测系统设计.docx_第5页
资源描述:

《基于单片机的多路温度检测系统设计.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include#defineuintunsignedint#defineucharunsignedcharsbitlcdrs=P3^0;sbitlcdrw=P3^1;sbitlcden=P3^2;//LCD选通线sbitDQ=P1^7;//18B20引脚uintvalue;//温度值sbitsound=P1^6;//蜂鸣器sbitwarning=P3^5;//LED报警灯sbitgreenled=P3^6;//LED报警灯sbitk1=P1^0;//setsbitk2=P1^1;//+sbit

2、k3=P1^2;//-charmax=40;//初始温度最大值charmin=10;//初始温度最小值ucharchange_flag;//按键次数ucharcodetable1[]={0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e};//rom1测得的序列号ucharcodetable2[]={0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9};//rom2ucharcodetable3[]={0x28,0x32,0xc5,0xb8,0x00,0x0

3、0,0x00,0xe0};//rom3ucharcodetable4[]={0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7};//rom4ucharcodetable5[]="Temple";ucharcodetable6[]="max:min:";uinttemper[5];//温度值缓存bitfg=0;//温度正负标志voiddelay(uintn){uintx,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharc

4、om){lcdrs=0;//rs=0时输入指令P2=com;delay(5);lcden=1;//en=1时读取信息delay(5);lcden=0;//1->0执行指令}voidwrite_dat(uchardat){lcdrs=1;//rs=1时输入数据P2=dat;delay(5);lcden=1;delay(5);lcden=0;}voidinit_lcd(){lcden=0;lcdrw=0;write_com(0x38);//8位数据,双列,5*7字形write_com(0x0c);//开启显示屏,关光

5、标,光标不闪烁write_com(0x06);//显示地址递增,即写一个数据后,显示位置右移一位write_com(0x01);}voiddelay_us(uchart)//微妙延时{while(t--);}voidinit_ds18b20()//数据初始化{DQ=1;delay_us(4);DQ=0;delay_us(80);DQ=1;delay_us(200);}voidwrite_ds18b20(uchardat)//写数据{uchari;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;

6、delay_us(15);DQ=1;dat=dat>>1;}delay_us(10);}ucharread_ds18b20()//读数据{uchari=0,readat=0;for(i=0;i<8;i++){DQ=0;readat=readat>>1;//八位全部都是0,向右移一位后,仍然全是0DQ=1;if(DQ)//如果DQ为1,readat进行或运算,如果为0,则子语句不执行,直接for循环此时采集的数据是0readat=readat

7、0x80;//此时最高位为1,然后再进行for循环最高位成为第七位,依次

8、往复delay_us(10);}returnreadat;}voidcheck_rom(uchara)//匹配序列号{ucharj;write_ds18b20(0x55);if(a==1){for(j=0;j<8;j++){write_ds18b20(table1[j]);}}if(a==2){for(j=0;j<8;j++){write_ds18b20(table2[j]);}}if(a==3){for(j=0;j<8;j++){write_ds18b20(table3[j]);}}if(a==4){for(j

9、=0;j<8;j++){write_ds18b20(table4[j]);}}}uintchange_ds18b20(ucharz)//为DS18B20序号{uchartl,th;init_ds18b20();//初始化write_ds18b20(0xcc);//跳过init_ds18b20();if(z==1){check_rom(1);//匹配rom1}if(z==2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。