完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
那位高手能帮我看下。我这个程序为什么不能显示出温度值。
#include #include #include"math.h" #define uchar unsigned char #define uint unsigned int ***it DQ=P3^0; int t; uchar led_7seg[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80}; uchar led[4]={0xf7,0xfb,0xfd,0xfe}; uchar a[4]; void delay(uint k) { while(k--); } //初始化DS18B20 init_ds18b20(void) { uchar x=0; DQ=1; delay(10); DQ=0; delay(80); DQ=1; delay(20); x=DQ; delay(30); return x; } //读一个字节 bit rdbit_ds18b20(void) { uchar i; //定义延时变量 uchar dat=0; //返回变量暂存 for(i=0;i<8;i++) { DQ=0; //启动总线 dat>>=1; DQ=1; //释放总线 if(DQ) //延时9us后采样 dat|=0x80; //则自位最高位 delay(8); } return(dat); //返回接收值 } uchar rdbyte_ds18b20() { uint i; uchar j, dat; dat = 0; for(i=0; i<8; i++) { j = rdbit_ds18b20(); dat = (j << 7) | (dat >> 1); } return dat; } //写一个字节 void wtbyte_ds18b20(uchar wdat) { uint i; uchar j; bit b; for(j = 0; j < 8; j++) { b = wdat & 0x01; wdat >>= 1; //写"1", 让低电平持续2个小延时, 高电平持续8个小延时 if(b) { DQ = 0; i++; i++; DQ = 1; i = 8; while(i>0) i--; } else //写"0", 让低电平持续8个小延时, 高电平持续2个小延时 { DQ = 0; i = 8; while(i>0) i--; DQ = 1; i++; i++; } } } uchar readbyte_ds18b20() //读取温度 { uchar a=0; uchar b=0; float tt=0; init_ds18b20(); wtbyte_ds18b20(0xCC); // 跳过读序号列号的操作 wtbyte_ds18b20(0x44); // 启动温度转换 init_ds18b20(); wtbyte_ds18b20(0xCC); //跳过读序号列号的操作 wtbyte_ds18b20(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=rdbyte_ds18b20();//低位 b=rdbyte_ds18b20();//高位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; return(t); } void display() { uchar count; a[0]=led_7seg[t%10]; a[1]=led_7seg[11]; a[2]=led_7seg[t%100]; a[3]=led_7seg[t/100]; for(count=0;count<4;count++) { P0=a[count]; P2=led[count]; delay(2); P2=0xFF; P0=0X00; } } void main() { init_ds18b20(); readbyte_ds18b20(); while(1) { display(); } } |
|
相关推荐
3个回答
|
|
我之前也遇以过,这种问题多半是时序问题,用示波器看一下时序是否正常
|
|
|
|
|
|
参考一下别人的程序,找这样的bug应该不难
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:57 , Processed in 0.603340 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号