完善资料让更多小伙伴认识你,还能领取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板卡-开发板适配之电阻屏触摸
769 浏览 0 评论
1276 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之I2C-RTC
552 浏览 0 评论
ATK-DLRK3588开发板deepseek-r1-1.5b/7b部署指南
2890 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第五十章 WiFi热点实验
876 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12394 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 06:00 , Processed in 0.466314 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191