您当前的位置:五五电子网电子知识单片机-工控设备51单片机步进电机控制程序(c语言51单片机) 正文
步进电机控制程序(c语言51单片机)

步进电机控制程序(c语言51单片机)

点击数:7564 次   录入时间:03-04 11:49:30   整理:http://www.55dianzi.com   51单片机
             }

             P1 = 0xff;
             if ( pri_dj )   break;

             if ( !key_puse ) {
                 delay ( 8ms );
                 if ( !key_puse   ) {
                     Dj_stop();
                     while ( !key_puse );
                     // next pree key
                     while( !shache );

                     while(1){
                         while (   key_puse &   key_clear );
                         delay ( 8ms );
                         if ( !key_clear )   { round_num = 0; display(); }
                         if ( !key_puse   )   break;
                     }
                     while( !key_puse );
                     delay(8ms);
                     while( !key_puse );
                  }
             }
     }
}
void ext_int0(void) interrupt 0   {    /* 主电机 齿轮 中断 */
     uint tmp;
     EA = 0;
     if( !pri_dj ){
             round_num ++;
             if (round_num % Chilun_Num == 0 ){
                 one_round_flg = 1;
                 tmp = round_num   / Chilun_Num ;
                 set_display_num();
                 P0 = 0xf0;
                 P0 = P0 | LEDBuf[0] ;
                 led_1000   = 0;
                 P0 |= 0xf0;

                 P0 = 0xf0;
                 P0 = P0 | LEDBuf[1] ;
                 led_100    = 0;
                 P0 |= 0xf0;

                 P0 = 0xf0;
                 P0 = P0 | LEDBuf[2] ;
                 led_10     = 0;
                 P0 |= 0xf0;

                 P0 = 0xf0;
                 P0 = P0 | LEDBuf[3] ;
                 led_1      = 0;
                 P0 |= 0xf0;

                 P0 = 0xf0;
             }
             if ( round_num >= set_round_num   ) Dj_stop();
         }
     EA = 0x81;
}

void display(){
      uchar i;
      uint tmp = 0;
      tmp = round_num   / Chilun_Num ;
      set_display_num();
      for(i = 0; i < LEDLen ; i ++){
            P0 = 0xf0;
            P0 = P0 | LEDBuf[i] ;
            if(i==0) led_1000   = 0;         //P0^4
            if(i==1) led_100    = 0;         //P0^5
            if(i==2) led_10     = 0;         //P0^6
            if(i==3) led_1      = 0;         //P0^7
            P0 |= 0xf0;
      }
      P0 = 0xf0;
}

void read_num(){
      /* 读播码盘 到 set_round_num   ,set_pwm_width   */
      uchar tmp;
      P2 =   0xFF;
      P2 =   0xEF;     // 1110 1111
      delay ( 1ms   );
      tmp =    ~(P2   | 0xF0);

      P2 =   0xDF;     // 1101 1111

上一页  [1] [2] [3]  下一页


本文关键字:单片机  步进电机  C语言  51单片机单片机-工控设备 - 51单片机