欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
步進(jìn)電機(jī)&ULN2003和直流電機(jī)&L298驅(qū)動(dòng)與正反轉(zhuǎn)實(shí)驗(yàn),單片機(jī)代碼加仿真
[打印本頁]
作者:
Eraser
時(shí)間:
2019-6-11 16:32
標(biāo)題:
步進(jìn)電機(jī)&ULN2003和直流電機(jī)&L298驅(qū)動(dòng)與正反轉(zhuǎn)實(shí)驗(yàn),單片機(jī)代碼加仿真
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
_CQBYIHP`@[)B[0Y$)@TV}L.png
(116.19 KB, 下載次數(shù): 42)
下載附件
2019-6-11 16:25 上傳
步進(jìn)電機(jī)和直流電機(jī)能夠單獨(dú)工作,仿真開始,兩個(gè)電機(jī)均不轉(zhuǎn)動(dòng),然后通過按鍵控制對(duì)應(yīng)的點(diǎn)擊正反轉(zhuǎn),代碼清晰,作者留有添加電機(jī)控速的代碼空間,并且可以很簡(jiǎn)單的加入代碼控速模塊。
其中還有一些小細(xì)節(jié),直流電機(jī)反轉(zhuǎn)的時(shí)候,無法對(duì)步進(jìn)電機(jī)進(jìn)行操作,即在直流電機(jī)反轉(zhuǎn)過程中,控制步進(jìn)電機(jī)正反轉(zhuǎn)的按鈕無效。其余情況下,可隨意控制直流電機(jī)和步進(jìn)電機(jī)的正反轉(zhuǎn)
系統(tǒng)還有工作指示燈,對(duì)應(yīng)步進(jìn)電機(jī)和直流電機(jī)工作情況。
此外,還提供了一個(gè)聲光報(bào)警系統(tǒng),當(dāng)單刀雙擲開關(guān)撥至阻塞時(shí),電路報(bào)警,電路警示燈亮,蜂鳴器響,兩個(gè)電機(jī)立刻停止工作。
單片機(jī)源程序如下:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^0; //用戶按鍵
sbit key2=P3^1;
sbit key3=P3^5;
sbit key4=P3^6;
sbit danger=P3^2;
sbit beez=P2^2;
sbit PWM1=P3^3;
sbit PWM2=P3^4;
sbit led1=P2^0;
sbit led2=P2^1;
uchar code F_Rotation[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //步進(jìn)電機(jī)驅(qū)動(dòng)
uchar i;
uint flag1,flag2,flag3,flag4;
/******************************************************************/
/* 延時(shí)函數(shù)Xms */
/******************************************************************/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/******************************************************************/
/* 獨(dú)立按鍵掃描函數(shù) */
/******************************************************************/
void keyscan()
{
P3=0xff;//拉高P3,以讀取P3口值
if(key1==0)//鍵1被按下
{
delay(5);//延時(shí)消抖
if(key1==0)
{
flag1++;
flag1%=2;
}
while(!key1);
delay(5);//延時(shí)消抖
while(!key1);//松手檢測(cè)
}
if(key2==0)
{
delay(5);
if(key2==0)
{
flag2++;
flag2%=2;
}
while(!key2);
delay(5);
while(!key2);
}
if(key3==0)
{
delay(5);
if(key3==0)
{
flag3++;
flag3%=2;
}
while(!key3);
delay(5);
while(!key3);
}
if(key4==0)
{
delay(5);
if(key4==0)
{
flag4++;
flag4%=2;
}
while(!key4);
delay(5);
while(!key4);
}
}
void main()
{
TMOD=0x01;
EA=1;
EX0=1;
ET0=0;
TH0=(65536-(14648))/256;
TL0=(65536-(14648))%256;
TR0=0;
while(1)
{
//步進(jìn)正轉(zhuǎn)
keyscan();
while(flag1==1)
{
led1=0;
keyscan();
if(!flag1){ led1=1; led2=1; break;}
if(flag2){ led1=1; led2=1; flag1=0; break;}
if(flag3){ led1=1; led2=1; flag1=0; break;}
if(flag4){ led1=1; led2=1; flag1=0; break;}
for(;i<8;i++)
{
keyscan();
P1 = F_Rotation[i];
if(!flag1){ led1=1; led2=1; break;}
if(flag2){ led1=1; led2=1; flag1=0; break;}
if(flag3){ led1=1; led2=1; flag1=0; break;}
if(flag4){ led1=1; led2=1; flag1=0; break;}
delay(100);
}
i=0;
led1=1;
}
//步進(jìn)反轉(zhuǎn)
keyscan();
while(flag2==1)
{
led1=0;
keyscan();
if(flag1){ led1=1; led2=1; flag2=0; break;}
if(!flag2){ led1=1; led2=1; break;}
if(flag3){ led1=1; led2=1; flag2=0; break;}
if(flag4){ led1=1; led2=1; flag2=0; break;}
for(;i>0;i--)
{
keyscan();
P1 = F_Rotation[i];
if(flag1){ led1=1; led2=1; flag2=0; break;}
if(!flag2){ led1=1; led2=1; break;}
if(flag3){ led1=1; led2=1; flag2=0; break;}
if(flag4){ led1=1; led2=1; flag2=0; break;}
delay(100);
}
i=8;
led1=1;
}
//直流正轉(zhuǎn)
keyscan();
while(flag3==1)
{
led2=0;
keyscan();
if(flag1){ led1=1; led2=1; flag3=0; break;}
if(flag2){ led1=1; led2=1; flag3=0; break;}
if(!flag3){ led1=1; led2=1; break;}
if(flag4){ led1=1; led2=1; flag3=0; break;}
PWM1=0;
PWM2=0;
delay(100);
PWM1=1;
delay(100);
led2=1;
}
//直流反轉(zhuǎn)
keyscan();
while(flag4==1)
{
led2=0;
keyscan();
if(flag1);
if(flag2);
if(flag3){ led1=1; led2=1; flag4=0; break;}
if(!flag4){ led1=1; led2=1; break;}
PWM1=0;
PWM2=0;
delay(100);
PWM2=1;
delay(100);
led2=1;
}
}
}
void int0(void) interrupt 0
{
while(danger==0)
{
beez=0;
led1=1;
led2=1;
while(!danger);
beez=1;
}
}
復(fù)制代碼
所有資料51hei提供下載:
步進(jìn)電機(jī)加直流電機(jī).rar
(69.73 KB, 下載次數(shù): 42)
2019-6-11 16:32 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1