`基于 单片机AT89S52的直流电机PWM调速控制系统 `
3
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|
|
|
|
#include
#define uint unsigned int
#define uchar unsigned char
***it K3=P2^5;
***it K4=P2^4;
//k3正转。k4反转。释放停止
uchar code step_table[]={0x8,0xa,0x2,0x6,0x4,0x5,0x1,0x9};
void delay(unsigned int m)
{
unsigned int i,j;
for(i=m;i>0;i--)
for(j=110;j>0;j--);
}
void xp()//x轴正转
{
while(!K3)
{
uint i;
for(i=0;i<8;i++)
{
P1=step_table;
delay(10);
}
}
P1=0;//按键释放时,反转P1停在table某处,导致电机有电压从而使电机发热,需要归零。
}
void xn()//x轴反转
{
uint i;
while(!K4)
{
for(i=8;i>0;i--)
{
P1=step_table;
delay(10);
}
}
P1=0;//按键释放时,反转P1停在table某处,导致电机有电压从而使电机发热,需要归零。
}
void main()
{
while(1)
{
if(K3==0)
{
delay(20);
if(K3==0)
{
// LED1=0;
xp();
}
}
if(K4==0)
{
delay(20);
if(K4==0)
{
// LED1=0;
xn();
}
}
}
}
|
|
|
|
|
...................................
|
|
|
|
|