• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于單片機編程設計和控制步進電機的注意事項

    關于單片機編程設計和控制步進電機的注意事項

    作者: 時間:2012-12-11 來源:網絡 收藏
    關于設計的注意事項,我是這樣認為的,首先要考慮程序的,要簡潔、維護方便,還要有可擴展空間,簡單明了,子程序的搭配,延時的應用,和中斷的配合,主函數調取子程序模塊的效率、循環(huán)某個子程序的時間,條件觸發(fā)啟動子程序能迅速響應主程序的調配。 通過以上可以看出,編一個好的程序,要考慮到單片機軟件的方方面面,所以編程時,一定不能馬虎,如果馬虎,那么你的程序就會出錯,到時還得糾錯,費時費力。

    如果遇到關于步進電機的程序,那么一定要考慮到步進電機的正反轉進制碼,還要考慮到轉速,還有當前步進電機的狀態(tài)顯示,所以編一個程序,是一件很辛苦的事,還好有http://www.51hei.com這個學習單片機的好網站,可以找到很多例子和朋友。有時候累了就上論壇那泡一泡,可能會有點收獲,我這些經驗也是長期泡單片機論壇總結出來的。對于步進電機的這個程序我認為難就難在步進電機和顯示的進制碼上,如:

    uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};電機正轉
    uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};電機反轉

    步進電機正轉
    **********************************/
    void motor_ffw()
    {
    uchar i;
    uint j;
    for (j=0; j12; j++) //轉1*n圈
    {
    if(k4==0)
    {break;} //退出此循環(huán)程序
    for (i=0; i8; i++) //一個周期轉30度
    {
    P1 = FFW[i]; //取數據
    yanshia(15); //調節(jié)轉速
    }
    }
    }
    /**********************************
    步進電機反轉
    **********************************/
    void motor_rev()
    {
    uchar i;
    uint j;
    for(j=0;j12;j++)
    {
    if(k4==0)
    {break;}
    for(i=0;i8;i++)
    {
    P1=REV[i];
    yanshia(15);
    }
    }
    }



    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 新郑市| 天全县| 那曲县| 铜陵市| 海丰县| 乐昌市| 如皋市| 高平市| 昌邑市| 晋城| 日照市| 监利县| 红安县| 南昌县| 嵊泗县| 桑植县| 新沂市| 七台河市| 通州区| 武威市| 郁南县| 建平县| 盐源县| 临夏市| 平陆县| 津市市| 平顶山市| 图木舒克市| 桐梓县| 德化县| 柘城县| 明水县| 衡山县| 舞钢市| 平顶山市| 当涂县| 庄浪县| 四平市| 铜梁县| 临江市| 枣强县|