レポートを書く上での心得 実験レポートは, この実験を何も知らない人がこのレポート通りに実験を行って, ほぼ同じ結果が出せる程度の完成度 ( 実験の再現性 ) が求められる. そのためには教科書やスライドを丸写しするのではなく, 自分で内容を理解し, 自分の言葉で書く必要がある. また, 学術分野などで多少の違いはあるが, 一般的なレポートおよびレジュメ等の書き方としての大まかなルールを以下に示す. 文章は ~である. 調で記述する. 読点 句読点は ではなく全角カンマ, と全角ピリオド. を使う. 数値 アルファベットは基本的に半角文字を使う. 余白は上下 25.4mm, 左右 19.0mm (Word2010 での やや狭い 設定 ) とする. 本文のフォントはサイズ 10.5pt, 全角文字は MS P 明朝, 半角文字は Times New Roman を使う. ただし, 本稿ではプログラムは文字幅や 0 と O の区別がつきやすいよう,Consolas を使っている. 節 項のタイトル, 図表のキャプションの全角文字は MS ゴシック, 半角文字は Arial を使う. 図や表を入れる際は, 本文中に必ずその図表の説明を入れ, 図表はその文章より後に載せる. 図のキャプションは下に, 表のキャプションは上につける. 図の大きさや行間等は, 見た目が間延びしないようにレイアウト調整する. 図表の本体とキャプションがページをまたがないようにする. 節 項の題目だけがページ末にこないようにする. 半角カンマ, 半角ピリオドの後には必ず半角スペースを入れる.
余白 : 上下 25.4mm, 左右 19mm (Word2012 での やや狭い 設定 ) マイコンプログラミング演習 I レポート 1 実験日 2013. 4. 18 提出日 2013. 5. 9 回路構築 /LED を用いた I/O 制御 [16pt] 班員と担当責任者第 0 班レポート作成 : 植村匠プログラミング : 回路作成 : 記録 : 1. 実験の目的マイコンシステムを用いた信号の出力の制御方法を理解する. そのために, マイコンのアーキテクチャーを理解するとともに, アセンブラによるプログラミング技術を習得する. 具体的には,LED の点灯 / 消灯をおこなうアセンブラプログラムを作成し, 回路上で動作の確認を行う. 節ではイ ンデン トを入れる 2. 実験 2.1. 使用機器 本実験では以下の機材を用いて PIC プログラミングならびに電子回路の構築を行う. 使用キット : キットで遊ぼう電子回路研究委員会編, キットで遊ぼう電子回路シリーズ No.5 PIC 入門アセンブラ編, 株 式会社アドウィン, 第 版, 2006. 開発環境 PC: メーカ名, PC 名型番, CPU 名, Hz, メモリ GB, OS(ver, XXbit), 項目などを羅列して書く際は半角カンマ + 半角スペースで区切り, 最後は半角ピリオドをつける ハードウェア : キットで遊ぼう電子回路シリーズ No.5 PIC 入門アセンブラ編同梱キット ( 株式会社アドウィン ) PIC Programmer ( 株式会社アドウィン ) ソフトウェア : MPLAB IDE vx.xx (Microchip Technology Inc.) DIY K128 PICmicro Programmer vxxxxxx (DIY Electronics (HK) Ltd.) 2.2. 使用するマイクロチップ本実験で用いるマイコンチップ PIC16F84A のピンごとの役割とその制御方法を理解する. ピン配置を図 1 に, ピンの配置表を表 1 に示す. 図 1 ならびに表 1において RA0~RA3 および RB0~RB7 で示される入出力端子は, プログラムで自由に入力 / 出力を選択することができる. 入力端子にはセンサー, スイッチなどを接続して信号を PIC 内部に取り込む
ことができ, 出力端子には LED, モータ, スピーカ等種々の機器 部品を接続し, それらの動作を制御すること ができる. 図 1 PIC16F84A のピン配置 表 1 PIC16F84A の各ピンの機能
2.3. 回路の構成 本実験で使用する回路の回路図と配線図をそれぞれ図 2, 3 に示す. なお回路図と配線図で LED, 抵抗, PIC の接続順序が異なるが, 動作上差異は生じない. 図 2 回路図 図 3 配線図 2.4. ソースコード 本実験でプログラミングしたアセンブラによるソースコードを図 4 に示す. 01 02 03 LIST P=PIC16F84A INCLUDE P16F84A.INC CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF 04 05 06 07 BSF CLRF CLRF BCF STATUS, RP0 TRISA TRISB STATUS, RP0 08 09 MOVLW B 00001111 MOVWF PORTB ; リテラル W レジスタ ;W レジスタ ファイルレジスタ 10 11 LOOP GOTO LOOP 12 END 図 4 アセンブラによるソースコード
01~02 行目はプログラムのヘッダ部分であり 使用する PIC を 16F84A と定義し それに該当する設定ファイルをインクルードする記述である 03 行目は PIC の設定を行う記述であり 本プログラムの記述では以下のような設定となる _HS_OSC 発振回路の周波数を HS モード (1MHz~20MHz) にする _WDT_OFF ウォッチドッグタイマ ( 暴走防止用のタイマ ) を OFF にする _PWRTE_ON パワーアップタイマ ( 安定起動させるためのタイマ ) を ON にする _CP_OFF プログラムメモリのコードプロテクト ( 外部からのアクセスを禁止する ) を OFF にする 04~07 行目は PORTA, PORTB のピンの入出力設定を行う一連の記述である. それぞれのピンの入出力設定を司るレジスタである TRISA, TRISB レジスタの設定を行うが, そのためには参照する BANKの切り替えが必要となるため,PORTA, PORTB の設定の一連の流れは以下のようになる. 04 行 BSF 命令で STATUS レジスタのビット RP0 を 1 にし, 参照 BANK を BANK0 から BANK1 に変更する. 05 行 CLRF 命令で TRISA レジスタ内のビットを全て 0 にし,PORTA のピンを全て出力設定にする. 06 行 CLRF 命令で TRISB レジスタ内のビットを全て 0 にし,PORTB のピンを全て出力設定にする. 07 行 BSF 命令で STATUS レジスタのビット RP0 を 0 に設定し, 参照 BANK を BANK1 から BANK0 に戻す. 08, 09 行目は PORTB の RB0~RB3 から出力を行うための命令である. まずは 2 進数列 00001111 を MOVLF 命令で W レジスタに格納したのち,MOVWF 命令で W レジスタの値を PORTB レジスタに格納する.PORTB レジスタ内に格納されたビット列 00001111 は, 下位ビットからそれぞれ RB0~RB7 に対応しているため, この 2 行の命令で RB0~RB3 のピンから信号が出力される記述となる. 10, 11 行目は現状態を維持するための無限ループの処理であり,LOOP というラベルをつけ, 次行の GOTO 命令で LOOP ラベルへと戻ることでループを行っている. 12 行目では END 命令でソースの終了を定義している. 2 回目のレポートからは同一要素は簡略化して書いて可. ただし, 新しく出てくる命令文や処理内容については詳しく記入するほか, 処理の流れがわかるように解説をすること. 2.5. 実験結果と考察図 2, 3 で示す回路構成ならびに図 4 で示すソースコードを用いて実験を行った結果, プログラムソースの意図する通り PORTB の RB0~RB3 にそれぞれ接続した LED の点灯を確認することができた. ただ, 接続された LED のうち 1 つだけがほかの LED よりも輝度が低かったが, これは PIC チップの不具合, もしくは配線の抵抗などによる誤差だと推測される. このように, 何かしらのトラブルが起こった際はその詳細まで記すこと. 3. 課題 課題 (1):MOVLW B'00001111' を次のように書き替えると, 動作はどう変化するか. MOVLW B'00001010
解答 (1): 本プログラムではリテラルの 2 進数列 00001111 は下位ビットからそれぞれ RB0~RB7 へと渡される 理由などをきちんと踏まえて文章で解答を書くこと. また何が何に対してどうするため といったため, 00001010 に変更した場合 RB1 ならびに RB2 に接続した LED のみが光る. 主語, 述語, 修飾語をはっきりとさせること. 課題 (2):LED を PIC の RA0~RA3 のポートに接続しなおすならば, プログラムは "MOVWF PORTB" をどのように書き替えればよいか. 解答 (2):RA0~RA3 理由などをきちんと踏まえて文章で解答を書くことは PORTA であるので,"MOVWF PORTA". また何が何に対してどうするために換えることで W レジスタ内のデータを といった PORTA 主語, 述語に渡すことができる, 修飾語をはっきりとさせること.. 参考文献 [1] キットで遊ぼう電子回路研究委員会編, キットで遊ぼう電子回路シリーズ No.5 PIC 入門アセンブラ編, 株式会社アドウィン, 初版, 2006. [2] 著者名, 書籍名, 出版社名, 第 版, 出版年. [3] 制作者名, web ページ名, http://~~~~~ [4] H25 年度マイコンプログラミング演習配布資料.