找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1305|回复: 0
收起左侧

单总线DS18B20温度测量

[复制链接]
ID:339044 发表于 2018-5-27 13:40 | 显示全部楼层 |阅读模式
之前上课尝试做的温度测量,用的是protues画的电路
部分代码:
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit smg1=out^4;
sbit smg2=out^5;
sbit DQ=P3^7;
void delay5(uchar);
void init_ds18b20(void);
uchar readbyte(void);
void writebyte(uchar);
uchar retemp(void);

void main(void)
{
   uchar i,temp;
   delay5(1000);
   while(1)
    {
     temp=retemp();
     for(i=0;i<10;i++)
    {
   out=(temp/10)&0x0f;
   smg1=0;
   smg2=1;
delay5(1000);
out=(temp%10)&0x0f;
smg1=1;
smg2=0;
delay5(1000);
}
}
}
void delay5(uchar n)
{
do
{
_nop_();
_nop_();
_nop_();
n--;
}
while(n);
}
void init_ds18b20(void)
{
uchar x=0;
DQ=0;
delay5(120);
DQ=1;
delay5(16);
delay5(80);
}
uchar readbyte(void)
{
uchar i=0;
uchar date=0;
for (i=8;i>0;i--)
{
DQ=0;
delay5(1);
DQ=1;
date>>=1;
if(DQ)
date|=0x80;
delay5(11);
}
return(date);
}


P255单总线DS18B20温度测量.rar

51.81 KB, 下载次数: 15, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表