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

請問為什麼還要切換回去呢?

缺席
ozaki508
一般會員


發表:12
回覆:10
積分:4
註冊:2004-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-13 14:38:28 IP:219.68.xxx.xxx 未訂閱
請問一下,程式碼裡所指的切換到BANK0是什麼意思,為什麼執行後還要切換回去BANK0呢?謝謝~    
 
        LIST        p=16F877
         #INCLUDE
D1        EQU        0X20
D2        EQU        0X21
D3        EQU        0X22
        ORG        00H
        CLRF        D1                ;設D1初值為0
        BSF        STATUS,RP0         ;切換到BANK1        
        CLRF        TRISD                ;設定PORTD為輸出接腳
        BCF        STATUS,RP0         ;切換到BANK0 <<=為什麼要切換回去
START:        MOVLW        B'10000000'        ;亮LED24
        MOVWF        PORTD
        CALL        DELAY
        MOVLW        B'01000000'        ;亮LED23
        MOVWF        PORTD
        CALL        DELAY        
        MOVLW        B'00100000'        ;亮LED22
        MOVWF        PORTD
        CALL        DELAY        
        MOVLW        B'00010000'        ;亮LED21
        MOVWF        PORTD
        CALL        DELAY
        MOVLW        B'00001000'        ;亮LED20
        MOVWF        PORTD
        CALL        DELAY
        MOVLW        B'00000100'        ;亮LED19
        MOVWF        PORTD
        CALL        DELAY
        MOVLW        B'00000010'        ;亮LED18
        MOVWF        PORTD
        CALL        DELAY
        MOVLW        B'00000001'        ;亮LED17
        MOVWF        PORTD
        CALL        DELAY
        GOTO        START
DELAY:        MOVLW        .8                   ;延遲副程式                          
        MOVWF        D3
DLY1:        MOVLW        .244
        MOVWF        D2
DLY2:        DECFSZ        D1,F
        GOTO        DLY2
        DECFSZ        D2,F
        GOTO        DLY2
        DECFSZ        D3,F
        GOTO        DLY1
        RETURN
        END     
發表人 - ozaki508 於 2005/11/13 17:33:25

版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-13 14:52:53 IP:203.203.xxx.xxx 未訂閱
1>po程式碼請做好縮排. 不知如何做請參考版規. 煩請修改配合. 2>請詳細說明問題, 電路如何接. chip?
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?

版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-13 21:21:42 IP:203.203.xxx.xxx 未訂閱
這跟它的內部暫存器位址規劃有關.當RP0~RP2=0時你只能存取Bank 0 裡頭的資料, 並對其做read or write. 如果你要寫入的暫存器位址在bank 1, 此時你無法存取它. 必須要將RP0設為1使BANK為1. 你試試看就知道了. 而詳細的記憶體位址規畫就要看這顆chip的datasheet了. 看你的程式, 這顆應該是PIC16F877.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
系統時間:2024-06-29 18:37:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!