PIC12F683でデジタル出力をする (設定方法まとめ)

2023/06/25

PIC

t f B! P L

PICマイコンの「12F683」を使って、デジタル出力をしたいとき、どうすればよいのか?をまとめました。

デジタル出力をするまでの3ステップ

PIC12F683でデジタル出力をするには、以下のように設定していきます。

PIC12F683でデジタル出力をするまでの3Step
  1. 対象のピンを「デジタルI/O(入出力)」に設定する
  2. 「TRISIO」レジスタで、対象のピンを「デジタル出力」に設定する
  3. 「GPIO」レジスタに出力の値を書き込む

(例)7ピンをデジタル出力として使う場合の設定

ここから先は、デジタル出力の例として、12F683の7ピンでデジタル出力をする場合について、具体的に設定していきます。

Step1:対象のピンを「デジタルI/O(入出力)」に設定する

12F683のピンはこんな感じになっています。

12F683ピンダイアグラム

今回は、7ピンをデジタル出力(GP0)として使う予定ですが、7ピンには他にもいろいろな機能(AN0、CIN+など)が割り振られています。

そのため、ピンを使いたい機能になるように、設定する必要があります。

まずは、コンパレータモジュールの設定をするレジスタ「CMCON0」を設定して、コンパレータをOFFにします。(7ピンはコンパレータの入力「CIN+」にもなっているので)

CMCON0設定

データシートより、CM<2:0>="111"とすると、CINとCOUTがI/O、コンパレータはOFFになります。

次に、「ANSEL」レジスタで、ピンをデジタルI/Oに設定します。

ANSEL設定

ANS0ビットを"0"とすると、AN0のあるピン(7ピン)はアナログ入力(AN0)ではなく、デジタルI/O(GP0)として機能するようになります。

Step2:「TRISIO」レジスタで、対象のピンを「デジタル出力」に設定する

続いて、「TRISIO」レジスタで、「入力とするか、出力とするか」を設定します。ここでは、7ピン(GP0)を出力にします。

TRISIO設定

TRISIOビットを"0"にすると、対応するGPIOが出力になります。出力にしたいGPIOは「GP0」なので、TRISIO0ビットを"0"にします。

これで、準備は完了です。7ピンは「デジタル出力」として機能するようになりました。

Step3:「GPIO」レジスタに出力の値を書き込む

デジタル出力に設定した7ピンに、"H"、"L"を出力するには、「GPIO」レジスタを使います。

GPIOで出力

対象のbitに"1"、"0"を書き込むと、ピンから"H"、"L"が出力されます。GP0は0bit目なので、このビットに出力したい値を書き込みます。

論理"1"は電源電圧("H")、論理"0"はGND("L")が出力されます。

(例)7ピンをデジタル出力として使う場合の設定のコード

具体的にコードで書くと、こんな感じになります。

CMCON0 = 0x07;      //0000_0111  コンパレータOFF
ANSEL = 0x0E;       //0000_1110  AN0(GP0)Digital

TRISIO = 0x3E;      //0011_1110  GP0:out

GPIObits.GP0 = 1;   //"H"出力

上記の例では、デジタル出力とは関係のない設定については、デフォルト値のままとしています。

また、GPIOだけbitを指定して書き込んでいます。設定は書き換えることが少ないので、いっぺんに書き、GPIOは操作することが多いので、操作するbitだけ指定して書き込んでみました。(特段深い意味はありません)

当ブログはアフィリエイト広告を利用しています。

このブログを検索

最新記事

ブログ運営者:そのへんの誰か


このブログのURL

QooQ