キーボード ─┼─┼─┼─┼─┼─┼─┼ ──── ┌─── ─┼─┼─┼─┼─┼─┼─┼ ──── │16C74 ... ... PORTBへ │ ─┼─┼─┼─┼─┼─┼─┼ ──── │ ─┼─┼─┼─┼─┼─┼─┼ ──── │ │ │ │ ... └────── │ │ │ ... PORTC,Dへ │ │ └──────────────── │ └────────────────── │ ┬ Vcc > > 4.7KΩ > L │ Clock──◎◎◎──┼───────────── PORTEのbit1 = ClockIn │ └──>────────── PORTAのbit1 = ClockOut SN7407 ┬ Vcc > > 4.7KΩ > L │ Data ──◎◎◎──┼───────────── PORTEのbit0 = DataIn │ └──>────────── PORTAのbit0 = DataOut SN7407 ┬ └∧∧∧── LED ─── PORTAのbit5 470Ω ┬ └∧∧∧── LED ─── PORTAのbit4 470Ω ┬ └∧∧∧── LED ─── PORTAのbit3 470Ω ┬ └∧∧∧── LED ─── PORTAのbit2 470Ω ┌─────┐ │Osc. Mod. │──── OSC1 └─────┘ 4MHzのオシレータモジュール --- 回路図の説明 キーボードはマトリックススイッチになっており,16 x 8 位の端子が出てい ます.10 x 7 くらいのこともあるかもしれません.どちらにしろ,多い方を PORTC, PORTDにつなぎます.少ない方を PORTBにつなぎます. 今はもうないと思いますが,昔のキーボードではキースイッチにダイオードが 入ったものがあります.その場合,電流は PORTBから PORTC・Dへ流れますの で,それに合わせて下さい. ClockとDataは入力はそのまま PICに繋ぎます.出力は SN7407を使って open collectorにし,その後 pull upします. クロックは今回は 4MHzのオシレータモジュールを使っています.RとCで発振 させることもできますが,1MHz程度までしかうまく発振しませんでした.オシ レータモジュールはちょっとお値段が高いのですが,一番簡単です. その他,それぞれの石の電源ラインには適当に0.1μ程度のコンデンサを入れ ます下さい. もし,元のキーボードの基板にコイル (というかフェライトの素子) が使って あったら,CLOCKや DATAのラインに入れて下さい.