Pic16F84----20keybood
cpu : PIC16F84 ---- 8MHz
keyボード マトリクス
Aポート(ra0 -- ra4) keyストローブ
Bポート(rb4 -- rb7) keyデータ
@ から S keyスイッチ
--- | rb4 |
rb5 | rb6 |
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が同様に制御出来ます。
MSB | 7 | 6 |
5 | 4 | 3 |
2 | 1 |
0 | LSB |
| * | * |
* | * | * |
L2 | L1 | Low |
|
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 | * | * |
A4 | A3 | A2 |
A1 | A0 | High |
|
2Byt | D7 | D6 |
D5 | D4 | D3 |
D2 | D1 | D0 |
|
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 |
rb5 | rb6 |
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 説明
戻る