Download presentation
Presentation is loading. Please wait.
1
情報電子工学演習V(ハードウェア実技演習) PICマイコンによる光学式テルミンの製作
レフ・セルゲイヴィッチ・テルミン
2
「テルミン」に関する情報 ■ 大人の科学マガジン vol.17(学研) ■ エレキジャック No.4 (CQ出版)
■ 映画 「テルミン」(1993年アメリカ製作)
4
PIC12F675 圧電スピーカー Cdsセル 抵抗器
5
光学式テルミンの製作にあたって、考えたこと…
複数の音が出せる(音階が変わる) ⇒ 発振器の周波数を変える 2) 空中で手を動かして音を制御 ⇒ 手の位置 / 周囲環境の変化をとらえる →タイマモジュールを利用したパルス発生 「明るさ」 →Cdsセル&A/D変換モジュール
6
■ スケジュール ■ 課題チェック ■ 評 価 <内 容> <集合場所>
<内 容> <集合場所> 第1回(6/12) PICマイコンとタイマモジュールの活用 [S2-9] 第2回(6/19) パルスの発生とオシロスコープによる観察 [実験室] 第3回(6/26) CdSセルを利用した明るさの検出 [S2-9] 第4回(7/3)*1 明るさ変化に応じた音の発生 [S2-9] 第5回(7/10) 自由製作1 [実験室] 第6回(7/17) 自由製作2 [実験室] 第7回(7/24) 発 表 [S2-9] *1 第4回は助言ルーム終了後,11:00から開始します。 ■ 課題チェック 課 題 ドレミ音の発生 (6/26) 回 路 図 (7/3) フローチャート (7/10) 評 価 ■ 評 価 各回の出席[5]×7 + 課題[10]×3 + 発表[35] ※遅刻は減点(45分まで欠席0.5, 45分以降は欠席1扱い)
7
1.PICマイコン PIC12F675のDIPパッケージ 機能の概要 <端子名> <機 能>
<端子名> <機 能> GP0~GP5:汎用ディジタル入出力 AN0~AN3:A/D変換入力 VDD : 電源+ VSS : 電源-(GND) MCLR : 外部リセット入力 機能の概要
8
タイマ1の内部構成 T1CONレジスタ
9
タイマ1割込みによるインターバルタイマ実現の例
● 割込み処理ルーチンの所在は、割込みベクタ(04H)で記しておく。 ● 割込み処理終了後には、RETFIE命令を実行してメインへ戻る。 ● 割込み後にメインに戻り、以前の割り込まれた処理を継続できる ようにするためには、演算レジスタ(Wレジスタ,STATUSレジスタ, PCHLレジスタ)の内容を割込みに入った時点で保存しておく必要がある。
10
1-3. ソースプログラム1 「インターバルタイマ」 sample01
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ビット設定データ保存用 #DEFINE T1L 34H ;タイマ1 下位8ビット設定データ保存用 #DEFINE DOUT 35H ;GPIO 出力データ保存用 ;----- リセット& 割込みベクタ ORG 0 ;リセットベクタ GOTO START ORG 4 ;割込みベクタ GOTO INTR ;
11
START BCF INTCON,7 ;割込み不許可 BSF STATUS,RP0 ;バンク1に切り替え CALL 3FFH ;内部オシレータのキャリブレーション MOVWF OSCCAL MOVLW B‘ ’ ;GPIO(汎用ディジタル入出力ポート)の 入出力設定 MOVWF TRISIO ; 0:出力 1:入力 MOVLW 080H ;OPTIONレジスタの設定 MOVWF OPTION_REG BSF PIE1,TMR1IE ;タイマ1の割込み許可 NOP BCF STATUS,RP0 ;バンク0に切り替え MOVLW B' ' ;GPIOの初期出力 MOVWF DOUT ;GP2に1出力(High)
12
MOVLW 0FCH ;タイマ1上位8ビット設定データ MOVWF T1H ; 設定データを保存 MOVWF TMR1H ; カウンタにセット MOVLW 00H ;タイマ1下位8ビット設定データ MOVWF T1L ; 設定データを保存 MOVWF TMR1L ; カウンタにセット MOVLW B' ' ;タイマ1コントロールレジスタ設定データ MOVWF T1CON ; (プリスケーラ1:1)設定 BSF INTCON,PEIE ;周辺モジュールの割込みを許可 BSF INTCON,GIE ;割込み許可 MAIN NOP GOTO MAIN
13
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' ' ;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
14
1-4.パルスの発生とオシロスコープによる観察
<手 順> 1)ソースプログラム1をアセンブルしてHEX形式の機械語データを作る。 2)PICライターを使用してPIC12F675へ機械語データを書き込む。 3)ブレッドボードに実験回路1を作成し、オシロスコープでパルス波形の周期を測定する。 4)S1-GND間に圧電スピーカを接続し、音階を確認する。 5)ソースプログラム1のタイマ1設定データを変更し、再び1)~4)の作業を繰り返す。 周期 実験回路1 パルス波形
15
表1 パルス波形観察時の記録例 No TMR1設定値 カウント数 Cnt (65536-TM1) 観測周期T [sec] 周波数f [Hz] (f=1/T) 16進 10進(TM1) 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×( )×2 = 2048μsec = 2.048msec 表2 音階の周波数 音名 周波数[Hz] ド ソ レ ラ ミ シ ファ
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.