新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 步進電機加速-勻速-減速運行程序(C51源程序)

        步進電機加速-勻速-減速運行程序(C51源程序)

        作者: 時間:2018-08-01 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201808/384843.htm

        ME300系列單片機開發(fā)系統+步進電機模塊演示程序

        功能:步進電機以加速方式啟動,轉速達到程序規(guī)定的最快速度后保持一段時間勻速運轉,又開始以減速

        方式運行直到步進電機停止轉動。由K1鍵控制演示程序運行。步進電機模塊上D1-D4可以指示工作狀態(tài)。

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

        /* */

        /* ME300B單片機開發(fā)系統演示程序 - 步進電機加減速運行程序 */

        /* */

        /* 步進電機啟動時,轉速由慢到快逐步加速。 */

        /* 步進電機勻速運行 */

        /* 步進電機由快到慢逐步減速到停止 */

        /* 網站http://www.elecfans.com */

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

        #include //51芯片管腳定義頭文件

        #include //內部包含延時函數 _nop_();

        #define uchar unsigned char

        #define uint unsigned int

        sbit K1=P1^4;

        uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};

        //uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};

        uchar rate ;

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

        /*

        /* 延時

        /* 11.0592MHz時鐘,

        /*

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

        void delay()

        {

        uchar k;

        uint s;

        k = rate;

        do

        {

        for(s = 0 ; s 500 ; s++) ;

        }while(--k);

        }

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

        /*

        /*步進電機正轉

        /*

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

        void motor_ffw()

        {

        uchar i;

        for (i=0; i8; i++) //一個周期轉30度

        {

        P1 = FFW[i]; //取數據

        delay(); //調節(jié)轉速

        }

        }

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

        *

        *步進電機運行

        *

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

        void motor_turn()

        {

        uchar x;

        rate=0x10;

        x=0xf0;

        do

        {

        motor_ffw(); //加速

        rate--;

        }while(rate!=0x01);

        do

        {

        motor_ffw(); //勻速

        x--;

        }while(x!=0x01);

        do

        {

        motor_ffw(); //減速

        rate++;

        }while(rate!=0x10);

        }

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

        *

        * 主程序

        *

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

        main()

        {

        P1=0xf0;

        while(1)

        {

        P1=0xf0;

        if(K1==0)

        {

        motor_turn();

        }

        }

        }

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



        關鍵詞: 51單片機

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 阜平县| 罗平县| 夏津县| 常德市| 汾阳市| 苍溪县| 招远市| 乌鲁木齐县| 枞阳县| 宁阳县| 会同县| 武冈市| 江永县| 吉安市| 徐汇区| 安福县| 鹿泉市| 华池县| 大邑县| 长垣县| 卓资县| 大英县| 潮安县| 乌海市| 乐都县| 江陵县| 保德县| 项城市| 深水埗区| 古浪县| 长岭县| 克拉玛依市| 重庆市| 庆元县| 罗田县| 张掖市| 阜新| 佛坪县| 申扎县| 高陵县| 陇西县|