ds18b20温度传感器实验

ds18b20温度传感器实验

ID:22631397

大小:93.50 KB

页数:5页

时间:2018-10-30

ds18b20温度传感器实验_第1页
ds18b20温度传感器实验_第2页
ds18b20温度传感器实验_第3页
ds18b20温度传感器实验_第4页
ds18b20温度传感器实验_第5页
资源描述:

《ds18b20温度传感器实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、DS18B20温度传感器实验Proteus仿真原理图:DS18B20内部结构:-5-/*************************源程序****************************/-5-#include#include#defineuintunsignedint#defineucharunsignedchar#definedelayNOP(){_nop_();_nop_();_nop_();_nop_();}sbitDQ=P3^3;sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EN=P2

2、^2;ucharcodeTemp_Disp_Title[]={"CurrentTemp:"};ucharCurrent_Temp_Display_Buffer[]={"TEMP:"};-5-ucharcodeTemperature_Char[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};ucharcodedf_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};ucharCurrentT=0;ucharTemp_Value[]={0x00,0x00};ucharDisplay_Digit[]={0,0,0

3、,0};bitDS18B20_IS_OK=1;voidDelayXus(uintx){uchari;while(x--){for(i=0;i<200;i++);}}bitLCD_Busy_Check(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;returnresult;}voidWrite_LCD_Command(ucharcmd){while(LCD_Busy_Check());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_()

4、;P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}-5-voidWrite_LCD_Data(uchardat){while(LCD_Busy_Check());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}voidLCD_Initialise(){Write_LCD_Command(0x01);DelayXus(5);Write_LCD_Command(0x38);DelayXus(5);Write_LCD_Command(0x

5、0c);DelayXus(5);Write_LCD_Command(0x06);DelayXus(5);}voidSet_LCD_POS(ucharpos){Write_LCD_Command(pos

6、0x80);}voidDelay(uintx){while(--x);}ucharInit_DS18B20(){ucharstatus;DQ=1;Delay(8);DQ=0;Delay(90);DQ=1;Delay(8);DQ=1;returnstatus;}ucharReadOneByte(){uchari,dat=0;DQ=1;_nop_();for(i=0;i<8;i++){

7、DQ=0;dat>>=1;DQ=1;_nop_();_nop_();if(DQ)dat

8、=0X80;Delay(30);DQ=1;}returndat;}voidWriteOneByte(uchardat){uchari;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;}}-5--5-voidRead_Temperature(){if(Init_DS18B20()==1)DS18B20_IS_OK=0;else{WriteOneByte(0xcc);WriteOneByte(0x44);Init_DS18B20();

9、WriteOneByte(0xcc);WriteOneByte(0xbe);Temp_Value[0]=ReadOneByte();Temp_Value[1]=ReadOneByte();DS18B20_IS_OK=1;}}voidDisplay_Temperature(){uchari;uchart=150,ng=0;if((Temp_Value[1]&0xf8)==0xf8){Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_V

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

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

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