完善资料让更多小伙伴认识你,还能领取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 } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
零知经验——STM32F4驱动ICM20948 九轴运动传感器 + VOFA上位机可视化验证与抗漂移优化
1284 浏览 0 评论
1107 浏览 0 评论
1141 浏览 0 评论
零知开源——STM32F4驱动MAX31865实现PT100高精度测温
2461 浏览 1 评论
《ESP32S3 Arduino开发指南》第二章 Arduino基础知识
6316 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
13389 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-6-16 09:38 , Processed in 0.999350 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191