新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 遙控電機程序

        遙控電機程序

        作者: 時間:2011-02-27 來源:網絡 收藏
        ;********************************************************************************
        ;*步進電機控制程序p3.2正轉,p3.3反轉,p3.4停止 步進電機接p1.0p1.1p1.2p1.3 *
        ;********************************************************************************
        ;* 日期: 2007-3-25 *
        ;* 版本: 3.0 *
        ;* 作者: 深圳學林電子有限公司 專業8051教程站 *
        ;* 郵箱: sxj1974@163.com *
        ;* 網站: http://www.51c51.com http://www.8951.com 更多例程請登陸網站 *
        ;********************************************************************************
        ;* 硬件:此程序在本公司xlisp系列實驗儀運行通過 *
        ;********************************************************************************
        ;* 【版權】 Copyright(C)深圳學林電子有限公司 www.51c51.com All Rights Reserved *
        ;* 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
        ;********************************************************************************

        hex格式文件下載(點右鍵,目標另存為hex即可直接燒寫)


        org 00h
        stop: orl p1,#0ffh ; 步進電機停止
        loop: jnb p3.2,for2 ; 如果p3.2按下正轉
        jnb p3.3,rev2 ; 如果p3.3按下反轉
        jnb p3.4,stop1 ; 如果p3.4按下停止
        jmp loop ;反復監測鍵盤
        for: mov r0,#00h ;正轉到tab取碼指針初值
        for1: mov a,r0 ;取碼
        mov dptr,#table ;
        movc a,@a+dptr
        jz for ;是否到了結束碼00h
        cpl a ;把acc反向
        mov p1,a ;輸出到p1開始正轉
        jnb p3.4,stop1 ;如果p3.4按下停止
        jnb p3.3,rev2 ;如果p3.3按下反轉
        call delay ;轉動的速度
        inc r0 ;取下一個碼
        jmp for1 ;繼續正轉
        rev: mov r0,#05h ;反轉到tab取碼指針初值
        rev1: mov a,r0
        mov dptr,#table ;取碼
        movc a,@a+table
        jz rev ;是否到了結束碼00h
        cpl a ;把acc反向
        mov p1,a ;輸出到p1開始反轉
        jnb p3.4,stop1 ;如果p3.4按下停止
        jnb p3.3,rev2 ;如果p3.3按下反轉
        call delay ;轉動的速度
        inc r0 ;取下一個碼
        jmp rev1 ;繼續反轉
        stop1: call delay ;按p3.4的消除抖動
        jnb p3.4,$ ;p3.4放開否?
        call delay ;放開消除抖動
        jmp stop

        for2: call delay ;按p3.2的消除抖動
        jnb p3.2,$ ;p3.2放開否?
        call delay ;放開消除抖動
        jmp for

        rev2: call delay ;按p3.3的消除抖動
        jnb p3.3,$ ; p3.3放開否?
        call delay ;放開消除抖動
        jmp rev

        delay: mov r1,#40 ;步進電機的轉速20ms
        d1:mov r2,#248
        djnz r2,$
        djnz r1,d1
        ret
        table:
        db 03h,09h,0ch,06h ;正轉表
        db 00 ;正轉結束
        db 03h,06h,0ch,09h ;反轉
        db 00 ;反轉結束
        end



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 旺苍县| 黑龙江省| 东明县| 郓城县| 潼南县| 偃师市| 灌云县| 宣恩县| 鄂托克旗| 商城县| 清原| 商都县| 庆元县| 泽库县| 白银市| 新竹市| 改则县| 五峰| 子长县| 揭阳市| 佛山市| 南京市| 睢宁县| 塘沽区| 裕民县| 六枝特区| 茂名市| 房产| 雅安市| 佳木斯市| 沁源县| 加查县| 静乐县| 商丘市| 腾冲县| 怀仁县| 拜泉县| 集贤县| 德化县| 潮安县| 沈丘县|