完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
延时我就不多说了,可以参考下这个帖子:https://bbs.elecfans.com/jishu_179340_1_1.html,百度谷歌下
DS18B20的程序ds18b20.h #ifndef _DS18B20_H_ #define _DS18B20_H_ bit DS18B20_INIT (void) ; unsigned char DS18B20_R (void); void DS18B20_W (unsigned char dat); #endif DS18b20.c #include #include #include "main.h" #include "ds18b20.h" ***it DQ = P3 ^ 4; //定义通信端口 /******************************************************** DS18B20_INIT(void) 主机发送复位脉冲最少480US,DS18B20等待15~60US 返回:1:失败 0:成功 ********************************************************/ bit DS18B20_INIT (void) { bit tmp; DQ = 1; //DQ复位 _nop_ (); //稍做延时 DQ = 0; //单片机将DQ拉低 _delay_us(500); //延时 480us-960us之间 DQ = 1; //拉高总线 _delay_us(60); //delay 60us tmp = DQ; _delay_us(240); //delay 240us return tmp; } //读一个字节 unsigned char DS18B20_R (void) { unsigned char i = 0; unsigned char dat = 0; for (i = 8; i > 0; i--) { DQ = 0; // 给脉冲信号 dat >>= 1; DQ = 1; // 给脉冲信号 if (DQ) dat |= 0x80; _delay_us(60); //延时60us } return (dat); } //写一个字节 void DS18B20_W (unsigned char dat) { unsigned char i = 0; for (i = 8; i > 0; i--) { DQ = 0; DQ = dat & 0x01; _delay_us(80); //延时80us DQ = 1; dat >>= 1; } _delay_us(100); //延时100us } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
304 浏览 0 评论
【瑞萨RA2L1入门学习】+ MacOS安装e2studio
253 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
650 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示
510 浏览 0 评论
641 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12211 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 11:34 , Processed in 0.598378 second(s), Total 39, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号