小ネタ 2009-015

AVRマイコンで電卓を製作


 以前、H8マイコンを使って電卓を製作した。この電卓のマイコン部分をAVRマイコンに置き換えて作りなおしてみた。(2009-05-31)

 
 AVR電卓を動かしてみたところ(動画)



1. ハードウェア

  
 AVR電卓(左)と、AVRマイコン基板(右)

 AVRマイコンATMEGA164P (ATMEL製)を使用した。
 回路は、H8マイコンキットAki-H8と差替えて使えるように、H8のI/OポートP0〜P3の部分をAVRのPA〜PDに割り当てた。




2. ソフトウェア

 以前Aki-H8(H8マイコン)用に書いたH8版電卓ソフトを一部書き直してAVRマイコンATMEGA164Pに移植した。

 [ avr_calc.zip ソースコード(download) 65KB ]


 このソースコードをコンパイルするには、AVR Studio + WinAVRが必要である。AVR Studioの統合環境は使わずにコマンドラインからMakefileでビルドする。そのためのバッチファイルcompile_avr.batを参考まで作成した。

 WinAVRへの移植をする際に、printfのfloat対応、scanfのfloat対応、atofやstrtodなどが問題になったが、とりあえず対処できた。

 作成したソフトをマイコンに書き込むための書き込み器については、詳細をこのあたりに書いてある。

 この電卓ソフトを多少変更すると、RPN電卓にすることも可能である。
 ちなみに、RPN方式とは、ヒューレットパッカード社が作成した電卓の方式で、置数した後に演算子を入力する方式である。 (例: RPN電卓)


 (後日加筆 2009-12-30)
 RPN電卓に書き直してみた。スタックは4段で、こちら(RPN電卓)のものと表示を除けば一緒の動作をする。

 [ avr_rpncalc.zip ソースコード(download) 66KB ]



(余談)
 ヒューレットパッカード社が最近出した電卓でHP20bという製品がある。
 この電卓はATMEL製のARM7マイコンを使っていて、HP20bの内蔵の電卓ソフトを好きな自作ソフトに書き換えることが可能である。
 
 今回のAVR電卓のような回路を作る場合に、配線が多いので実際に半田付けするのがかなり面倒である。
 プリント基板を作れば配線は楽になるのだが、基板作成スキルが必要になり、これも気軽に作ることは難しい。

 HP20bの基板を流用すれば、簡単に電卓用ソフト作りを楽しむことができると思う。