V850付録基板に7セグメントLEDをつないでみました。7セグは秋月で売っているGL9A040Gというアノードコモン(+側共通)のものです。10個で100円でした。
回路図はトラ技2007/2月号のp.219を参考にしました。抵抗値を変えています。トランジスタにつながっているのは10kΩですが、トラ技のは6.8kΩでした。マイコンと7セグをつないでいる抵抗は510Ωですが、トラ技のは200Ωです。
BSch3Vで回路図を描いてみました。

流れている電流ですが、全部点灯した状態で21mAくらいでした。これでもかなり明るいので、電流制限用の抵抗は抵抗値をもっと大きくしてもよさそうです。
この7セグの最大定格はセグメントあたり20mAです。1つだけセグメントを点けて測ってみると3.2mAくらい流れていたので定格内です。最大定格はデューティ比1/10でパルス幅0.1m秒で動かしたときは100mAまて流せるようです。
7/8 追記 V850の1端子の定格は4mA(合計50mA)なので、定格を超えないようにしてください。最悪、CPUを壊します。
回路はいつものようにブレッドボード上で組みました。ブレッドボードだと並べるわけにいかないので1個だけです。
テスト用プログラムは、appliletで雛形を作ります。
- システムはウォッチドッグを使用しない、オンチップデバッグを使用する
- ポートはP90~P97とP98が出力で初期値は1にしました。
プログラムです。オンチップデバッグを使うので簡単です。
void main(void)
{
UCHAR pat = 0x00; // 7segに出力する値
P9H.0 = 0; // 0:点灯 1:消灯
while(1){
P9L = pat; // 7segLEDに出力
}
}
ジャンパをJ3とJ2につけて、PM+でF5を押すとコンパイルが始まってデバッガが起動します。ダイアログはOKボタンを押すとオンチップデバッグが開始します。
F10を押すと1ステップずつ実行します。写真は左側がソースで右側がローカル変数です。デフォルトではローカル変数のウインドウは表示されていないので、メニューのブラウズからローカル変数を選びます。ローカル変数ウインドウの値のところをダブルクリックすると値を編集できます。
F10を何回か押してwhileループにはいったらpatの値を書き換えて、F10を何回か押すと7セグの表示も変わるのが確認できます。オンチップデバッグを使うとコンパイルしなおさなくてもいいので便利です。
7セグは対応するビットを0にしたとき点灯、1にしたとき消灯します。P9L=0x00にすると全部点きます。
V850のP9を1ビット単位でアクセスするときは、16bitのP9は使えず、上位と下位の8bitレジスタP9HとP9Lを使う必要があります。
7セグ自体の解説はトラ技の2007/6月号のP.184-185が参考になりました。7セグを使うのは初めてでしたが無事点灯できました。複数個つないでダイナミック点灯とか、秋月で売っている青色のとかも試してみたいです。