請問為什麼還要切換回去呢? |
缺席
|
ozaki508
一般會員 發表:12 回覆:10 積分:4 註冊:2004-06-01 發送簡訊給我 |
請問一下,程式碼裡所指的切換到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 發送簡訊給我 |
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
這跟它的內部暫存器位址規劃有關.當RP0~RP2=0時你只能存取Bank 0 裡頭的資料, 並對其做read or write. 如果你要寫入的暫存器位址在bank 1, 此時你無法存取它. 必須要將RP0設為1使BANK為1. 你試試看就知道了. 而詳細的記憶體位址規畫就要看這顆chip的datasheet了. 看你的程式, 這顆應該是PIC16F877.
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |