普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 11366|回复: 14

DS18B20温度传感器加数码管显示

[复制链接]

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2020-2-17 22:10:01 | 显示全部楼层 |阅读模式
1金钱
我自己写程序和用给的程序,并且按照要求接线,数码管一直显示00.00,有和我遇到相同情况的吗?求大神指点。
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有13人回答

回复

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-2-18 08:50:25 | 显示全部楼层
请将实验接线图拍照出来看下,先用例程程序测试。
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2020-2-18 11:37:26 | 显示全部楼层
admin 发表于 2020-2-18 08:50
请将实验接线图拍照出来看下,先用例程程序测试。

用的是例程,然后就一直显示000.00,麻烦帮我看一下
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2020-2-18 11:39:52 | 显示全部楼层
一直显示000.00,用的是例程
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2020-2-18 11:50:16 | 显示全部楼层
图片一直无法上传,能否给个联系方式?
回复

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-2-19 08:47:06 | 显示全部楼层
林_F 发表于 2020-2-18 11:50
图片一直无法上传,能否给个联系方式?

请加技术QQ2586034847
回复

使用道具 举报

2

主题

5

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2020-4-25 07:57:58 | 显示全部楼层
林_F 发表于 2020-2-18 11:50
图片一直无法上传,能否给个联系方式?

我的也是,你的解决了吗
回复

使用道具 举报

0

主题

33

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2020-5-20 16:51:45 | 显示全部楼层
#include<reg52.h> #include<temp.h> typedef unsigned int u8; typedef unsigned char u16; sbit led1=P2^0; sbit smgwA=P2^2; sbit smgwB=P2^3; sbit smgwC=P2^4;  u8 i; u8 DisplayData[8]; u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  void delay(u16 j) {         while(j--); }  void Time0Init() {         EA=1;                //总中断开关         ET0=1;                    //选择定时器中断         TMOD|=0x01; //定时器工作方式T0         TH0=0xFC;  //定义初值 1ms         TL0=0x66;         TR0=1;           //启动定时器T0  }  void datapros(int temp) {         float tp;         if(temp<0)         {                 DisplayData[0]=0x40;                 temp=temp-1;                 temp=~temp;                 tp=temp;                 temp=tp*0.0625*100+0.5;                         }         else         {                 DisplayData[0]=0x00;                 tp=temp;                 temp=tp*0.0625*100+0.5;                 }         DisplayData[1]=smgduan[temp%10000/1000];         DisplayData[2]=smgduan[temp%1000/100]|0x80;         DisplayData[3]=smgduan[temp%100/10];         DisplayData[4]=smgduan[temp%10/1]; } //void smgdisplay() //{ //                u8 i; //  for(i=0;i<5;i++) //          { //                switch(i) //                        {        case (0): //                                        smgwA=1;smgwB=1;smgwC=1;break; //                                case (1): //                                        smgwA=0;smgwB=1;smgwC=1;break; //                                case (2): //                                        smgwA=1;smgwB=0;smgwC=1;break; //                                case (3): //                                        smgwA=0;smgwB=0;smgwC=1;break; //                                case (4): //                                        smgwA=1;smgwB=1;smgwC=0;break; //                        } // //                P0=DisplayData[i]; //                delay(100);        //延时 //                P0=0x00; //消隐 // //        } //         //} void main() {           while(1)         {                 Time0Init();                  datapros(DS18B20ReadTemp());                   } }  void Timer0in() interrupt 1 {         static j;          TH0=0xFC;  //定义初值          TL0=0x66;         j++;         if(j==5)         {                   for(i=0;i<6;i++)                   {                         switch(i)                                 {        case (0):                                                 smgwA=1;smgwB=1;smgwC=1;break;                                         case (1):                                                 smgwA=0;smgwB=1;smgwC=1;break;                                         case (2):                                                 smgwA=1;smgwB=0;smgwC=1;break;                                         case (3):                                                 smgwA=0;smgwB=0;smgwC=1;break;                                         case (4):                                                 smgwA=1;smgwB=1;smgwC=0;break;                                 }                                  P0=DisplayData[i];                         delay(100);        //延时                         P0=0x00; //消隐                 }                 j=0;         } }
回复

使用道具 举报

0

主题

49

帖子

242

积分

中级会员

Rank: 3Rank: 3

积分
242
发表于 2020-5-22 15:11:02 | 显示全部楼层
如果用给的程序,并且按照要求接线,数码管一直显示00.00,怀疑DS18B20坏了。
回复

使用道具 举报

0

主题

33

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2020-5-22 16:27:58 | 显示全部楼层
用定时器中断可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-20 19:29 , Processed in 0.088219 second(s), 41 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表