13板外的第一个扩展DS18B20温度测量2实际制做文档格式.docx
- 文档编号:15726895
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:16
- 大小:213.26KB
13板外的第一个扩展DS18B20温度测量2实际制做文档格式.docx
《13板外的第一个扩展DS18B20温度测量2实际制做文档格式.docx》由会员分享,可在线阅读,更多相关《13板外的第一个扩展DS18B20温度测量2实际制做文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
//延时700微秒
TMDAT=1;
//释放总线
i=4;
//延时40微秒
}
②检测总线上是否有器件应答(是否有存在信号):
voidtmpre(void)
while(TMDAT);
//检测低电平的存在。
否则一直循环。
while(~TMDAT);
//检测高电平的存在。
//延时
这段程序就是检测一个先低后高的脉冲的存在。
说明有器件应答了。
③从DS18B20上读一个bit
bittmrbit(void)
bitdat;
//先将总线拉低
i++;
//延时一微秒
//延时两微秒
dat=TMDAT;
//读取总线
i=8;
return(dat);
④向总线写一个bit
voidtmwbit(bittestb)
if(testb)
//如果是1
{TMDAT=0;
//先拉低总线
i++;
//延时2微秒
TMDAT=1;
i=8;
while(i>
}
else
//如果是0
我这么写大家能看懂吧!
与单片机连接图:
好!
现在上完整的程序:
(要慢慢的读了)
//LCD12864
//**********************************************************
//连线表:
CPU=89C51
SysClock=12MHz
*
//RS=P2.0
R/W=P2.1
E=P2.2
CS1=P2.3
CS2=P2.4
//DB0-DB7=P3.0-P3.7
/Reset=InBoard
//DS18B20
//单总线:
TMDAT=P1.1
//
//**********************************************************
#include<
reg52.h>
stdlib.h>
intrins.h>
stdio.h>
math.h>
#defineucharunsignedchar
#defineuintunsignedint
/********************LCD引脚定义********************/
#defineDataPortP3
//LCD128*64I/O信号管脚
sbit
RS=P2^0;
//数据指令
RW=P2^1;
//读写
E
=P2^2;
//使能
CSL=P2^3;
//左片选
CSR=P2^4;
//右片选
ucharPage;
//页地址
ucharCol;
//列地址
ucharcodeASC_5x7[];
//5×
7阵点字模
ucharstr[4];
//char的值转换成字符串
/********************DS18B20引脚定义********************/
/********************DS18B20函数定义*******************/
voiddmsec(uintcount);
//延时(count)毫秒
voidtmreset(void);
//产生复位信号
voidtmpre(void);
//检测器件应答信号
bittmrbit(void);
//从总线读一个bit
uchartmrbyte(void);
//从总线读一个字节
voidmwbyte(uchardat);
//向总线写一个字节
voidtmstart(void);
//启动一次温度转换
uchartmrtemp(void);
//读取温度数据
/********************LCD函数定义*******************/
voidBusyL(void);
//左屏检测忙
voidBusyR(void);
//右屏检测忙
voidCheckBusy(void);
//读取忙信号
voidDelay(uintMS);
voidLocatexy(void);
//将屏幕横向0-12纵向0-7转换成左、右屏的的X、Y
voidWriteCommandL(ucharCommandByte);
//向左屏写入指令
voidWriteCommandR(ucharCommandByte);
//向右屏写入指令
ucharReadData(void);
//读数据
voidWriteData(ucharDataByte);
//写数据
voidLcmClear(void);
//清屏
voidLcmInit(void);
//初始化
uchar*uchartostr(unsignedcharunm);
//将值转成字符串
voidLcmPutAsc(ucharasc);
//显示一个5×
7的ASC字符
voidLcmPutstr(ucharrow,uchary,uchar*str);
//在设定位置显示字符串
/*****************DS18B20函数体定义****************/
voiddmsec(uintcount)
while(count--)
{for(i=0;
i<
125;
i++){}
voidtmreset(void)
uchartmrbyte(void)
uchari,j,dat;
dat=0;
for(i=1;
=8;
i++)
{j=tmrbit();
dat=(j<
<
7)|(dat>
>
1);
voidtmwbyte(uchardat)
ucharj;
bittestb;
for(j=1;
j<
j++)
{testb=dat&
0x01;
dat=dat>
1;
if(testb)
else
voidtmstart(void)
tmreset();
tmpre();
dmsec
(1);
tmwbyte(0xcc);
tmwbyte(0x44);
uchartmrtemp(void)
uchara,b,y1,y2,y3;
tmwbyte(0xbe);
a=tmrbyte();
b=tmrbyte();
y1=a>
4;
y2=b<
y3=y1|y2;
return(y3);
/************LCD12864函数体***************/
/***************************/
/*检查Busy
*/
voidBusyL(void)
CSL=1;
CSR=0;
CheckBusy();
}
voidBusyR(void)
CSL=0;
CSR=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 第一 扩展 DS18B20 温度 测量 实际 制做
![提示](https://static.bdocx.com/images/bang_tan.gif)