![]() |
||
| 3664F,3694Fで始めるH8 | 500円で始めるPIC | 始めるAVR |
IOポートでLEDを光らせるIOポートでLEDを光らせる考え方など基本は同じですので、まず Tekurobo工作室101.PIOでLEDを光らせる(3048F.Hを使う) 見ておいてください。 わかりやすいように、ここは3048との比較も含め、同様の記述にしてみました。 うーん、やはり3664の方がI/Oポートも少なく、機能も弱いですね。 でも、コレだけの本数のI/Oがあればなかなかのことが出来るでしょう。 ● I/Oポート H8 3664 には29本、汎用入力ポートが8本がある。 ポート8は大電流ポートで LOW時に 20mA駆動可能
* ( )について 探してもないと思ったら、説明にに (注) DP-42S には P11-P12 PB4/AN5 - PB7/AN7 端子はありません とある。 ということで、 AKI-H8 3664DIP版 には 上記の端子はないので ( )内の数となります 【レジスタの簡単な説明】 LCDを点灯させるには、ピンを入出力の機能として データ、出力ポートとして使いますが、その他にもレジスタの切り替え設定で他の機能に使えるピンもある。その機能や種類など。 ・PMR ポートモードレジスタ 同じピンでも、他の機能と兼用になっているピンがあります。 その切り替えをこのレジスタで設定します。 入出力ポート : 0 その他の端子に使う : 1 (何も設定しないと(デフォルト) : 0) ・PCR ポートコントロールレジスタ I/Oポートで、入力か出力かを設定します 出力:1 入力:0 (何も設定しないと(デフォルト) : 0) ・PDR ポートデータレジスタ データのやり取りをするポートです。 (何も設定しないと(デフォルト) : 0) ・PUCR ポートプルアップコントロールレジスタ PORTを入力に設定したときに、プルアップ抵抗を付けるか、付けないかを設定するためのレジスタです。 プルアップする :1 しない :0 (何も設定しないと(デフォルト) : 0) 実験回路図
●実際のI/Oポート ポート1は基板上のどのピンになるかというと、秋月3664付属の回路図を見てください。(または基板ピン配置表)) CN2 の 20〜23ピン CH1 の 20ピン を見ます。 CH2では
たとえば、基板上の20番ピン は P14/IRQ0 とあるので、 20番ピンは I/Oポートの P14 または 割り込み機能のIRQ0 のどちらかに使用できます。(P14 は ポート1の4Bit目 がこのピンという意味です。) これをレジスタの設定で、どちらかに使用か選択します(下で説明) プログラム
@ I/Oポートの初期化設定 pin20 21 − P14/IRQ0 まず、20、21番ピンはそれぞれ I/OポートのP14、P15 または 割り込み機能のIRQ0、IRQ1 のどちらかに使用できます。 P14/IRQ0、P15/IRQ1 ・このどちらの機能に使用するかは PMR ポートモードレジスタ で設定 全てポートとして使用するので PMR1レジスタは全て0に IO.PMR1=0x00 ポートとして ・ 入力、出力どちらの設定にするか PCR ポートコントロールレジスタ 全て出力に使用するので PCR1レジスタは全て1に IO.PCR1=0xFF ・ プルアップ機能を使うかを PUCR ポートプルアップコントロールレジスタ プルアップ使用しないので PUCR1レジスタは 全て0に A プログラムでの I/Oポートへのアクセス ・実際のピンの状態を プログラム上で PDR ポートデータレジスタでプログラムからアクセスするようになります。 P14 では ポート1の4Bit目 がこのピンという意味です。 PDR1
2通りの記述が出来ます−− ビットアクセス、バイトアクセス A−1 ビット入力 ピン20(P14→ポート1の4ビット) を 1にする(5V出力) IO.PDR1.BIT.B4=1 ピン21(P15→ポート1の5ビット) を 0にする(0V出力) IO.PDR1.BIT.B5=0 A-2 バイト入力 0-3BITはありません(機種依存)--0にする ピン20(P14) を 1にする(5V出力)、 ピン21(P15) を 0にする(0V出力) IO.PDR1.BYTE=0x10 (0001 0000) * 2進数→ 16進数への変換は 16進数への変換 を参照してください。 PDRレジスタは、バイト入力、ビット入力共に記述出来ます B なにもしない時間稼ぎ関数 無駄ループを回して、空白時間を作ります。 実行結果プログラムを実行すると ピコピコと2個のLEDが交互に点滅します。間隔を変えるのは msecwait(500); の500の数字を変更します。 まとめメモ I/O関連レジスタは 4つ (* ポートによっては2つだけのものもある 表参照) PMR PCR PUCR PDR ・ IO初期設定に3つ PMR PCR PUCR ・ データアクセスに1つ PDR 回路図上では 基板上のピン番号 機能 で記述されている 例) 13 P84/FTIOD (P84はポート8の4Bit目の意味) P84/FTIOD / 記号はそのピンでは機能が兼用されている ・PMR → そのどちらを使うかPMR で選択 例) IO.PMR1.BYTE=0x0c ・PCR PCRレジスタで ピンの入出力設定 →出力:1 入力:0 例) IO.PCR1=0x0c(PCRには.BYTEをつけない! ) ・PUCR PUCR でプルアップ設定 → プルアップする:1 しない:0 例)IO.PUCR1.BYTE=0x0c 設定レジスタはバイト入力だけにする IO.PCR1= だけは.BYTEをつけない! |
| 3664F,3694Fで始めるH8 | 500円で始めるPIC | 始めるAVR |
| メインページへ | ||