完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uchar unsigned char #define uint unsigned int unsigned int dudata[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; unsigned int wedata[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; ***it we=P2^1; ***it du=P2^0; ***it DQ=P2^2; uchar tempdata[6]; uchar temph,templ,temp,flag_get,num; void ds18B20 (); void write_B(uchar dat); uchar read_B(); uint duqutemp (); void display (); void delay (uchar i) { while(i--); } void display () { static int i=0; P0=0; we=1; we=0; P0=wedata; we=1; we=0; P0=tempdata; du=1; du=0; delay(200); i++; if(i==6) i=0; } void main ( ) { while(1) { tempdata[5]=0x39; //最后一位显示温度符号 cC tempdata[0]=0; tempdata[1]=dudata[temph/100]; tempdata[2]=dudata[(temph%100)/10]; tempdata[3]=dudata[(temph%100)%10]; tempdata[4]=dudata[templ]; display(); if(flag_get==1) { temp=duqutemp(); temph=temp>>4; templ=temp&0x0f; templ=templ*6/10; flag_get=0; } } } void ds18B20 () { uchar n; DQ=1; delay(8); DQ=0; delay(80);//600us DQ=1; delay(8); //等待15到60毫秒 n=DQ; delay(8); } void write_B (uchar dat) { uchar t; for(t=0;t<8;t++) { DQ=0; DQ=dat|0x01; delay(8);// 45us DQ=1; dat>>=1; //从最低位写入数据 } delay(4); } uchar read_B() { uchar t,value; for(t=0;t<8;t++) { DQ=0; value>>=1; DQ=1; if(DQ) value|=0x80; //1000 0000 从最低位开始读取 delay(4); } return (value); } uint duqutemp () { uchar a,c,t; ds18B20(); write_B(0xcc); //跳过rom write_B(0x44); //启动温度转换 开始检测温度 delay(200); //给时间读取温度 ds18B20 (); write_B(0xcc);// write_B(0xbe); // 读取温度 a=read_B(); c=read_B(); c<<=8; t=a+c; return t; } 看了半天还是不明白哪里出错了 ,求高手赐教,万分感激!!! |
|
相关推荐
14个回答
|
|
没看楼主程序,不才不会编。不过敢问楼主硬件上没接错吧。
|
|
|
|
|
|
|
|
|
|
|
|
我也遇到跟你一样的情况。但是是时序设置的有问题。。把时序该对就好了
|
|
|
|
我也遇到跟你一样的情况。但是是时序设置的有问题。。把时序该对就好了
|
|
|
|
把write_B 中的这一DQ=dat|0x01;位改成DQ=dat&0x01;试试
|
|
|
|
我也是这个问题,但是程序放在单片机上正常工作。而在自己焊的板子上却不会读取温度,硬件焊接是按照单片机原理图焊接的,不知道为什么不工作
|
|
|
|
同问,我的一直显示15.9度
|
|
|
|
谢谢分享谢谢分享谢谢分享
|
|
|
|
flag_get没有再置高!if只运行一次
|
|
|
|
同问,我的是8.5
|
|
|
|
|
|
|
|
|
|
|
|
同问,我的是一直显示16
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
250 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
473 浏览 2 评论
571 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
260 浏览 0 评论
400 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11977 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 14:34 , Processed in 0.827587 second(s), Total 96, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号