新聞中心

        遙控電機(jī)程序

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

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


        org 00h
        stop: orl p1,#0ffh ; 步進(jìn)電機(jī)停止
        loop: jnb p3.2,for2 ; 如果p3.2按下正轉(zhuǎn)
        jnb p3.3,rev2 ; 如果p3.3按下反轉(zhuǎn)
        jnb p3.4,stop1 ; 如果p3.4按下停止
        jmp loop ;反復(fù)監(jiān)測鍵盤
        for: mov r0,#00h ;正轉(zhuǎn)到tab取碼指針初值
        for1: mov a,r0 ;取碼
        mov dptr,#table ;
        movc a,@a+dptr
        jz for ;是否到了結(jié)束碼00h
        cpl a ;把a(bǔ)cc反向
        mov p1,a ;輸出到p1開始正轉(zhuǎn)
        jnb p3.4,stop1 ;如果p3.4按下停止
        jnb p3.3,rev2 ;如果p3.3按下反轉(zhuǎn)
        call delay ;轉(zhuǎn)動的速度
        inc r0 ;取下一個碼
        jmp for1 ;繼續(xù)正轉(zhuǎn)
        rev: mov r0,#05h ;反轉(zhuǎn)到tab取碼指針初值
        rev1: mov a,r0
        mov dptr,#table ;取碼
        movc a,@a+table
        jz rev ;是否到了結(jié)束碼00h
        cpl a ;把a(bǔ)cc反向
        mov p1,a ;輸出到p1開始反轉(zhuǎn)
        jnb p3.4,stop1 ;如果p3.4按下停止
        jnb p3.3,rev2 ;如果p3.3按下反轉(zhuǎn)
        call delay ;轉(zhuǎn)動的速度
        inc r0 ;取下一個碼
        jmp rev1 ;繼續(xù)反轉(zhuǎn)
        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 ;步進(jìn)電機(jī)的轉(zhuǎn)速20ms
        d1:mov r2,#248
        djnz r2,$
        djnz r1,d1
        ret
        table:
        db 03h,09h,0ch,06h ;正轉(zhuǎn)表
        db 00 ;正轉(zhuǎn)結(jié)束
        db 03h,06h,0ch,09h ;反轉(zhuǎn)
        db 00 ;反轉(zhuǎn)結(jié)束
        end



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 盐源县| 深水埗区| 印江| 汨罗市| 淮南市| 喀喇沁旗| 惠东县| 阜平县| 依兰县| 始兴县| 庆城县| 太湖县| 白山市| 平阳县| 茌平县| 当涂县| 嵊州市| 卓资县| 清水河县| 辽中县| 木里| 资阳市| 松溪县| 榆社县| 新龙县| 南康市| 定西市| 罗江县| 四子王旗| 竹北市| 新乡县| 旬阳县| 将乐县| 青铜峡市| 睢宁县| 石楼县| 德安县| 上蔡县| 梁河县| 达孜县| 商洛市|