完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
void Delay1ms(u8 y) { u8 x; for( ; y>0; y--) { for(x=110; x>0; x--); } } void delay1us(u8 i) { do{_nop_();}while(--i); } void delay25us(u8 i) { do{_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();}while(--i); } u8 ds18b20init() { DSPORT=0; delay25us(25); DSPORT=1; delay25us(4); if(!DSPORT) return 1; else return 0; } void ds18b20write(u16 date) { u8 i; for(i=0;i<=7;i++) { DSPORT=0; delay1us(3); DSPORT=DSPORT&0x01; delay25us(2); DSPORT=1; date>>=1; } } u16 ds18b20read() { u8 i;u16 date; for(i=0;i<=7;i++) { DSPORT=0; date>>=1; DSPORT=1; if(DSPORT) date|=0x80; delay25us(1); DSPORT=1; } return date; } u16 ds18b20temp() { int temp = 0; u16 tmh, tml; delay1us(1); ds18b20init(); ds18b20write(0xcc); ds18b20write(0x44); Delay1ms(1); ds18b20init(); Delay1ms(1); ds18b20write(0xcc); ds18b20write(0xbe); tml= ds18b20read(); tmh= ds18b20read(); temp = tmh; temp <<= 8; temp |= tml; return temp; } |
|
相关推荐
1个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
6178 浏览 3 评论
7445 浏览 1 评论
7685 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
9477 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1277 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 03:47 , Processed in 0.696027 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号