戻 る
021 PIC16F84A/16F648A 名札の製作
2007/04/14 PIC16F84A 名札の製作
PICを使った名札を作りました。

5x7のLEDマトリクスを横型に配置して、5x5のフォントでコールサインと名前をスクロール表示させて、名札にします。
以前から計画をしていましたが、4月の例会には間に合いませんでした。

回路とソフトは、稲玉さんのHPに掲載されているものです。
http://www10.plala.or.jp/inatama/elec/matrix/index.html

PICはオリジナルとおりに16F84Aを使用しました。
オリジナルではPCと接続して表示する文字を書き換えられるようですが、まだテストしていません。

そのうちに16F648Aに移植したいと思います。

JJ1WKNの最初のJが出たところです。

基板です。

試作用なのでレイアウトはこれから検討します。
16F84Aはジャンク箱で眠っている時計から流用しました。
基板はPICライター1号機の基板の流用です。
16F84Aは3Vで動作します。電池の選択と配置が考えどころです。

2007/04/14 PIC 16F84A ⇒ 16F648A 移植 メモ
Webで調べてPIC16F84Aから16F648Aへ移植をしてみました。
忘れないうちにポイントをまとめておきます。

1)インクルード
書き換えるだけです。
list p=16F648A
#include <p16F648A.inc>

2)コンフィグレーション
_LVP_OFF と _BODEN_OFF を追加しました。
16F648Aは4MHzの内蔵発振回路が使えるのですが、回路は変更しないので、_HS_OSCのままです。
そのうちに内蔵発振回路にしてTMR0のカウンターを変更する予定です。
;16F648A
__config _HS_OSC & _LVP_OFF & _WDT_ON & _PWRTE_ON & _BODEN_OFF & _CP_OFF

3)ワークエリア
0CHからの割り当てを20Hからに変更します。

4)初期化
PORTAを使うのでコンパレータはOFFにします。
MOVLW b'00000111' ;コンパレータOFF
MOVWF CMCON ;
BCF INTCON,PEIE ;周辺割り込みOFF

5)EEPROM読み出し
EEDATAがBANK1にあるので、変更します。
BSF STATUS, RP0 ;BANK 1
MOVWF EEADR ;アドレスをEEADRへセット
BSF EECON1, RD ;読み出し開始
MOVF EEDATA, W ;Wレジスタにデータ取り出し
BCF STATUS, RP0 ;BANK 0

6)EEPROM書き込み
同様に変更が必要ですが、とりあえず使わないので、後回しです。
2007/04/15 PIC16F648A 名札の製作
名札の完成版ができました。

電池は入手しやすいLR44x2にしました。
新品ではないので、動作時2.7Vしかありませんが動いています。

忘れないうちに今回の変更点をまとめておきます。

PIC16F648Aなので、OSCは内蔵の4MHzにして10MHzのセラロックは不要になりました。
_INTRC_OSC_NOCLKOUT

MCLRもコンフィグで設定したので配線が1本減りました。
_MCLRE_OFF

TMR0関連もクロックを10MHzから4MHzに変更したので、見直しました。
[カウント数]=[インターバル時間]÷[CPUクロックx4]
インタバル時間は1ms、CPUクロックは4MHzなので
1[ms]x1000/(0.25[us]x4)=1000[カウント]
TMR0本体は8ビットなので256までしかカウントできないので、プリスケーラを使います。
1000/256=3.9 切り上げて 4。
OPTIONレジスタの0-2bitで設定します。
OPT_DAT  EQU 01H  ;プリスケーラは 1/4

TMR0のカウント値=必要なカウント数÷プリスケーラ設定値=1000/4=250
TMR0はカウントアップタイマなので 256-250=6 が設定値となります。
TMR0に設定します。
TMR0_DAT  EQU 06H  ;TMR0カウント値
基板です。
ロボット顔のレイアウトとなりました。
Wを表示したところです。
基板のサイズは25mmx38mmです。

戻 る

inserted by FC2 system