free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標簽廣場
我要提問

單片機

新手求助 單片機 定時器 步進電機

我編的一個程序

#include        //51芯片管腳定義頭文件

#include   //內(nèi)部包含延時函數(shù) _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};

unsigned char code Tab[7]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82};  //數(shù)碼管顯示0~6的段碼表

uint  n;

uint  m;

uint c=1;

uint b=1;

sbit  K1   = P3^2;       //一樓

sbit  K2   = P3^3;       //二樓

sbit  K3   = P3^4;       //三樓

sbit  K4   = P3^5;       //一樓

sbit  K5   = P1^4;       //二樓

sbit  K6   = P1^5;       //三樓

sbit  p1_0 = P1^0;

sbit  p1_1 = P1^1;

sbit  p1_2 = P1^2;

sbit  p1_3 = P1^3;

sbit  p2_0 = P2^0;

sbit  p2_1 = P2^1;

sbit  p2_2 = P2^2;

sbit  p2_3 = P2^3;

/********************************************************/

/*                                                  

/* 延時t毫秒

/* 11.0592MHz時鐘,延時<1ms                                    

/*                                                      

/********************************************************/

void delay(uint t)

{                           

   uint k;

   while(t--)

   {

     for(k=0; k<80; k++)

     { }

   }

}

/**********************************************************/

/********************************************************/

/*

/*步進電機正轉

/*

/********************************************************/

void  motor_ffw(n)

{

   uchar i;

   uchar k;

   uchar r;

   uint  j;

   for(k=0;k   {

   for (r=0;r<64;r++)

   {

   for (j=0; j<8; j++)         //轉1*n圈

    {p1_0=1 ; p1_1=0 ; p1_2=0 ; p1_3=0;

  delay(1);

  p1_0=1 ; p1_1=1 ; p1_2=0 ; p1_3=0;

  delay(1);

  p1_0=0 ; p1_1=1 ; p1_2=0 ; p1_3=0;

  delay(1);

  p1_0=0 ; p1_1=1 ; p1_2=1 ; p1_3=0;

  delay(1);

  p1_0=0 ; p1_1=0 ; p1_2=1 ; p1_3=0;

  delay(1);

  p1_0=0 ; p1_1=0 ; p1_2=1 ; p1_3=1;

  delay(1);

  p1_0=0 ; p1_1=0 ; p1_2=0 ; p1_3=1;

  delay(1);

  p1_0=1 ; p1_1=0 ; p1_2=0 ; p1_3=1;

     delay(1);                 //調(diào)節(jié)轉速

        }

  }

    }

}

void  motor_ffw2(n)

{

   uchar i;

   uchar k;

   uchar r;

   uint  j;

   for(k=0;k   {

   for (r=0;r<64;r++)

   {

   for (j=0; j<8; j++)         //轉1*n圈

   { p2_0=1 ; p2_1=0 ; p2_2=0 ; p2_3=0;

  delay(1);

  p2_0=1 ; p2_1=1 ; p2_2=0 ; p2_3=0;

  delay(1);

  p2_0=0 ; p2_1=1 ; p2_2=0 ; p2_3=0;

  delay(1);

  p2_0=0 ; p2_1=1 ; p2_2=1 ; p2_3=0;

  delay(1);

  p2_0=0 ; p2_1=0 ; p2_2=1 ; p2_3=0;

  delay(1);

  p2_0=0 ; p2_1=0 ; p2_2=1 ; p2_3=1;

  delay(1);

  p2_0=0 ; p2_1=0 ; p2_2=0 ; p2_3=1;

  delay(1);

  p2_0=1 ; p2_1=0 ; p2_2=0 ; p2_3=1;

     delay(1);                 //調(diào)節(jié)轉速

        }

  }

    }

}

/********************************************************/

/*

/*步進電機反轉

/*

/********************************************************/

void  motor_rev(n)

{  uchar i;

   uchar k;

   uchar r;

   uint  j;

   for(k=0;k   {

   for (r=0;r<64;r++)

   {

   for (j=0; j<8; j++)         //轉1*n圈

    {     p1_0=1 ; p1_1=0 ; p1_2=0 ; p1_3=1;

    delay(1);

    p1_0=0 ; p1_1=0 ; p1_2=0 ; p1_3=1;

    delay(1);

    p1_0=0 ; p1_1=0 ; p1_2=1 ; p1_3=1;

    delay(1);

    p1_0=0 ; p1_1=0 ; p1_2=1 ; p1_3=0;

    delay(1);

    p1_0=0 ; p1_1=1 ; p1_2=1 ; p1_3=0;

    delay(1);

    p1_0=0 ; p1_1=1 ; p1_2=0 ; p1_3=0;

    delay(1);

    p1_0=1 ; p1_1=1 ; p1_2=0 ; p1_3=0;

    delay(1);

          p1_0=1 ; p1_1=0 ; p1_2=0 ; p1_3=0;      

          delay(1);   //調(diào)節(jié)轉速

            

        }

  }

    }

}   

void  motor_rev2(n)

{  uchar i;

   uchar k;

   uchar r;

   uint  j;

   for(k=0;k   {

   for (r=0;r<64;r++)

   {

   for (j=0; j<8; j++)         //轉1*n圈

    {     p2_0=1 ; p2_1=0 ; p2_2=0 ; p2_3=1;

    delay(1);

    p2_0=0 ; p2_1=0 ; p2_2=0 ; p2_3=1;

    delay(1);

    p2_0=0 ; p2_1=0 ; p2_2=1 ; p2_3=1;

    delay(1);

    p2_0=0 ; p2_1=0 ; p2_2=1 ; p2_3=0;

    delay(1);

    p2_0=0 ; p2_1=1 ; p2_2=1 ; p2_3=0;

    delay(1);

    p2_0=0 ; p2_1=1 ; p2_2=0 ; p2_3=0;

    delay(1);

    p2_0=1 ; p2_1=1 ; p2_2=0 ; p2_3=0;

    delay(1);

          p2_0=1 ; p2_1=0 ; p2_2=0 ; p2_3=0;      

          delay(1);   //調(diào)節(jié)轉速         

        }

  }

    }

}   

  /********************************************************/

/*

/*檢測程序

/*

/********************************************************/

void check()

{ if(n>c)

  {motor_ffw(n-c);

  p1_0=0 ; p1_1=0 ; p1_2=0 ; p1_3=0;}

  else if(n  {motor_rev(c-n);

  p1_0=0 ; p1_1=0 ; p1_2=0 ; p1_3=0;}

  else if(n==c)

{p1_0=0 ; p1_1=0 ; p1_2=0 ; p1_3=0;}

  c=n;

}

void check2()

{ if(m>b)

  {motor_ffw2(m-b);

  p2_0=0 ; p2_1=0 ; p2_2=0 ; p2_3=0;}

  else if(m  {motor_rev2(b-m);

  p2_0=0 ; p2_1=0 ; p2_2=0 ; p2_3=0;}

  else if(m==b)

{p2_0=0 ; p2_1=0 ; p2_2=0 ; p2_3=0;}

  b=m;

}

/********************************************************

*                                                      

*  主程序                                               

*                                                      

*********************************************************/

main()

{

while(1)

    {  

      if(K1==0)

    {n=1;

    check();}

   if(K2==0)

    {n=2;

    check();}

   if(K3==0)

    {n=3;

    check();}

   if(K4==0)

    {m=1;

    check2();}

   if(K5==0)

    {m=2;

    check2();}

   else if(K6==0)

    {m=3;

    check2();}

    }

    }

電梯程序 只能等一部電梯運行之后才能 控制另一部電梯

有高手指導說 要用定時器 和中斷

但是我補知道怎么改

請高手幫忙改下

提問者:I_mC醬 地點:- 瀏覽次數(shù):4964 提問時間:10-17 17:55
我有更好的答案
提 交
1條回答
60user19 11-15 18:10
只能說這么多:定時器+中斷+狀態(tài)機。
撰寫答案
提 交
1 / 3
1 / 3
相關單片機
具有音調(diào)控制的單片機立體聲前置放大器
用于單片機與電子裝置中的開關電源
單片機軟硬件復位的條件都有啥
電動機的單片機控制
單片機應用系統(tǒng)開發(fā)實例導航