單片機:STC89C52 電機驅動模塊:ULN2803(輸入端高電平時電機停轉,輸入端低電平時電機啟動;輸入端截單片機P1.7口)
紅外探頭:有遮擋時輸出端輸出低電平,無遮擋時輸出端輸出高電平。(輸出端截單片機1.8口)
電路控制程序:(請問我這個程序正確嗎?)
#include<reg52.h>
#define uint unsigned int
sbit dianji=P1^7;//電機控制端。
sbit kaiguan=P1^8;//紅外開關控制端。
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=0;//電機啟動
delay(1);//延遲1ms
dianji=1;//電機關閉
delay(1);//延遲1ms
}
}
if(kaiguan==1)//紅外開關關閉
{
delay(2000);//延遲兩秒鐘
dianji=1;//電機關閉
}
}
}
|