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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3394|回復(fù): 2
收起左側(cè)

求大神幫忙看一下下面的程序...哪錯了啊!

[復(fù)制鏈接]
ID:47619 發(fā)表于 2013-1-3 14:37 | 顯示全部樓層 |閱讀模式

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P1^7;         // DS18B20與單片機(jī)連接口
sbit R4=P1^6;         //進(jìn)料口水分測量電路與單片機(jī)接口
sbit R9=P1^5;         //出料口水分測量電路與單片機(jī)接口

sbit fj1=P0^0;
sbit fj2=P0^3;
sbit fj3=P0^6;
sbit fjr1=P2^0;
sbit fjr2=P2^2;
sbit fjr3=P2^4;        //風(fēng)機(jī)與單片機(jī)連接口

sbit jr1=P0^1;
sbit jr2=P0^2;
sbit jr3=P0^4;
sbit jr4=P0^5;
sbit jr5=P0^7;
sbit jr6=P2^7;
sbit fjr4=P2^1;
sbit fjr5=P2^3;
sbit fjr6=P2^5;        //電阻絲與單片機(jī)連接口

uint wendu;            //溫度值
uint shuifen1;         //進(jìn)料口水分值
uint shuifen2;         //出料口水分值
uint tem0,tem1;        //計(jì)數(shù)器T1計(jì)數(shù)高低位值
/*************************延時程序****************************/
void delay1(int i)
{
  while(i--);
}                  //延時ius

void delay2(unsigned int i)
{
    unsigned int j;
    while(i--)
    {
        for(j = 0; j < 125; j++);
    }
}               //延時ims

void delay3(unsigned int i)

 unsigned int j,k,h;
 while(i--)
  {
    for(j=0;j<20;j++)
     {
       for(k=0;k<200;k++)
        {
          for(h=0;h<250;h++);
         }
      }
   }
}               //延時is

/*************************DS18B20程序****************************/
void init_18b20()     //18b20的復(fù)位函數(shù)
 {
    DQ=1;            //總線拉高電平
    delay1(10);       //延時10us
    DQ=0;           
    delay1(750);     
    DQ=1;            //釋放總線
    _nop_();         //延時一個機(jī)器周期
    _nop_();
    delay1(560); 
    DQ=1;            //總線拉高
}

void weite(uchar dat)                    //18b20寫函數(shù)
{
   uchar i;                              //定義變量
   for(i=0;i<8;i++)
      {
        DQ=0;                            //總線拉低
        DQ=dat﹠0x01;
        delay1(45);
        DQ=1;                            //總線拉高
        dat>>=1;                          //右移一位
       }

uchar read()                             //18b20?梁?
{
  uchar i,dat=0;                         //定義變量
  DQ=1;                                  //總線拉高,讀數(shù)據(jù)條件
  _nop_();                               //延時一個機(jī)器周期
  for(i=0;i<8;i++)
     {
         DQ=0;                           //總線拉低
         _nop_();                        //延時一個機(jī)器周期
         _nop_();
         _nop_();
         dat>>=1;                         //右移一位
         DQ=1;                           //總線拉高
         _nop_();         //延時,使數(shù)據(jù)總線穩(wěn)定,保證數(shù)據(jù)沒有錯誤
         _nop_();
         if(DQ)                          //判斷總線的值是否為1
         dat|=0x80;                      //條件或
         delay1(40);                      //延時40us
         DQ=1;                           //總線拉高
      }
 return dat;                             //返回所讀數(shù)據(jù)

uchar read_tu()                          //讀取18b20中溫度的函數(shù)
{
  uchar a,b;                             //定義變量
  init_18b20();                          //18b20復(fù)位
  weite(0xcc);                           //寫入0xcc,跳過序列號
  weite(0x44);                           //啟動溫度轉(zhuǎn)換
  init_18b20();                          //18b20復(fù)位
  weite(0xcc);                          
  weite(0xbe);                           //讀取溫度
  a=read();                              //裝低字節(jié)
  b=read();                              //裝高字節(jié)
  b<<=4;                       //b左移四位,前五位為區(qū)分溫度正負(fù)位
  a﹠=0xf0;                              //條件與
  a>>=4;                                 //a右移四位,去溫度小數(shù)位
  b+=a;                                 //b=a+b,此時b為溫度整數(shù)值
  returu b;                             //返回所讀數(shù)據(jù)
}

 

/*************************定時器程序****************************/
void timer0() interrupt 1            //T0定時中斷
{        
    TR0=0;
    TR1=0;
    TL0=0xB0;                       //重裝值,定時50000us
    TH0=0x3C;
    tem0=TL1;                       //讀數(shù)
    tem1=TH1;
    TL1=0x00;                      //計(jì)數(shù)器1清零
    TH1=0x00;
 TR0=1;
    TR1=1;        
}

void timer1() interrupt 3         //T1計(jì)數(shù)中斷
{
 TR0=0;
    TR1=0;
    TL0=0xB0;                    //重裝值,定時50000us
    TH0=0x3C;
    TL1=0x00;                    //計(jì)數(shù)器1清零
    TH1=0x00;
 TR0=1;
    TR1=1;  
}

void init_timer()
{
   TMOD=0x51;                  //0101 0001 定時器0在模式1下工作16位定時器,定時方式  定時器1在模式1下工作16位計(jì)數(shù)器,T1負(fù)跳變加1
   TL0=0xB0;                   //定時器0初值 定時50000us
   TH0=0x3C;                
   TL1=0x00;                   //定時器1清零
   TH1=0x00;
   TR0=1;                      //T0開始計(jì)時
   TR1=1;                      //T1開始計(jì)數(shù)
}

uchar read_sf()            //讀取水分的函數(shù)

   uchar f,shuifen;
   f=tem1*256+tem0;
   f=f*20;
   if(f<6399)
    {
      shuifen=16;
    }
   elseif(f<7038)
    {
      shuifen=6;
     }
   elseif(f<7287)
    {
      shuifen=2;
     }
    else
     {
       shuifen=0;
      }
   return shuifen;
}

uchar read_sf1()        //讀取進(jìn)料口水分的函數(shù)
{
  uchar c;
  R4=1;
  R9=0;
  c=read_sf();
  return c;
}

uchar read_sf2()        //讀取出料口水分的函數(shù)
{
  uchar d;
  R4=0;
  R9=1;
  d=read_sf();
  return d;
}

 


/*************************控制子程序****************************/
void_kongzhi()
{
  if(shuifen1>15)
{
fj1=0;
fj2=0;
fj3=0;
if(wendu<0)
      {
        jr1=0;
        jr2=0;
        jr3=0;
        jr4=0;
        jr5=0;
        jr6=0;
       }
      elseif(wendu<15)
       {
         jr1=0;
         jr3=0;
         jr5=0;
        }

elseif(shuifen1>5)
   {
      fj1=0;
      fj2=0;
 if(wendu<0)
      {
        jr1=0;
        jr2=0;
        jr3=0;
jr4=0;
       }
      elseif(wendu<15)
       {
         jr1=0;
         jr3=0;
        }
}
       else
        {
          fj1=0;
     if(wendu<0)
           {
             jr1=0;
             jr2=0;
}
          elseif(wendu<15)
            {
             jr1=0;
             }
        }
while(shuifen2>1)
{
  int i=1;
  if(i<7)
   {
     fjri=0;
     i++;
    }
  delay3(300);
shuifen2=read_sf2();
}
}


/****************************主程序******************************/
 void main()
{
EA=1;                     //開中斷
ET0=1;                    //允許定時器0中斷
ET1=1;                    //允許定時器1中斷
init_timer();             //定時器、計(jì)數(shù)器初始化設(shè)置
while(1)
{
  wendu=read_tu();        //讀取溫度值給全局變量
  shuifen1=read_sf1();
  shuifen2=read_sf2();
  kongzhi();
  delay3(600);
 }

回復(fù)

使用道具 舉報(bào)

ID:47619 發(fā)表于 2013-1-3 15:00 | 顯示全部樓層

急求啊...

哪位大神幫幫忙...

萬分感謝啊...

回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2013-1-6 09:09 | 顯示全部樓層
你現(xiàn)在遇到了什么問題?什么狀況?
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 毛片在线看片 | 中文字幕免费视频 | 久久久久国产一区二区三区四区 | 精品av天堂毛片久久久借种 | 九九综合| 欧美寡妇偷汉性猛交 | 久久一区精品 | 亚洲a人 | 国产久 | 国产成人叼嘿视频在线观看 | 亚洲欧洲精品一区 | 国产日韩精品一区二区三区 | 超碰美女在线 | 黄视频网址 | 在线观看亚洲精品 | 亚洲视频www | 自拍偷拍亚洲一区 | 久在线视频播放免费视频 | 99精品久久| 九九九久久国产免费 | 亚洲精品久久久 | 91观看| 久久天堂| 久久无毛 | 毛片大全| 亚洲成人综合社区 | 精品一区二区三区av | 免费性视频 | 久久久久黑人 | 龙珠z国语版在线观看 | 午夜国产羞羞视频免费网站 | 不卡的av在线 | 中国大陆高清aⅴ毛片 | 日韩精品一区二区三区中文在线 | 香蕉视频一区二区 | 国产 日韩 欧美 中文 在线播放 | av资源网站 | 99色综合| 四虎影视一区二区 | 亚洲欧美bt | 能看的av|