標(biāo)題: 關(guān)于51單片機(jī)控制紅外開(kāi)關(guān)和馬達(dá)驅(qū)動(dòng)模塊的程序 [打印本頁(yè)]

作者: yanxiaodong    時(shí)間: 2018-11-22 23:22
標(biāo)題: 關(guān)于51單片機(jī)控制紅外開(kāi)關(guān)和馬達(dá)驅(qū)動(dòng)模塊的程序
單片機(jī):STC89C52    電機(jī)驅(qū)動(dòng)模塊:ULN2803(輸入端高電平時(shí)電機(jī)停轉(zhuǎn),輸入端低電平時(shí)電機(jī)啟動(dòng);輸入端截單片機(jī)P1.7口)

紅外探頭:有遮擋時(shí)輸出端輸出低電平,無(wú)遮擋時(shí)輸出端輸出高電平。(輸出端截單片機(jī)1.8口)



電路控制程序:(請(qǐng)問(wèn)我這個(gè)程序正確嗎?)

#include<reg52.h>
#define uint unsigned int
sbit dianji=P1^7;//電機(jī)控制端。
sbit kaiguan=P1^8;//紅外開(kāi)關(guān)控制端。
void delay(uint xms)//延遲函數(shù)
{
        uint i,j;
        for(i=xms;i<0;i--)
        for(j=110;j<0;j--);
}
void main()
{
while(1)
    {
                if(kaiguan==0)//紅外開(kāi)關(guān)打開(kāi)
                {
                   delay(2000);//延遲兩秒鐘
          while(!kaiguan)//調(diào)節(jié)電機(jī)占空比
                        {
                    dianji=0;//電機(jī)啟動(dòng)
                        delay(1);//延遲1ms
                        dianji=1;//電機(jī)關(guān)閉
                        delay(1);//延遲1ms
                        }
         }
                if(kaiguan==1)//紅外開(kāi)關(guān)關(guān)閉
                     {
                   delay(2000);//延遲兩秒鐘
                        dianji=1;//電機(jī)關(guān)閉               
                     }
    }       
}


作者: 該賬號(hào)已注銷    時(shí)間: 2018-11-23 09:04
這個(gè)程序是可以的,再實(shí)際調(diào)試一下




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