📄 歩进电机.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit jia=P1^0;
sbit jian=P1^1;
uint l=8;
uchar i,flag=0;
uchar code table[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uchar code table1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//八拍模式,每拍45度
void delay(uint z) // 延时10毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=1100;y>0;y--);
}
void delayms(uint z) //延时1毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void key()
{
if(jia==0)
{
delayms(5);
if(jia==0)
{
l--;
if(l==3)
l=4;
while(!jia);
}
}
if(jian==0)
{
delayms(5);
if(jian==0)
{
l++;
if(l==101)
l=100;
while(!jian);
}
}
}
void main()
{
EX0=1;
IT0=1; //边沿触发
EA=1;
while(1)
{
if(flag==0)
{
for(i=0;i<8;i++)
{
P2=table[i];
delay(l);
key();
}
}
if(flag==1)
{
for(i=0;i<8;i++)
{
P2=table1[i];
delay(l);
key();
}
}
if(flag==2)
{
P2=0;
}
}
}
void waibuzd() interrupt 0 //外部中断0
{
delayms(5);
flag++;
if(flag==3)
flag=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -