作りながら学ぶPICマイコン入門 戻る
 このページからは、書籍に掲載したプログラムの最新版がダウンロードできます。

 ダウンロードするファイルを選択し、マウスのボタンを右クリックし、「対象をファイルに保存」を選んでから保存してください。

 プログラム中のスペースやタブ、コメントは、印刷物とは異なる場合があります。プログラム・リストの中の必要な部分をコピーしてからご利用ください。

MPLAB IDE 7.10について

 2005年4月25日現在,MPLAB-IDEはV7.10が最新のものです.初版の本文のプログラムは主にV7.0で作成しました.3月21日のV7.10のリリース後7.10でここに掲示した全ソース・プログラムについてすべてアセンブルし,AKI-PICプログラマV4.0でテスト・ボード03のPIC16F877Aにオンライン書き込みを行い,動作確認し従来と同じ動作であることを確認しました.

 ただし,リスト2-1はアセンブルのみ,リスト5-1はテスト・ボード03でのテストでは_RC_OSCを_HS_OSCに変更してテストを行いました.

2005年4月27日

<訂正> 2006年1月13日

79ページ 表4-A 論理回路表記法と論理値のORとEORの真理値が間違っていました。右の欄に訂正を掲載します。

リスト2-1 f877atemp.asm
 
初版のリストと同じものです.

リスト5-1 f877010.asm
 
初版のリストと同じものです.

リスト6-1 f877020.asm
 
初版のリストと同じものです.

リスト6-2 f877021.asm
 
初版のリストと同じものです.

リスト6-3 f877022.asm
 
初版のリストと同じものです.

リスト7-1 f877030.asm
 
初版のリストと同じものです.

リスト8-1 f877035.asm
 
初版のリストと同じものです.

リスト8- 2 f877038.asm
 
初版のリストと同じものです.

リスト8-3 f877088.asm
 
初版のリストと同じものです.

リスト9-1 f877090.asm
 
初版のリストに,Column・・・1 文字列表示サブルーチンを追加してあります.文字列表示サブルーチンを呼び出している場所にコメントをつけておきました.
 
文字列表示サブルーチンの中のincf count_str は正しくはincf count_str,fと格納先を明示する必要があります.デフォルトでは格納先はレジスタになっていますから結果としては誤りではありませんでしたが,エラー・メッセージが表示されます.

リスト10-1 f877100.asm
 
初版のリストと同じものです.

リスト10-2 usart020.asm
 
初版のリストと同じものです.

リスト11-1 f877110SSP01.asm
 
初版のリストと同じものです.

リスト12-1 f877A100.asm
 
初版のリストと同じものです.

リスト12-4 f877A102.asm
 
初版のリストと同じものです.12-2,12-3のリストはこのリストの中に含まれています.

リスト13-1〜5 のまとめ f877A130100.asm
 
リスト13-1〜5までのサブルーチンとそのほか今まで利用してきたプログラムを利用して,EEPROM及びプログラム・メモリへの読み書きを行うプログラムにしました.

 実行するとLCDディスプレイに「EEPROM TEST」のオープニング・メッセージに続いて,2行目先頭から次の値を表示します.

(1) FF  EEPROMのアドレス25の値を表示する.初期値のFFhが表示されます.

(2) 9A  EEPROMのアドレス25に9Ahを書き込み,その後正しく書き込まれたことを確認するため,EEPROMの同一アドレスを読み出し表示しています.

(3) 3FFF プログラム・メモリのアドレス1800hの値を読み出し表示しています.初期値の3FFFhとなっています.

(4) 3738 プログラム・メモリに3738hを書き込み,同一アドレスを読み出し表示しています.

 以上でEEPROM,プログラム・メモリへの読み書きを確認できる.リセットしてプログラムを再起動すると初期値のFFhは9Ahに書き換えられているので書き込む前の値も書き込んだ値も同じ値になります.

リスト13-6 f877A1302.asm
 
初版のリストと同じものです.

リスト8-A PIC110SSP.asm  (アペンディックス8)
 
初版のリストと同じものです.


						
表4-A 異なっている部分だけ。

OR   "L" "H"= "L"(誤) "H"(正)
    "H" "L"= "L"(誤) "H"(正)

EOR   "H" "H"= "H"(誤) "L"(正)