DS1820温度测量程序
#include <reg51.h>
#include <absacc.h>
#include <stdio.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit P3_5=P3^5;
uchar TEMP; // 温度值的变量;
uchar flag1; // 结果为负和正的标志位。
void delay (unsigned int count)
{
unsigned int i;
while (count)
{
i =200;
while (i>0) i--;
count--;
}
}
void tmreset (void) // 发送复位和初始化
{
unsigned int i;
P3_5 = 0;
i = 103;
while (i>0) i--; // 延时
P3_5 = 1;
i = 4;
while (i>0) i--;
}
bit tmpread (void) // 读取数据的一位
{
unsigned int i;
bit dat;
P3_5 = 0; i++;
P3_5 = 1; i++; i++; //延时
dat = P3_5;
i = 8; while (i>0) i--; // 延时
return (dat);
}
unsigned char tmpread2 (void) //读一个字节
{
unsigned char i,j,dat;
dat = 0;
for (i=1;i<=8;i++)
{
j = tmpread ();
dat = (j << 7) | (dat >> 1);
}
return (dat);
}
void tmpwrite (unsigned char dat) //写一个字节
{
unsigned int i;
unsigned char j;
bit testb;
for (j=1;j<=8;j++)
{
testb = dat & 0x01;
dat = dat >> 1;
if (testb)
{
P3_5 = 0; // 写0
i++; i++;
P3_5 = 1;
i = 8; while (i>0) i--;
}
else
{
P3_5 = 0; // 写0
i = 8; while (i>0) i--;
P3_5 = 1;
i++; i++;
}
}
}
void tmpchange(void) // ds1820 开始转换
{
tmreset (); // 复位
//tmpre (); // 等待存在脉冲
delay (1); // 延时
tmpwrite (0xcc); // 跳过序列号命令
tmpwrite (0x44); // 发转换命令 44H,
}
void tmp (void) // 读取温度
{
unsigned char a,b;
tmreset (); // 复位
delay (1); // 延时
tmpwrite (0xcc); // 跳过序列号命令
tmpwrite (0xbe); // 发送读取命令
a = tmpread2 (); // 读取低位温度
b = tmpread2 (); //读取高位温度
flag1=b; //若b为1则为负温
if(flag1)
{
TEMP=~a+1; //如果为负温则去除其补码
}
else
{
TEMP=a;
}
}
rom() // 读取器件序列号子程序
{
tmreset (); //复位
delay (1); //延时
tmpwrite(0x33); //发送读序列号子程序
}
main()
{
do{
tmpchange(); // 开始温度转换
delay(200); // 读取延时
tmp(); //读取温度
}while(1);
}
DS1820温度测量程序相关推荐
- DS18B20温度测量程序文件(简单通用)
DS18B20是一个非常简单的温度传感器,对于像我这样单片机萌新是比较友好的.网上关于它的介绍非常多,包括原理.引脚.通信.以及51单片机.STM32的各种代码等等.本人写了一个简单的ds18b20. ...
- 简易无接触温度测量与身份识别装置【2020年大学生电子设计竞赛F题】
点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达 赛题分析 通过对赛题的分析研究,完成题目的要求需要满足以下几点功能要求: (1)非接触 ...
- 编程精粹 --Microsoft编写优质无错C程序秘诀
献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...
- 16-《电子入门趣谈》第三章_电子世界中的五官---传感器-3.2.1DS18B20
好消息:请在手机淘宝或闲鱼上搜索"电子入门趣谈",有惊喜哦 :) 我把全本电子入门趣谈的电子版(包括科技提升和理论升华部分,共计50余万字)放到上面开始兜售啦,如果您真的喜欢这本书 ...
- 北京电子科技学院c语言实验报告,最新单片机 实训报告电子万年历实训报告.doc...
最新单片机 实训报告电子万年历实训报告 河南工程学院 单片机 实训报告 学 院 电气信息工程学院 专 业 电气工程及其自动化 组员及学号 李 东 盼 201250712138 高 辉 20125071 ...
- POCO C++库学习和分析 -- 序
POCO C++库学习和分析 -- 序 1. POCO库概述: POCO是一个C++的开源库集.同一般的C++库相比,POCO的特点是提供了整一个应用框架.如果要做C++程序应用框架的快速开发,我觉得 ...
- 基于pt100的温度测量系统设计 c语言程序 四臂电桥,基于PT100的温度测量系统设计...
基于PT100的温度测量系统设计 摘 要 本文首先简要介绍了铂电阻PT100的特性以及测温的方法,在此基础上阐述了基于PT100的温度测量系统设计.在本设计中,是以铂电阻PT100作为温度传感器,采用 ...
- 基于pt100的温度测量系统设计 c语言程序 四臂电桥,基于PT100的温度测量系统设计毕业论文.DOC...
开题信息 摘 要 根据要求设计一个基于STC12C5A60S2单片机处理,PT100为传感器的温度测量系统. 在本设计中,是以铂电阻PT100作为温度传感器,采用恒流测温的方法,通过单片机进行控制,以 ...
- STM8S103电路板TMP275温度模采集TM1650数码管显示程序温度测量设计
程序开发环境为IAR FOR STM8 1.40 主控MCU为STM8S103F3P6 温度采集芯片位TMP275,采用IIC接口 显示采用四位共阴数码管 四位数码管驱动芯片位TM1650,采用IIC ...
最新文章
- 【深度学习】模式识别技术探索之决策树(Decision tree)
- ONOS系统架构演进,实现高可用性解决方案
- Ajax跨域请求解决方案——jsonp
- 线段树基础操作--单点or区间更新+查询
- 百度音乐 android,百度音乐旧版本
- 机器人编程常用语言汇总(WeDo/EV3/Arduino/Scratch)
- http请求axios封装
- Linux开发环境——RHEL7更换yum源
- php运行方式isapi,在IIS6中配置PHP运行(ISAPI模式)环境(1)
- 微信扫一扫下载apk 微信直接下载APK(APP)的解决方案
- 应用克隆漏洞原理分析
- ifconfig 命令使用
- matplotlib 绘制柱状图且上方显示数据
- 垂直搜索开发:垂直搜索引擎开发全过程[原创]
- windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法
- 【LogiSim】便利的仿真软件,有了这个我又对硬件有了兴趣~
- Linux部署人大金仓(Kingbase8)
- EMC电磁兼容测试项目简介
- 手把手教你 Tableau 绘制填充地图(十七)
- fx5800p编程教程_FX5800P计算器 使用方法与编程技巧
热门文章
- 微信朋友圈自动刷评论
- 基于51单片机的水流量传感器测试系统
- 软件测试常见的智力题
- 进程分配算法(FCFS,SJF,RR)
- 【PIC单片机】2.编译器下载
- 插入数据库insert into 出错 unrecognized token:
- 搜狗浏览器屏蔽广告插件_“云法庭”里“云勘验” 法院开审搜狗浏览器插件屏蔽优酷视频广告案...
- windows操作系统当中常用的DOS命令
- python中continue的意义是_Python中的continue是什么
- centos7 桌面设置