線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1194
推到 Plurk!
推到 Facebook!

好像是延遲時間的問題吧?????

缺席
big_eyes
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-10 23:21:41 IP:218.164.xxx.xxx 未訂閱
請問各位大大們!!  我寫了一ㄍ程式~只是簡單的讓字走車前進~感測器感測到物體前進~假使沒感測到物體則停止的程式!!  現在我要將感測器感測到物體而前進的程式加個delay~讓他前進的時間加長~~要怎麼寫呢?? ((因為我是用pin325焦電人體紅外線的緣故~他的感測方式~一感測到送一個脈波後就會消失~隨即在產生下一ㄍ脈波~~但是我不能因會訊號消失了就停止他前進~必須要追到定位才能停止~所以必須要在他下一ㄍ脈波產生前保留一組上一ㄍ訊號脈波~好讓8051能有所依據)) 不知道要如何進行下一步~~~><" 拜託各位老大幫幫忙了!!  ((謝謝您))    
        
        ORG        00H
        JMP        START
        ORG        30H
START:
        MOV        P3,#FFH                        :設為高電位
SLOW:
        MOV        P1,#00001010B        ;前進
        JNB        P3.0,STOP
        JMP        SLOW
STOP:
        MOV        P1,#0                ;停止前進
        JB        P3.0,SLOW
        JMP        START            RET
        END
發表人 - ㊣ 於 2005/05/10 23:38:21

版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-10 23:44:06 IP:220.134.xxx.xxx 未訂閱
你不是用兩個51嗎?另一個51負責決定這個51(你po在這裡的程式)前進或停止. 你只需要在另一個51的程式裡寫一個判斷,超過幾秒沒收到感測器的脈波信號 才送出停止前進的信號.而追到定位便停止,就要看你的到達定位能收到什麼訊 號,再去停止你的馬達了!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
big_eyes
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-11 00:16:03 IP:218.164.xxx.xxx 未訂閱
引言: 你不是用兩個51嗎?另一個51負責決定這個51(你po在這裡的程式)前進或停止. 你只需要在另一個51的程式裡寫一個判斷,超過幾秒沒收到感測器的脈波信號 才送出停止前進的信號.而追到定位便停止,就要看你的到達定位能收到什麼訊 號,再去停止你的馬達了!
我現在要先用一ㄍ8051下ㄑ寫程式來感測阿!! 還先用不到兩ㄍ8051耶!! 所以就先用一ㄍ來寫囉!!

版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-11 00:50:32 IP:220.134.xxx.xxx 未訂閱
引言: 我現在要先用一ㄍ8051下ㄑ寫程式來感測阿!! 還先用不到兩ㄍ8051耶!! 所以就先用一ㄍ來寫囉!!
寫法一樣,多寫一個判斷,超過幾秒沒收到感測器的脈波信號 才送出停止前進的信號.而追到定位便停止,就要看你的到達定位能收到什麼訊 號,再去停止你的馬達!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-11 09:53:53 IP:211.21.xxx.xxx 未訂閱
你要設Counter (Counter使用兩個Byte) 當有感測到物體時把Counter設定一個值 (這個值就是繼續走多久的時間) 每次都把Counter減1判斷是否為零 為零再做STOP    SLOW跟STOP要做Delay    附上流程圖 ------------------- 美好的事物 稍縱即逝
big_eyes
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-11 22:49:13 IP:218.169.xxx.xxx 未訂閱
痾~~抱歉~~請問Counter是什麼意思阿??? BYTE是不是指兩支腳位ㄚ?? ><" 學亦不佳~~請多多指教!! 謝謝您

版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-11 23:42:29 IP:220.134.xxx.xxx 未訂閱
counter =>計數器 1 byte=8 bit,2 byte=16 bit 指要你counter能計數到16bit,即65535
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
big_eyes
一般會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-12 00:02:32 IP:218.169.xxx.xxx 未訂閱
引言: counter =>計數器 1 byte=8 bit,2 byte=16 bit ==>是否是說~一組po等於8隻腳呢??? 指要你counter能計數到16bit,即65535
==> (Counter使用兩個Byte)??? 爲什麼要設兩個byte呢???? 65535又是什麼東西?? 痾~~務煞煞中><"~~~ 我不是只用一個3.0來感測ㄇ? 怎麼需要兩組呢?? 不懂~真的不懂><" 求版主在大力指導吧~~ 拜託拜託~
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-12 10:08:00 IP:211.21.xxx.xxx 未訂閱
一個Byte可表示0~255(00h~FFh,00000000B~11111111B) 兩個Byte可表示0~65535(0000h~FFFFH,0000000000000000B~1111111111111111B) 這個是RAM P3.0是I/O    看看程式碼吧 依照流程圖寫出來的    
        org        00h
        jmp        Start
        org        30h
Start:
        mov        P3,#FFh                        :設P3為輸入
        mov        R1,#00h                        ;設定Counter初值
        mov        R2,#1                        ;為1mS(以R1,R2為Counter)
;--------------------------------------------------------
Loop:
        jnb        P3.0,Signal_Exit        ;偵測信號 沒信號跳Signal_Exit
        mov        R1,#07h                        ;有信號 
        mov        R2,#D0h                        ;設定Counter為2000(2秒)
Signal_Exit: 
        mov         A,0                        ;Counter是否為零
        cjne        A,R1,CounterNotZero        ;為零跳 "CounterIsZero"
        cjne        A,R2,CounterNotZero        ;不為零跳 "CounterNotZero"
        jmp        CounterIsZero                ;
CounterNotZero:
        MOV        P1,#00001010B                ;前進
        djnz        R2,Counter_Exit                ;Counter減1
        djnz        R1,Counter_Exit                ;
        jmp        Counter_Exit                ;
CounterIsZero:
        MOV        P1,#0                        ;停止
Counter_Exit:
        call        Delay1mS                ;延遲1mS (這段請自己寫)
        jmp        Loop
------------------- 美好的事物 稍縱即逝
系統時間:2024-04-30 5:55:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!