楽々PIC

水田除草と言うブログを書いていますが、PIC関連の記事が意外に人気で驚いています。 PICを使った電子工作に興味を持つ方が多いことを知って、一緒にPICを学ぶブログを作りたいと思いました。 「楽々PIC」は教材と言うよりも少し実用性?のある楽しい道具を作りながら学ぶブログを目指します。

初期化

赤外線リモコン受信3

 「赤外線リモコン受信2」の続きです。 最初に INT1 の割り込み設定をしますが、リセット直後で不定になっているワークの初期化を一緒に行っています。 <PICデバイス=18F1320> 受光モジュールは PL-IRM1261-C438 です。

以下は INT1 の設定とワーク初期化を行うアセンブラ・ソース( intdef.asm の一部)です。 INT1 は立ち下がりエッジで低位割り込みを発生するように設定し、ワークを初期化してから割り込みフラグをクリアして、割り込みを許可します。

81行目にサブルーチンコールがありますが、TIMER0設定値を 3bit 右シフトするサブルーチンです。 詳細は別の記事で紹介します。 INT1 の都度、TIMER0 を読み出して、前回のINT1割り込みからの時間を割り出しますが、前回と今回の間に TIMER0 のオーバーフローが発生している時に加味すべき定数を、79行目~87行目で計算しています。

intdef_INT1

上図の89行目では、下図のサブルーチン( ircr.asm の一部)をコールしています。 この部分は受信完了したコードに従ってメイン処理を行った後で赤外線リモコン受信を再開するときに使う為、サブルーチンにしています。

ircr_ircrst

32bit の受信コードを書き出すワークを0クリアし、受信 bit 数カウンターに32を設定してリーダー受信待ちのフラグ設定を行った上で、割り込みフラグクリアと割り込み許可を行います。


赤外線リモコン受信の関連記事インデックスはこちら → 「赤外線リモコン受信

関連記事の最後にプロジェクト一式をダウンロード可能にする予定です。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



LCDに自動転送2

 「LCDに自動転送」の続きです。 今回は TIMER2 の割り込みから CALL されて LCD にデータやコマンドを送信するプログラムについて説明します。 < PICデバイス=PIC18F1320 > LCDはSUNLIKE社製SC2004Cです。


LCD転送


上図のTIMER2低位割り込み処理から CALL されて LCDに接続されている4本のデータ線( DB4=RA0~DB7=RA3 )と、2本の制御線( E=RA6 , RS=RA7 )を動かして LCD にコマンドやデータを送ります。
このプログラムを使うことで LCD のデータ線や制御線の使い方を意識しないで任意の表示が可能になりますから、LCDについての説明は他のWebページを参考にして下さい。

下図がそのアセンブラ・ソースです。 PIC18F1320 のデータ・メモリーは256byteしかありませんから、全てバンク0にあります。 このプログラムが使うデータ・メモリーはバンク0の中でもアクセスバンク時にSFRとアドレスが重複する領域に設定しています。 ここで使うデータ・メモリーアクセス時には BANKED と記述することに注意が必要です。( MOVFF を除く )

lcd_int


上図のプログラムが、下図のサブルーチンをコールします。


lcd_subsub

上図のサブルーチン( lcdputc , lcdputd )は、TIMER2割り込みを許可する前に、メイン処理でLCDを初期化するプログラムからも CALL されます。

LCD関連記事のインデックスはこちらです。 → LCDに自動転送


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。


ダウンロードコーナー
記事検索
アンケートに御協力下さい


アーカイブ
楽々PIC 宛てBlogMail


--- ご了承下さい ---

注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
QRコード
QRコード
アクセスカウンター

    Atsuhiro Imai

    バナーを作成


    プロフィール

    jyosou_robot

    • ライブドアブログ