找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1513|回复: 0
打印 上一主题 下一主题
收起左侧

步进电机驱动监测(可正反转)

[复制链接]
跳转到指定楼层
楼主
ID:315810 发表于 2018-4-28 21:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code zheng[]={
0xf3,0xf6,0xfc,0xf9};
uchar code fan[]={
0xf9,0xfc,0xf6,0xf3};
//uchar t;
bit flag=0;
uint shijian;
uchar temp;
void delay(uint z)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<80;j++);
}
/*void timer_init()
{
  TMOD=0X01;//???0,??1
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  ET0=1;
  EA=1;
  TR0=1;
} */
void motor_z()
{
  uchar i;
  for(i=0;i<4;i++)
   {
    P2=zheng[i];
        delay(shijian);
   }
}
void motor_f()
{
  uchar i;
  for(i=0;i<4;i++)
   {
    P2=fan[i];
        delay(shijian);
   }
}
void keyscan()
{
  P3=0XFF;
  delay(1);
  if(P3!=0xff)
   {
          temp=P3;
          switch(temp)
          {
            case 0xfe:
               {flag=~flag;break;   }
               case 0xfd:
               {if(shijian<=60)
                 {shijian=50;}
                else
               {shijian=shijian-100;}
               break;  }
               case 0xfb:
               {if(shijian>=600)
                {shijian=650;}
                else
                {shijian=shijian+100;}
               break;  }
               default : break;
          }
          while(temp==P3);
   }
}
void main()
{
   shijian=350;
  //timer_init();
  while(1)
   {
     keyscan();
     if(flag==0)
         {
           motor_z();
         }
    else
         {
              motor_f();
         }
   }
}
/*void timer() interrupt 1
{
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  if(t>=200)
   {
    t=0;
    flag=~flag;
   }
  t++;
} */

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表