- 6
- 0
- 约4.72万字
- 约 159页
- 2017-02-16 发布于上海
- 举报
* * C语言程序: sbit DQ=P1^0; … void delay(unsigned int i) /*延时10us左右*/ { unsigned int j; for (j=i;j﹥0;j--); } bit reset(void) /*复位函数, 返回值为0复位成功; f返回值为1复位失败*/ { bit flag; DQ=0; /*在数据线上产生500us的低电平 */ delay(50); DQ=1; /*数据线拉高 ,延时30us*/ delay(3); * * flag=DQ; /*读取数据线状态flag =0:复位成功; flag =1:复位失败*/ delay(25); /*延时250us*/ return(flag); } void ds18b20_init(void) { while(1) { if(!reset ()) /*收到ds18b20的应答信号*/ { DQ=1; delay(30); /*延时300 us */ break; } else reset(); /*否则再发复位信号*/ } } * * 2.写时序 DS18B20写时序如图9-21,单片机在t0时刻将总线拉至低电平,从t0时刻开始的15us之内应将要写的数据位送到总线上。在t0后的15—60us内对总线采样,若为低电平,写入的是0,连续写2位之间的间隙应大于1us 。若为高电平,写入的为1。 图9-21 DS18B20写时序 * * 汇编语言程序: DQ BIT P1.0 … DELAY15US:MOV R7,#07H DJNZ R7,$ RET DELAY60US:MOV R7,#1EH DJNZ R7,$ RET WRITE_BYTE: MOV R7,#08H ;将累加器A中数循环写(先低位,后高位)入 DS18B20 SETB DQ NOP NOP * * LOOP1:CLR DQ ; 产生15us的负脉冲 CALL DELAY15US RRC A ; 将最低位数据移到cy MOV DQ,C ; 将最低位数据位送数据线 CALL DELAY60US ; 产生60us的负脉冲 SETB DQ ; 数据线拉高,为写入下一位做准备 CALL DELAY15US DJNZ R7,LOOP1 RET * * C语言程序: Sbit DQ=p1^0; void delay(unsigned int i) { unsigned int j; for (j=i;j﹥0;j--); } void wrbyte(unsigned char data) { uchar i; for(i=8;i0;i--) /*循环写8位(先低位,后高位)*/ { DQ=0; /*产生15us的负脉冲*/ delay(1); DQ=data0x01; /*将当前数据位送数据线*/ data=data1; /*将下一位数据移到最低位*/ delay(5); /*延时60us*/ DQ=1; /*数据线拉高,为写入下一位做准备*/ delay(1); } } * * 3.读时序 DS18B20读时序如图9-22,单片机在t0时刻将总线从高拉至低电平,保持1us。在t1时刻将总线拉高,延时15us。在t2时刻读取数据,并延时至少45us。在t3时刻将数据线拉高至少1us,为写入下一位数据做准备 。 图9-22 DS18B20读时序 * * 汇编语言程序: DQ BIT P1.0 … DELAY15US:MOV R7,#07H DJNZ R7,$ RET DELAY60US:MOV R7,#1EH DJNZ R7,$
您可能关注的文档
最近下载
- 《我的世界》诉《迷你世界》二审判决书.pdf VIP
- 等比数列说课市名师优质课比赛一等奖市公开课获奖课件.pptx VIP
- 中韩家庭伦理剧对比分析.doc VIP
- 2026-2030中国锌溴电池行业市场发展趋势与前景展望战略分析研究报告.docx
- 2025年等比数列说课课件.pdf VIP
- 短剧演员合同模板(3篇).docx VIP
- 2025年贵州省情省况核心知识点考核复习题库(含答案).docx
- 良品铺子股份有限公司成本控制问题分析.doc VIP
- JB∕T 11164-2021 吊钩抛丸清理机 技术条件.pdf
- 中国专家共识解读:内分泌性高血压继发性高血压院前与急诊诊治指南(2025版)PPT课件.pptx VIP
原创力文档

文档评论(0)