多个DS18B20测温的proteus仿真电路及C语言程序设计.doc

多个DS18B20测温的proteus仿真电路及C语言程序设计.doc

ID:56798180

大小:54.50 KB

页数:8页

时间:2020-07-12

多个DS18B20测温的proteus仿真电路及C语言程序设计.doc_第1页
多个DS18B20测温的proteus仿真电路及C语言程序设计.doc_第2页
多个DS18B20测温的proteus仿真电路及C语言程序设计.doc_第3页
多个DS18B20测温的proteus仿真电路及C语言程序设计.doc_第4页
多个DS18B20测温的proteus仿真电路及C语言程序设计.doc_第5页
资源描述:

《多个DS18B20测温的proteus仿真电路及C语言程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、多个DS18B20测温的proteus仿真电路及C语言程序设计proteus仿真电路元器件组成C语言程序:#includesbitDQ=P1^2;sbitDQ1=P1^1;sbitDQ2=P1^0;sbitDQ3=P1^3;#defineucharunsignedchar#defineuintunsignedintuchartemp_value,temp_value1,temp_value2;ucharcodetable[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X

2、7F,0X6F,0X40};voiddelay_18B20(uinti){while(i--);}voidInit_DS18B20(void){ucharx=0;DQ=1;//DQ复位delay_18B20(8);//稍做延时DQ=0;//单片机将DQ拉低delay_18B20(60);//精确延时大于480usDQ=1;//拉高总线delay_18B20(14);x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败delay_18B20(20);}ucharReadOneChar(void){uchari=0;uc

3、hardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat

4、=0x80;delay_18B20(4);}return(dat);}voidWriteOneChar(uchardat){uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18B20(5);DQ=1;dat>>=1;}}voidInit_DS18B201(void){ucharx=0;DQ1=1;//DQ复位delay_18B20(8);//稍做

5、延时DQ1=0;//单片机将DQ拉低delay_18B20(80);//精确延时大于480usDQ1=1;//拉高总线delay_18B20(14);x=DQ1;//稍做延时后如果x=0则初始化成功x=1则初始化失败delay_18B20(20);}ucharReadOneChar1(void){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ1=0;//给脉冲信号dat>>=1;DQ1=1;//给脉冲信号if(DQ1)dat

6、=0x80;delay_18B20(4);}return(dat);}v

7、oidWriteOneChar1(uchardat){uchari=0;for(i=8;i>0;i--){DQ1=0;DQ1=dat&0x01;delay_18B20(5);DQ1=1;dat>>=1;}}voidInit_DS18B202(void){ucharx=0;DQ2=1;//DQ复位delay_18B20(8);//稍做延时DQ2=0;//单片机将DQ拉低delay_18B20(80);//精确延时大于480usDQ2=1;//拉高总线delay_18B20(14);//x=DQ1;//稍做延时后如果x=0则初始化成

8、功x=1则初始化失败delay_18B20(20);}ucharReadOneChar2(void){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ2=0;//给脉冲信号dat>>=1;DQ2=1;//给脉冲信号if(DQ2)dat

9、=0x80;delay_18B20(4);}return(dat);}voidWriteOneChar2(uchardat){uchari=0;for(i=8;i>0;i--){DQ2=0;DQ2=dat&0x01;delay_18B20(5);DQ2=1;dat>>

10、=1;}}voidReadTemp(void){uchara=0;ucharb=0;uchart=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换delay_18B20(100);//thismessageisweryimportantInit_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个

11、就是温度delay_18B20(100);a=ReadOneChar();//读取温度值低位b=ReadOneChar();//读取温度值高位temp_value=b<<4;temp_value+=(a&0xf0)>>4;}voidReadTemp1(void)

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

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

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