|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
有關(guān)PIC的SFR訪問,看到了兩種不同情況,心里疑問重重! |
| 作者:worktang 欄目:單片機 |
;;;;;;;;;方法一 RB EQU 0X06 TRISB EQU 0X06 PIN_INT: BSF STATUS,RP0 ;SELECT BANK1 MOVLW B'11110000' MOVWF TRISB BCF STATUS,RP0 ;SELECT BANK0 MOVLW B'11111111' MOVWF RB RETURN ;;;;;;;;;方法二 RB EQU 0X06 TRISB EQU 0X86 PIN_INT: MOVLW B'11110000' MOVWF TRISB MOVLW B'11111111' MOVWF RB RETURN ;初學(xué)PIC,看到了兩種不同情況,心里疑問重重,請問上面兩種方法能達(dá)到同一種目的嗎?哪種正確??不勝感謝! |
| 2樓: | >>參與討論 |
| 作者: worktang 于 2003/4/17 14:03:00 發(fā)布:
我主要想知道方法二是否可行,我覺得它更簡便! |
|
| 3樓: | >>參與討論 |
| 作者: kingpoo 于 2003/4/17 14:13:00 發(fā)布:
不行,它們不在同一頁里! |
|
| 4樓: | >>參與討論 |
| 作者: martin 于 2003/4/17 14:21:00 發(fā)布:
方法二是錯誤的 MOVWF TRISB這條指令翻譯成機器碼后,14位長的指令里只有后面7位是來描述寄存器地址的(所以0x86同0x06),高位地址需要借助STATUS里面的RP1、RP0,也就是我們說的BANK。 |
|
| 5樓: | >>參與討論 |
| 作者: worktang 于 2003/4/17 14:21:00 發(fā)布:
也就是說選擇BANK是必不可少的,對嗎? 也就是說選擇BANK是必不可少的,對嗎? 而且對于TRISB定義0X06或者0X86難道沒有區(qū)別嗎? |
|
| 6樓: | >>參與討論 |
| 作者: worktang 于 2003/4/17 14:31:00 發(fā)布:
哦,謝謝martin,你說的很清楚。 |
|
| 7樓: | >>參與討論 |
| 作者: worktang 于 2003/4/17 14:32:00 發(fā)布:
如果是用C,選擇BANK的事是不是就交給編譯器了? |
|
| 8樓: | >>參與討論 |
| 作者: _夢夢 于 2003/4/17 14:36:00 發(fā)布:
沒錯! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |