詫間電波工業高等専門学校研究紀要 第 33 号 (2005)

PIC トレーニング環境の整備
一色弘三∗

豊谷浩司†

ブァリァン パンマニー ‡A workbook-based PIC training environment for students
Hiromi Isshiki

Koji Toyotani

Boualiane PhangmanySynopsis
The PIC (Peripheral Interface Controller) processors, which are the most popular family of microcontrollers at present, are well suited to embedded control systems. In order to make students
in the department of control engineering have a basic understanding of the PIC controllers andembedded systems, a PIC research project has been carried out for some years. The project created a PIC workbook with a simple I/O board. This workbook, however, was not still estimatedthrough practical experiments. To solve this problem and improve the workbook, experimentswith the workbook have been performed. Advantages and disadvantages of the workbook havebeen investigated and exercises with new target boards have been also created. This has led tothe advanced version of the workbook.

1

り PIC 技術の習得を支援する実習環境の開発を目まえがき的としていた。PIC16F84A は，ミッドレンジファ

PIC (Peripheral Interface Controller) はワンチ

ミリの中でも特に基本的な要素で構成されており，ップマイクロコントローラであり，その性能，汎マイコンシステムおよびプログラミングについて用性からエンベデッドシステムに浸透している

1)。

PIC デバイスには，ベースライン，ミッドレンジ，ハイエンド，エンハンスト・ハイエンドの 4 つの2)の基礎を学習する上で，最も適したデバイスである
1), 8)。

昨年度は基本入出力ボードを用いて PIC トレー。ミッドレンジファミリの PICニングを行うワークブックの作成を進めた 7) 。しかは，低価格で入手もしやすく，趣味としての電子工しながら，このワークブックを用いた実際の実験や作から研究・製品レベルまでの制御用素子として多評価が課題として残っていた。そこで，本年度は，く用いられている。

ワークブックの長所・短所について検討し，ワークファミリがある

従来から教育現場で用いられてきた Z80 のようブックをより洗練されたものとする。また，周辺機なマイクロコンピュータに比べて PIC は手軽で扱能を扱うターゲットボードもいくつか試作し，PICいやすい。このため，アセンブリ言語による PIC技術のトレーニング環境の充実を目指す。

制御実習を低学年次の授業科目内に導入した例

3)があるなど，PIC を用いた実習教育が盛んに行われている 4), 5) 。本研究室においても，この数年，PICを用いた研究プロジェクトを進めてきた 6), 7) 。これは，研究室内あるいは工学実験で PIC16F84A によ2

PIC トレーニング環境

PIC トレーニング環境は，図 1 のように，パーソナルコンピュータ，直流安定化電源，PIC ライタおよびターゲットボードから構成される。この環境下で，ワークブックに沿って PIC トレーニングを∗ 詫間電波工業高等専門学校 電子制御工学科† 詫間電波工業高等専門学校 専攻科‡ 千葉大学 工学部 情報画像工学科進めていく。PIC ライタは自作品であり，PIC ライタ駆動用に直流安定化電源を用いる。プログラム71

1

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.33 (2005)

踏む。PIC デバイスは，PIC16F84A とした。図 3に示すように，ターゲットボードは，LED による8 ビットの出力，スライドスイッチによる 4 ビットの入力，更に，タクトスイッチによる 2 ビットの入力がある。課題のいくつかを次に示す。

• 指定した LED を点灯させる。
• 0.5 s 間隔で 8 つの LED を点滅させる。
• 奇数・偶数ビットの LED を一定時間ごとに交互に点灯させる。
図 1 PIC トレーニング環境
Fig. 1 PIC training environment.

• LED の点灯を右端から左端へと 1 ビットずつ移動させる。

• 4 ビットのスライドスイッチに応じて LED を開発は，C コンパイラ（CCS 社，PCM）を組み込点灯させる。

んだ統合開発環境ソフトウェア MPLAB（マイクロチップ社）上で C 言語により行う。C 言語は，ア

このワークブックを評価するため，本研究室に所センブリ言語と比較して開発効率と可読性に優れて属する，専攻科 1 年，本科 5 年および 4 年の学生おり，また，学生が低学年 2 年次に基礎的なプログ3 名が実際に実験を行った。実験後，学生および指ラミングを経験している言語である。これらのこと

導者のワークブックに対する意見や感想をまとめる

から C 言語でのプログラミングを選択した。コンと次のようになった。

パイル後生成される HEX ファイルの PIC への書
き込みは，パラレルポート用のフリーのライタソフ
ト Easy-PIC1) を用いて行った。

3

ワークブックの評価

ワークブックは，PIC に関連したハードウェアおよびソフトウェアの技術を習得させることを目的としている。その構成は，図 2 のように従来の実験テキストと同じあるが，独習も可能なように例題や課題に対して解答を示している点に特徴がある。実• C 言語関数について引数などの詳しい記述が欲しい。

• ターゲットボード製作についての説明が少ない。

• PIC ライタの製作は不要である。
• 例題を通じてプログラム開発の手順を示すべきである。

• 解答例（サンプルプログラム）が読みづらい。
• 各課題にヒントを示して欲しい。

験は，PIC ライタやターゲットボード（ディジタル I/O の基本ボード）を製作し，そのボードを用いてプログラミング課題をこなしていくという手順を
(1)
(2)
(3)
(4)

(5)

Objectives
PIC Microcontroller
Experimental Setup
Experiment Descriptions
Creating I/O target board
PIC16F84A programming
Exercise
ExampleProblems
Solutions

図 2 PIC ワークブックの構成

Fig. 2 Contents of the workbook.

272

図 3 ディジタル I/O ボード
Fig. 3 Digital I/O training board for the
PIC16F84A.

詫間電波工業高等専門学校研究紀要 第 33 号 (2005)• 課題に対しては全てに解答をつけるべきであできる。PIC は，標準入出力にシリアル通信が割る。

• 周辺機能を用いた課題も必要である。
これらを教材改善の 4 項目 9) ，すなわち，追加，削除，移動，変更の点から整理し，ワークブックの改良の指針とした。

4

意の I/O ピンを送受信端子として指定することもり当てられているため，データ出力には printf 文を用いればよい。ターゲットボードをパーソナルコンピュータと接続し，Windows 標準の通信ソフトウェア，ハイパーターミナルを用いて結果の確認を行う。

ワークブックの改良および考察

プログラム開発は，CCS 社の C 言語コンパイラ(PCM) を用いる。CCS が有する関数については
英文/和文のリファレンスマニュアル 10), 11) で詳細を参照できるが，主要な関数についてはワークブッ
クで新たに説明することにした。また，ワークブッ
クで示されているプログラムリストの書式を統一した。文字フォント，サイズ，行間も変更し，可読性，読後感の向上を図った。

LED マトリックス（秋月通商，10x10 ドットマト
リックス LED）を用いた課題は，学生に 8x8 ドッ
トで文字パターンをデザインさせ，そのデザイン通りに文字を表示させるものである。PIC16F84A を用いる場合は，ピン数が不足するため，図 4 のように 3 入力 8 出力のデコーダ HC138 を用いる。文字表示はダイナミック点灯方式を採用することから，
図 5 のような一行ずつのデータを高速で繰り返し出力することで文字表示を実現できる。

ワークブックでは PIC ライタおよびターゲットボードの回路図のみが示されていた。この回路図をもとに学生は製作を行い，その後，指導者の指示でチェックを行った。しかしながら，このスタイルでは学生および指導者の両者に労力を要する。このため，回路製作の注意点，回路サンプルの写真，チェック方法をワークブックに追加した。
基本ボードを用いた課題は PIC プログラミングの基礎の学習を目的としていたが，周辺機能を用い

図 4 8x8 LED マトリックス表示回路の構成
Fig. 4 Block diagram for the 8x8 LED matrix display.

た制御プログラミングについても経験できるよう，

RS232C を用いたシリアル通信，LED マトリック
ス表示など，更に一歩進んだ課題を追加した。これ
により，ワークブックの課題の構成が表 1 のように初級，上級コースの 2 つに分けることができた。
同表には，それぞれの課題で用いるターゲットボードと学習ポイントを示している。

PIC16F84A は，ハードウェア的にシリアル通信機能を有していないが，プリプロセッサ #use

図 5 8x8 マトリックス上の ‘A’ の文字パターン

rs232 を用いることで通信が可能となり，また，任Fig. 5 Character pattern of ‘A’ on the matrix.

表 1 改良されたワークブックでの課題
Table 1 Exercise in the improved workbook.

マイコンシステムにおいて，割り込み処理は極Course
Basic
Advanced

Target Board
PIC16F84A
RS232C
LED matrix
Pulse counter
PIC16F873

Key Learning Point
Digital I/O control
Serial communication
Dynamic lighting
Interrupt
A/D conversion

めて重要である。PIC16F84A が有する割り込み機能の中から，入力ピン変化によるものを課題とした。これは，図 6 に示す回路を準備し，スイッチの ON/OFF 操作によって生じるパルスをカウントするものである。プログラム例を図 7 に示す。プ733

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.33 (2005)#include <16f84a.h>#fuses HS, NOWDT, NOPROTECT, PUT#usedelay( CLOCK = 20000000 )#use
rs232( BAUD = 9600, XMIT = PIN_A3,RCV = PIN_A2 )typedef struct byte_tag{
byte lower:4;
byte higher:4;}Byte_type;
Byte_type rb;#byte rb = 6#int_rbvoid PulseCount( void ){static int number = 0;
disable_interrupts( INT_RB );delay_ms( 20 );if( input( PIN_B4 ) == 0 ){printf( "%ld\n\r", ++number );rb.lower = number % 16;}
delay_ms( 150 );enable_interrupts( INT_RB );}図 6 パルスカウンタの回路図
Fig. 6 Circuit diagram for the pulse counter.

ログラムでは，ポート B の内部プルアップ抵抗をON に設定している。ポート B の RB4 ピンに入力された信号の状態が変化したときに割り込み処理，すなわち，パルスの数をカウントし，その結果をシvoid main( void ){set_tris_b( 0xf0 );port_b_pullups( TRUE );rb.lower = 0x0;
enable_interrupts( INT_RB );enable_interrupts( GLOBAL );while( 1 );}図 7 パルスカウントのプログラム例
Fig. 7 A program for counting pulses using
the PIC interrupt feature.

リアルおよび 4 ビットの LED で出力する。
最近，PIC デバイスの改良が進み，従来のものじて計測に関する基礎を学習するためのテストボーより使いやすさが向上している。改良が進んでいドを 図 9 のように試作した。これは，2 チャンネ

る PIC デバイスや 28∼40 ピンのミドルレンジ，ハルの信号をアンプ (LMC662) で増幅し PIC に入力

イエンドの PIC デバイスへのプログラムの書き込できる。また，2 ビットのスライドスイッチと LEDみは，本ワークブックが PIC16F84A を対象としによる入出力，LCD，シリアル出力の機能を有すたものであることから，現環境では行えない。今後の PIC プログラミング環境の展開に備え，多くのPIC デバイスに対応できるよう，新たにシリアルポート利用のマルチ型の PIC ライタ 12) を図 8 のように製作した。この PIC ライタは，1 つのソケッ
トで 8∼40 ピンまでの各種 PIC デバイスに対応できる。また，外部電源が不要なため小型・軽量であり，使用方法も簡単である。ライティングソフトには IC-Prog 13) を用いる。

PIC16F873 は，表 2 に示すように A/D 変換の機能を有し，PIC16F84A に比較して周辺機能が充実している。PIC16F873 を用いれば簡易な計測装置を構成することが可能である。そこで，PIC を通474

図 8 マルチ PIC ライタ
Fig. 8 Multi-PIC writer.

詫間電波工業高等専門学校研究紀要 第 33 号 (2005)

表 2 PIC デバイスの比較
Table 2 Device differences.
DevicePackage

PIC16F84A

18 DIP

PIC16F873

28 DIP

Program
Peripheral Feature
Flush
13 I/O-pins,
1k
one timer
22 I/O-pins,
4k
three timers, SPI,
five 10-bit ADCsを進めていく能力を養うトレーニングにもなる 9) 。
研究室配属後の早い時期にこれを行うことにより，効果が期待できる。
今年度はワークブックの改善を基に PIC トレー
ニング環境の整備を行った。これにより，基礎的なPIC 技術には対応できると考える。ワークブックを用いた工学実験については，実験期間，スケジュール，指導方針など，その運営方法について，今後，検討する必要がある。

5

むすび

本研究では，これまでに作成した PIC ワークブックの評価と改良を行い，PIC 技術を習得するためのトレーニング環境を整備した。実際にワークブックで実験を行った学生からは，いくつかの点で解説が不十分であるという指摘を受けた。このため PIC初学者が独習でき十分に実験を進めることができる
図 9 PIC16F873 トレーニングボード

よう，ワークブックの記述および内容を改めた。まFig. 9 Training board for the PIC16F873.

た，各種周辺機能や上位クラスの PIC を用いた実験課題の提案を行った。これらは，上級編と位置づる。このボードを用いた課題を更に準備したい。
平成 16 年度から本校では専攻科がスタートした。
これに伴い，研究室の構成や所帯が現状とは異なってくると考える。新たに研究室へ配属される学生が増加すれば，指導者は研究遂行に必要となる基礎技術の指導を学生に対して十分な時間を当てて行うことが難しい。PIC は本来の研究を手助けする道具であり基礎技術と位置づけられることから，学生はけることができる。今後，これらについての評価を行い，工学実験への導入に向けてプロジェクト型の実験テーマも検討していきたい。
謝辞

本研究の遂行にあたりご協力を頂いた平成15 年度電子制御工学科卒業生 小橋可奈恵さんをはじめ研究室の学生諸君に感謝します。なお，本研究は平成 14，16 年度 詫間電波工業高等専門学校教育研究活性化経費の支援を受けて行われた。

可能な限り研究室スタッフからの援助に頼らず自らPIC 技術の習得を図りたい。また，平成 14 年の学習指導要領の改訂で，小中学校では総合的な学習の時間が新設された。これは，課題を自身で見い出し解決していく能力，すなわち，情報収集を行い自主的で自立的に課題を解決していく情報活用能力の育成に重点が置かれた教科である 14) 。このような教科の新設は，一方で，現在の生徒あるいは学生の情報活用能力が十分に養われていないという危機感の表れといえる。従って，独学を支援する教材は，これらの問題を解決する一助となり，効率良く自習を行えるワークブックを開発することの意義は大きいと考える。更に，ワークブックを用いた自習というスタイルは，収集した情報リソースを基に自ら研究

文献

1) トランジスタ技術編集部（編），PIC マイコン活用ハンドブック，CQ 出版社，2001.
2) 後閑哲也，C 言語による PIC プログラミング入門，
技術評論社，2002.
3) 山口健二，後野昭次，河合光久，“機械工学科の低学年学生を対象とした PIC 制御教育の試み，” 論文集「高専教育」，no.26，pp.381-386，2003.
4) 羽渕仁恵，西田鶴代，加藤真二，“ワンチップマイコンを用いた創成実習とその教育効果，” 論文集「高専教育」，no.27，pp.501-506，2004.
5) 千葉悦弥，管隆寿，“PIC を用いた創造的製作実習の試み，” 論文集「高専教育」，no.27，pp.519-524，

75

5

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.33 (2005)

2004.
6) 一色弘三，田嶋眞一，大畑正樹，安藤邦浩，水卜崇
文，“PIC を用いたプロジェクト型工学実験の導入シミュレーション，” 詫間電波工業高等専門学校 2002年度プロジェクト研究報告会講演論文集，pp.35-36，
2003.
7) 小橋可奈恵，PIC ワークブックの作成，平成 15 年度詫間電波工業高等専門学校電子制御工学科卒業研
究報告書，2004.
8) 高田直人，C による PIC 活用ブック，東京電機大学出版局，2003.

6769) 鈴木克明，教材設計マニュアル−独学を支援するために−，北大路書房，2004.
10) PIC C Compiler PCB, PCM, PCH and PCW
Reference Manual, Custom Computer Services
Inc., 2001.
11) PIC C コンパイラー日本語リファレンスマニュア
ル，データダイナミクス，2003.
12) http://osaka.cool.ne.jp/feng3/index1.html
13) http://www.ic-prog.com/
14) 永山彦三郎，現場から見た教育改革，ちくま新書 349，
筑摩書房，2002.