DS18B20温度检测C语言程序.doc_第1页
DS18B20温度检测C语言程序.doc_第2页
DS18B20温度检测C语言程序.doc_第3页
DS18B20温度检测C语言程序.doc_第4页
全文预览已结束

下载本文档

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

文档简介

/*DS108B20数码管显示程序*/*直接复制调用即可*/#include#include#define uchar unsigned char#define uint unsigned int#define nop _nop_()sbit dq=P36; /温度的DQ脚与P36相连sbit wx1=P24;sbit wx2=P25;sbit wx3=P26;sbit wx4=P27;uchar T,xs;/*uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6;/*/*void delay10us() uchar i; for(i=1;i0;i-) /$void delay_us(uchar dus) uchar mm;for(mm=0;mmdus;mm+) _nop_;/*void delay_ms(uint dms)int mmm; for(mmm=0;mmmdms;mmm+) delay_us(230);/*/*/*/*/*DS18B20初始化复位*/void ds_rst() dq=0;delay_us(110); /480 usdq=1;delay_us(110);/*单线写一字节*void write_ICcmd(uchar dat)uchar i;for(i=0;i=1;delay_us(10); /延时45us/*单线读一字节*uchar read_ICdata()uchar i=0;uchar dat=0;for(i=8;i0;i-)dq=0;dat=1;dq=1;if(dq) dat|=0x80;delay_us(10); /延时45us return (dat);/*温度读取*void read_TMP()uchar a=0,b=0;ds_rst();write_ICcmd(0xcc); /跳过ROMwrite_ICcmd(0x44);/温度转换为数据ds_rst();write_ICcmd(0xcc);write_ICcmd(0xbe);/读取温度指令a=read_ICdata(); /温度低八位,最小位为0.0625 Cb=read_ICdata(); /温度高位,高四位为正负号,1111xxxx为负,0000xxxx为正,后四位为温度的高四位T=a;T=(T&0xF0)4;T=T+(b&0x0F)4); /T为小数点前的数值xs=(a&0x0F)*6.25; /xs为小点后的数值的100倍/*共阳极数码管显示*void wenduxianshi()wx1=0; /十位显示P0=tableT/10;delay_us(500);wx1=1;wx2=0;/个位加小数点显示P0=tableT%10+0x80;delay_us(500);wx2=1;wx3=0;/小数显示P0=tablexs/10;delay_us(500);wx3=1;wx4=0;/字母C显示P0=table12;delay_us(500);wx4=1

温馨提示

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

评论

0/150

提交评论