エンベデッド コントロール セミナー 2000 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 1
実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布した CD-R のなかに入っています 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 2
ブロック図 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 3
ソース リスト (1) LIST P=18C242,F=INHX32 ; マイコンは PIC18C242 INCLUDE P18C242.INC ; インクルード ファイルを読み込む ; コンフィギュレーション ビットの設定 CONFIG _CONFIG0, _CP_OFF_0 CONFIG _CONFIG1, _OSCS_OFF_1 & _RCIO_OSC_1 CONFIG _CONFIG2, _BOR_ON_2 & _BORV_42_2 & _PWRT_ON_2 CONFIG _CONFIG3, _WDT_ON_3 & _WDTPS_128_3 CONFIG _CONFIG5, _CCP2MX_ON_5 CONFIG _CONFIG6, _STVR_ON_6 ; コード プロテクト =OFF, システム クロック切り替え =OFF,RC 発振で OSC2 ピンは RA6, ; ウォッチドッグ タイマ =ON, ポストスケーラ 1:128,4.2V ブラウンアウト リセット, ; パワーアップ タイマ =ON,CCP2 入出力は RC1 ピンに割り当て, ; スタック オーバーフロー / アンダーフロー リセット =ON ;-------------------------------- UPDATE EQU 7 ;LED の更新周期 ;-------------------------------- CBLOCK 0 ; ファイル アドレス 0h 番地から変数を割り当てる W_TEMP ; コンテキスト保存用 (W レジスタと STATUS レジスタ ) STATUS_TEMP CNT ;LED の更新周期用のカウンタ PORTB_OUT ; ポート B 用の出力バッファ ENDC ;CBLOCK 終了 ;-------------------------------- 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 4
ソース リスト (2) ORG 0 ; リセット ベクタ ( プログラム アドレス 0 番地 ) GOTO START ;START へ跳ぶ ;-------------------------------- ORG 8 ; 割り込みベクタ ( プログラム アドレス 8 番地 ) ISR ; 割り込み処理ルーチン BTFSSINTCON,T0IF,A ; タイマ 0 割り込みでなければ ISR_END へ跳ぶ GOTO ISR_END BCF INTCON,T0IF,A ; タイマ 0 割り込みフラグを 0 にする DECFSZ CNT,F,A ;CNT を -1 して 0 でなければ ISR_END へ跳ぶ GOTO ISR_END MOVLW UPDATE ;CNT に LED の更新周期を書き込む MOVWF CNT,A MOVLW D'3' ;PORTB_OUT の内容を +3 する ADDWF PORTB_OUT,F,A ISR_END RETFIE FAST ; コンテキストを復帰して割り込みから復帰 ;-------------------------------- IOPORT ; サブルーチン :I/O ポート設定 CLRF LATA,A ; ポート A の出力ラッチに 0 を書き込む MOVF PORTB_OUT,W,A ;PORTB_OUT の内容をポート B の出力ラッチに書き込む MOVWF LATB,A CLRF LATC,A ; ポート C の出力ラッチに 0 を書き込む CLRF TRISA,A ; ポート A をすべて出力ピンにする CLRF TRISB,A ; ポート B をすべて出力ピンにする CLRF TRISC,A ; ポート C をすべて出力ピンにする RETURN 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 5
ソース リスト (3) ;-------------------------------- START CLRF PORTB_OUT,A ;PORTB_OUT に 0 を書き込む CALL IOPORT ;I/O ポート設定 MOVLW H'D7' ; タイマ 0 の設定 MOVWF T0CON,A ;8 ビット モード 内部クロック 1:256 プリスケーラ MOVLW D'1' ;CNT に 1 を書き込む MOVWF CNT,A CLRF PORTB_OUT,A ;PORTB_OUT に 0 を書き込む CLRF TMR0L,A ;TMRL に 0 を書き込む MOVLW H'A0' ; タイマ 0 割り込みをイネーブルする MOVWF INTCON,A LOOP CLRWDT ;WDT を 0 にする CALL IOPORT ;I/O ポート設定 GOTO LOOP ;LOOP へ跳ぶ ;-------------------------------- END ; プログラムの終わり 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 6
ソース ファイルのコピー 配布 CD-R のなかの source フォルダに入っている 242asm フォルダを c: ドライブにコピーします 242asm フォルダを開きます 242asm.asm ファイルを右クリックして メニューからプロパティを選択します 読み取り専用のチェックを外して OK をクリックします 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 7
MPLAB のインストール 配布 CD-R のなかの Setup フォルダに入っている MPL51102.exe を起動します 起動後 Next ボタンをクリックし続けます インストールするフォルダはデフォルトのままにしてください Enter キーを押すと元に戻るダイアログがあります Finish ボタンが表示されたら そのボタンをクリックしてインストール完了です C: Program Files Mplab フォルダにインストールされます 正常にインストールできないときは MPL51102.exe をハード ディスクにコピーして 起動してみてください 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 8
MPLAB の起動 スタート ボタンを押して スタート メニューを表示させます プログラム Microchip MPLAB MPLAB を起動します 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 9
デベロップメント モードの設定 Options Development Mode を選択します 左下図の設定にして OK をクリックします Processor:PIC18C242 MPLAB-SIM Simulator をオン 右下図が表示されたら OK をクリックします 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 10
プロジェクトの設定 (1) Project New Project を選択します 以下の設定にして OK をクリックします Directories: c: 242asm (c: をダブルクリック後 242asm をダブルクリック ) File Name: 242asm.pjt 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 11
プロジェクトの設定 (2) Add Node ボタンをクリックします 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 12
プロジェクトの設定 (3) 以下の設定にして OK をクリックします フォルダ : c: 242asm ファイル名 : 242asm.asm 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 13
プロジェクトの設定 (4) OK ボタンをクリックします 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 14
ソース リストを表示する Window Project を選択します 242asm.asm をダブル クリックします 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 15
アセンブル (1) Project Make Project を選択します アセンブルがはじまり その結果が報告されます エラーがないときは 最後の行に Build completed successfully. と表示されます 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 16
アセンブル (2) エラーがあるときは Build failed. と報告されます エラー メッセージの行をダブル クリックするとソース リストのエラーのある行にカーソルが跳びます エラーを修正して 再度コンパイルしましょう 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 17
PICSTART Plus(1) PICSTART Plus に AC アダプタを接続して 電源を入れます パソコンのシリアル ポートとケーブルで接続します EIA-574 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 18
PICSTART Plus(2) PICSTART Plus Enable Programmer を選択します 以下のダイアログが表示されます PICSTART Plus Device Programmer Configuration Bits Program Memory Window 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 19
PICSTART Plus(3) デバイスを PICSTART Plus のソケットに挿入します PICSTART Plus Device Programmer ダイアログの Program ボタンをクリックします 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 20
PICSTART Plus(4) デバイスがブランクではないときは 下図のように報告されます 紫外線消去する必要があります デバイスが正しくソケットに入っているかも確認しましょう 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 21
PICSTART Plus(5) エラーなしで書き込みできたときは Success と表示されます 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 22
PICSTART Plus(6) エラーがあったときは Failure と報告され エラー ログ ファイルが開きます 2000 Microchip Technology Incorporated. All Rights Reserved. S9002A Embedded Control Seminar 2000 23