串口发送温度给上位机

串口发送温度给上位机

ID:13093284

大小:39.00 KB

页数:5页

时间:2018-07-20

串口发送温度给上位机_第1页
串口发送温度给上位机_第2页
串口发送温度给上位机_第3页
串口发送温度给上位机_第4页
串口发送温度给上位机_第5页
资源描述:

《串口发送温度给上位机》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/*====DS18B20实现温度转换。当MCU接收到上位机发送的01时,将当前温度返回上位机============*/#include#include#defineucharunsignedchar#defineuintunsignedintsbitDS=P2^2;//温度传感器信号线uinttemp,n;uchara,signal,t,time0_1s,b,flag,flag_on;sbitdula=P2^6;sbitwela=P2^7;sbitbeep=P2

2、^3;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//不带小数的0~9编码0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数的0~9编码voiddelay(uintcount)//delay{uinti,j;for(i=count;i>0;i--)for(j=110;j>0;j--);}voiddsreset(void)//DS18B20初始化{//

3、1,先将数据线置高电平uinti;//2,延时要求不严格但尽可能短些DS=0;//3,将数据线置低电平i=103;//4,延时(480~960微秒)while(i>0)i--;//5,将数据线置高电平DS=1;//6,延时(15~60微秒)DS18B20返回低电平确定它的存在i=4;//7,CPU读到低电平并延时最少480微秒while(i>0)i--;//8,将数据线置高电平}bittmpreadbit(void)//读一位数据{//1,将数据线拉高uinti;//2,延时2微秒bitdat;//3

4、,将数据线拉低DS=0;i++;//i++起延时作用DS=1;i++;i++;//4,延时6微秒dat=DS;//5,将数据线拉高i=8;while(i>0)i--;//6,延时4微秒return(dat);//7,读一位数据}//8,延时30微秒,重复1~7步读完一个字节uchartmpread(void)//读一个字节{uchari,j,dat;dat=0;for(i=1;i<=8;i++){j=tmpreadbit();dat=(j<<7)

5、(dat>>1);//读出的数据最低位在最前面,这样刚

6、好一个字节在DAT里}return(dat);}voidtmpwritebyte(uchardat)//writeabytetods18b20{//1,数据线拉低uinti;//2,延时确定的时间15微秒ucharj;//3,按从低位到高位的顺序发送数据(一次只发送一位)bittestb;//4,延时45微秒for(j=1;j<=8;j++)//5,数据线拉高{//6,重复1~5,直到发送完一个字节testb=dat&0x01;//7,数据线拉高dat=dat>>1;if(testb)//write1

7、{DS=0;i++;i++;DS=1;i=8;while(i>0)i--;}else{DS=0;//write0i=8;while(i>0)i--;DS=1;i++;i++;}}}voidtmpchange(void)//DS18B20beginchange{dsreset();delay(1);tmpwritebyte(0xcc);//忽略ROM地址(一个从机工作时)tmpwritebyte(0x44);//温度转换}uinttmp()//读取寄存器中存储的温度数据{floattt;uchara,b

8、;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);//读内部RAM中9字节的温度数据a=tmpread();//读低8位b=tmpread();//读高8位temp=b;temp<<=8;//两个字节组成一个字节temp=temp

9、a;tt=temp*0.0625;//温度在寄存器中为12位,分辨率为0.0625temp=tt*10+0.5;//乘以10表示小数点后只取一位,加0.5是四舍五入returntemp;}voiddispla

10、y(ucharnum,ucharinformation)//显示程序{uchark;dula=1;P0=table[information];dula=0;P0=0xff;wela=1;k=~((0x01)<

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

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

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