您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 南平分类信息网,免费分类信息发布

说一说温度传感器DS18B20 89C51单片机C语言程序

2024/1/22 1:31:20发布18次查看
温度传感器接近开关是一种无需与运动部件进行机械直接接触而可以操作的位置开关,当物体接近开关的感应面到动作距离时,不需要机械接触及施加任何压力即可使开关动作,从而驱动直流电器或给计算机(plc)装置提供控制指令。
#*宏定义 字符型数据 整型数据 *
#
dd;
dq=p2^2; 定义ds18b20总线io
;
c[10] = {03, 006, 05, 04, 066, 06,
07, 007, 07, 06};
c[] = {00, 0fe, 0fd, 0fb, 0f7, 0ef, 0df, 0bf, 07f};
*****延时子程序*****
d_ds18b20( )
{
(--) ;
}
() 延时子程序 入口参数
{
;
=0;({++;}
;
}
*****初始化ds18b20*****
i_ds18b20()
{
=0; dq = 1; dq复位
d_ds18b20(2); 稍做延时
dq = 0; 单片机将dq拉低
d_ds18b20(80); 精确延时,大于480
dq = 1; 拉高总线
d_ds18b20(14);
= dq; 稍做延时后,如果=0则初始化成功,=1则初始化失败 d_ds18b20(20);
}
*****读一个字节*****
roc()
{
=0; = 0;
(=8;0;--)
{
dq = 0;给脉冲信号
=1;
dq = 1;给脉冲信号
(dq)
|=080;
d_ds18b20(8);
}
();
}
*****写一个字节*****
woc()
{
=0;(=8; 0; --)
{
dq = 0;
dq = 001;
d_ds18b20(10);
dq = 1;
=1;
}
}
*****读取温度*****
rt()
{
=0; =0; =0;=0; i_ds18b20();
i_ds18b20();
woc(0cc); 跳过读序号列号的操作
woc(044); 启动温度转换
d_ds18b20(20);
i_ds18b20();
woc(0cc); 跳过读序号列号的操作
woc(0be); 读取温度寄存器
=roc(); 读低8位
=roc(); 读高8位
=; =8;
=|; =*00625; = *10+05; 放大10倍输出并四舍五入
();
}
()
{
(1)
{
=rt(); 是3位数的 是温度扩大了10倍
p0 = c[100];
p1 = c[1];
(100);
dd=100;=-dd*100;
p0 = c[10];
p1 = c[2];
(100);
p0 = 080;
p1 = c[3];
(100);
p0 = c
[%10];
p1 = c[4];
(10);
南平分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录