基于ds18b20的温度测控系统(完美实现

基于ds18b20的温度测控系统(完美实现

ID:11053857

大小:240.50 KB

页数:8页

时间:2018-07-09

基于ds18b20的温度测控系统(完美实现_第1页
基于ds18b20的温度测控系统(完美实现_第2页
基于ds18b20的温度测控系统(完美实现_第3页
基于ds18b20的温度测控系统(完美实现_第4页
基于ds18b20的温度测控系统(完美实现_第5页
资源描述:

《基于ds18b20的温度测控系统(完美实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《基于DS18B20的温度测控系统》姓名:赵通学号:201103030030专业:网络工程院系:计算机科学与信息工程学院2012年12月14号《基于DS18B20的温度测控系统》一、设计要求1、能有效的测量当前温度,并通过数码管及时显示出来。2、在设定温度范围内单片机正常工作,超过一定的范围内通过自带的报警装置报警。3、设计要求简单,清晰。二、实验材料1、STC89C52一片2、晶振一个3、数码管,和附带4个NPN9013三极管4个4、USB口,和发光二极管。5、DS18B20一个6、电阻2K三个,电容30pf两个,极性电容一个,按键开关一个。三、实验过程1、设计好实验电路图如下:2、仿真

2、效果图如下:2、实验源代码如下:#include#defineucharunsignedchar#defineuintunsignedintsbitDS=P3^3;sbitfm=P2^4;sbitp20=P2^0;sbitp21=P2^1;sbitp22=P2^2;sbitp23=P2^3;uinttemp;ucharflag,A,C,D;uchartable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xf7,0xff};//共阳极数码管“0-9”,“-”,“_”,“空”voiddelay(uin

3、tcount){uinti;while(count){i=200;while(i>0)i--;count--;}}voiddelayms(){uinti,j;for(i=2;i>0;i--)for(j=110;j>0;j--);}voiddsreset(void)//初始化{uinti;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;}bittmpreadbit(void)//读一个比特{uinti;bitdat;DS=0;i++;//i++fordelayDS=1;i++;i++;dat=DS;i=8;while(i>0)i--;retur

4、n(dat);}uchartmpread(void)//读一个字节{uchari,j,dat;dat=0;for(i=1;i<=8;i++){j=tmpreadbit();dat=(j<<7)

5、(dat>>1);//读出的数据最低位在最前面,这样刚好一个字节在DAT里}return(dat);}voidtmpwritebyte(uchardat)//写入ds18B20一个字节{uinti;ucharj;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb)//写1{DS=0;i++;i++;DS=1;i=8;while(

6、i>0)i--;}else{DS=0;//写0i=8;while(i>0)i--;DS=1;i++;i++;}}}voidtmpchange(void)//转化温度{dsreset();delay(1);tmpwritebyte(0xcc);//跳过ROMtmpwritebyte(0x44);//开始转化温度}uinttmp()//得到这个温度{floattt;uchara,b;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();if(b&0xfc)//判断符号位是否为1{flag

7、=1;temp=(b<<8)

8、a;temp=~temp+1;tt=temp*0.0625;temp=tt*10+0.5;}else{flag=0;tt=((b<<8)

9、a)*0.0625;temp=tt*10+0.5;}returntemp;}voiddisplay(uinttemp)//显示程序{ucharA1,A2,A3,A4;if(flag==1){A1=10;//A1定义成了全局变量,为了可以让蜂鸣器可以判定是否超过100A2=temp/100;A3=temp%100/10;A4=temp%100%10;}else{A1=temp/1000;A=A1;if(A1==0)A1=12;

10、A2=temp/100;C=A2;A3=temp%100/10;D=A3;A4=temp%100%10;}p20=1;P1=table[A1];delayms();P2=0xf0;p21=1;P1=table[A2];delayms();P2=0xf0;p22=1;P1=table[A3]&0x7f;delayms();P2=0xf0;p23=1;P1=table[A4];delayms();P2=0xf0;}voidm

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

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

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