⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 歩进电机.c

📁 单片机和电机的简单结合运用
💻 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 + -