欢迎来到天天文库
浏览记录
ID:5295436
大小:44.50 KB
页数:5页
时间:2017-12-07
《18b20温度传感器c语言编程实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、温度传感器C语言编程实例#include#include//含有——nop_();#include//含有运算#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//数据、时钟线ucharduanma[]={0XFC,0X60,0XDA,0XF2,0X66,0XB6,0XBE,0XE0,0XFE,0XF6};uintwendu;//定义温度值存储位置//ucharbdatadate;原来是用来移动数据的floatf_num;//因为温度传
2、感器的精度为0.0625所以设一个float行的变量//sbitd=date^0;voiddelay_ms(uintms){uchari,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}voiddelay_us()//25us延时{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
3、;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}/******************************************************init()初始化复位程序变量i;还有—nop是用来延时的时序:1、2us、0、480us、等待确认;在延时20us、1******************************************************/voidinit(){uinti;DQ=1;_nop_();DQ=0;delay_us();//1delay_us();//
4、2delay_us();//3delay_us();//4delay_us();//5delay_us();//6delay_us();//7delay_us();//8delay_us();//9DQ=1;i=10;while((i--)&&(DQ==1));i=10;while(i--);DQ=1;}/******************************************************字节写:write_byte变量x用来产生for循环在写的过程中,0和一是分开写的时序:0、15us、把数据植入、45us、1、重复前面、1当进行写
5、数据时0和1是分开写的;但是时序也要分开写;******************************************************/voidwrite_byte(uchardate)//传递过来的参数是操作指令例如:0xcc,0x44;0xbe{ucharx;bittestb;for(x=0;x<8;x++){testb=date&0x01;//数据处理,它的作用是将数据的最低取出一直去完八位date>>=1;//没去一次向左移动一次if(testb){DQ=0;_nop_();_nop_();DQ=1;delay_us();_nop_
6、();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=1;delay_us();}else{DQ=0;_nop_();_nop_();DQ=0;delay_us();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=1;}}DQ=1;}/**********************
7、********************************位读程序:这样做的目的是为了把程序写的更有条理性而且程序的类型是bit型的,因此返回值为bit型的时序:0、15us、把数据置入、45us、1******************************************************/bitread_bit(){bitbt;DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=1;_nop_();_nop_();_nop_();_
8、nop_();bt=DQ;returnbt;}/**
此文档下载收益归作者所有