²é¿´: 250  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸Ìì´ó²ÄÁÏÓ뻯¹¤£¨085600£©×Ü·Ö338 +4 ²Ì´óÃÀÅ® 2026-03-13 4/200 2026-03-18 22:47 by walc
[¿¼ÑÐ] ÄÜÔ´²ÄÁÏ»¯Ñ§¿ÎÌâ×éÕÐÊÕ˶ʿÑо¿Éú8-10Ãû +4 ÍÑÓ±¶ø³ö 2026-03-16 10/500 2026-03-18 20:59 by ÍÑÓ±¶ø³ö
[¿¼ÑÐ] ¡¾Í¬¼ÃÈí¼þ¡¿Èí¼þ£¨085405£©¿¼ÑÐÇóµ÷¼Á +3 2026eternal 2026-03-18 3/150 2026-03-18 19:09 by ²«»÷518
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤ +5 °²È«Éϰ¶£¡ 2026-03-16 5/250 2026-03-18 15:33 by cmz0325
[¿¼ÑÐ] ÊÕ¸´ÊÔµ÷¼ÁÉú +4 ÓêºóÇïºÉ 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
[¿¼²©] »·¾³ÁìÓòÈ«¹úÖØµãʵÑéÊÒÕÐÊÕ²©Ê¿1-2Ãû +3 QGZDSYS 2026-03-13 5/250 2026-03-18 11:13 by QGZDSYS
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +3 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 3/150 2026-03-18 10:12 by macy2011
[¿¼ÑÐ] 293Çóµ÷¼Á +11 zjlµÄºÅ 2026-03-16 16/800 2026-03-18 08:10 by zhukairuo
[¿¼²©] 26²©Ê¿ÉêÇë +3 1042136743 2026-03-17 3/150 2026-03-17 23:30 by ÇáËɲ»ÉÙËæ
[¿¼ÑÐ] 277µ÷¼Á +5 ×ÔÓɼå±ý¹û×Ó 2026-03-16 6/300 2026-03-17 19:26 by Àîleezz
[¿¼ÑÐ] 326Çóµ÷¼Á +5 Éϰ¶µÄСÆÏ 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[˶²©¼ÒÔ°] ºþ±±¹¤Òµ´óѧ ÉúÃü¿ÆÑ§Ó뽡¿µÑ§Ôº-¿ÎÌâ×éÕÐÊÕ2026¼¶Ê³Æ·/ÉúÎï·½Ïò˶ʿ +3 1ϲ´º8 2026-03-17 5/250 2026-03-17 17:18 by ber´¨cool×Ó
[¿¼ÑÐ] 332Çóµ÷¼Á +6 Zz°æ 2026-03-13 6/300 2026-03-17 17:03 by ruiyingmiao
[¿¼ÑÐ] 290Çóµ÷¼Á +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[¿¼ÑÐ] 285»¯¹¤Ñ§Ë¶Çóµ÷¼Á£¨081700£© +9 ²ñ¿¤Ã¨_ 2026-03-12 9/450 2026-03-17 10:18 by Sammy2
[ÂÛÎÄͶ¸å] ÓÐûÓдóÀз¢Ð¡ÂÛÎÄÄÜ´øÎÒ¸ö¶þ×÷ +3 ÔöÈñ©ÈË 2026-03-17 4/200 2026-03-17 09:26 by xs74101122
[¿¼ÑÐ] 297Ò»Ö¾Ô¸ÉϽ»085600Çóµ÷¼Á +5 Ö¸¼â°ËǧÀï 2026-03-14 5/250 2026-03-14 17:26 by a²»Ò×
[¿¼ÑÐ] 311Çóµ÷¼Á +3 ¶¬Ê®Èý 2026-03-13 3/150 2026-03-13 20:41 by JourneyLucky
[¿¼ÑÐ] 0817»¯Ñ§¹¤³ÌÓë¼¼Êõ¿¼ÑÐ312·Öµ÷¼Á +3 T123 tt 2026-03-12 3/150 2026-03-13 10:49 by houyaoxu
[¿¼²©] 26¶Á²© +4 Rui135246 2026-03-12 10/500 2026-03-13 07:15 by gaobiao
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û