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

標題: 51單片機利用紅外開關控制電機停轉的程序的問題 [打印本頁]

作者: yanxiaodong    時間: 2019-5-18 19:46
標題: 51單片機利用紅外開關控制電機停轉的程序的問題
如下是我的程序,控制電機停轉的程序正常執行,但是延遲兩秒的程序不執行。


#include<reg52.h>
#define uint unsigned int
sbit dianji=P0^1;//電機控制端。
sbit kaiguan=P0^0;//紅外開關控制端。
void delay(uint xms)//延遲函數
{
   uint i,j;
    for(i=xms;i<0;i--)
     for(j=110;j<0;j--);
}
   void main()
{
   while(1)
    {
   if(kaiguan==0)//紅外開關打開
                {
                   delay(2000);//延遲兩秒鐘
     while(!kaiguan)//
       {
                    dianji=1;//電機啟動
                       }
        }
   if(kaiguan==1)//紅外開關關閉
                     {
        ianji=0;//電機關閉               
                     }
    }       
}

Protel Schematic.pdf

67.56 KB, 下載次數: 26

電路圖


作者: 幻劍心    時間: 2019-5-19 03:08
for(i=xms;i<0;i--)   i=2000,不小于0,跳出循環。
     for(j=110;j<0;j--); j=110,非小于0,跳出循環。 沒有循環。所以你的延時不管多大,都沒用。
應該為:
for(i=xms;i>0;i--)
     for(j=110;j>0;j--); 要大于0。   
作者: yanxiaodong    時間: 2019-5-19 16:07
幻劍心 發表于 2019-5-19 03:08
for(i=xms;i0;j--); 要大于0。

多謝兄弟
作者: 1647023886    時間: 2019-5-21 17:46
幻劍心 發表于 2019-5-19 03:08
for(i=xms;i0;j--); 要大于0。

學到了,謝謝
作者: tdl6    時間: 2019-5-21 20:35
確實for循環,條件表達式錯誤,二樓的分析很到位!
作者: 獅子歌歌    時間: 2019-5-23 09:13
循環進不去,就直接退出了?
作者: zztwxx    時間: 2019-5-25 15:59
好簡潔呀




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