私はいくつかのマイクロコントローラーの練習をしようとしています.私は一種の初心者です.
基本的には、RC4 と RC5 の PORTC にボタンを接続し、入力として設定した PIC16F877A があります。RC5 を使用して割り込みをアクティブにし、TMR0 割り込みがブザーをアクティブにするのを待ちます (現在は LED を使用しています)。次に、RC4 は割り込みを無効にし、ブザー/LED を停止する必要があります (RC0 に接続され、出力として構成されます)。
プログラムを作成し、MPLAB で問題なく動作しましたが、実際に実行するには問題がありました。
これはプログラムです:
list p=16f877a
include "p16f877a.inc"
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC
DELH EQU 0x2C
DELL EQU 0x2F
DELI EQU 0x2E
ORG 0x00
GOTO MAIN
ORG 0x04
GOTO INTERRUMPE
MAIN BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTC
CLRF PORTB
BSF STATUS,RP0
MOVWF 0xF0
MOVWF TRISC
MOVWF 0x00
MOVWF TRISB
MOVLW 0x83
MOVWF OPTION_REG
BCF STATUS,RP0
TECLA BTFSS PORTC,5
GOTO TECLA
MOVLW 0xB8
MOVWF INTCON
MOVLW 0x63
MOVWF TMR0
TECLA2 BTFSS PORTC,4
GOTO TECLA2
BCF INTCON,7
BCF PORTC,0
GOTO TECLA
INTERRUMPE BTFSS INTCON,2
GOTO REGRESO
BSF PORTC,0
MOVLW 0xBF
MOVWF TMR0
BCF INTCON,T0IF
REGRESO RETFIE
END
最小限のシステムに従う必要があります。
そして、オシレーターを 4Mhz から 12Mhz に変更するまでは何もしませんでした。20Mhzも試しましたが、うまくいきませんでした。さまざまな構成ワードを試してみましたが、良い結果は得られませんでした。
助けてください、私は少し必死です。