關於PIC16F883傳訊號給電腦RS232問題...
|
||||
---|---|---|---|---|
初級會員
|
版主&各位大大
我欲使用PIC16F883的TX腳傳送DATA給電腦的RS232(DB9)接收,就我所知電腦端的準位應該是9V,而CHIP則是5V,我該如何做才能完成這其間的橋樑,或是有現成套件可購買?
發表於: 2009/7/7 17:02
|
|||
|
Re: 關於震盪器...
|
||||
---|---|---|---|---|
初級會員
|
感謝版大回覆^^
發表於: 2009/6/29 16:58
|
|||
|
關於震盪器...
|
||||
---|---|---|---|---|
初級會員
|
請教各位先進幾各問題:
1. 我看PIC16F883的SPEC中,OSC使用HS模式的狀態下有下列敘述: 用低电平驱动的石英晶振可能需要一个串联电阻(RS) 請問RS建議多大,低電平驅動是何意(我都正常使用5V驅動CHIP) 2. SPEC中有建議晶體振盪器2端要接電容到地,那電容值該如何判斷?(我使用4M晶震)
發表於: 2009/6/26 10:06
|
|||
|
Re: CCP中斷有捕獲成功,但無進入中斷程式,煩請各位先進幫忙
|
||||
---|---|---|---|---|
初級會員
|
所謂2K是指.HEX的檔案大小麻,我看我的.HEX是1.2K(Byte),這樣的 GOTO 是否就不需要加上 PCLATH 呢?
發表於: 2009/6/18 10:04
|
|||
|
Re: CCP中斷有捕獲成功,但無進入中斷程式,煩請各位先進幫忙
|
||||
---|---|---|---|---|
初級會員
|
參照:
請問 HIGH INT 是何物,不理解未何這樣能預載 PCLATH 我有嘗試改為下列方式去RUN ORG 0x0004 MOVLW HIGH INT ; MOVWF PCLATH ;先預載 PCLATH GOTO INT 但仍然無用, 可否請大大在解說一下,謝謝!!
發表於: 2009/6/16 10:09
|
|||
|
Re: CCP中斷有捕獲成功,但無進入中斷程式,煩請各位先進幫忙
|
||||
---|---|---|---|---|
初級會員
|
參照:
我本身已使用MPLAB IDE 做設計,版主意思是如附件圖之觀測方式麻,我就是在此WATCH看到PIR2的第0bit有置1所以知道CCP2有產生捕捉,但是若照我程式中INT最後面有下 BCF PIR2,CCP2IF 但PIR2的第0bit卻不會再置0,並且MT_POS_HI和MT_POS_LO始終是0不曾進入INT_CW和INT_CCW,所以我判斷我的程式根本無進入中斷程式,煩請各位高手幫忙看一下問題何在,感激不盡~~ Attach file: (0.00 KB) (0.00 KB)
發表於: 2009/6/10 16:55
|
|||
|
CCP中斷有捕獲成功,但無進入中斷程式,煩請各位先進幫忙
|
||||
---|---|---|---|---|
初級會員
|
各位大大我程式如下,使用PIC16F883及ICD2做設計,我遇到問題是在CCP2執行捕捉動作成功後(PIR2,CCP2IF有置1),但我沒看到程式有跳到INT那段程式去動作(DEBUG模式),請問各位先進對此問題,有何見解,煩請不吝指教,謝謝!!
ORG 0x0000 GOTO MAIN ORG 0x0004 GOTO INT MAIN: BANKSEL PORTA ; CLRF PORTA ;Init PORTA CLRF PORTB ;Init PORTB CLRF PORTC ;Init PORTC CLRF PIR1 ;Init PIR1 CLRF PIR2 ;Init PIR2 MOVLW B'11010000' ; MOVWF INTCON ;Set INTCON MOVLW B'10000001' ; MOVWF T1CON ;Set T1CON MOVLW B'00000101' ; MOVWF CCP2CON ;Set CCP2CON BANKSEL TRISA ; MOVLW B'11001101' ; MOVWF TRISA ;Set PORTA is input or output MOVLW B'11111011' ; MOVWF TRISB ;Set PORTB is input or output MOVLW B'10100110' ; MOVWF TRISC ;Set PORTC is input or output BSF TRISE,3 ;Set RE3 to input CLRF PIE1 ;Init PIE1 MOVLW B'00000001' ; MOVWF PIE2 ;EEIE turn on $ CCP2IE turn on ;***********INT************************************************************** INT: MOVWF W_TEMP ;Copy W to TEMP register SWAPF STATUS,W ;Swap status to be saved into W ;Swaps are used because they do not affect the status bits MOVWF STATUS_TEMP ;Save status to bank zero STATUS_TEMP register BTFSS HALL2 ;Is int_CW? GOTO $+2 ; CALL INT_CW ; BTFSC HALL2 ;Is int_CCW? GOTO $+2 ; CALL INT_CCW ; SWAPF STATUS_TEMP,W ;Swap STATUS_TEMP register into W ;(sets bank to original state) MOVWF STATUS ;Move W into STATUS register SWAPF W_TEMP,F ;Swap W_TEMP SWAPF W_TEMP,W ;Swap W_TEMP into W BCF PIR2,CCP2IF RETFIE ;***********Motor is CW and CNT will -1*************************************** INT_CW: DECF MT_POS_LO,1 ; BTFSS STATUS,C ; GOTO $+2 ; DECF MT_POS_HI,1 ; RETURN ;***********Motor is CCW and CNT will +1************************************** INT_CCW: INCF MT_POS_LO,1 ; BTFSS STATUS,C ; GOTO $+2 ; INCF MT_POS_HI,1 ; RETURN
發表於: 2009/6/9 16:58
|
|||
|
Re: 程式疑難2
|
||||
---|---|---|---|---|
初級會員
|
我知道SIM沒問題,我也是用DEBUG模式才出問題,剛在測試時我發現PORTC是可以讓我用程式去控制輸出H,但為啥PORTA就不能讓我控制輸出H,問題是否出在PORTA還需要設定啥才能輸出H?
發表於: 2009/4/10 14:26
|
|||
|
Re: 程式疑難2
|
||||
---|---|---|---|---|
初級會員
|
各位先進,針對目前我遭遇到的困境,我有幾點想要確認:
1. 在MPLAB IDE下的 PROGRAM SUCCEEDED,真的代表程式已經燒進CHIP麻? 2. 我使用16F883,我將晶震造著SPEC上說明接在OSC1和OSC接腳上,16F883已確定VSS和VDD都正常接續,MPLAB IDE的config bit裡的OSC也有選HS,這樣可確保我外部晶震有正常工作麻,我可用示波器量測到頻率麻(我目前量不到)。 3. 我目前感覺I/O都能接收到輸入訊號,但就是I/O輸出無法讓程式正常控制,有哪些原因會造成此種現象? 煩請各位先進,幫忙小子度過此一難關,連測試I/O功能都搞不定,我看我離炒魷魚不遠了,以下是測試程式: LIST P=16F883 ;directive to define processor #include <P16F883.INC> ;processor specific variable definitions ;*********************************************************************** ; #define VBT_DET PORTA,0 #define LIN_EN PORTA,1 #define IGN PORTA,2 #define REL_CW PORTA,4 #define REL_CCW PORTA,5 #define SWUP PORTB,3 #define SWOP PORTB,4 #define SWCL PORTB,5 ;*********************************************************************** ;Reset vector ; This code will start executing when a reset occurs. ORG 0x0000 GOTO MAIN ;go to start of main code ;*********************************************************************** ;Start of main program ; The main program code is placed here. MAIN: BANKSEL PORTA ; CLRF PORTA ;Init PORTA CLRF PORTB ;Init PORTB CLRF PORTC ;Init PORTC BANKSEL ANSEL ; CLRF ANSEL ;DIGIPAL CLRF ANSELH ;DIGITAL BCF STATUS,RP1 ; MOVLW B'11000001' ; MOVWF TRISA ;Set PORTA is input or output MOVLW B'11111011' ; MOVWF TRISB ;Set PORTB is input or output MOVLW B'10100110' ; MOVWF TRISC ;Set PORTC is input or output OP_DET: BANKSEL PORTB ; BTFSC PORTB,4 ; GOTO OP_DET ; BSF PORTA,4 ;Motor CCW BSF PORTA,5 ;Motor CW BTFSS PORTB,4 ; GOTO $-1 ; GOTO OP_DET ; ; ;*********************************************************************** ;End of program END
發表於: 2009/4/10 8:59
|
|||
|