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

福鼎网站建设9uu域名更新自动转跳

福鼎网站建设,9uu域名更新自动转跳,商标设计免费的app,企业网络搭建及应用实验报告目录 一.元件介绍及原理 二,应用:DS18B20读取温度 一.元件介绍及原理 1.元件 2.内部介绍 本次元件使用的是单总线 以下为单总线的介绍 时序结构 操作流程 本次需要使用的是SKIP ROM 跳过, CONVERT T温度变化,READ SCRATCHPAD…

目录

一.元件介绍及原理

二,应用:DS18B20读取温度


一.元件介绍及原理

1.元件

2.内部介绍

本次元件使用的是单总线

以下为单总线的介绍

时序结构

操作流程

本次需要使用的是SKIP ROM 跳过,  CONVERT T温度变化,READ SCRATCHPAD读

数据帧

数据存储

根据上图所示原理,所需要的延时值为绝对数值,可以在STC中生成

二,应用:DS18B20读取温度

先根据单线的时序结构写好对应的五个函数功能,再在DS18B20数据帧中调用单线的函数实现数据帧的功能,最后在main函数中调用LCD1602和其他功能函数显示温度

1.单线功能函数

#include <REGX52.H>//引脚定义
sbit OneWire_DQ=P3^7;/*** @brief  单总线初始化* @param  无* @retval 从机响应位,0为响应,1为未响应*/
unsigned char OneWire_Init(void)
{unsigned char i;unsigned char AckBit;OneWire_DQ=1;OneWire_DQ=0;i = 247;while (--i);		//Delay 500usOneWire_DQ=1;i = 32;while (--i);			//Delay 70usAckBit=OneWire_DQ;i = 247;while (--i);		//Delay 500usreturn AckBit;
}/*** @brief  单总线发送一位* @param  Bit 要发送的位* @retval 无*/
void OneWire_SendBit(unsigned char Bit)
{unsigned char i;OneWire_DQ=0;i = 4;while (--i);			//Delay 10usOneWire_DQ=Bit;i = 24;while (--i);			//Delay 50usOneWire_DQ=1;
}/*** @brief  单总线接收一位* @param  无* @retval 读取的位*/
unsigned char OneWire_ReceiveBit(void)
{unsigned char i;unsigned char Bit;OneWire_DQ=0;i = 2;while (--i);			//Delay 5usOneWire_DQ=1;i = 2;while (--i);			//Delay 5usBit=OneWire_DQ;i = 24;while (--i);			//Delay 50usreturn Bit;
}/*** @brief  单总线发送一个字节* @param  Byte 要发送的字节* @retval 无*/
void OneWire_SendByte(unsigned char Byte)
{unsigned char i;for(i=0;i<8;i++){OneWire_SendBit(Byte&(0x01<<i));}
}/*** @brief  单总线接收一个字节* @param  无* @retval 接收的一个字节*/
unsigned char OneWire_ReceiveByte(void)
{unsigned char i;unsigned char Byte=0x00;for(i=0;i<8;i++){if(OneWire_ReceiveBit()){Byte|=(0x01<<i);}}return Byte;
}

2.DS18B20函数

#include <REGX52.H>
#include "OneWire.h"//DS18B20指令
#define DS18B20_SKIP_ROM			0xCC
#define DS18B20_CONVERT_T			0x44
#define DS18B20_READ_SCRATCHPAD 	0xBE/*** @brief  DS18B20开始温度变换* @param  无* @retval 无*/
void DS18B20_ConvertT(void)
{OneWire_Init();OneWire_SendByte(DS18B20_SKIP_ROM);OneWire_SendByte(DS18B20_CONVERT_T);
}/*** @brief  DS18B20读取温度* @param  无* @retval 温度数值*/
float DS18B20_ReadT(void)
{unsigned char TLSB,TMSB;int Temp;float T;OneWire_Init();OneWire_SendByte(DS18B20_SKIP_ROM);OneWire_SendByte(DS18B20_READ_SCRATCHPAD);TLSB=OneWire_ReceiveByte();TMSB=OneWire_ReceiveByte();Temp=(TMSB<<8)|TLSB;T=Temp/16.0;return T;
}

3.main函数

#include <REGX52.H>
#include "LCD1602.h"
#include "DS18B20.h"
#include "Delay.h"float T;void main()
{DS18B20_ConvertT();		//上电先转换一次温度,防止第一次读数据错误Delay(1000);			//等待转换完成LCD_Init();LCD_ShowString(1,1,"Temperature:");while(1){DS18B20_ConvertT();	//转换温度T=DS18B20_ReadT();	//读取温度if(T<0)				//如果温度小于0{LCD_ShowChar(2,1,'-');	//显示负号T=-T;			//将温度变为正数}else				//如果温度大于等于0{LCD_ShowChar(2,1,'+');	//显示正号}LCD_ShowNum(2,2,T,3);		//显示温度整数部分LCD_ShowChar(2,5,'.');		//显示小数点LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,4);//显示温度小数部分}
}

效果显示:

原理图

http://www.yayakq.cn/news/458554/

相关文章:

  • 哪家公司做网站最好东莞企业推广网站制作
  • 商城类网站和o2o网站银行网站开发技术方案
  • 牡丹江建设银行网站云南技术网站建设销售
  • 企业网站建设费用怎么记账自己可以做网站么
  • 怎么给网站做网站地图国内外知名市场调研公司
  • 网站搜索排优化怎么做网站备案更改网站负责人
  • opensns wordpress搜索引擎排名优化亚当
  • 教育类电商网站wordpress图片使用图床
  • 天津常规网站建设系列福建网站模板
  • 西安计算机培训机构哪个最好品牌推广百度seo
  • 做设计在哪个网站接单装修在线设计平台
  • 宜昌永东建设网站新网站收录多少关键词
  • 建设网站了还能消除吗互联网网站建设水平
  • 网站开发公司 logo个人网站备案需要多久
  • 个人网站建站指南万网网站电话
  • 内蒙古创意网站开发施工企业的维保技术方案
  • 网站推广服务方案南海建设工程交易中心网站
  • 网站登录入口大全it行业怎么入门
  • 小说阅读网站开发如何制作网页插件
  • 微信 公众号 微网站开发学做网站需要什么软件
  • 网站左侧分类菜单怎么做俄文视频网站开发
  • 怎么网站建设公司wordpress mu 安装
  • 上海外贸建站it运维管理系统
  • wordpress 整站模板dw做链接网站无法显示该页面
  • 宁波建设银行网站首页wordpress多媒体上传
  • 重庆巴南网站制作北京经济技术开发区建设局网站
  • 购物车网站建设网页设计一般一个月工资多少
  • 做的物流网站企业网站 flash
  • 国外扁平化网站设计欣赏叫企业做的网站可不可以自己改主题
  • 网站开发项目计划书ppt电子商务网站建设有管理课后答案