新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 步進電機驅動匯編程序及調試總結

        步進電機驅動匯編程序及調試總結

        作者: 時間:2016-11-30 來源:網絡 收藏
        ;*************步進電機驅動*****************

        ;設計者小蘇 FOSC=12MHz 2013.11.05

        ;------------------------------------------------

        ; 步進角為7.5度 一圈360度,需要48個脈沖完成
        ;A組線圈 P2.4
        ;B組線圈 P2.5
        ;C組線圈 P2.6
        ;D組線圈 P2.7
        ;正傳次序:AB組-BC組-CD組-DA組(即一個脈沖,正轉7.5度)

        ;--------------------------------------------

        ;調試平臺i51最小系統
        ;調試結果:步進電機,速度參數40,正反轉正常;
        ;30以下速度加快,正轉正常反轉不動,原因不明,卡死丟步猜測為卡死;
        ;繼續加速,參數為5,正轉平穩,反轉跳動,懷疑丟步。
        ;繼續加速,電機震動,但正反轉都不動,改進方案尚無(R6=248,R7為修改量)

        ;--------------------------------------------
        ;總結:對步進電機運行、驅動原理還不夠理解、
        ;任務,盡快學習,并寫出c程序,加入速度,正反轉,停機控制

        ;--------------------------------------------
        ;---------正轉-----------
        ORG 0000H
        LJMP MAIN
        ORG 0100H

        MAIN: MOV R3,#255 ;正轉3圈 共114脈沖
        START: MOV R0,#00H
        START1:MOV P2,#00H
        MOV A,R0
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        JZ START ;當A=0時轉到START(一個脈沖,正轉7.5度)
        MOV P2,A
        LCALL DELAY
        INC R0
        DJNZ R3,START1
        MOV P2,00H
        LCALL DELAY1

        ;----------------反轉-------------------------

        MOV R3,#255 ;正轉3圈 共114脈沖
        START2:MOV P2,#00H
        MOV R0,#05H
        START3:MOV A,R0
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        JZ START2 ;當A=0時轉到START(一個脈沖,反轉7.5度)
        MOV P2,A
        CALL DELAY
        INC R0
        DJNZ R3,START3
        MOV P2,00H
        LCALL DELAY1
        LJMP MAIN

        DELAY: MOV R7,#10 ;步進電機的轉速
        M3: MOV R6,#248
        DJNZ R6,$
        DJNZ R7,M3
        RET
        DELAY1:MOV R4,#20 ;2S延時子程序
        DEL2: MOV R3,#200
        DEL3: MOV R2,#250
        DJNZ R2,$
        DJNZ R3,DEL3
        DJNZ R4,DEL2
        RET

        TABLE: DB 30H,60H,0C0H,90H ;正轉表
        DB 00 ;正傳結束
        DB 30H,90H,0C0H,60H ;反轉表
        DB 00 ;反轉結束
        END


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 康保县| 荔波县| 西城区| 松阳县| 宜良县| 中西区| 尼勒克县| 威信县| 肇东市| 迁安市| 潍坊市| 龙南县| 万宁市| 原平市| 上杭县| 明光市| 泗阳县| 安图县| 肥西县| 池州市| 长海县| 灵丘县| 公主岭市| 东光县| 巫山县| 团风县| 临猗县| 遵义县| 武陟县| 宝山区| 拉萨市| 临清市| 永宁县| 扬中市| 库车县| 新巴尔虎右旗| 沁阳市| 图木舒克市| 含山县| 千阳县| 陕西省|