色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 89S51輸出信號(hào)來驅(qū)動(dòng)一個(gè)步進(jìn)馬達(dá)c程序

          89S51輸出信號(hào)來驅(qū)動(dòng)一個(gè)步進(jìn)馬達(dá)c程序

          作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          這個(gè)程序利用89S51輸出信號(hào)來驅(qū)動(dòng)一個(gè)步進(jìn)馬達(dá)/*

          Target:89S51

          本文引用地址:http://cafeforensic.com/article/201611/315591.htm

          程序描述:這個(gè)程序利用89S51輸出信號(hào)來驅(qū)動(dòng)一個(gè)步進(jìn)馬達(dá)*/

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

          #include

          #define TIMER0_COUNT 0xEE11/*10000h-((12,000,000/(12*FREQ))*/

          #define STOP 0

          #define FORWARD 1

          #define BACKWARD 2

          char gotkey();

          code forward[4]={0XFE,0XFD,0XFB,0X07};

          code backward[4]={0X07,0XFB,0XFD,0XFE};

          unsigned char timer0_tick=0,i=0,times=100,status=1;

          static void timer0_isr(void) interrupt TF0_VECTOR using 1

          {

          TR0=0;

          TL0=(TIMER0_COUNT & 0x00FF);

          TH0=(TIMER0_COUNT >> 8);

          TR0=1;

          timer0_tick++;

          if (timer0_tick==times) {

          i++;

          if(i==4) i=0;

          timer0_tick=0;

          if (status==FORWARD) P1=forward[i];

          if (status==BACKWARD) P1=backward[i];

          }

          }

          static void timer0_initialize(void)

          {

          EA=0;

          timer0_tick=0;

          TR0=0;

          TMOD=0x01;

          TL0=(TIMER0_COUNT & 0x00FF);

          TH0=(TIMER0_COUNT >> 8);

          PT0=0;

          ET0=1;

          TR0=1;

          EA=1;

          }

          void main (void) {

          char command;

          timer0_initialize();

          do {

          command=gotkey();

          if(command==15) status=FORWARD; //按下F鍵

          if(command==11) status=BACKWARD; //按下B鍵

          if(command==12) status=STOP; //按下C鍵

          if((command==10) && (times>1)) times=times/2;

          //按下A鍵

          if(command==13) times=times*2; //按下D鍵

          } while (1); /* 無窮循環(huán) */

          }



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉