- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ds18b20学习及例程详解教学讲义.ppt
Ds18b20使用;二,ds18b20特点;当转换分辨率为12位时,最大转换时间为750ms;
用户可定义的,非易失性(及断电不消失)的高低警报温度设置;
可选择的 8-pin SO (150mil), 8-pin μSOP,
和 3-pin TO-92 封装;
软件协议与ds1822兼容;
在温度控制,工业系统,日常消费品,等领域广泛使用。;三,特点详述;任何一个ds18b20,都有仅属于自己的一个64位的识别码,这使得,可以有多个ds18b20通过一条数据线与主机相连并发挥功能,换句话说,也就是一个主机,可以通过一条数据线,同时控制多个ds18b20进行工作(可以在大范围,多地点温度采集控制中使用);
;四,ds18b20内部构造综述;64位ROM存储了ds18b20的唯一的序列码:
高速暂存寄存器包含了2byte的温度存储器,用来存储ds18b20温度转换得到的数据;
;非易失性的警报触发存储器,用来存储高低警报温度T_high与T_low;
configuration register:用户对其操作,可以控制ds18b20的转换精度;;Ds18b20存在一个内部电容Cpp,起到寄生电源的作用;
这使得,ds18b20的Vdd接地时,依然可以通过数据线,获取power,当DQ为高电平时,Cpp充电,当DQ为低电平时,Cpp放电,为ds18b20提供能量;;五,温度寄存器;温度寄存器格式如图;
其中高位字节中的bit11-bit15这五位用来表示温度的正负;
即s=0时,表示温度为正值;
S=1时,表示温度为负值;;Ds18b20有用户可控的9-12位转换精度;
当转换精度为12位时,如图,由bit0-bit11存储(符号也算一位)。
转换精度为11位时,bit0不再使用;
转换精度为10位时,bit0,bit1不再使用;
转换精度为9位时,bit0-bit2不再使用;;12位转换精度时的存储示例图:
12位转换精度时,即最小分辨率为0.0625
负数存储时采用补码方式;;这里有一点需要主要的是:Ds18b20温度存储器是高速暂存,也就是说,ds18b20掉电时,这个数据将会丢失。
Ds18b20上电复位时,温度存储器中内容,默认为+85℃。所以,使用ds18b20时,如果在温度显示之前,没有来的及进行一次转换完成,那么就会看到一个85℃的短暂显示。;六,警报信号;与TH(或TL)中的bit7-bit0,相对应的是温度存储器中的bit11-bit4,两者进行比较;
当温度TH或TL时,处于ds18b20内部中的警报标志将会置位。
每一次温度转换后,ds18b20中的警报标志位都会刷新。所以如果警报状况消失后,在接下来的一次温度转换中,这个标志位将清零。;主机可以通过[ECh]命令来查看警报标志位情况。(具体祥看datasheet);七,ds18b20供电;两种情况电路图:;;使用寄生电源时,具体注意事项,看datasheet 第5页
;八,配置寄存器;九,信息控制交互顺序;操作时遵从这个顺序十分重要,因为这个顺序中任何一个步骤丢失或者不按规定执行,ds18b20将不会进行响应。
可以不按这个顺序进行的命令只有search rom【F0H】以及Alarm Search [ECh] commands,因为在以上两个命令进行后,必须紧随着进行的是step1,即初始化命令。;十,初始化;存在脉冲,使得主机知道,在数据线上,存在着ds18b20准备好了接受操作命令;
首先,主机将数据线,拉低480us以上,然后释放数据线(即使其变为高电平),15—60us等待后,ds18b20将数据线拉低60-240us作为应答,然后释放数据线,等待与应对整个过程应该480us以上.整个初始化完成。
;初始化时序:;所对应的程序:
void dsinit()
{
uint i;
ds=0;
i=60;
while(i 0) i--; //延时523us(datasheet要求480us)
ds=1;
i=4;
while(i 0) i--;
};//********************************ds18b20wait函数
void dswait()
{
uint i;
//while(ds); //这行无用,反而容易出现错误,可注释掉
while(!ds); //检测到应答脉冲
i=60;
while(i 0) i--; //延时,因为ds18b20会拉低dq约240us,切RX时间不小于480us
};十一,ROM cmd;所有的rom cmd
SEARCH ROM [F0h]
READ ROM [33h]
MATCH
您可能关注的文档
- COPD稳定期治疗进展1培训讲学.ppt
- COPD稳定期治疗进展二培训讲学.ppt
- COPD稳定期治疗进展培训讲学.ppt
- COPD稳定期治疗进展讲解材料.ppt
- COPD诊断指南培训教材.ppt
- CORPORATE APPROACHES TO IT GOVERNANCE(PPT 31)培训教材.ppt
- cost accounting f2-chapter11讲义教材.ppt
- co潴留的鉴别与处理 ppt课件知识讲稿.pptx
- cpap业务学习 ppt课件知识讲稿.ppt
- crm客户关系管理ppt92教学讲义.ppt
- 量化点评报告:ERP失效后,如何锚定A股价值?-20240123-国盛证券-10页.pdf
- 金融工程资产配置系列专题:基于“宏观预期”的权益择时系统与2024年股债组合构建展望-20240123-中银证券-15页.pdf
- 金融工程深度报告:如何从ETF的提纯Alpha中学习信息-20240122-东证期货-20页.pdf
- 家用电器行业跟踪报告:重仓持股比例续升,美的获增持-20240125-万联证券-10页.pdf
- 估值与基金重仓股配置监控:哪些行业进入高估区域?-20240120-天风证券-15页.pdf
- 中班教案《打针我不怕》3篇.pdf
- 中国考古发现黄金.pdf
- 第十七单元活血化瘀药.pdf
- 大学校区宿舍粉刷工程施工组织设计方案.pdf
- 医学护理三基试题14.8皮肤病性病护理学试题(护理).pdf
文档评论(0)