請教這個步進(jìn)電機(jī)程序錯誤之處!現(xiàn)在步進(jìn)電機(jī)可以正轉(zhuǎn)但是不能反轉(zhuǎn)懷疑在進(jìn)入反轉(zhuǎn)查表部分是的數(shù)據(jù)入口不對,沒查出來請高手指教哪里出錯,按理反轉(zhuǎn)的入口是99H啊,就是轉(zhuǎn)不起來。謝謝各位賜教,本程序大家稍微修改便可移植到其他步進(jìn)電機(jī)去! ;****************************************************************************************************** ;用ST51單片機(jī)控制298芯片驅(qū)動雙步進(jìn)電機(jī)轉(zhuǎn)動,實(shí)現(xiàn)正反轉(zhuǎn)功能。 ; bg5sbj 2011.11.25 ;******************************************************************************************************* ORG 0000h ajmp main org 0030h main: cpl p2.3 ;p0口指示燈總線使能,利于觀察p0口狀態(tài) stop: orl p0,#0ffh ;兩個步進(jìn)電機(jī)停止工作 loop: jnb p3.4,for2 ;如果s2按下正轉(zhuǎn) jnb p3.5,rev2 ;如果s1按下反轉(zhuǎn) jnb p3.6,stop1 ;如果s3按下停止 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ǔ)反向 mov p0,a ;輸出到p0開始正轉(zhuǎn) jnb p3.6,stop1 ;如果s3按下停止 jnb p3.5,rev2 ;如果s1按下反轉(zhuǎn) call delay ;轉(zhuǎn)速調(diào)整 inc r0 ;取下一個碼 jmp for1 ;繼續(xù)正轉(zhuǎn) rev: mov r0,#99h ;反轉(zhuǎn)到tab取碼指針初值 rev1: mov a,r0 mov dptr,#table ;取碼 movc a,@a+dptr jz rev ;是否到了結(jié)束碼00h cpl a ;把a(bǔ)cc反向 mov p0,a ;輸出到p1開始反轉(zhuǎn) jnb p3.6,stop1 ;如果s3按下停止 jnb p3.4,for ;如果s2按下正轉(zhuǎn) call delay ;轉(zhuǎn)動的速度 inc r0 ;取下一個碼 jmp rev1 ;繼續(xù)反轉(zhuǎn) ;``````````````````````````````````````````````````````````````````` stop1: mov r1,#140 call d1 ;按s3的消除抖動 jnb p3.6,$ ;s3放開否? call d1 ;放開消除抖動調(diào)用延時 jmp stop for2: mov r1,#140 call d1 ;按s2的消除抖動 jnb p3.4,$ ;s2放開否? call d1 ;放開消除抖動 jmp for rev2: mov r1,#140 call d1 ;按s1的消除抖動 jnb p3.5,$ ;s1放開否? call d1 ;放開消除抖動 jmp rev ;````````````````````````````````````````````````````````````````` delay: mov r1,#70 ;步進(jìn)電機(jī)的轉(zhuǎn)速20 ms 12M 晶體 d1: mov r2,#40 ;;0.500ms X 40 = 20 ms djnz r2,$ djnz r1,d1 ret ;*************************************************************** table: db 88h,0cch,44h,66h,22h,33h,11h,99h ;正轉(zhuǎn)表 db 00h ;正轉(zhuǎn)結(jié)束 db 88h,99h,11h,33h,22h,66h,44h,0cch ;反轉(zhuǎn) db 00h ;反轉(zhuǎn)結(jié)束 end 作者: 青蘋果 時間: 2012-1-16 09:16 為什么入口是99H?覺得應(yīng)該是09H哦
|