Microsoft Word - テキスト.docx

Similar documents
Microsoft Word - 工学ゼミ3_テキスト

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018

PowerPoint プレゼンテーション

Microsoft Word - 工学ゼミ3_テキスト

untitled

PowerPoint プレゼンテーション

スライド 1

回路 : Vdd GND 回路図と呼べるようなものではありません オシレータは外部 ( セラミック発振子 ) なので GP4 と GP5 は使えません 四角の枠内はモジュールなので ここから VDD GND TX RX の4 本をつなぐだけです 測定端子 (GP0) は 1MΩの抵抗と 2MΩの半固

Taro11-…e…L…X…g.jtd

スライド 1

Microsoft Word - 4章.doc

PowerPoint プレゼンテーション

スライド 1

PowerPoint プレゼンテーション

untitled

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

3 4 PIC

,, ( ) 5 ma ( ) 5V V 5 6 A B C D E F G H I J , LED LED, LED, 7 LED,, 7 LED ( ) V LED VCC 5V 7 LED VCC f g f a g b a b c e d e d c dp dp VCC (

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し

BSF PORTA BCF PORTA MOVLWB MOVLWB MOVLWB MOVLWB , E=1, E=0 8 ビット 行表示 ディスプレイ制御 表示クリア エントリーモード CALLDSP MAIN BCF PORTA,3 R

も 常に 2 つのコイルに電圧を印加する 2 層励磁方式や 1 つのコイルと 2 つのコイルに交互に電圧を印 2

スライド 1

Microsoft Word - 組込みプログラミング2018テキスト

スライド 1

スライド 1

余白 : 上下 25.4mm, 左右 19mm (Word2012 での やや狭い 設定 ) マイコンプログラミング演習 I レポート 1 実験日 提出日 回路構築 /LED を用いた I/O 制御 [16pt] 班員と担当責任者第 0 班レポート作成

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

前付(念).indd

Microsoft PowerPoint - 第8α章.ppt [互換モード]

卒 業 研 究 報 告

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

スライド 1

スライド 1

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

スライド 1

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

PIC24F Family Reference Manual Section 9 WDT

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

64 松尾邦昭 2. 無線送受信装置 SANWA 製のラジコン送受信装置は, その機能性の豊富さと価格の安さを理由に多くのラジコン ファンに愛用されており, 今回使用した VG6000は, チャンネル数が6チャンネルあり, ヘリコプター制御用に設計 開発され使用されているものだが, 我々はこれをロボ

USB モジュール

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

スライド 1

から付与します さらに, ゼロプレッシャー ICソケットの空き部分を使って, タイマー ICである555の動作チェックができます ユニバーサル基板の一部に555 用の発振回路を構成しています 555をソケットに差し込んで電源スイッチを入れると,ICが良品の場合は LEDが点滅します LEDが点滅しな

3 1EEPROMElectrically Erasable PROM PROMProgrammable ROM 2 EEPROM 3

PowerPoint プレゼンテーション

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

Microsoft Word - 実験4_FPGA実験2_2015

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

PIC18 Istructios PIC16, PIC x Microchip Techology Icorporated. All Rights Reserved. PICmicro PIC18 52

Microsoft Word - N-TM307取扱説明書.doc

スライド 1

スライド 1

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

Taro-DSノート

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

計算機アーキテクチャ

BANK1 MOVLW b' ' PIC16F648A独自 MOVWF CMCON コンパレータ OFF BCF INTCON,PEIE 周辺割り込み OFF PIC16F648A独自 MOVLW B' ' RB2/TX, RB1/RX PIC16F648A独自 MOVW

2. アーキテクチャ 概 要 PIC16F8x ファミリは 命 令 語 長 14bit の RISC[1]で 命 令 は35 種 類 である 1 命 令 は4クロックで 実 行 されるが 実 際 にはパイプライン 処 理 [2]されている ノイマン 型 コンピュータ[3]と 違 いプログラムとデータ

AutomaticTelegraphKeyProject.c

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

PowerPoint プレゼンテーション

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

スライド 1

NJU7291 概要 ウォッチドッグタイマ内蔵システムリセット IC NJU7291 は 電源電圧の瞬断や低下などの異常を瞬時に検出して リセット信号を発生する電源電圧監視用 IC です ウォッチドッグタイマが内蔵されており 各種マイコンシステムに フェイル セーフ機能を持たせることができます 特徴

ソフトウェア基礎技術研修

Microsoft PowerPoint - kougi7.ppt

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

1. 購入物品リスト 電子部品名 用途 規格 単価 数量 合計 購入先 PIC16F84A-20/P PIC16F 秋月電子通商 カーボン抵抗 1/4W R0,R1 10kΩ 秋月電子通商 カーボン抵抗 1/4W R2,R2 追加分 300Ω 秋月

2STB240PP(AM-2S-G-005)_02

スライド 1

Microsoft Word - マイコンを用いた信号# doc

PIC (, 2, 3 ) PIC ( 1, 2, 3 ) 1 2 (, 2 ) PIC ( 1, 2 ) 2.1 (p.34) define #define (define ) (p.61) 1 30 (RD 7 /P SP 7 ) 32 (V DD ) IC

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

1 4 8 (DC) PWM.

Microsoft PowerPoint - 3.3タイミング制御.pptx

Microsoft Word - RenewSimpleDAIforCS8416.doc

AKI-PIC16F877A開発キット (Ver1

PIC

Microsoft PowerPoint - MEpractice10.ppt [互換モード]

Microsoft Word - Ladder Tool 使çfl¨ã…žã…‰ã…¥ã‡¢ã…«ã…©ã…•ã…¼ã†ªã†Š_ docx

7-1 Digital IC のライブラリの準備について [ 目的 ] 実験では 74HC00 を使用するので SPICE モデルを入手する [ 方法 ] LTspice User site からライブラリとシンボルを Download します

スライド 1

電気的特性 (Ta=25 C) 項目 記号 Min. Typ. Max. 単位 電源電圧 Vdd V 電源電流 Ivdd ma サンプルホールド電圧 1 Vref V サンプルホールド電流 1 Iref ma サンプルホールド電

光変調型フォト IC S , S6809, S6846, S6986, S7136/-10, S10053 外乱光下でも誤動作の少ない検出が可能なフォト IC 外乱光下の光同期検出用に開発されたフォトICです フォトICチップ内にフォトダイオード プリアンプ コンパレータ 発振回路 LE

HDLトレーナーサンプルプログラム説明書

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

<4D F736F F D C835E838A EA993AE90A78CE CC8A4A94AD2E646F63>

Arduinoで計る,測る,量る

パルス波高値計測回路の製作

形式 :PDU 計装用プラグイン形変換器 M UNIT シリーズ パルス分周変換器 ( レンジ可変形 ) 主な機能と特長 パルス入力信号を分周 絶縁して単位パルス出力信号に変換 センサ用電源内蔵 パルス分周比は前面のスイッチで可変 出力は均等パルス オープンコレクタ 電圧パルス リレー接点パルス出力

Microsoft PowerPoint - No3.ppt

Transcription:

学籍番号 氏 名 情報電子工学演習 Ⅴ( ハードウェア実技編 ) PIC マイコンによる光学式テルミンの製作 新潟工科大学情報電子工学科 課題チェック欄 課題 ドレミ音の発生 (6/28) 回路図 (7/5) フローチャート (7/12) 評価 スケジュール < 内容 > < 集合場所 > 第 1 回 (6/14) PIC マイコンとタイマモジュールの活用 [S2-9] 第 2 回 (6/21) パルスの発生とオシロスコープによる観察 [ 実験室 ] 第 3 回 (6/28) CdS セルを利用した明るさの検出 [S2-9] * 第 4 回 (7/5) 明るさ変化に応じた音の発生 [S2-9] 第 5 回 (7/12) 自由製作 1 [ 実験室 ] 第 6 回 (7/19) 自由製作 2 [ 実験室 ] 第 7 回 (7/26) 発 表 [S2-9] * 第 4 回 (7/5) は助言ルーム終了後,11:00 から開始します 配布部品 PIC12F675, 圧電スピーカ, Cds セル, 抵抗 2.2kΩ, コンデンサ 0.1μF, ブレッドボード, ジャンパー線, 電池, 電池ボックス, ピンセット, 収納ケース, 名札 1

1.PIC マイコン 1-1.PIC12F675 の概要 PIC12F675は 演習 ⅢやⅣで使用した PIC16F648A と同じ 14 ビット長の命令語をもつ RISC 型コンピュータである 8 ピンサイズでありながらも 4MHz のクロックを内蔵し 時間を計測するためのタイマや A/D 変換入力機能を備えている Fig.1 PIC12F675のDIPパッケージ < 端子名 > < 機能 > GP0~GP5: 汎用ディジタル入出力 AN0~AN3:A/D 変換入力 VDD : 電源 + VSS : 電源 -(GND) MCLR : 外部リセット入力 Fig.2 機能の概要 1-2. タイマ 1 と割込み処理タイマ 1 は 前段に 3 ビットプリスケーラを備えた 16 ビットカウンタである 例えば 4MHz のオシレータを 4 分周した内部クロックを使用 (TMR1CS=0) し 3 ビットプリスケーラを 1:4 に設定 (T1CKPS1=1, T1CKPS0=0) すると 4μsec の精度で時間計測が可能になる また このタイマ 1 のカウンタ値が 65535(16 進で FFFFH) を超える ( オーバーフロー ) タイミングで割込みを発生させ 再びカウンタ値を設定する操作を繰り返すことにより インターバルタイマを実現することができる Fig.3 タイマ 1 の内部構成 2

Fig.4 タイマ 1 コントロール (T1CON) レジスタの内容 Fig.5 タイマ 1 割込みによるインターバルタイマ実現の例 割込み処理ルーチンの所在は 割込みベクタ (04H) で記しておく 割込み処理終了後には RETFIE 命令を実行してメインへ戻る 割込み後にメインに戻り 以前の割り込まれた処理を継続できるようにするためには 演算レジスタ (W レジスタ,STATUS レジスタ, PCHL レジスタ ) の内容を割込みに入った時点で保存しておく必要がある 1-3. ソースプログラム1 インターバルタイマ sample01.asm ;----- コンフィグレーションビットの設定と汎用レジスタ ( ユーザメモリ ) の割付 ) -- LIST P=PIC12F675 INCLUDE "P12F675.INC" CONFIG H 11FF &_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _CPD_OFF & _CP_OFF ; 内部クロック使用,MCLR 未使用など #DEFINE W_TMP 20H ;W レジスタ割込み時待機用 #DEFINE ST_TMP 21H ;STATUS レジスタ割込み時待機用 #DEFINE T1H 33H ; タイマ 1 上位 8 ビット設定データ保存用 3

#DEFINE T1L 34H ; タイマ 1 下位 8 ビット設定データ保存用 #DEFINE DOUT 35H ;GPIO 出力データ保存用 ;----- リセット & 割込みベクタ ---------------------------------------- ORG 0 ; リセットベクタ GOTO START ORG 4 ; 割込みベクタ GOTO INTR ;------------------------------------------------------------------------- START BCF INTCON,7 ; 割込み不許可 BSF STATUS,RP0 ; バンク 1 に切り替え CALL 3FFH ; 内部オシレータのキャリブレーション MOVWF OSCCAL MOVLW B'00010000' ;GPIO( 汎用ディジタル入出力ポート ) の入出力設定 MOVWF TRISIO ; 0: 出力 1: 入力 MOVLW 080H ;OPTION レジスタの設定 MOVWF OPTION_REG BSF PIE1,TMR1IE ; タイマ 0 の割込み許可 NOP BCF STATUS,RP0 ; バンク 0 に切り替え NOP MOVLW B'00000100' ;GPIO の初期出力 MOVWF DOUT ; GP2 に 1 出力 (High) MOVLW 0FCH ; タイマ 1 上位 8 ビット設定データ MOVWF T1H ; 設定データを保存 MOVWF TMR1H ; カウンタにセット MOVLW 00H ; タイマ 1 下位 8 ビット設定データ MOVWF T1L ; 設定データを保存 MOVWF TMR1L ; カウンタにセット MOVLW B'00000101' ; タイマ1コントロールレジスタ設定データ MOVWF T1CON ; ( プリスケーラ 1:1) 設定 BSF INTCON,PEIE ; 周辺モジュールの割込みを許可 BSF INTCON,GIE ; 割込み許可 MAIN NOP GOTO MAIN ;---------------------------------- ; 割込み処理ルーチン ;---------------------------------- INTR MOVWF W_TMP ; 現在の W レジスタの値を退避 SWAPF STATUS,0 ; 現在の STATUS レジスタの値を退避 MOVWF ST_TMP BCF PIR1,TMR1IF ; タイマ1 割込み検出フラグをクリア MOVF T1H,0 ; 上位 8 ビット設定データを読み出し MOVWF TMR1H ; カウンタに設定 MOVF T1L,0 ; 下位 8 ビット設定データを読み出し MOVWF TMR1L ; カウンタに設定 MOVF DOUT,0 ;GPIO 出力データを読み出し XORLW B'00000100' ;GP2 の出力値を反転 MOVWF DOUT ;GPIO 出力データを保存 MOVWF GPIO ;GPIO 出力 SWAPF ST_TMP,0 ; 割込み前の STATUS レジスタの値を復帰 MOVWF STATUS SWAPF W_TMP,1 ; 割込み前の W レジスタの値を復帰 SWAPF W_TMP,0 RETFIE END 4

1-4. パルスの発生とオシロスコープによる観察 < 手順 > 1) ソースプログラム1をアセンブルして HEX 形式の機械語データを作る 2)PIC ライターを使用して PIC12F675 へ機械語データを書き込む 3) ブレッドボードに Fig.6 の実験回路を作成し オシロスコープでパルス波形の周期を測定する 4)S1-GND 間に圧電スピーカを接続し 音階を確認する 周期 Fig.6 実験回路 1 Fig.7 パルス波形 5) ソースプログラム 1 のタイマ 1 設定データを変更し 再び 1)~4) の作業を繰り返す 表 1 パルス波形観察時の記録例 No TMR1 設定値 16 進 10 進 (TM1) カウント数 Cnt (65536-TM1) 観測周期 T [sec] 周波数 f [Hz] (f=1/t) 1 2 < 課題 1-ドレミ音の発生 > TMR1 を FC00H(10 進で 64512) に設定した場合 下記の計算によりパルス波形の周期を求めることができる ド レ ミ の音を発生させるため TMR1 の設定値を予測せよ < クロック Fosc=4MHz, タイマ 1 のプリスケーラ 1:n=1:1, TMR1=64512(10 進 ) とした場合 > T = (Fosc/4) n (65536-TMR1) 2 = 10-6 1 (65536-64512) 2 = 2048μsec = 2.048msec 表 2 音階の周波数 音名 周波数 [Hz] 音名 周波数 [Hz] ド 523.251 ソ 783.991 レ 587.330 ラ 880.000 ミ 659.255 シ 987.767 ファ 698.456 ド 1046.502 5

2. 明るさの検出 2-1. Cds セル Cds(Cadmium sulfide cells) セルは 受光面に光が入射すると 光導電効果がおこり 内部抵抗が変化する性質をもっている Fig.8 は 本演習で使用する Cds セル (MI5527:Macron) について 照度対抵抗値の関係を調べたものである 実験室の照明下 ( 机の上 ) は およそ 600Lux で Cds セルの抵抗は 1.8kΩ Cds セルから 10cm の高さで手をかざして受光面を暗くすると 200Lux 程度の明るさになり Cds セルの抵抗は 3kΩになった 抵抗値 [kω] 100 10 1 10 100 1000 照度 [lux] Fig.8 MI5527の特性 2-2.A/D 変換入力機能 PIC12F675 は 4 チャンネルの (AN0~AN3) 入力切替え可能な 10 ビット分解能の A/D 変換器をもつ A/D 変換の開始や終了の検査 チャンネル指定には ADCON0 レジスタを使用し クロックやポートの機能選択には ANSEL レジスタを使用する 例えば A/D 変換クロックとして Fosc/2 を選択し AN3 をアナログ入力として使用するには まず ANSEL に B 00001000 の値を設定し 変換開始時には ADCON0 に B 00001111 の値 ( 変換データを左詰め 参照電圧を VDD) を設定する必要がある Fig.9 A/D 変換モジュールの機能 6

Fig.10 ADCON0 レジスタ Fig.11 ANSEL レジスタ Fig.12 A/D 変換のプログラミング手順 7

2-3. ソースプログラム 2 A/D 変換処理プログラム #DEFINE UA #DEFINE A 30H 36H ;---- ( コンフィグレーション, 割込みベクタ等省略 ) ---- START BCF INTCON,7 ; 割込み不許可 MOVLW 07H ; MOVWF CMCON ; コンパレータ機能オフ BSF STATUS,RP0 ; バンク 1 に切り替え MOVLW B'00001000' ;A/D 変換クロック, アナログ入力端子の設定 MOVWF ANSEL ;A/D Clock=FOSC/2, Analog pin - AN3(3) Only MOVLW B'00010000' ;GPIO の入出力設定 MOVWF TRISIO ; MOVLW 080H ;OPTION レジスタの設定 MOVWF OPTION_REG BCF STATUS,RP0 ; バンク 0 に切り替え NOP LOOP MOVLW B'00001101' ;A/D 変換データの形式, チャンネル等の設定 MOVWF ADCON0 CALL WAIT1 ; サンプルホールド (>20μsec) BSF ADCON0,1 ;A/D 変換開始 ADCHECK BTFSC ADCON0,1 ;A/D 変換終了検査 GOTO ADCHECK LOOPE MOVF ADRESH,0 ;A/D 変換データの読込 (W レジスタに移動 ) MOVWF A ; GOTO LOOPE ;-------------------------------------- ; A/D サンプルホールド用 ;-------------------------------------- WAIT1 MOVLW D'20' MOVWF UA ;UA=20 WAIT1A DECFSZ UA,1 ;UA を-1 し ゼロならば GOTO 命令をスキップ GOTO WAIT1A ; ラベル WAIT1A へジャンプ RETURN 8

2-4. Cds セルを利用した明るさ検出 Cds セルを利用した明るさ検出の方法として Fig.13 の回路の使用が考えられる 実際に手をかざして受光面の明るさを変化させた場合 Vout はどのように変化するか観察を行う < 手順 > 1) ブレッドボードに Fig.13 の回路を作成する 2) デジタルマルチメータを使い まず電源電圧 (VDD) を確認する 次に各種条件において出力電圧 Vout を測定する < 課題 2- 回路図 > Vout を PIC12F675 の AN0(GP0) に接続し Cds セルによる明るさレベルの判定を実現したい Fig.13 に PIC12F675 を加えた回路図を作図せよ Fig.13 実験回路 2 表 3 明るさ検出回路の動作確認例 No 測定条件 1 蛍光灯直下で手をかざさない 2 センサ受光面より 10cm の高さに手をかざす 3 センサ受光面より 5cm の高さに手をかざす 4 センサ受光面より 1cm の高さに手をかざす 電源電圧 VDD= [V] Vout [V] 1 回目 2 回目 3 回目 9

2-5. 明るさ変化に応じた音の発生 A/D 変換器の分解能を 8 ビット 参照電圧を VDD に設定すると AN0 からのセンサ入力電圧 Vin は 下記のとおりデジタルデータ Din に変換される Din= Vin / VDD * 255 *Din は 小数点以下切り捨てとする 手を Cds セルの受光面より 1cm から 10cm の間で上下させ ド レ ミ の 3つの音を鳴らすには 2つの判定閾値を設ける必要がある 先の実験結果を参考に判定閾値を定め D1, D2 とすると 明るさに応じたドレミ音の決定処理は以下の流れで実現できる Fig.14 ドレミ音の決定プログラム TMR1 データ ( 音階の周波数 ) を更新する手続きは 先の割り込み処理ルーチンで利用されていた T1H と T1L を介して容易に行える 10

2-6. ソースプログラム3 明るさに応じたドレミ音の決定 sample03.asm #DEFINE D1 XXH #DEFINE D2 XXH ; 判定閾値 ( XX は不確定な部分 ) #DEFINE W_TMP 20H ;W REGISTER STORE #DEFINE ST_TMP 21H ;STATUS REGISTER STORE #DEFINE UA 30H #DEFINE T1H 33H ; タイマ 1 上位 8 ビット設定データ保存用 #DEFINE T1L 34H ; タイマ 1 下位 8 ビット設定データ保存用 #DEFINE DOUT 35H ;GPIO 出力データ保存用 #DEFINE A 36H ;---- ( コンフィグレーション, 割込みベクタ, A/D 初期設定等省略 ) ---- LOOP MOVLW B'00000001' ;A/D 変換入力の設定 MOVWF ADCON0 CALL WAIT1 BSF ADCON0,1 ;A/D 変換開始 ADCHECK BTFSC ADCON0,1 ;A/D 変換終了検査 GOTO ADCHECK MOVF ADRESH,0 MOVWF A ;A/D 変換データ ( センサ入力電圧 ) を A に保存 ;------------------------------------------- MOVLW D1 ; 閾値 D1 を W レジスタに移動 SUBWF A,0 ;A - Wreg BTFSC STATUS,0 ;C フラグが 0( 負 ) なら次の命令をスキップ GOTO TMR1SET1 ;A D1 の場合は TMR1SET1 へ ;------------------------------------------- MOVLW D2 ; 閾値 D2 を W レジスタに移動 SUBWF A,0 ;A - Wreg BTFSC STATUS,0 ;C フラグが 0 なら次の命令をスキップ GOTO TMR1SET2 ;D1>A D2 の場合は TMR1SET2 へ ;=========================================== TMR1SET3 ; ミ の音を発生する TMR1 データを指定 MOVLW XX ; XX は不確定なデータ MOVWF T1H MOVLW XX MOVWF T1L GOTO LOOP TMR1SET2 ; レ の音を発生する TMR1 データを指定 MOVLW XX MOVWF T1H MOVLW XX MOVWF T1L GOTO LOOP TMR1SET1 ; ド の音を発生する TMR1 データを指定 MOVLW XX MOVWF T1H MOVLW XX MOVWF T1L GOTO LOOP ;------ (WAIT1, 割込み処理ルーチンなどを省略 ) ------- 11

< 課題 3- フローチャート > ソースプログラム 3 による方法は 音が切り替わる位置を捉え難く また周囲光の影響を受け誤動作しやすい そこで この判定処理に対してシュミットトリガを導入し 入力電圧が上昇するときと下降するときで判定レベルが変わるようにした ソースプログラム 4 は その 1 例である このプログラムの流れをフローチャートで表し D1S,D2S の値としてどのような値を設定すべきかを検討せよ 2-7. ソースプログラム 明るさに応じたドレミ音の決定 ( シュミットトリガ入力 ) #DEFINE D1 XX #DEFINE D2 XX ; 判定閾値 ( XX は不確定なデータ ) #DEFINE D1S XX #DEFINE D2S XX #DEFINE W_TMP 20H ;W REGISTER STORE #DEFINE ST_TMP 21H ;STATUS REGISTER STORE #DEFINE UA 30H #DEFINE T1H 33H ; タイマ 1 上位 8 ビット設定データ保存用 #DEFINE T1L 34H ; タイマ 1 下位 8 ビット設定データ保存用 #DEFINE DOUT 35H ;GPIO 出力データ保存用 #DEFINE A 36H ;---- ( コンフィグレーション, 割込みベクタ, A/D 初期設定等省略 ) ---- LOOP MOVLW B'00000001' ;A/D 変換入力の設定 MOVWF ADCON0 CALL WAIT1 BSF ADCON0,1 ;A/D 変換開始 ADCHECK BTFSC ADCON0,1 ;A/D 変換終了検査 GOTO ADCHECK MOVF ADRESH,0 MOVWF A ;A/D 変換データ ( センサ入力電圧 ) を A に保存 ;------------------------------------------- MOVLW D1 ; 閾値 D1 を W レジスタに移動 SUBWF A,0 ;A - Wreg BTFSC STATUS,0 ;C フラグが 0( 負 ) なら次の命令をスキップ GOTO TMR1SET1 ;A D1 の場合は TMR1SET1 へ ;------------------------------------------- MOVLW D1S ; 閾値 D1S を W レジスタに移動 SUBWF A,0 ;A - Wreg BTFSC STATUS,0 ;C フラグが 0( 負 ) なら次の命令をスキップ GOTO LOOP ;D1> A D1S の場合は LOOP へ ;------------------------------------------- MOVLW D2 ; 閾値 D2 を W レジスタに移動 SUBWF A,0 ;A - Wreg BTFSC STATUS,0 ;C フラグが 0 なら次の命令をスキップ GOTO TMR1SET2 ;D1S> A D2 の場合は TMR1SET2 へ ;=========================================== MOVLW D2S ; 閾値 D1S を W レジスタに移動 SUBWF A,0 ;A - Wreg BTFSC STATUS,0 ;C フラグが 0( 負 ) なら次の命令をスキップ GOTO LOOP ;D2 > A D2S の場合は LOOP へ ;------------------------------------------- ;----- (TMR1SET3~TMR1SET1, WAIT1 などを省略 ) ------ 12

表 4. アセンブラ命令 *1 オペランド部のfは任意のレジスタ,d は格納先の選択 (0:W レジスタ,1:fの指定レジスタ), b はビット位置 (0~7),k はリテラル ( 定数データ ) を表す *2 影響フラグに C, DC, Z などの記載があるものは その命令の実行によって STATUS( ステータス ) レジスタ内の対応するビットが影響を受けることを意味する C=1 は演算の結果 最上位にキャリーの発生があったことを表す ( 加算ではその演算結果が 256 以上 減算では 0 以上でキャリーが発生 ) Z=1は演算の結果がゼロであったことを表す 13

< 参考 ホームページ> 1. 後閑哲也,PIC マイコンではじめる作って遊べるロボット工作, 技術評論社,2004. 2.http://www.picfun.com/, 電子工作の実験室, 後閑. (PIC マイコンの機能やプログラミングについて解かりやすく解説 ) 3.http://www.microchip.co.jp/, マイクロチップテクノロジージャパン. (MPLAB や PIC12F675 などのデータシートをダウンロード可能 ) 4.http://esato.net/ex/micom3/, PIC マイコンによる光学式テルミンの製作, 佐藤. 14