欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 怎么把這多個單片機程序合成一個呀?求大神指教 [打印本頁]

作者: dididi1234    時間: 2019-11-25 12:56
標題: 怎么把這多個單片機程序合成一個呀?求大神指教
(1) DS18B20讀取轉錄溫度程序設計
voidtempchang(void)         //獲取并轉換
{
  dsreset();
  delay(1);
  tpye(0xcc);                  //讀寫并讀rom指令
  tpye(0x44);                  //寫溫度轉換指令
}
uint gt_temp()                //讀取寄存器存儲數據
{
uchar a,b;
dsreset();
delay(1);
tpye(0xcc);      
tpye(0xbe);                   //uint 給外面一個溫度數值
a=tpread();                   //低八位
b=tpread();                   //低八位
temp=256*b+a;
f_temp=temp*0.0625;           //分辨率0.0625,溫度在寄存器為12位
temp=f_temp*10+0.5;           //將f_temp乘以10
return temp;                  //整型
}
(2) 數碼管顯示程序設計
ucharflag1,flag2,flag3,flag4,numm,q,b,s,g; //共陰數碼管
ucharcode number[]= { 0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,};
ucharcode number1[]={0xbf,0x86,0xdb,0xcf,0xe6,
0xed,0xfd,0x87,0xff,0xef};   
(3) 按鍵電路電路設計
void keyscan()      
{
    if(s1==0)   
    {P2=0xff;
     delay(5);  
     if(s1==0)  
      {   
       numm++;     
        if(numm==1)            //第一種情況
        {
        flag=1;
        }
        if(numm==2)            //第一種情況
        {
        flag=2;
        }
        if(numm==3)            //第一種情況
        {
        numm=0;
        flag=0;
        }
        while(!s1);
     }     
    }
    if(numm==1)                //提高或降低下限
     {
     flag=1;
       if(s2==0)               
       {
          delay(5);         
          if(s2==0)         
          {      
              l+=10;      
              if(l==1000)   
             l=200;
          }
          while(!s2);   
       }
       if(s3==0)           
       {
          delay(5);         
          if(s3==0)         
          {
            l-=10;         
            if(l==0)        
            l=200;           
          }
          while(!s3);   
       }
   }
if(numm==2)                    //提高或降低上限
   {
      flag=2;
       if(s2==0)            
       {
          delay(5);         
          if(s2==0)        
          {
              h+=10;        
              if(h==1000)      
             h=200;      
          }
          while(!s2);   
       }
       if(s3==0)                  
       {
          delay(5);              
          if(s3==0)               
          {            
              h-=10;         
              if(h==0)            
             h=300;
          }
          while(!s3);   
       }
   }
}
(4) 報警程序設計
void main()           
{
  init();
  while(1)
  {
   tempchang();         
   if(temp>h)             //高于設定值上限,則報警
   {
       high();           
   }
    if(temp<l)            //低于設定值下限,則報警
   {
       low();         
   }   
  }
}
(5) DS18B20讀取字節函數設計
voiddsreset(void)           //復位,初始化測溫函數
{
  uint i;
  ds=0;                     
  i=140;                    //延時512μs
  while(i>0) i--;
  ds=1;                     //等待復位,若收到低電平則復位成功
  i=4;                       //讀取完之后等待48us再接著讀取下一個數
  while(i>0) i--;            //消耗時間
}
bittpreadbit(void)          //讀一位數據
{
  uint i;
  bit dat;
  ds=0;i++;                  //總線拉低1μs
  ds=1;i++;i++;             //釋放總線,延時
  dat=ds;
  i=8;
  while(i>0)i--;
  return(dat);
}
uchartpread(void)           //讀一字節數據
{
uint i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
  j=tpreadbit();
  dat=(j<<7)|(dat>>1);
}
return(dat);                // 復位函數
}


作者: pcbboy    時間: 2019-11-25 14:27
把文件加入到里面,再用Main 函數調用。
附圖為你參考

目錄.jpg (104.08 KB, 下載次數: 62)

目錄.jpg

作者: jscsd226    時間: 2019-11-25 14:54
看一下新建工程的視頻,就可以啦。
作者: yzwzfyz    時間: 2019-11-25 17:35
主線是:將各個程序做成一個個的函數。而后在主程序中依序調用。
細節是:你需要仔細分配系統資源,規劃好時序。

作者: 466305213    時間: 2019-11-25 23:55
自己要規劃好
作者: moluxiyan    時間: 2019-11-26 09:20
先鞏固一下C語言,然后看看別人的程序怎么寫的
作者: 冷月楓    時間: 2019-11-26 21:25
判斷好邏輯關系,直接加到一個工程里就行




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1