Z80ブレッドボードマイコンで8255A(2)

8255Aは生きているか?

前回の投稿で 生死が不明wの8255Aをテストしてみたいと思います。

こちらのページで、Arduinoを使って8255Aの各信号線をコントロールしてLEDをチカチカさせてました。

真似してみました。

Increasing Digital I/O Pins of Arduino uno Using 8255 Peripheral Programmable Interface with Arduino

Z80マイコンとは別のブレッドボードで回路を作って、会社の人からもらったArduino互換機で動かしてみると、無事うごきました!! 8255Aは生きているみたいです。

会社の人からもらったArduino UNO互換機で 8255A のLチカしてみました。ちゃんと動きますねぇ….リセットもGNDに落としたままでOKでした。 pic.twitter.com/6GLoYXc5GI — KUNI-NET元シソペ (@kuninet) May 26, 2018

LEDを1つずつ点灯させてみよう

LEDを1つづつ点灯させてみようと 一時点では 1つのピンだけ “1”を出力するようにしてみました。

すると、全点灯した後1つづつ消灯するのです…あれれ?? 8255Aの該当ピンの出力がLになったところが光っていてHレベルのところは消えてます。

試しに、「1つのピンだけ “1”を出力」と「1つのピンだけ “0”を出力」を交互にやってみました。

うぉ、わかりました。データバスに出力するときに LレベルとなるとLEDが点灯しました!! なんと。HレベルでLED点灯だと思ってました。 pic.twitter.com/A7OuEtJT2r — KUNI-NET元シソペ (@kuninet) May 26, 2018

もとのArduinoのスケッチをもとに、ちょっとだけ修正して動かしたときのソースはこちら。

ををを、L (つまり”0″) になったポートが光っとる〜♪

8255にLEDのカソードをつないでるからでっすね。LにするとLEDの両端に電圧が発生するので光るわけです。 — 29 (@MyCPU8) May 26, 2018

はい…Twitterで教えていただいたとおり、8255Aの出力がLとなったときに電位差が生じてLEDが光るのでHにしたら同電位だから光らないのです。あああ、考えてみたらそのとおりでした。LEDは 8255A -> LED -> Vcc(+5v)という接続なので…..

思い込みはイカンです。^^)>

Z80マイコンでも8255AでLチカ

8255Aの動きは会得 ^^) しましたので、Z80マイコン側でもBASICプログラムを以下のように変更して実行してみました。

(光らせたいビットを0にした数字へ変更です…)

無事LEDが交互に光りました!! うれしい!!

Z80マイコンのBASICでも、チャンネルAの0番ポートと1番ボートのLEDのチカチカ コントロールできました! pic.twitter.com/zhFr6x2d7r — KUNI-NET元シソペ (@kuninet) May 26, 2018