請教這個步進(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哦






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久不卡网国产精品一区 | 国产激情一区二区三区 | 免费v片| a爱视频| 日本在线免费视频 | 久久1区 | 精久久久 | 日本一区二区高清不卡 | 欧美毛片免费观看 | 亚洲综合在 | 91亚洲一区 | 四虎影视一区二区 | 久久精品1 | 欧美一二区 | 国产yw851.c免费观看网站 | 日韩三级电影一区二区 | 欧美日韩一卡 | 午夜精品一区二区三区在线视频 | 不卡一区 | 欧美精品国产一区二区 | 91亚洲国产成人久久精品网站 | 玖玖在线免费视频 | 日韩精品视频一区二区三区 | 中文字幕av高清 | 亚洲国产二区 | 欧美日韩在线观看一区二区三区 | sese视频在线观看 | 午夜丰满寂寞少妇精品 | 91色在线| 亚洲自拍偷拍免费视频 | 午夜精品久久久 | 欧美精品成人 | 伊人网国产 | av电影手机版 | 亚洲国产欧美在线 | 草久在线视频 | 亚洲国产成人精品女人 | 99精品久久| 欧美老少妇一级特黄一片 | 欧美日本一区 | 男女视频91 |