久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
求助STC89C52控制28BYJ-48步進電機
[打印本頁]
作者:
renliang55
時間:
2016-7-25 09:38
標題:
求助STC89C52控制28BYJ-48步進電機
我想用4個獨立按鍵控制步進電機實現正傳反轉,加速減速,但是把程序下載進去電機不轉,求大神給看看指導一下.
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define GPIO_MOTOR P1
sbit key1 = P3^0;
sbit key2 = P3^1;
sbit key3 = P3^2;
sbit key4 = P3^3;
uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反轉順序
uchar code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正轉順序
uchar keyvalue;
uint g,d;
void delay(uchar z);
void main()
{
uint i=0;
TMOD = 0x01;
TH0 = 0xba;
TL0 = 0xc3;
ET0 = 1;
EA = 1;
TR0 = 1;
while(1)
{
if(key1==0)
{
delay(10);
if(key1==0)
{
keyvalue=1;
g=0xba;
d=0xc3;
}
while((i>200)&&(key1==0))
{
delay(1);
i++;
}
i=0;
}
if(key2==0)
{
delay(10);
if(key2==0)
{
keyvalue=2;
g=0xba;
d=0xc3;
}
while((i>200)&&(key2==0))
{
delay(1);
i++;
}
i=0;
}
if(key3==0)
{
delay(1);
if(key3==0)
{
g = 0xf9;
d = 0x75;
}
while((i<200)&&(key3==0))
{
delay(1);
i++;
}
i=0;
}
if(key4==0)
{
delay(1);
if(key4==0)
{
g = 0x9d;
d = 0xdb;
}
while((i<200)&&(key4==0))
{
delay(1) ;
i++;
}
i=0;
}
}
}
void timer() interrupt 0
{
uint i=0,j;
uchar SJB[8];
TH0 = g;
TL0 = d;
if(keyvalue==1)
{
for(j=0;j<8;j++)
{
SJB[j]=FFZ[j];
}
}
if(keyvalue==2)
{
for(j=0;j<8;j++)
{
SJB[j] = FFW[j];
}
}
GPIO_MOTOR = SJB[i]&0x1f;
i++;
if(i==7)
{
i=0;
}
}
void delay(uchar z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
作者:
DIY電子
時間:
2016-7-27 09:11
發一個我自己修改的切割機程序 用的就是28BYJ48步進電機 長度可調節 速度程序內調整
/*************** writer:shopping.w ******************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code FFW[]=
{
0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
};
uchar code REV[]=
{
0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
};
sbit K1 = P3^0; //正轉
sbit K2 = P3^1; //反轉
sbit K3 = P3^2; //停止
sbit K4 = P3^5; //增加N
sbit K5 = P3^4; //減少N
sbit BEEP = P1^7;//切刀電磁閥
void DelayMS(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void SETP_MOTOR_FFW(uchar n)
{
uchar i,j;
for(i=0;i<5*n;i++)
{
for(j=0;j<8;j++)
{
if(K3 == 0) break;
P1 = FFW[j];
DelayMS(25); //正轉速度調整
}
}
}
void SETP_MOTOR_REV(uchar n)
{
uchar i,j;
for(i=0;i<5*n;i++) //
{
for(j=0;j<8;j++)
{
if(K3 == 0) break;
P1 = REV[j];
DelayMS(25); //反轉速度調整
}
}
}
void delayB(uchar x)
{
uint k;
while(x--)
{
for(k=0; k<10000; k++)
{ }
}
}
void beep()
{
BEEP=0;
delayB(20); //切刀電磁閥時間設定
BEEP=1; //關閉切刀電磁閥
}
void main()
{
uchar N =1; //默認圈數
while(1)
{
if(K1 == 0)
{ DelayMS(125);
if(K1==0) {
P0 = 0xfe; //P0.0正轉指示
SETP_MOTOR_FFW(N);
if(K3 == 0) break;
}
delayB(5);//轉動停止間隔時間
beep();
}
else if(K2 == 0)
{ DelayMS(125);
if(K2==0){
P0 = 0xfd; //P0.1反轉指示
SETP_MOTOR_REV(N);
if(K3 == 0) break;
}
delayB(5);//轉動停止間隔時間
beep();
}
else if(K4==0)//步數加一按鍵按下
{ DelayMS(125);
if(K4==0)
while(K4==0);
N=N+1;//步數加一
if(N>50)//如果步數大于10
{
N=50;//步數最大設置到10
}
}
else if(K5==0)//步數減一按鍵按下
{ DelayMS(125);
if(K5==0)
while(K5==0);
N=N-1;//步數減一
if(N<1)//如果步數小于1
{
N=1;//步數設置最少1
}
}
else
{
P1 = 0x00;
P0= 0xfb; //P0.2停止指示
}
}
}
作者:
cyy998
時間:
2016-7-28 20:01
定時器0函數應該是interrupt 1吧。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
黄片毛片在线观看
|
www久久国产
|
中文字幕亚洲精品
|
成人毛片一区二区三区
|
大香网伊人
|
成人h动漫亚洲一区二区
|
成人精品一区
|
91av视频在线免费观看
|
国产精品1区2区
|
在线国产一区二区
|
成人国产精品一级毛片视频毛片
|
亚洲精品日韩一区二区电影
|
亚洲国产精品一区二区第一页
|
国产免费观看一区
|
日韩毛片在线视频
|
日本不卡一区二区
|
81精品国产乱码久久久久久
|
www久久国产
|
日本精品一区二区在线观看
|
正在播放一区二区
|
在线视频一区二区三区
|
国产情侣一区
|
欧美精品在线免费观看
|
天堂资源最新在线
|
亚洲在线久久
|
欧美黄色一级毛片
|
免费一级做a爰片久久毛片潮喷
|
www.av在线
|
国产精品亚洲欧美日韩一区在线
|
免费激情
|
一区二区三区四区免费在线观看
|
久草www
|
日韩视频91
|
视频1区2区
|
亚洲精品成人网
|
成人精品鲁一区一区二区
|
国产日韩一区二区三区
|
一区二区三区免费
|
日韩精品视频一区二区三区
|
久草网在线视频
|
日韩一区二区三区av
|