PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第241回]
●PIC18F45K50(4)SR Latch
これまでPICBASICコンパイラを実装するPICをどれにするかについてあれこれ迷ったりしてきたのですが最終的にPIC18F45K50に決めました。
当初はPIC18F14K50を対象にしてプログラムの開発をしてきたのですが途中からLCD表示器の接続について考えるようになったあたりからは主にPIC18F4550を対象にしてプログラム開発を行なってきました。
PIC18F4550もPIC18F45K50も同じ40pinですし端子配列も機能もほとんど同じように思えたのでひょっとしたらプログラムも変更しないで使えるのではないかなんてちょいと楽観的に考えていたのですがそうは問屋が卸してはくれません。
念のためにということでひとわたりPIC18F45K50のDataSheet読んでみましたところ。
かなり機能が増えているじゃないの。
SFRもPIC18F4550に比べてかなり増えていることがわかりました。
SFRについては[第238回]で説明をしています。
その時点ではPIC18F4550とPIC18F45K50のSFRはそれほど大きな違いはないと軽く考えていたのですがよくよく確認してみましたらかなり違っていることがわかりました。
これは本気でそのあたりから取組む必要があります。
で。
本気モードでPIC18F45K50のDataSheetを読んでいましたら。
目に留まったのが今回のタイトルにあります「SR Latch」という項目でした。
なんじゃいこれは?
SR LatchというからにはあのSR Latchなのか?(これじゃあ意味をなしていません)
ひょっとして。
NAND GATEなどで構成するあのSet Reset Latchなのか???
それをPICで?
どうやって?
以下PIC18F45K50DataSheetからの引用です。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
入力トリガとしては幾つかの信号が使えるようですが確かにあの「RS Latch」(RS フリップフロップ)のようです。
これがうまく使えるのなら。
例えばキー入力などのチャタリング回避などに応用できそうです。
ラッチされた出力信号はQおよびQ_だとか。
おお。
その信号名は確かにフリップフロップですよね。
FIGURE 21−1は後で試してみるとして。
FIGURE 21−2はSIMPLIFIED BLOCK DIAGRAMですと。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
うむむむ。
SRQとSRNQは出力端子のようです。
それで。
SRIはおそらく入力端子かと。
あれ?
SETもRESETも同じSRI?
どういうこと?
時間があれば色々試してみるとよいのですがとりあえず試してみたいのはI/O端子からの入力をトリガにしてそれをI/O端子から出力するという使い方です。
そういう使い方ができればですけれど。
SRIもSRQもSRNQもI/O端子ですよねえ(多分)。
えっと。
これはFIGURE 21−1関係のようです。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
それは後で試してみることとして。
SR Latchを定義するSFRはSRCON0とSRCON1の2つのようです。
こちらはSRCON0です。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
bit7=1にするとSR Latchがイネーブルになるようです。
そして多分bit3とbit2を1にするとQ、Q_がSRQ端子、SRNQ端子に出力されると。
なるほど。
そしてこちらがSRCON1です。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
bit7=1のときSRI端子の状態によってSR Latchがセットされるようです。
bit3=1のときSRI端子の状態によってSR Latchがリセットされるようです。
うーん。
どうやらSRI端子はセット、リセットを兼用してるようです。
どういうこと?
そも入出力端子はどれなのか?
TABLE 21−2にそのヒントがありそうです。
TRISA5とTRISA4が関係しています。
そしてTRISB0も関係有りと。
今これを書いていて気が付きました。
なんだ。
WPUB0も関係してるじゃありませんか。
WPUBはPORTBのWeak Pull−upを定義するSFRです。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
つうことはRB0がSRI入力端子ということになります。
念のために確認を。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
RB0のところにSRIの項目があります。
これで入力は決まりです。
ということは。
PORTAがQ、Q_出力ということになります。

[出典]Microchip TechnologyInc. PIC18F2X/45K50 Datasheet
RA4にSRQがそしてRA5にSRNQがあります。
これでハードウェアは決まりです。
次はいよいよソフトウェアです。
どうやったら簡単にこれを試すことができるでしょうか。
まあ普通でしたら実際にプログラムを書いてそれをPIC WRITERで焼いてみて。
大抵は一回や二回ではうまくいきませんよねえ。
始めて触るPICなどでしたらそもそもCONFIGの設定でこけてしまってプログラムそのものがうまく書けなかったりして。
こういうときに真価を発揮するのがPICBASICコンパイラなのです。
次回に続きます。
PICBASICコンパイラ[第241回]
2026.6.22 upload
前へ
次へ
ホームページトップへ戻る