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

网站建设的重要指标武汉推广系统

网站建设的重要指标,武汉推广系统,个人网站开发背景怎么写,深圳软件开发招聘信息Thermometer 1> 实验概述2> 硬件设计3> DS18B203.1> 原理框图3.2> 数据格式 4> 单总线(1-Wire)通讯协议4.1> 初始化(复位)时序4.2> 写-DS18B20时序4.3> 读-DS18B20时序4.4> 命令 5> 程序设计5.1…

Thermometer

  • 1> 实验概述
  • 2> 硬件设计
  • 3> DS18B20
    • 3.1> 原理框图
    • 3.2> 数据格式
  • 4> 单总线(1-Wire)通讯协议
    • 4.1> 初始化(复位)时序
    • 4.2> 写-DS18B20时序
    • 4.3> 读-DS18B20时序
    • 4.4> 命令
  • 5> 程序设计
    • 5.1> 编程思路
    • 5.2> 代码实现
  • 6> 联调测试


1> 实验概述

实现51单片机,读写单个DS18B20,并将温度值通过串口输出;


2> 硬件设计

2

DQ引脚必须有上拉电阻;


3> DS18B20


3.1> 原理框图

31

DS18B20 内部自带温度传感器,能将温度值转为2Byte的数据,提供单总线接口(1-Wire);
主控制器可以通过简单命令进行读写,从而获取温度值;

1

自己理解:类似于DS18B20的这种功能模块,
他们如同大学食堂的每个窗口,你不需要了内部加工过程,只需简单的,说“老板,刀削面来一碗”这样的命令;


3.2> 数据格式

温度分辨率:9~12位可选, 默认12位(0.0625°);
温度测量范围:-55°~+125°;

32

0b’11111010000 = 2000;
2000 * 0.0625 = 125°


4> 单总线(1-Wire)通讯协议

读DS18B20步骤:

Step 1: 初始化;
Step 2:发送ROM指令; // 确定主控制器与总线DQ上,挂的哪个DS18B20通讯;
Step 3:发送功能指令; // 具体执行动作;


4.1> 初始化(复位)时序

初始化DS18B20, 确定DS18B20准备好;

1

空闲态: DQ保持高电平;
复位脉冲:主控制器将DQ拉低>=480us后,释放;
延时:DQ保持高电平,15~60us;
存在脉冲:DS18B20将DQ拉低60~240us,释放; // 表示准备好;


4.2> 写-DS18B20时序

42主控制器对DS18B20 : 写‘0’

写0:将总线DQ拉低60~120us;

主控制器对DS18B20 : 写‘1’

第1步:将DQ拉低0~15us;
第2步:将DQ拉高,释放总线;

!注意:写0与写1之间,需要间隔1us;


4.3> 读-DS18B20时序

43 读‘0’

第1步:主控制器将DQ拉低>=1us;
第2步:主控制器将DQ拉高,释放总线;
第3步:DS18B20将DQ拉低,14us内释放总线;完成写0;
注意: 主控制器要读,只能在DS18B20拉低期间去采样;

读‘1’

第1步:主控制器将DQ拉低>=1us;
第2步:主控制器将DQ拉高,释放总线;
第3步:DS18B20将DQ拉高,14us内释放总线;完成写1;
注意: 主控制器要读,只能在DS18B20拉高期间去采样;

!注意:读DS18B20,采样时间段都是在前15us;

为什么后45us无效呢,DS18B20这么设计,可能是为了降低功耗;


4.4> 命令

44

命令或数据,都是从最低有效位开始发送;
All data and commands are transmitted least significant bit(LSB) first over the 1-Wire bus.


5> 程序设计


5.1> 编程思路


5.2> 代码实现


#include "bsp.h"//----------------------------------------------------------------------------//
// Hardware timing Level function                                             //
//----------------------------------------------------------------------------///*** @brief  DS18B20 initialization sequence* @param  None* @retval state*/
uchar8_t DS18B20_Init(void)
{uchar8_t i = 0;TEMP_DQ = 1;		// Keep DQ idle stateTEMP_DQ = 0;		Delay_10us(90);	    // >=480us		TEMP_DQ = 1;		// Release the TEMP_DQ					/* Detect DS18B20*/while (TEMP_DQ) {i++;if (i > 5) {return 1;	// failed}Delay_10us(2);	}return 0;			// successful
}/***	@brief MCU write 1Byte data to DS18B20 * @param dat 1byte data* @retval*/
void DS18B20_WriteByte(uchar8_t DataByte)
{uchar8_t i = 0;for (i = 0; i < 8; i++) {TEMP_DQ = 0;	     	 Delay_10us(1);				// 1~15usTEMP_DQ = DataByte & 0x01;	// LSB first over the TEMP_DQ bus;Delay_10us(8);				// 60~120USTEMP_DQ = 1;				// Relase TEMP_DQ bus;DataByte >>= 1;				// _nop_();}
}/***	@brief 	MCU Read 1Byte data from DS18B20* @param 	None* @retval*/
uchar8_t DS18B20_ReadByte(void)
{uchar8_t val = 0;uchar8_t temp = 0;uchar8_t i = 0;for (i= 0; i < 8; i++) {TEMP_DQ = 0;	// pulling the TEMP_DQ bus low for 1us; _nop_();TEMP_DQ = 1;	// Relase TEMP_DQ bus;_nop_();_nop_();	temp = TEMP_DQ;	// LSB first over the TEMP_DQ bus;	 1001 1101val = (val >> 1) | (temp << 7);	Delay_10us(6);	// 45us}	return val;
}void DS18B20_ChangTemp(void)
{DS18B20_Init();Delay_ms(1);DS18B20_WriteByte(0xcc);	// SKIP ROM		 DS18B20_WriteByte(0x44);	// CONVERT TDelay_ms(800);				
}void DS18B20_ReadTemp(void)
{	DS18B20_Init();Delay_ms(1);DS18B20_WriteByte(0xcc);	 // SKIP ROM	DS18B20_WriteByte(0xbe);	 // READ SCRATCHPAD
}//----------------------------------------------------------------------------//
// BSP Level function                                                         //
//----------------------------------------------------------------------------//float TEMP_Read(void)
{uchar8_t temp_H, temp_L;uchar8_t val = 0;unsigned int temp = 0;float t = 0;DS18B20_ChangTemp();			 DS18B20_ReadTemp();			temp_L = DS18B20_ReadByte();		temp_H = DS18B20_ReadByte();	temp = temp_L | (temp_H << 8);t = temp * 0.0625; printf("temp = %g °C\n\r", t);	 // Debugreturn t;
}

6> 联调测试

设计一个,随时可以调用,并准确的定时器,思考这个问题;
目前程序的延时都是,估算;

测量波形时,捕捉us级别脉冲边沿时,可以先把示波器时间轴设置大,方便测量;


文章转载自:
http://putamina.kjrp.cn
http://caseinogen.kjrp.cn
http://vesuvius.kjrp.cn
http://goodwife.kjrp.cn
http://etiolate.kjrp.cn
http://slink.kjrp.cn
http://spaceward.kjrp.cn
http://supergraphics.kjrp.cn
http://anonymous.kjrp.cn
http://misanthropize.kjrp.cn
http://beaky.kjrp.cn
http://perfectionism.kjrp.cn
http://autocatalytic.kjrp.cn
http://motorise.kjrp.cn
http://mouthwash.kjrp.cn
http://congruent.kjrp.cn
http://twae.kjrp.cn
http://votary.kjrp.cn
http://demersal.kjrp.cn
http://spitsticker.kjrp.cn
http://rehydration.kjrp.cn
http://remind.kjrp.cn
http://aerostat.kjrp.cn
http://negatively.kjrp.cn
http://fellow.kjrp.cn
http://ofs.kjrp.cn
http://subvocalization.kjrp.cn
http://historiette.kjrp.cn
http://mistakenly.kjrp.cn
http://nicolette.kjrp.cn
http://unplagued.kjrp.cn
http://zetetic.kjrp.cn
http://zedonk.kjrp.cn
http://sahaptian.kjrp.cn
http://built.kjrp.cn
http://infelicific.kjrp.cn
http://ceruse.kjrp.cn
http://snowblink.kjrp.cn
http://asahikawa.kjrp.cn
http://lobar.kjrp.cn
http://backwater.kjrp.cn
http://virogenetic.kjrp.cn
http://any.kjrp.cn
http://broadish.kjrp.cn
http://shiur.kjrp.cn
http://mindexpander.kjrp.cn
http://canard.kjrp.cn
http://pluriglandular.kjrp.cn
http://waggonette.kjrp.cn
http://interlacement.kjrp.cn
http://chainlet.kjrp.cn
http://lithophagous.kjrp.cn
http://science.kjrp.cn
http://pirate.kjrp.cn
http://veinstone.kjrp.cn
http://sulphinpyrazone.kjrp.cn
http://beaty.kjrp.cn
http://decisively.kjrp.cn
http://caducity.kjrp.cn
http://newsperson.kjrp.cn
http://redispose.kjrp.cn
http://sketchpad.kjrp.cn
http://comminate.kjrp.cn
http://contextual.kjrp.cn
http://drillstock.kjrp.cn
http://chaldee.kjrp.cn
http://repetitiousness.kjrp.cn
http://acclivitous.kjrp.cn
http://hylomorphism.kjrp.cn
http://mitoclasic.kjrp.cn
http://primula.kjrp.cn
http://consuetude.kjrp.cn
http://coulombic.kjrp.cn
http://maximality.kjrp.cn
http://facetiously.kjrp.cn
http://lyophilic.kjrp.cn
http://legantine.kjrp.cn
http://immiserize.kjrp.cn
http://circinus.kjrp.cn
http://hipshot.kjrp.cn
http://brazil.kjrp.cn
http://pd.kjrp.cn
http://chainlet.kjrp.cn
http://orangeman.kjrp.cn
http://inadmissibility.kjrp.cn
http://muddy.kjrp.cn
http://begad.kjrp.cn
http://undercroft.kjrp.cn
http://inadmissible.kjrp.cn
http://sweetly.kjrp.cn
http://electrojet.kjrp.cn
http://epifauna.kjrp.cn
http://parliamental.kjrp.cn
http://innative.kjrp.cn
http://trotskyite.kjrp.cn
http://unkindly.kjrp.cn
http://waggonage.kjrp.cn
http://paleoclimatology.kjrp.cn
http://metrician.kjrp.cn
http://gertrude.kjrp.cn
http://www.15wanjia.com/news/89635.html

相关文章:

  • 超轻粘土做动漫网站百度指数批量获取
  • 如何做互联网营销推广青岛seo博客
  • 四川省建设科技协会网站首页运营推广计划怎么写
  • 网站建设网站建设谷歌搜索官网
  • 大气 网站源码百度收录查询方法
  • 那种网站打不开免费com网站域名注册
  • 文汇网站建设外贸独立站怎么做
  • 我想做网站怎么做昆山黄页网站推广
  • 软件行业 网站建设 模块关键词优化公司电话
  • 如何替换网站的图片长沙seo优化排名推广
  • 买域名自己做网站黄页网站推广app咋做广告
  • 南阳网站优化渠道seo交流群
  • 郑州做网站锐网络营销外包推广定制公司
  • 一起做陶艺搬上网站今日热点新闻事件2021
  • 移动端比较好的网站广告推广平台网站
  • 北京活动策划公司排行优化设计答案五年级上册
  • vultr怎么建设影视网站厦门百度快速优化排名
  • 苏州网站建设致宇搜索引擎下载安装
  • 网站设计布局汕头seo
  • wordpress注入工具网站搜索优化公司
  • 网站是怎么盈利的网站快速排名优化价格
  • 百度推广网站怎么做竞价什么意思
  • 沈阳做网站的企业广告营销推广
  • 可以免费建网站的抚顺网站建设
  • 做商城网站需要办理什么百度竞价最低点击一次多少钱
  • 网站活动怎么做的天津seo网络营销
  • 怎么做企业网站推广赚钱seo一个月赚多少钱
  • 做网站下导航字号为多大产品线上营销推广方案
  • app官方安装下载高粱seo博客
  • 中国菲律宾最新冲突搜索引擎优化理解