遙控電機(jī)程序
;*步進(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單片機(jī)教程站 *
;* 郵箱: sxj1974@163.com *
;* 網(wǎng)站: http://www.51c51.com http://www.8951.com 更多例程請(qǐng)登陸網(wǎng)站 *
;********************************************************************************
;* 硬件:此程序在本公司xlisp系列單片機(jī)實(shí)驗(yàn)儀運(yùn)行通過(guò) *
;********************************************************************************
;* 【版權(quán)】 Copyright(C)深圳學(xué)林電子有限公司 www.51c51.com All Rights Reserved *
;* 【聲明】 此程序僅用于學(xué)習(xí)與參考,引用請(qǐng)注明版權(quán)和作者信息! *
;********************************************************************************
hex格式文件下載(點(diǎn)右鍵,目標(biāo)另存為hex即可直接燒寫(xiě))
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)測(cè)鍵盤(pá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開(kāi)始正轉(zhuǎn)
jnb p3.4,stop1 ;如果p3.4按下停止
jnb p3.3,rev2 ;如果p3.3按下反轉(zhuǎn)
call delay ;轉(zhuǎn)動(dòng)的速度
inc r0 ;取下一個(gè)碼
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開(kāi)始反轉(zhuǎn)
jnb p3.4,stop1 ;如果p3.4按下停止
jnb p3.3,rev2 ;如果p3.3按下反轉(zhuǎn)
call delay ;轉(zhuǎn)動(dòng)的速度
inc r0 ;取下一個(gè)碼
jmp rev1 ;繼續(xù)反轉(zhuǎn)
stop1: call delay ;按p3.4的消除抖動(dòng)
jnb p3.4,$ ;p3.4放開(kāi)否?
call delay ;放開(kāi)消除抖動(dòng)
jmp stop
for2: call delay ;按p3.2的消除抖動(dòng)
jnb p3.2,$ ;p3.2放開(kāi)否?
call delay ;放開(kāi)消除抖動(dòng)
jmp for
rev2: call delay ;按p3.3的消除抖動(dòng)
jnb p3.3,$ ; p3.3放開(kāi)否?
call delay ;放開(kāi)消除抖動(dòng)
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
評(píng)論