18b20程序详解.doc_第1页
18b20程序详解.doc_第2页
18b20程序详解.doc_第3页
18b20程序详解.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include #define uchar unsigned char #define uint unsigned intsbit ds=P14;/数据采集定义管脚code uchar table=/共阳数码管,段选 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10,;code uchar table2=/位选0x01,0x02,0x04 ;uint temp;float f_temp;void delay(uint time)/小的延时while(time-) _nop_(); _nop_(); ;void delayms(uchar time)uchar i,j;for(i=0;itime;i+)for(j=0;j110;j+);void close() P2=0xa0; /关闭蜂鸣器 P0=0x80; P2=0; P2=0x80; /关闭LED P0=0xff; P2=0;void reset()/复位函数ds=1;delay(8);/特别注意时间,比较严格ds=0;delay(80);/特别注意时间,比较严格ds=1;delay(15);/特别注意时间,比较严格void writebyte(uchar dat)/写函数,从低位向高位开始写uchar i;for(i=0;i=1;uchar readbyte()/读函数,从低位向高位开始读uchar i,dat;for(i=0;i=1;ds=1;if(ds)dat|=0x80;delay(5);/时间延时太长时数字闪烁return dat;void display(uchar add,uchar dat)/显示函数P2=0xc0;P0=table2add;P2=0;P2=0xe0;P0=tabledat;P2=0;delayms(10);void tempchange()reset();writebyte(0xcc);/控制指令,跳过ROM,直接向18B20发送转换命令,适用于总线上只接一个18B20writebyte(0x44);/控制指令,温度转换,结果存入内部9字节的RAM中uint get_temp()uchar a,b;reset();writebyte(0xcc); /控制指令,跳过ROM,直接向18B20发送转换命令,适用于总线上只接一个18B20writebyte(0xbe); /控制指令,读暂存器,读内部中九字节的温度数据a=readbyte();/先读地位b=readbyte();temp=b;temp=8;temp|=a;/将char类型变量为int型变量f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp+=0.05;/温度转换return temp;void main()reset();/复位close();/关闭蜂鸣器和继电器,这个可以不要while(1)/不用也可以显示,但是有时候数字闪烁tempchange();/开始读取温度,必须放在while中,否则变换缓慢,而且胡乱显示display(0,get_temp()/100);/在数码管上显示display(1,ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论