当前位置: 首页 > news >正文

51蓝桥杯之DS18B20

DS18B20

基础知识

在这里插入图片描述
在这里插入图片描述

代码流程实现

在这里插入图片描述
将官方提供例程文件添加到工程中
在这里插入图片描述
在这里插入图片描述
添加onewire.c文件到keil4里面
在这里插入图片描述
在这里插入图片描述

一些代码补充知识

在这里插入图片描述

代码

#include "reg52.h"
#include "onewire.h"
#include "absacc.h"
unsigned char num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9
unsigned char num2[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//0-9unsigned int temp = 0;void DelaySMG(unsigned int t)
{while(t--);
}
void DisPlaySMG_Bit(unsigned pos, unsigned char dat)
{XBYTE[0xE000] = 0xff;XBYTE[0xC000] = 0x01 << pos;XBYTE[0xE000] = dat;}
void DisPlay_All(unsigned char dat)
{XBYTE[0xC000] = 0xff;XBYTE[0xE000] = dat;
}void DisPlaySMG_Temp()
{DisPlaySMG_Bit(7, num[(temp % 10)]);DelaySMG(100);DisPlaySMG_Bit(6, num2[(temp % 100) / 10]);DelaySMG(100);DisPlaySMG_Bit(5, num[temp / 100]);DelaySMG(100);DisPlaySMG_Bit(4, 0xff);DelaySMG(100);DisPlaySMG_Bit(3, 0xff);DelaySMG(100);DisPlaySMG_Bit(2, 0xff);DelaySMG(100);DisPlaySMG_Bit(1, 0xff);DelaySMG(100);DisPlaySMG_Bit(0, 0xff);DelaySMG(100);DisPlay_All(0xff);}
void Delay(unsigned int t)
{while(t--){DisPlaySMG_Temp();}}
void Read_DS18B20_temp()
{unsigned char LSB,MSB;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0x44);Delay(1000);init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0xbe);LSB = Read_DS18B20();MSB = Read_DS18B20();temp = MSB;temp = (temp << 8) | LSB;if((temp & 0xf800) == 0x0000){// °ÑСÊýÒÆ×ßtemp >>= 4;temp = temp*10;temp = temp + (LSB & 0x0f)*0.625;}}
void main()
{XBYTE[8000] = 0xff;while(1){Read_DS18B20_temp();DisPlaySMG_Temp();}}
http://www.lryc.cn/news/336575.html

相关文章:

  • TiDB 组件 GC 原理及常见问题
  • 【c++】STl-list使用list模拟实现
  • 号卡极团分销管理系统 index.php SQL注入漏洞复现
  • 内核驱动更新
  • 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)
  • 我为什么选择成为程序员?
  • Open CASCADE学习|统计形状拓扑数量
  • LeetCode 热题 100 题解(二):双指针部分(2)| 滑动窗口部分(1)
  • 常用的深度学习自动标注软件
  • 选择程序员是为什么?
  • 线程池参数如何设置
  • qt环境搭建-镜像源安装Qt Creator(5.15.2)以及配置环境变量
  • SQL Server详细安装使用教程
  • 深度解读C++17中的std::string_view:解锁字符串处理的新境界
  • 汇编基础-----常见命令基本使用
  • 科研学习|可视化——相关性结果的可视化
  • MapReduce过程解析
  • 速看!这8道嵌入式面试题你都会吗?
  • 基于SSM的电影网站(有报告)。Javaee项目。ssm项目。
  • SOCKS代理是如何提高网络性能和兼容性的?
  • 好菜每回味道不同--建造者模式
  • RuoYi-Cloud下载与运行
  • Vue2.x计算属性
  • Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
  • 【炒股Zero To Hero】MACD金叉死叉到底是否有效,加上这个指标回报率增加197倍
  • Linux网络名称空间和虚拟机有何区别
  • 【UE Niagara】蓝图获取粒子数据
  • 更改el-cascade默认的value和label的键值
  • 2024邮件工单系统排行揭晓:出海必备新宠
  • java题目17:以m行n列二维数组为参数进行方法调用,分别计算二维数组各列元素之和,返回并输出计算结果(MethodCalls17)