有没有大佬帮我看看代码,温度显示不出来,还有另一个yousmxs()中的1不显示

#include<reg51.h>
#include"zhong.h"
#define uint unsigned int
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar t0,t1,yuzi,time;
void daleyt_1(uchar t)
{
  for(t1=0;t1<t;t1++);
}
void int_1() interrupt 1
{
    time++;
    if(time==50){
    D3=~D3;
    D4=~D4;
    D5=~D5;
    D6=~D6;
      time=0;
     }
}
void main()
{
    uchar yuzi,fazi,sswendu;
  uint o;
    EA=1;
    TMOD=0X10;
    ET0=1;
    TH0=(65536-25000)/256;
    TL0=(65536-25000)%256;
    TR0=1;
    D3=0;D4=0;D5=0;D6=0;
    w1=0;w2=1;w3=0;w4=1;
    P0=0xff;
    yuzi=25;
    o=3;
  while(1)
        {
            sswendu = ReadTemperature();    
      yousmxs();
      dj();            
          if(key1==0){
              daleyt_1(10);
              if(key1==0)
                o=1;
          }
          if(key2==0){
              daleyt_1(10);
              if(key2==0)
                o=2;
            }
          if(key3==0){
              daleyt_1(10);
              if(key3==0)
                o=3;
            }
          if(key4==0){
              daleyt_1(10);
              if(key4==0)
                o=4;
            }    
        switch(o){
            case 1:if(fazi==40){yuzi=25;break;}
               fazi = yuzi++;
               break;
            case 2:if(fazi==10){yuzi=25;break;}
                       fazi = yuzi--;
                       break;
            case 3:wendu_xs();break;
                case 4:chufa_xs();break;
        }   
        }
}

 

 

#include<reg51.h>
#include"zhong.h"
#define uint unsigned int
#define uchar unsigned char
uchar z,j;
uchar i;
uchar code shuzhi[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void yousmxs()
{
    if(dianji_z==0)
    {
            P0=shuzhi[0];
        }
    else
        {
          for(i=0;i<2;i++)
            {
                P0=shuzhi[i];
            }
        }    
        daleyt_1(20);
    w3=~w3;w4=~w4;
}
void chufa_xs()
{
    z=fazi/10;
  j=fazi%10;
    P0=shuzhi[z];
    daleyt_1(1);
    w1=~w1;w2=~w2;
    P0=shuzhi[j];
}
void wendu_xs()
{
    z=sswendu/10;
    j=sswendu%10;
    P0=shuzhi[z];
    daleyt_1(1);
    w1=~w1;w2=~w2;
    P0=shuzhi[j];
}

温度是ds18b20

#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DQ=P2^2;
void delay(uchar time)
{
    uchar n;
    n=0;
    while(n<time)n++;
    return;
}
uchar Init_DS18B20(void)
{
    uchar x=0;
    DQ=1;
    delay(8);
    DQ=0;
    delay(85);
    DQ=1;
    delay(14);
    x=DQ;
    delay(20);
    return x;
}
uchar ReadOneChar(void)
{
    uchar i=0;
    uchar dat=0;
    for(i=8;i>0;i--)
    {
        DQ=1;
        delay(1);
        DQ=0;
        dat>>=1;
        delay(2);
        if(DQ)dat|=0x80;
        delay(4);
    }
    return(dat);
}
void WriteOneChar(uchar dat)
{
    uchar i=0;
    for(i=8;i>0;i--)
    {
        DQ=0;
        delay(2);
        DQ=dat&0x01;
        delay(5);
    DQ=1;
    dat>>=1;
    }
    delay(4);        
}
uchar ReadTemperature(void)
{
    uchar l=0;
    uchar m=0;
    uchar temp,tempture;
    Init_DS18B20();
    WriteOneChar(0xcc);
    WriteOneChar(0x44);
    delay(125);
    WriteOneChar(0xcc);    
    WriteOneChar(0xbe);
    l=ReadOneChar();
    m=ReadOneChar();
  tempture=((m*256)+l)>>4;
  delay(200);     
    return tempture;
}

 

你好,我是有问必答小助手。为了技术专家团更好地为您解答问题,烦请您补充下(1)问题背景详情,(2)您想解决的具体问题,(3)问题相关代码图片或者报错信息。便于技术专家团更好地理解问题,并给出解决方案。

您可以点击问题下方的【编辑】,进行补充修改问题。