Re: 程式疑難
|
||||
---|---|---|---|---|
資深會員
|
使用 portb 之前停留在不正確的 bank 上了,
請多加上一行使它切換到正確的 bank. 大致如下:
BANKSEL TRISA
發表於: 2009/4/7 13:36
|
|||
|
Re: 程式疑難
|
||||
---|---|---|---|---|
初級會員
|
試試把portb,4之trisb,4設為輸出,因為通常輸入被當成Analog[/quote]
謝謝您的意見,但嘗試後RB4就恆為LOW(也就是說原本是BTFSC PORTB,4遇到LOW不執行下下行,變成BTFSS PORTB,4遇到HIGH不執行下下行),這樣依然無法將他當為一個開關來做控制。 煩請各位先進不吝指教,,謝謝。 PS: RB4在電路板上是PULL HIGH
發表於: 2009/4/7 9:24
|
|||
|
Re: 程式疑難
|
||||
---|---|---|---|---|
資深會員
|
參照:
試試把portb,4之trisb,4設為輸出,因為通常輸入被當成Analog
發表於: 2009/4/6 21:25
|
|||
|
Re: 程式疑難
|
||||
---|---|---|---|---|
初級會員
|
如附件檔案,RB4已被我接到GND,ANSELH和ANSEL也都為0
但程式就卡那2行~~~ Attach file: (0.00 KB)
發表於: 2009/4/6 15:37
|
|||
|
Re: 程式疑難
|
||||
---|---|---|---|---|
版主
|
那我就被打敗了,在 Watch Window 下檢查看 ANSELH 的 bit0~bit5 是否都為 0
發表於: 2009/4/6 15:25
|
|||
|
Re: 程式疑難
|
||||
---|---|---|---|---|
初級會員
|
版大您好,以下是我原本就有的設定,是否有不妥之處呢?
BANKSEL TRISA MOVLW B'11001101' MOVWF TRISA BANKSEL TRISB MOVLW B'11111011' MOVWF TRISB BANKSEL TRISC MOVLW B'10100110' MOVWF TRISC BANKSEL PORTA CLRF PORTA BANKSEL PORTB CLRF PORTB BANKSEL ANSELH CLRF ANSELH BANKSEL ANSEL CLRF ANSEL OP_DET: BTFSC PORTB,4 GOTO OP_DET GOTO OPEN
發表於: 2009/4/6 15:05
|
|||
|
Re: 程式疑難
|
||||
---|---|---|---|---|
版主
|
PIC16F88x 的 PORTA & PORTB 內定為 ADC 輸入腳,請參考Data Sheet 裡有關 PORTB 的說明,建議將沒用到的ADC腳未設為Digital Output Mode.
參考一下底下的暫存器說明就知道了: ANSELH: ANALOG SELECT HIGH REGISTER bit 7-6 Unimplemented: Read as ‘0’ bit 5-0 ANS<13:8>: Analog Select bits Analog select between analog or digital function on pins AN<13:8>, respectively. 1 = Analog input. Pin is assigned as analog input(1). 0 = Digital I/O. Pin is assigned to port or special function. Note 1: Setting a pin to an analog input automatically disables the digital input circuitry, weak pull-ups, and interrupt-on-change if available. The corresponding TRIS bit must be set to Input mode in order to allow external control of the voltage on the pin.
發表於: 2009/4/6 14:47
|
|||
|
程式疑難
|
||||
---|---|---|---|---|
初級會員
|
Dear All
我使用P16F883,組合語言編寫程式時,發生以下問題: 在DEBUG模式下,使用Animate時,程式正常會停在下列 第1和第2行反覆運行,可是當我將PORTB,4連接到GND時, 理論上應該跳至第3行執行,但結果並沒有,我有打開WATCH 視窗,PORTB,4的確有H or L變化,請問這是何因,謝謝!! OP_DET: BTFSC PORTB,4 GOTO OP_DET GOTO OPEN
發表於: 2009/4/6 14:26
|
|||
|