Lompat ke konten Lompat ke sidebar Lompat ke footer

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.

Keypad


Konstruksi (Internal Schematic): 

Pembangunan tombol di bawah ini dibangun menggunakan SPST Switches sederhana seperti berikut:
Keypad construction

Koneksi ke 8051:
Kita perlu terhubung kolom keypad dan baris ke port dari mikrokontroler 8051 dan program controller untuk membaca input.Keypad with 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): 

scanning keypad


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. 
. 08void key_init ();
. 09unsigned 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.{
. 36keypad & 0x0F =; / / membuat Baris sebagai o / p dan cols adalah i / p
37.}
38. 
39. 
40.unsigned char get_key ()
41.{
. 42unsigned 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
. 51kembali 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
. 57kembali 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
. 63kembali 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
. 69kembali kunci;     / / tombol angka kembali
70.}
. 71k + = 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"

Profit Blogger
INCOME BLOGGER