欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
一個單片機控制直流電機小程序,求助大神指點
[打印本頁]
作者:
小學生
時間:
2017-6-20 18:34
標題:
一個單片機控制直流電機小程序,求助大神指點
嘗試修改個單片機小程序,部分功能無法實現,特請各位大神指點!
功能如下:
按正轉鍵,電機正轉運行,松開按鍵,電機停止。(能實現)
按反轉鍵,功能同上。(不成功,不知如何寫)
按加速鍵,電機加速。
按減速減,電機減速(到設定值不能在減,沒能成功)
程序如下,程序編譯有一處警告,同時仿真運行不穩定。請大神修改并指點錯誤地方!!!
#include <reg51.h>
typedef unsigned char uchar;
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
uchar time=0;
uchar period=35;
uchar high=10;
uchar th0=0;
uchar tl0=1;
bit dir;
void dealy()
{
uchar i;
for(i=0;i<100;i++);
}
void timer0() interrupt 1 using 1 //定時器0中斷服務程序
{
TH0=0xfc; //定時器初值重裝載
TL0=0x18;
time++;
if(dir==1)
{
if(time==high) //高電平持續時間結束,變低
P2_0=th0; //經過反相器反相
else if(time==period) //周期時間到,變高
{
time=0;
P2_0=tl0; //經過反相器反相
}
}
else if(time==high) //高電平持續時間結束,變低
P2_1=th0; //經過反相器反相
else if(time==period) //周期時間到,變高
{
time=0;
P2_1=tl0; //經過反相器反相
}
}
void main()
{
P0=0x1f;
P2=0x00;
TMOD=0x01; //定時器0方式1
TH0=0xfc; //定時器裝載初值,設置脈沖信號的占空比為1/5
TL0=0x18;
ET0=1; //開定時器0中斷
TR0=1; //啟動定時器0
EA=1;
while(1)
{
EA=0;
if(P0_0==0) //正轉
EA=1; //開CPU中斷
else
EA=0;
if(P0_1==0)? //反轉如何編寫、???
EA=1; //關CPU中斷
else
EA=0;
if(P0_3==0)、//加速
{
high++;
if(high==30)
high=29;
while(P0_3!=1)
{}
}
if(P0_4==0) //減速
{
high--;
if(high==30)
high=29;
while(P0_4!=1)
{}
}
}
}
復制代碼
作者:
15041248153
時間:
2017-6-20 23:01
將電機的兩個PI口 0 / 1 電平反轉就歐克了0 1正傳 1 0反轉
作者:
xlw14
時間:
2017-6-20 23:43
不錯哦,加油
作者:
雨天stay
時間:
2017-6-20 23:53
按正轉鍵,電機正轉運行,松開按鍵,電機停止。(能實現)
按反轉鍵,功能同上。(不成功,不知如何寫)
按加速鍵,電機加速。
按減速減,電機減速(到設定值不能在減,沒能成功)
作者:
51mcu
時間:
2017-6-21 06:30
if(P0_3==0)、//加速
{
high++;
while((P0_3==0);
if(high>30)
high=30;
}
if(P0_4==0) //減速
{
high--;
while((P0_4==0);
if(high<1)
high=30;
}
作者:
覃學巨
時間:
2020-12-2 22:23
有仿真圖嗎
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1