- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12、温度显示实验;单线总线特点
单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。
单总线通常要求外接一个约为 4.7K—10K 的上拉电阻,这样,当总线闲置时其状态为高电平。
;原理图解析;DS18B20单总线的工作方式;初始化时序图;/*****************************************************************************
* 函数名 : Ds18b20Init
* 函数功能 : 初始化
* 输入 : 无
* 输出 : 初始化成功返回1,失败返回0
*****************************************************************************/
unsigned char Ds18b20Init()
{
unsigned int i;
DSIO=0; //将总线拉低480us~960us
i=70;
while(i--);//延时642us
DSIO=1;//然后拉高总线,若DS18B20做出反应会将在15us~60us后将总线拉低
i=0;
while(DSIO) //等待DS18B20拉低总线
{
i++;
if(i50000)//等待50MS
return 0;//初始化失败
}
return 1;//初始化成功
}
;主机发出各种操作命令都是向DS18B20写0和写1组成的命令字节,接收数据时也是从DS18B20读取0或1的过程。因此首先要搞清主机是如何进行写0、写1、读0和读1的。
写周期最少为60微秒,最长不超过120微秒。写周期一开始做为主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则将总线置为低电平,若主机想写1,则将总线置为高电平,持续时间最少60微秒直至写周期结束,然后释放总线为高电平至少1微秒给总线恢复 。而DS18B20则在检测到总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。;读操作时序图;/*******************************************************************************
* 函数名 : Ds18b20WriteByte
* 函数功能 : 向18B20写入一个字节
* 输入 : com
* 输出 : 无
*******************************************************************************/
void Ds18b20WriteByte(unsigned char dat)
{
unsigned int i,j;
for(j=0;j8;j++)
{
DSIO=0; //每写入一位数据之前先把总线拉低1us
i++;
DSIO=dat0x01; //然后写入一个数据,从最低位开始
i=6;
while(i--); //延时68us,持续时间最少60us
DSIO=1; //然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值
dat=1;
}
};对于读数据操作时序也分为读0时序和读1时序两个过程。
读周期是从主机把单总线拉低1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。作为从机DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确认为1。完成一个读时序过程,至少需要60微秒才能完成;写操作时序图;/*******************************************************************************
* 函数名 : Ds18b20ReadByte
* 函数功能 : 读取一个字节
* 输入 : com
* 输出 : 无
*******************************************************************************/
unsigned char Ds18b20R
您可能关注的文档
- 第二章 3G无线高清图像传输设备技术参数2.doc
- 操纵杆支架5序课程设计说明书摘要.doc
- 第八章 数字集成电路设计实验--反相器.doc
- 计算机函授统考试题一要领.doc
- 笔记本电脑双屏显示的故障处理与疑问.doc
- 第三章 6M显示器招标参数模板.doc
- 第七章 postfix邮件测试.doc
- 操纵叉车安全规则摘要.doc
- 计算机组装及维护教材.doc
- 基于弹性分组环技术电力通信网络建设.pdf
- 数列核心考点教师版.pdf
- 因式分解2解析.pdf
- 2024-2025学年湖北鄂东南省级示范高中教育教学改革联盟学校起点考试高二数学试卷-普通用卷.docx
- 八上开学考试数学试题.docx
- 精品解析:重庆市西南大学附属中学2023-2024学年七年级上学期数学期中模拟试题(解析版).pdf
- 四川省成都市第七中学2023-2024学年九年级上学期开学数学试题(原卷版).docx
- 精品解析:重庆市西南大学附属中学2023-2024学年七年级上学期数学期中模拟试题(原卷版).pdf
- TCRHA 055-2024 肝脏肿瘤3D可视化临床应用规范.pdf
- TCRHA 054-2024 高原红细胞增多症血液稀释疗法护理技术操作规程.pdf
- TCRHA 078-2024 眼前后节联合手术影像学检查及生物学测量方法.pdf
文档评论(0)