list p=16f877a ; PIC16F877A用のプログラムであることを宣言 #include p16f877a.inc ; PIC16F877A用のヘッダ・ファイルを読み込む __config _HS_OSC & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF ; 初期設定をする bcf STATUS, RP0 ; この2行でバンク0にする bcf STATUS, RP1 clrf PORTC ; LED が点灯しないように0に clrf PORTD ; 出力は0にしておく clrf PORTE ; 出力は0にしておく bsf STATUS, RP0 ; バンク1にする clrf ADCON1 ; ポートAはアナログ入力 movlw 0xff movwf TRISB ; ポートBはディジタル入力 bcf OPTION_REG, NOT_RBPU ; ポートBのウィーク・プルアップを有効に clrf TRISC ; 全ピン出力に clrf TRISD ; 全ピン出力に clrf TRISE ; 全ピン出力に bcf STATUS, RP0 ; バンク0にする ; 初期設定は終了 ; LED を点灯する movlw B'00100001' movwf PORTC loop ; スイッチ0が押される(PORTB<0>が0になる)まで待つ btfsc PORTB, 0 goto $-1 ; LEDを消灯する movlw B'00100000' movwf PORTC ; スイッチ0が離される(PORTB<0>が1になる)まで待つ btfss PORTB, 0 goto $-1 ; スイッチ0が押される(PORTB<0>が0になる)まで待つ btfsc PORTB, 0 goto $-1 ; LEDを点灯する movlw B'00100001' movwf PORTC ; スイッチ0が離される(PORTB<0>が1になる)まで待つ btfss PORTB, 0 goto $-1 goto loop end リスト4-14 Copyright 2005 Noriaki Mitsunaga