|
|
本帖最后由 dzbj 于 2017-4-11 09:48 編輯
困了 隨便弄了一下 可能有很多錯(cuò)誤 電路圖畫(huà)的不細(xì) 不能直接用 缺一些下拉電阻什么的 程序沒(méi)仔細(xì)想 按思路大致寫(xiě)的 大概是個(gè)意思 僅供參考
電路圖
電路圖.png (52.77 KB, 下載次數(shù): 185)
下載附件
2017-4-11 02:07 上傳
程序
uchar m=0;
bit flag_moto=0;
void moto()
{
if(m==0) //停止
{
P1.1=1;
P1.2=1;
}
if(m==1) //正轉(zhuǎn)
{
P1.1=1;
P1.2=0;
}
if(m==2) //反轉(zhuǎn)
{
P1.1=0;
P1.2=1;
}
if(m==3) //剎車
{
P1.1=0;
P1.2=0;
}
}
void main()
{
while(1)
{
moto(); //電機(jī)驅(qū)動(dòng) 電機(jī)啟動(dòng)后在兩點(diǎn)之間時(shí)設(shè)這個(gè)函數(shù)獨(dú)立控制電機(jī)繼續(xù)運(yùn)動(dòng)
if(key3==1) //如果 啟動(dòng)開(kāi)關(guān)開(kāi)啟
{
if(flag_moto==0) //如果 電機(jī)工作標(biāo)記為0
{
if(key1==1) //如果 一端開(kāi)關(guān)閉合
{
m=3; //剎車 這個(gè)是為了自動(dòng)回程后再反復(fù)
moto(); //調(diào)用 電機(jī)驅(qū)動(dòng)函數(shù)
Delay(xx); //延時(shí)50~100ms 這個(gè)函數(shù)太簡(jiǎn)單了 沒(méi)寫(xiě)出來(lái)
m=1; //正轉(zhuǎn)
moto(); //調(diào)用 電機(jī)驅(qū)動(dòng)函數(shù)
flag_moto=1; //電機(jī)工作標(biāo)記置1
}
}
else //否則 即 電機(jī)工作標(biāo)記為1
{
if(key2==1) //如果 另一端開(kāi)關(guān)閉合
{
m=3; //剎車
moto(); //調(diào)用 電機(jī)驅(qū)動(dòng)函數(shù)
Delay(xx); //延時(shí)50~100ms 這個(gè)函數(shù)太簡(jiǎn)單了 沒(méi)寫(xiě)出來(lái)
m=2; //反轉(zhuǎn)
moto(); //調(diào)用 電機(jī)驅(qū)動(dòng)函數(shù)
flag_moto=0; //電機(jī)工作標(biāo)記清零
}
}
}
else //否則 即 啟動(dòng)開(kāi)關(guān)關(guān)閉
{
m=0; //停止
moto(); //調(diào)用 電機(jī)驅(qū)動(dòng)函數(shù)
}
}
}
|
評(píng)分
-
查看全部評(píng)分
|