Interfacing Keypad dengan 8051
Keypad adalah perangkat input dengan array kecil menekan tombol berlabel dengan angka atau simbol lainnya, dirancang untuk memungkinkan masuknya cepat karakter dari satu set kecil, misalnya 0-9 atau angka desimal, secara historis, digit heksadesimal.
Konstruksi (Internal Schematic):
Pembangunan tombol di bawah ini dibangun menggunakan SPST Switches sederhana seperti berikut:
Koneksi ke 8051:
Metode untuk memeriksa Input:
Metode untuk memeriksa masukan adalah membuat coloums sebagai i p / dan kita drive baris membuat mereka o / p, seluruh prosedur ini membaca keyboard disebut Scanning.
Untuk mengetahui tombol yang ditekan dari papan tombol (4x4) matriks, kita membuat garis-garis baris rendah satu per satu dan membaca coloums. Katakanlah kita pertama membuat ROW1 rendah, kemudian membaca kolom. Jika salah satu kunci dalam ROW1 ditekan akan membuat kolom corrosponding sebagai yaitu rendah jika kunci kedua ditekan di ROW1, maka column2 akan memberikan rendah. Jadi kami datang untuk mengetahui bahwa 2 kunci ROW1 ditekan. Ini adalah bagaimana pemindaian dilakukan.
Hal ini dapat ditunjukkan di bawah ini dalam animasi tombol (output dan input):
Jadi untuk memindai keypad sepenuhnya, kita perlu membuat baris rendah satu per satu dan membaca kolom.
Pemrograman pada 8051 di 'C':
Gets tombol ditekan dari Port 2 dan output nilai desimal ke Port 1.
Download Firmware di 'C' di Keil (. Zip)
Download Skema Simulasi di Proteus (. Zip)
disadur dari : http://www.electronics-control.info/keypad.htm
Konstruksi (Internal Schematic):
Pembangunan tombol di bawah ini dibangun menggunakan SPST Switches sederhana seperti berikut:
Koneksi ke 8051:
Kita perlu terhubung kolom keypad dan baris ke port dari mikrokontroler 8051 dan program controller untuk membaca input.
Metode untuk memeriksa Input:
Metode untuk memeriksa masukan adalah membuat coloums sebagai i p / dan kita drive baris membuat mereka o / p, seluruh prosedur ini membaca keyboard disebut Scanning.
Untuk mengetahui tombol yang ditekan dari papan tombol (4x4) matriks, kita membuat garis-garis baris rendah satu per satu dan membaca coloums. Katakanlah kita pertama membuat ROW1 rendah, kemudian membaca kolom. Jika salah satu kunci dalam ROW1 ditekan akan membuat kolom corrosponding sebagai yaitu rendah jika kunci kedua ditekan di ROW1, maka column2 akan memberikan rendah. Jadi kami datang untuk mengetahui bahwa 2 kunci ROW1 ditekan. Ini adalah bagaimana pemindaian dilakukan.
Hal ini dapat ditunjukkan di bawah ini dalam animasi tombol (output dan input):
Jadi untuk memindai keypad sepenuhnya, kita perlu membuat baris rendah satu per satu dan membaca kolom.
Pemrograman pada 8051 di 'C':
Gets tombol ditekan dari Port 2 dan output nilai desimal ke Port 1.
01.
# include <regx51.H> / / Sertakan file untuk 8051
02.
# define P2 keypad / / keypad terhubung ke P2
03.
# define col1 P2_0 / / kolom 1
04.
# define col2 P2_1 / / kolom 2
05.
# define col3 P2_2 / / kolom 3
06.
# define col4 P2_3 / / kolom 4
07.
. 08
void
key_init ();
. 09
unsigned
char
get_key ();
10.
void
tunda (unsigned
char
i);
11.
12.
void
main ()
13.
{
14.
unsigned
char
ret = 0;
15.
unsigned
char
toggle = 0;
16.
key_init ();
/ / menginisialisasi keypad
17.
18.
sementara
(1)
19.
{
20.
delay (10);
21.
ret = get_key ();
22.
jika
(ret! = 0 & & toggle == 0)
23.
{
24.
toggle = 1;
25.
P1 = ret;
26.
}
27.
jika
(ret == 0)
28.
{
29.
toggle = 0;
30.
}
31.
}
32.
}
33.
34.
void
key_init ()
35.
{
. 36
keypad & 0x0F =;
/ / membuat Baris sebagai o / p dan cols adalah i / p
37.
}
38.
39.
40.
unsigned
char
get_key ()
41.
{
. 42
unsigned
char
i, k, key = 0;
43.
k = 1;
44.
untuk
(i = 0; i <4; i + +)
/ / loop untuk 4 baris
45.
{
46.
keypad & = ~ (0x80>> i);
/ / untuk membuat baris rendah 1 by 1
47.
jika
(col1 == 0)
/ / periksa apakah key1 ditekan
48.
{
49.
key = k +0;
/ set tombol angka /
50.
sementara
(col1 == 0);
/ / menunggu rilis
. 51
kembali
kunci;
/ / tombol angka kembali
52.
}
53.
jika
(col2 == 0)
/ / periksa apakah key2 ditekan
54.
{
55.
key = k +1;
/ set tombol angka /
56.
sementara
(col2 == 0);
/ / menunggu rilis
. 57
kembali
kunci;
/ / tombol angka kembali
58.
}
59.
jika
(col3 == 0)
/ / periksa apakah key3 ditekan
60.
{
61.
key = k +2;
/ set tombol angka /
62.
sementara
(col3 == 0);
/ / menunggu rilis
. 63
kembali
kunci;
/ / tombol angka kembali
64.
}
65.
jika
(! col4)
/ / periksa apakah key4 ditekan
66.
{
67.
key = k +3;
/ set tombol angka /
68.
sementara
(col4 == 0);
/ / menunggu rilis
. 69
kembali
kunci;
/ / tombol angka kembali
70.
}
. 71
k + = 4;
/ / tombol nomor baris berikutnya
72.
keypad | = 0x80>> i;
/ / membuat baris tinggi lagi
73.
}
74.
return
0;
/ kembali / false jika tidak ada tombol ditekan
75.
}
76.
77.
void
tunda (unsigned
char
i)
78.
{
79.
unsigned
int
rr;
80.
untuk
(rr = 0; rr <i; rr + +);
81.
}
Download Proyek Folder
Proyek meliputi proyek-proyek di C dikompilasi dari Keil UV4 dan Proteus skematik.Download Firmware di 'C' di Keil (. Zip)
Download Skema Simulasi di Proteus (. Zip)
disadur dari : http://www.electronics-control.info/keypad.htm
Posting Komentar untuk "Interfacing Keypad dengan 8051"