Znn3bq.jpeg
²é¿´: 254  |  »Ø¸´: 0
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

kiyeer

Ìú³æ (³õÈëÎÄ̳)

[½»Á÷] ²½½øµç»ú¿ØÖƳÌÐò STEPPER.C

²½½øµç»ú¿ØÖƳÌÐò STEPPER.C   

   
/*
* STEPPER.C
* sweeping stepper's rotor cw and cww 400 steps
* Copyright (c) 1999 by W.Sirichote
*/

#include c:\mc51\8051io.h  /* include i/o header file */
#include c:\mc51\8051reg.h

register unsigned char j,flag1,temp;
register unsigned int cw_n,ccw_n;

unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90}
#define n 400

/* flag1 mask byte
   0x01  run cw()
   0x02  run ccw()
*/

main()

{
  flag1=0;
  serinit(9600);
  disable();  /* no need timer interrupt */
  cw_n = n;    /* initial step number for cw */
  flag1 |=0x01; /* initial enable cw() */

while(1){  
  {
    tick_wait();  /* wait for 10ms elapsed */

    energize();   /* round-robin execution the following tasks every 10ms */
    cw();
    ccw();
  }
        }

}

cw(){
       if((flag1&0x01)!=0)
       {
        cw_n--;       /* decrement cw step number */
        if (cw_n !=0)
         j++;         /* if not zero increment index j */
         else
         {flag1&=~0x01; /* disable cw() execution */
          ccw_n = n;    /* reload step number to ccw counter */
          flag1 |=0x02; /* enable cww() execution */
          }
       }
         
}

ccw(){
       if((flag1&0x02)!=0)
       {
        ccw_n--;       /* decremnet ccw step number */
        if (ccw_n !=0)
         j--;          /* if not zero decrement index j */
         else
         {flag1&=~0x02; /* disable ccw() executon */
          cw_n = n;     /* reload step number to cw counter */
          flag1 |=0x01; /* enable cw() execution */
          }
       }
         
}

tick_wait(){   /* cputick was replaced by simpler ASM code 10ms wait */

    asm" JNB TCON.5,*";   /* wait for TF0 set */
    asm" CLR TCON.5";     /* clear TF0 for further set */
    asm" ORL TH0,#$DC";   /* reload TH0 with $DC, TL0 = 0 */
}

energize(){

    P1 = step[(j&0x07)];  /* only step 0-7 needed */
}
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ kiyeer µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸¾©Çø985£¬085401£¬Óë±¾¿Æ×¨ÒµÒ»Ö£¬µç×ÓÐÅÏ¢¹¤³Ì£¬ +4 Ñô¹â¿ªÀʵÄÄк¢ 2026-04-10 4/200 2026-04-10 18:27 by shenrf
[¿¼ÑÐ] Ò»Ö¾Ô¸211 0703»¯Ñ§ 346·ÖÇóµ÷¼Á +22 ÍÁ¶¹er? 2026-04-09 23/1150 2026-04-10 10:58 by ¸ßά´º
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖÐũ΢ÉúÎ288·Ö£¬ÈýÄêʵÑé¾­Àú +10 ´úfish 2026-04-09 10/500 2026-04-10 09:49 by potatoÃÃ
[¿¼ÑÐ] Çóµ÷¼Á +15 ÕÅzic 2026-04-05 16/800 2026-04-10 08:12 by kangsm
[¿¼ÑÐ] ÉúÎïѧÇóµ÷¼Á Ò»Ö¾Ô¸»¦9£¬326·Ö +7 Áõīī 2026-04-06 7/350 2026-04-10 08:11 by kangsm
[¿¼ÑÐ] 0854µ÷¼Á +10 ³¤¹­°Á 2026-04-09 11/550 2026-04-09 19:03 by ̽123
[¿¼ÑÐ] µç×ÓÐÅÏ¢270Çóµ÷¼Á +11 terminal469 2026-04-07 11/550 2026-04-09 18:28 by hy861222
[¿¼ÑÐ] 299Çóµ÷¼Á +6 ZVVZ13 2026-04-08 6/300 2026-04-09 15:48 by wp06
[¿¼ÑÐ] Çóµ÷¼Á£¬262»úеר˶ +6 àÅyyl 2026-04-08 6/300 2026-04-09 12:01 by zhouyuwinner
[¿¼ÑÐ] ÇóÖú071001µ÷¼Á£¡£¡£¡ +7 »ÆÊØËÉ 2026-04-05 8/400 2026-04-09 09:07 by ÐìÁ¼°×ü´óÏÀ
[¿¼ÑÐ] ÉúÎïѧ328·ÖÇóµ÷¼Á +9 ÉÁµçkkl 2026-04-08 10/500 2026-04-08 21:42 by liuhuiying09
[¿¼ÑÐ] Ò»Ö¾Ô¸»ª¶«Àí¹¤085601²ÄÁϹ¤³Ì303·ÖÇóµ÷¼Á +15 a1708 2026-04-06 15/750 2026-04-08 16:23 by luoyongfeng
[¿¼ÑÐ] 285Çóµ÷¼Á +7 ¶ñ·¨´ó¶þµÄÆøÎ¶ß 2026-04-05 10/500 2026-04-08 14:34 by zhq0425
[¿¼ÑÐ] 274Çóµ÷¼ÁÇóµ÷¼Á +10 Jachenbingoo 2026-04-06 13/650 2026-04-08 14:25 by zhq0425
[¿¼ÑÐ] ÉúÎïѧ363µ÷¼ÁÇóÖú +7 fanzhang6666 2026-04-06 9/450 2026-04-07 17:37 by lijunpoly
[ÂÛÎÄͶ¸å] Decision: Revise for Editor»¹»áËÍÉóÂð 100+3 CccccccccFD 2026-04-04 5/250 2026-04-07 10:58 by ±±¾©À³ÒðÈóÉ«
[¿¼ÑÐ] 346·ÖµÄÉúÎïÓëÒ½Ò©08600Çóµ÷¼Á +6 ³£ÓêÑôÉϰ¶ 2026-04-05 7/350 2026-04-06 12:36 by lys0704
[¿¼ÑÐ] ¿¼Ñе÷¼Á +5 ÃÀÀöµÄyouth_ 2026-04-04 6/300 2026-04-06 06:57 by houyaoxu
[¿¼ÑÐ] 288Çóµ÷¼Á£¬Ò»Ö¾Ô¸»ªÄÏÀí¹¤´óѧ071005 +6 ioodiiij 2026-04-04 6/300 2026-04-05 10:09 by guoweigw
[¿¼ÑÐ] ÔõôɾÌû×Ó°¡ +3 ·ìêØ1000 2026-04-04 3/150 2026-04-04 14:20 by ÍÁľ˶ʿÕÐÉú
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û