在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 步進(jìn)電機(jī)控制程序(c語言+51單片機(jī))

            步進(jìn)電機(jī)控制程序(c語言+51單片機(jī))

            作者: 時間:2011-05-01 來源:網(wǎng)絡(luò) 收藏

            #includereg51.h>

            本文引用地址:http://www.biyoush.com/article/162126.htm

            #define uint unsigned int
            #define uchar unsigned char
            #define ms *77
            // f = 12 M
            #define LEDLen 4
            #define Dj_star() {IE=0x81; pri_dj=0; }
            #define Dj_stop() {IE=0x00; pri_dj=1; P1=0xff; shache=0; delay(800ms); delay(800ms);delay(400ms); shache = 1; }
            #define Chilun_Num 8
            /* 齒輪數(shù) 8 個*/
            #define set_display_num() { LEDBuf[0] = tmp / 1000; LEDBuf[1] = tmp / 100 % 10;
            LEDBuf[2] = tmp / 10 % 10; LEDBuf[3] = tmp % 10; }
            uchar LEDBuf[LEDLen] = {0,0,0,0};
            void read_num (); /* 讀播碼盤 到 set_round_num * 8 */
            void display ();
            void delay(uint delay_time) { uint i; for (i=0; i delay_time ; i++) ; }
            void run ();
            void fx_run();

            uint round_num = 0; /* 記錄已轉(zhuǎn)的 齒輪數(shù) , 中斷1次 加 1*/
            uint set_round_num = 0; /* 播碼盤設(shè)置 圈數(shù) */
            uint set_pwm_width = 0; /* 播碼盤設(shè)置 正向速度 */
            bit one_round_flg = 0;
            sbit led_1000 = P0^7; //use for display
            sbit led_100 = P0^6; //use for display
            sbit led_10 = P0^5; //use for display
            sbit led_1 = P0^4; //use for display

            sbit key_start = P3^0;
            sbit key_puse = P3^0;
            sbit key_clear = P3^1;
            /* P3^2 接齒輪傳感器 中斷 */
            sbit bujin_zx_stop = P3^3; /* 接 ,正向到位傳感器 ,為 0 停機(jī) */
            sbit bujin_fx_stop = P3^4; /* 接 ,反向到位傳感器 ,為 0 停機(jī) */

            sbit shache = P3^5; /* 接剎車繼電器 0 電位有效 */
            sbit pri_dj = P3^6; /* 接主電機(jī)繼電器 0 電位有效 */

            void main(){
            TCON = 0x01;
            display();
            while(1) {
            IE=0x00;
            round_num = 0;
            display();
            if ( bujin_fx_stop ) fx_run();
            while ( key_start );
            delay ( 8ms );
            if(!key_start){
            read_num();
            //set_round_num = 8;
            while ( !key_start );
            run ();
            fx_run();
            }
            }
            }

            void run () {
            #define Delay_time 180
            /* 轉(zhuǎn)一圈 50 次循環(huán),每循環(huán) 4 步 ,50 * 4 = 200 , 200 * 1。8 = 360 */
            uchar i ;
            P1 = 0xff;
            set_pwm_width = 15 + set_pwm_width / 10;
            while ( 1 ) {

            while( !shache | !key_start );
            Dj_star();
            for ( i=0 ; bujin_zx_stop !pri_dj;i++ ){
            P1 = 0xf9;
            delay ( Delay_time ); // bujin_zx_stop = P3^3;
            P1 = 0xfc; // bujin_fx_stop = P3^4;
            delay ( Delay_time); // key_puse = P3^0;
            P1 = 0xf6; // key_clear = P3^1;
            delay ( Delay_time ); // shache = P3^5;
            P1 = 0xf3; // pri_dj = P3^6;
            delay ( Delay_time );
            if( i == set_pwm_width ) { P1 = 0xff; i = 0; one_round_flg = 0; while ( !one_round_flg key_puse );}
            if(!key_puse) { delay(4ms); if(!key_puse) break; }
            }

            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 );
            }
            }
            }
            }

            51單片機(jī)相關(guān)文章:51單片機(jī)教程


            c語言相關(guān)文章:c語言教程



            上一頁 1 2 下一頁

            評論


            相關(guān)推薦

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

            關(guān)閉