资源简介

键盘控制步进电机正反转和调速c语言程序 #include //51芯片管脚定义头文件 #include //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; sbit K1 = P3^5; //正转 sbit K2 = P3^3; //反转 sbit K3 = P3^5; sbit K4 =P3^6 ; sbit K5 =P3^7; //停止

资源截图

代码片段和文件信息

#include        //51芯片管脚定义头文件
#include   //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint  unsigned int
uchar code FFW[8]={0x010x030x020x060x040x0c0x080x09};
uchar code REV[8]={0x090x080x0c0x040x060x020x030x01};
sbit  K1   = P3^5;       //正转
sbit  K2   = P3^3;       //反转
sbit  K3   = P3^5;
sbit  K4   =P3^6 ;
sbit  K5   =P3^7;   //停止
//sbit  BEEP = P3^6;       //蜂鸣器

/********************************************************/
/*                                                  
/* 延时t毫秒 
/* 11.0592MHz时钟,延时约1ms                                     
/*                                                      
/********************************************************/
void delay(uint t)
{                           
   uint k;
   while(t--)
   {
     for(k=0; k<125; k++)
     { }
   }
}

/**********************************************************/
void delayB(uchar x)    //x*0.14MS
 {
   uchar i;
   while(x--)
   {
     for (i=0; i<13; i++)
     { }
   }
 }

/**********************************************************/
void beep()
 {
   uchar i;
   for (i=0;i<100;i++)
    { 
     delayB(4);
   //  BEEP=!BEEP;                 //BEEP取反
    } 
 //    BEEP=1;                    //关闭蜂鸣器
 }

/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void  motor_ffw()
 { 
   uchar i;
   uint  j;
   for (j=0; j<1; j++)         //转1*n圈 
    { 
    if(K5==0)
        {break;}                //退出此循环程序
      for (i=0; i<8; i++)       //一个周期转45度
        {
          P1 = FFW[i];          //取数据
          delay(2);            //调节转速
        }
    }
 }

/********************************************************/
/*
/*步进电机反转
/*
/********************************************************/
void  motor_rev()
{
     uchar i;
 uint  j;
 for (j=0; j<1; j++)       //转1×n圈
      {
    if(K5==0)
         {break;}               //退出此循环程序
        for (i=0; i<8; i++)     //一个周期转45度1
        {
          P1 = REV[i];          //取数据
          delay(2);   

评论

共有 条评论