PIC 18:LCDとSWを付ける


LCDとSWの動作
 ICは通常でLCDのコントロールをしている。ここにSWを追加して「押されたか」をチエックするプログラムです。

 サブルーチンで[KEY_SW]をコールし、SWが押されていれば[FLAG 0]をセットして戻る。
 戻って来たら、FLAGをチエックしてセットされていればその処理をする。
 ここでは[VFO]を逆にして、0.5秒の待ち時間を取りSWの上がるのを待つ。そのまま押されていれば、再度ループが回り[VFO]が逆にされLCDの表示が変る。押し続ければ次々に表示が変る。
 ここでカウンタを付け3秒(6回)押し続けたら、何か別の処理をするなどの処置も考えられる。
 このアイデアは「チャリンコ・コンピュタから頂き」のもの!

メカ的には
 IC端子からLCDへ行く所に抵抗を入れ、SWに接続し片方は0Vにする。SOFTでプルアップされているので通常のチエックでは[1]となるがSWが押されていれば[0]となるので分かる。

 ここで使う抵抗はLCDが無ければ4.7KΩで動作するが、付いている時には3.3KΩとなった。実際にはこれより少し低めの2.7KΩを使います。
 LCD-E(Enable)端子は[0]にしておくと作動しないので必要なら、端子をクリヤする。通常の私のプログラムは[0]になっているので考えずにそのまま使っています。

MAIN PROGRAM
;------------------------------------------------
	call	KEY_SW		;check SW1
	btfss	FLAG,0		;bit0=SW1
	goto	PASS		;not FLAG
	call	TIME05S		;
	comf	VFO,F
	bcf	FLAG,0		;FLAG clr
PASS
;------------------------------------------------
KEY_SW
 	BSF	STATUS,RP0	;Bank1
	bsf	TRISB,2		;RB2	input(1) 
 	BCF	STATUS,RP0	;Bank0
	call	TIME07M		;0.7mSec
	btfss	PORTB,2		;KEY1 check
	bsf	FLAG,0		;KEY data(bit0)
;
	BSF	STATUS,RP0	;Bank1
	bcf	TRISB,2		;RB2	output 
 	BCF	STATUS,RP0	;Bank0
	return

2007/APR/7


[もどる]もどる  [MAIN MENU

inserted by FC2 system