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
コメント