久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1869|回復: 3
收起左側

單片機溫度上下限的程序問題 速求大神解答!

[復制鏈接]
ID:356928 發表于 2018-6-26 21:11 | 顯示全部樓層 |閱讀模式
QQ圖片20180626210250.png QQ圖片201806262101300.png 當設置下限為負數時  從0一下就到8.5多   設置不成負數   求大神幫忙找一下錯誤  我完全是小白一個。程序如下

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P2^2;
sbit d2=P2^1;
sbit d3=P2^0;
sbit d4=P2^3;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit beep=P3^3;
sbit DS=P1^2;
sbit ACC_7=ACC^7;
uint count=1000,alarm=300;
uchar shu;
uchar shi,fen,ri,yue,nian,xq,miao,ss;      
uint temp;            
uchar flag;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90};
uchar code tab1[]={0x40,0x79,0x24,0x30,
0x19,0x12,0x02,0x78,0x00,0x10};
void delay(uint z)
{
              uint x,y;
              for(x=z;x>0;x--)
               for(y=120;y>0;y--);
}
void dsreset()
{     
              uint i;
              DS=0;
              i=103;
              while(i>0)i--;
              DS=1;
              i=4;
              while(i>0)i--;
}
uchar tmpread()  
{
              uchar j,k,dat;
              uint i;
    for(j=1;j<=8;j++)
    {
                  DS=0;i++;         
                  DS=1;i++;i++;
                   k=DS;
                  i=8;while(i>0)i--;
                            dat=(k<<7)|(dat>>1);
    }
    return(dat);
}
void tmpwritebyte(uchar dat)   
{
        uint i;
    uchar j;
    bit testb;
    for(j=1;j<=8;j++)
    {
                  testb=dat&0x01;
                  dat=dat>>1;
                  if(testb)     
        {
           DS=0;
           i++;i++;
           DS=1;
           i=8;while(i>0)i--;
        }
    else
    {
              DS=0;      
              i=8;while(i>0)i--;
              DS=1;
              i++;i++;
    }
  }
}
void tmpchange()
{
              dsreset();
              delay(1);
              tmpwritebyte(0xcc);
              tmpwritebyte(0x44);  
}
uint tmp()              
{
              float tt;
              uchar a,b;
              dsreset();
              delay(1);
              tmpwritebyte(0xcc);
              tmpwritebyte(0xbe);
              a=tmpread();
              b=tmpread();
              temp=b;     
              temp<<=8;            
              temp=temp|a;   
              if(b>127)
              {
              flag=1;
              ss=flag;
              temp=~temp+1;
              }
              tt=temp*0.0625;
              temp=tt*10+0.5;
              return(temp);
}
void displayTemp(uint temp)  
{
              uchar ge,shi,bai,qian,ser;
              d1=0;
              d1=0;
              d3=0;
              d4=0;
              dsreset();
              ser=temp/10;   
              SBUF=ser;
              qian=temp/1000;
              bai=temp/100%10;
              shi=temp/10%10;  
              ge=temp%10;   
              if(flag==1)
              {
                            flag=0;
                            P0=0xbf;
                            d1=1;
                            delay(2);
                            d1=0;
              }
              if(qian!=0)
              {
                            P0=tab[qian];
                            d1=1;
                            delay(2);
                            d1=0;            
              }
              else
              {
                            P0=0xff;
                            d1=1;
                            delay(2);
                            d1=0;            
              }
              if(temp>99)
              {
                  P0=tab[bai];
                  d2=1;
                  delay(2);
                  d2=0;
              }
                   P0=tab1[shi];
                   d3=1;
                   delay(2);
                   d3=0;
                   P0=tab[ge];
                   d4=1;
                   delay(2);
                   d4=0;
}
uint keyscan()
{
     if(key1==0)
      {
              delay(5);
              if(key1==0)
                  {
                        while(!key1);
                        shu++;
                }
              }
                   if(key2==0)
                       {
                          delay(5);
                          if(key2==0)
                             {
                                 while(!key2);
                                 count=count+10;
                                 if(shu==2)
                                    {
                                       alarm+=10;
                                      }                                                                     
                              }
                        }
                       if(key3==0)
              {
                       delay(5);
                       if(key3==0)
                           {
                              while(!key3);
                              count=count-10;
                              if(shu==2);
                                  {
                                    alarm-=10;
                                  }
                            }
              }
              return(count);
}
void main()
{
             beep=0;
              delay(10);
              while( 1 )
              {
              tmpchange();
              if(shu==0)
              {
                  displayTemp(tmp( ));
              }
              keyscan();
              if(shu==1)
                            {
                                          displayTemp(count);
                            }
              if(shu==2)
              {
                                          displayTemp(alarm);
                            }
              if(shu==3)
              {
                            shu=0;            
                            }
              if(temp>count||(temp<alarm))
              {
              beep=0;
              }
              else
              beep=1;
              }
}

QQ圖片201806262101300.png
回復

使用道具 舉報

ID:356928 發表于 2018-6-26 21:18 | 顯示全部樓層
求大神直接改好  我能獎勵黑幣
回復

使用道具 舉報

ID:320306 發表于 2018-6-27 08:34 | 顯示全部樓層
論壇中很多18B20的程序,自己移植一下吧!!!!!!!
回復

使用道具 舉報

ID:356928 發表于 2018-6-27 12:52 | 顯示全部樓層
zsyzdx 發表于 2018-6-27 08:34
論壇中很多18B20的程序,自己移植一下吧!!!!!!!

不應該是根據程序畫圖或者根據圖寫程序?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区大片 | 久久大陆 | 色香婷婷 | 黄频视频 | 精品国产视频 | 色黄网站 | 欧美黄色录像 | 欧美情趣视频 | 国产高清在线精品 | 隔壁老王国产在线精品 | 美人の美乳で授乳プレイ | 国产精品污污视频 | 精品久久久久久亚洲国产800 | 国产激情在线 | 欧美激情久久久 | 久久精品免费一区二区三 | 国产精品一区在线播放 | 中文字幕在线播放不卡 | 国产视频精品在线观看 | 成人在线激情 | 欧美色综合天天久久综合精品 | 看毛片的网站 | 国产91在线播放精品91 | 欧美综合一区二区三区 | 综合成人在线 | 免费国产视频 | 久久久亚洲一区 | 国产高清无av久久 | 国产精品久久久久久妇女6080 | 久久久久久国产精品免费免费男同 | 久久精品中文字幕 | 国产精品 亚洲一区 | 人人草人人干 | 免费黄色大片 | 成人午夜网站 | 91九色视频| 91看片视频 | 激情欧美一区二区三区中文字幕 | 日本一二区视频 | 精品在线一区二区 | 色爱综合网 |