全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:953
推到 Plurk!
推到 Facebook!

要如何將步進運轉停止的角度儲存~並執行儲存的位址??

缺席
big_eyes
一般會員


發表:28
回覆:52
積分:16
註冊:2005-03-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-24 00:00:14 IP:218.164.xxx.xxx 未訂閱
請位各位大大!!    我寫了一個程式~動作是((步進馬達運轉~感測器感測到物體則步進停止運轉一會~再進行步進歸位的動作))...    現在~我遇到問題了~~就是.....    1.我不知道如何將感測器感測到物體則停止的那個位置存放起來~然後再將那位置放到直流馬達的PO裡~好讓直流馬達準確的知道物體的方位~而進行追蹤.... (PS:是否將步進的累積器A存放在暫存器呢?還是要將A設一個位只給ㄊ呢??     是mov r3,a??  ;  還是mov 20h,a??  或者是???  )    2.請問BYTE跟BITE有什麼不同呢??    請教各位大大~該如何改程式呢??小D不成才~再請大大多指教了...    
        ORG        00H
        JMP     STARTS                
        ORG     30H    STARTS:                                        
        MOV        P0,#FFH                        
        MOV        P1,#00H
        MOV        P2,#00H                        
        MOV        P3,#00H                ;清除接收模組所接收之資料
        MOV        R1,#33H                ;R1設定步進馬達為二相激磁
        MOV        R2,#50                ;R2設定STEP MOTOR轉動角度90度
        MOV        R5,#100
;====================================================================
RIGHT:        
        JNB        P0.7,STOP1                ;(上)低電位時...跳至STOP        MOV        A,R1
        RR        A                        ;右旋轉
        MOV        R1,A
        MOV        P2,A
        CALL    DELAY1
        DJNZ        R2,RIGHT
        MOV        R2,#100
LIFT:        
        JNB        P0.7,STOP                ;(上)低電位時...跳至STOP1
        MOV        A,R1
        RL        A                        ;左旋轉
        MOV        R1,A
        MOV        P2,A
        CALL    DELAY1
        DJNZ        R2,LIFT
        MOV        R2,#100
        JMP        RIGHT
;====================================================================
;====================================================================
STOP:
        MOV        P2,#00H
        CALL        DELAY1
        CALL        RR_1
                                        
RR_1:
        MOV        A,R1
        RR        A
        MOV        R1,A
        MOV        P2,A
        CALL    DELAY1
        JB        P0.5,STOP2        ;光遮斷為高電位時,跳至stop2
        DJNZ        R2,RR_1
        MOV        R2,#100
STOP1:        
        MOV        P2,#00H                        
        CALL        DELAY1
        CALL        RL_1
RL_1:                                
        MOV        A,R1
        RL        A
        MOV        R1,A
        MOV        P2,A        
        CALL    DELAY1
        JB        P0.5,STOP2        ;光遮斷為高電位時,跳至stop2
        DJNZ        R2,RL_1
        MOV        R2,#100
;====================================================================
STOP2:
        MOV        P2,#00H                        ;停止步進轉動
        
;====================================================================    DELAY:
        MOV        R6,#25
$1:
        MOV        R7,#200
        DJNZ        R7,$
        DJNZ        R6,$1
        RET
DELAY1:        
        MOV     TMOD,#01        ;設定Timer1為16位元計時模式        ;5ms秒產生溢位
        MOV        TL0,#<(65536-60000)        ;儲存16位元之低8位元
        MOV        TH0,#>(65536-60000)        ;儲存16位元之高8位元
        SETB        TR0                        ;啟動計時器
WAIT1:        
        JBC        TF0,OVERFLOW        ;測試是否計時完畢產生溢位
        JMP        WAIT1                ;否, 則持續測試溢位之發生
OVERFLOW:
        CLR        TR0                        ;關閉計時器
        DJNZ        R3,DELAY
        RET
        END    

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-24 00:24:40 IP:220.134.xxx.xxx 未訂閱
1>不懂你的意思,可否再說清楚些!? 2>byte="00000000",bit="0",8bit=1byte
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
big_eyes
一般會員


發表:28
回覆:52
積分:16
註冊:2005-03-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-24 00:40:38 IP:218.164.xxx.xxx 未訂閱
我的所有動作行程是這樣低... 步進馬達運轉~(((感測器感測到物體則步進停止運轉一會)))~將步進停止的位址儲存起來~丟給直流馬達的byte做追蹤的動作~~~ 我就是要((()))裡面的位址!! 要先儲存位址我才能知道步進馬達在哪一邊感測到物體~才能讓直流馬達準確的知道要轉一邊來追蹤物體ㄚ~~ 拜託大大了!

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-24 01:10:13 IP:220.134.xxx.xxx 未訂閱
我請問你一下,步進馬達停止的位置是多少? 你怎麼定義?如果這個都不知道....我不知道你要存啥耶...
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
big_eyes
一般會員


發表:28
回覆:52
積分:16
註冊:2005-03-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-24 01:29:33 IP:218.164.xxx.xxx 未訂閱
引言: 我請問你一下,步進馬達停止的位置是多少? 你怎麼定義?如果這個都不知道....我不知道你要存啥耶... < face="Verdana, Arial, Helvetica"> 步進馬達停止的位置就是感測器感測到物體所停止的位址ㄚ!! 不是將那個位址儲存起來載丟給直流馬達ㄇ??? 我不知道我這觀念是對是錯耶><"... 莫非...馬達停止的位址要自己設定???還是有什麼方法來判定位址呢??

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-24 08:24:53 IP:220.134.xxx.xxx 未訂閱
以你的架構,只能判斷那個方向有帳礙物吧.除非你行走的所有位置都有感測器. 那你才會知道馬達位置在那裡,不過這種作法太花錢囉. 如果你只是要記驅動馬達的控制器值,停止時把P0的值記錄下來就好了.設一個 變數儲存就ok了.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
big_eyes
一般會員


發表:28
回覆:52
積分:16
註冊:2005-03-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-24 10:02:30 IP:218.164.xxx.xxx 未訂閱
引言: 以你的架構,只能判斷那個方向有帳礙物吧.除非你行走的所有位置都有感測器. 那你才會知道馬達位置在那裡,不過這種作法太花錢囉. 如果你只是要記驅動馬達的控制器值,停止時把P0的值記錄下來就好了.設一個 變數儲存就ok了.
我步進馬達上有裝一個感測器了呀~~ 您說把那變數儲存起來是可以的~ 那我是否能把那變數傳給另一個PO執行那變數的動作呢??
kib72377z
一般會員


發表:0
回覆:20
積分:9
註冊:2005-03-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-24 11:20:15 IP:218.163.xxx.xxx 未訂閱
引言:
引言: 以你的架構,只能判斷那個方向有帳礙物吧.除非你行走的所有位置都有感測器. 那你才會知道馬達位置在那裡,不過這種作法太花錢囉. 如果你只是要記驅動馬達的控制器值,停止時把P0的值記錄下來就好了.設一個 變數儲存就ok了.
我步進馬達上有裝一個感測器了呀~~ 您說把那變數儲存起來是可以的~ 那我是否能把那變數傳給另一個PO執行那變數的動作呢??
計算/記錄 你步進馬達跑的步數, 就是你要的答案.
big_eyes
一般會員


發表:28
回覆:52
積分:16
註冊:2005-03-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-24 22:38:01 IP:218.164.xxx.xxx 未訂閱
??計算?? 要怎麼算呢?? 不能設定在哪些角度感測到停止在傳送ㄇ?? 真懊惱~只剩兩天了...><" 是否能拜託各位大大~ 給點範例還參考一下呢?? 或者是用程式來說明呢?? 拜託~拜託~拜託!!!
big_eyes
一般會員


發表:28
回覆:52
積分:16
註冊:2005-03-22

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-27 13:56:54 IP:218.169.xxx.xxx 未訂閱
能在說明詳細一點ㄇ?? 拜託!!
系統時間:2024-05-16 5:16:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!