Pic16F84----20keybood
cpu	: PIC16F84 ---- 8MHz


keyボード マトリクス	
	Aポート(ra0 -- ra4) keyストローブ 
	Bポート(rb4 -- rb7) keyデータ
	@ から S   keyスイッチ
---rb4 rb5rb6 rb7
ra0
@
A
B
C
ra1
D
E
F
G
ra2
H
I
J
K
ra3
L
M
N
O
ra4
P
Q
R
S
	出力コード  アドレス(data EE-PROM)

		@ = data EE-PROM (01H)    to     S = data EE-PROM (14H)



送受信フォーマット:
	1200bps,2400bps,4800bps,9600bps
	8ビット,1ストップビット,パリティー無し,フロー制御なし
	   ***    btime data   ----------   data  EE-PROM  (00H)   ****

		1 = 1200bps
		2 = 2400bps
		3 = 4800bps
		4 = 9600bps

	keyを押したままスイッチonをする事でボーレートをかえられます。

		A = 9600bps
		E = 4800bps
		I = 2400bps
		M = 1200bps



受信コマンド

	LSB(bit 0)をlow (0)にするとランプコントロールとなり、bit 1 がhighで
	LED-1が点灯、lowで消灯します。bit 2 でLED-2が同様に制御出来ます。

MSB76 543
2
1
0
LSB
** *** L2L1Low


	LSB(bit 0)をhighにするとkey codeの書換アドレスのセットになり、bit 1から
	bit 5 に書き換えたいkeyのアドレス( @=01H から S=14H )としてセット
	します。つぎに受信したデータをkeyコードとしてレジスタにセーブします。
	ただし、data EE-PROMの内容は変わりませんから毎回変更する必要が有ります。

MSB
7
6
5
4
3
2
1
0
LSB
1Byt
*
*
A4A3A2 A1A0High
2BytD7D6 D5D4D3 D2D1D0



keytbl.hex	(付属 data EE-PROM 書き込みデータ)


	00H --- 04H	( btime  9600BPS )

	01H --- 31H	'1'
	02H --- 32H	'2'
	03H --- 33H	'3'
	04H --- 41H	'A'
	05H --- 34H	'4'
	06H --- 35H	'5'
	07H --- 36H	'6'
	08H --- 42H	'B'
	09H --- 37H	'7'
	0aH --- 38H	'8'
	0bH --- 39H	'9'
	0cH --- 43H	'C'
	0dH --- 2aH	'*'
	0eH --- 30H	'0'
	0fH --- 23H	'#'
	10H --- 44H	'D'
	11H --- 24H	'$'
	12H --- 25H	'%'
	13H --- 46H	'F'
	14H --- 45H	'E'

keytbl.hexによるkey出力キャラクタ
---rb4 rb5rb6 rb7
ra0
1
2
3
A
ra1
4
5
6
B
ra2
7
8
9
C
ra3
*
0
#
D
ra4
$
%
F
E


(ra0からra3 と rb4 から rb6 までの範囲が電話器のkeyボードに合わせています。)



*20KeYBood ソースファイル*−− keybod02.lzh ( 約21kByt )

  * ファイルリスト *

	KEYBOD02.ASM	ソースファイル
	KEYBOD02.HEX	プログラム書込みようヘキサファイル
	KEYTBL02.HEX	Data EE-PROM 書込みようヘキサファイル
	KEYBOD.GIF	回路図
	KEYBOD02.TXT	説明




戻る