• Tidak ada hasil yang ditemukan

Program AVR keypad

N/A
N/A
Protected

Academic year: 2021

Membagikan "Program AVR keypad"

Copied!
22
0
0

Teks penuh

(1)

Laporan Praktikum

Laboratorium MIKROKONTROLER 1

AVR ATmega8535

Proyek 05

Keypad

Disusun oleh:

Kelompok EK-2A / 06

06

- Bayu Triatmono

NIM

3.32.13.0.06

09

- Hanfil Lutfia Anisa

NIM

3.32.13.0.09

(2)

Keypad

1. Tujuan

Tujuan dari percobaan ini praktikan dapat :

 Memahami cara kerja sistem pengendali masukan luaran digital secara keseluruhan dan mampu membuat sistem untuk membaca masukan dan menghasilkan luaran digital

 Memahami cara kerja perangkat keras (rangkaian) pengendali masukan luaran digital dan mampu menghubungkan mikrokontroler AVR ATmega8535 dengan rangkaian penggerak masukan luaran

 Memahami cara kerja perangkat lunak (program) dan perintah bahasa rakitan mikrokontroler AVR ATmega8535 dan mampu membuat program untuk rangkaian penggerak masukan luaran

 Memahami cara kerja sistem tunda pada perangkat lunak dan mampu membuat program menu

2. Dasar Teori

ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction Set Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.

Mikrokontroler ATmega8535 memiliki 3 jenis m emori, yaitu memori program, memori data dan memori EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.

a. Memori program

ATmega8535 memiliki kapasitas memori progam sebesar 8 Kbyte yang terpetakan dari alam at 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi.

b. Memori data

ATmega8535 memiliki kapasitas memori data s ebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register I/O yang dapat diakses sebagai bagian dari memori RAM (menggunakan instuksi LD atau ST) atau dapat juga diakses sebagai I/O

(3)

(menggunakan instruksi IN atau OUT), dan 512 byte digunakan untuk memori data SRAM.

c. Memori EEPROM

ATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM Address, register EEPROM

Data, dan register EEPROM Control. Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data eksternal, sehingga waktu eksekusinya relatif lebih lama bila dibandingkan dengan mengakses data dari SRAM.

Setiap port ATmega8535 terdiri dari 3 register I/O yaitu DDRx, PORTx, dan PINx

 DDRx (Data Direction Register)

Register DDRx digunakan untuk memilih arah pin. Jika DDRx=1 maka pin x sebagai keluaran dan jika DDRx=0 makan pin x sebagai masukan

 PORTx (Port Data Register)

Register Portx digunakan untuk 2 keperluan yaitu untuk jalur keluaran atau untuk mengaktifkan resistor pull up internal

 PINx (Port Input Pin Addres)

(4)

Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan interaksi manusia. Keypad berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia atau dikenal dengan istilah HMI (Human Machine Interface). Matrix keypad 4×4 pada artikel ini merupakan salah satu contoh keypad yang dapat digunakan untuk berkomunikasi antara manusia dengan mikrokontroler. Matrix keypad 4×4 memiliki konstruksi atau susunan yang simple dan hemat dalam penggunaan port mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port mikrokontroler karena jumlah key (tombol) yang dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut.

Konstruksi Matrix Keypad 4×4 Untuk Mikrokontroler

Konstruksi matrix keypad 4×4 diatas cukup sederhana, yaitu terdiri dari 4 baris dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap persilangan kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16 saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari 4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4 kemudian sisi kolom ditandai dengan nama Col1, Col2, Col3 dan Col4. Sisi input atau output dari matrix keypad 4×4 ini tidak mengikat, dapat

(5)

dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya tergantung programernya.

3. Praktikum

3.1. Keypad

3.1.1. Permasalahan

Program untuk menampilkan tombol KEYPAD yang ditekan pada LED (hanya 1 kolom).

Masukan : Pintu PA (Keypad)

Proses : Peralihan data segera ke pintu PD Keluaran : Pintu PD (LED)

Gambar rangkaian :

3.1.2. Penyelesaian

luaran LED menampilkan kode (hex) sesuai dengan masukan Keypad yang ditekan pada kolom ke 3.

(6)

3.1.2.2. Program

Program untuk menampilkan tombol keypad yang ditekan pad LED (kolok ke 3) /* =========================================

Proyek 05-Papan Tombol Keypad P051a-Keypad LED

program untuk menampilkan tombol KEYPAD yang ditekan pada LED (hanya 1 kolom) ---Materi baru:

- KEYPAD 4x4

---Komponen:

- 1x modul KEYPAD 4 kolom x 4 baris - 1x Bargraf (8xLED)

- 1x R Net 120 ohm

======================================== */ //=== Daftar Pustaka ===

#include <mega8535.h> //AVR ATmega 8535 #include <delay.h> //tunda

//=== Deklarasi sub program ===

unsigned char bacaKeypad(void); //membaca tombol Keypad yang ditekan //=== Deklarasi variabel ===

unsigned char

keypad [4][4]= { //tombol keypad {0x01, 0x02, 0x03, 0x0C}, {0x04, 0x05, 0x06, 0x0D}, {0x07, 0x08, 0x09, 0x0E}, {0x0A, 0x00, 0x0B, 0x0F} },//keypad kode,

tombol; //tombol yang ditekan

(7)

{

//=== Pengesetan Awal ====

DDRD = 0b11111111; //semua pin pada pintu Py sebagai luaran DDRA = 0b11110000; //Px 7-4:luaran (kolom) 3-0:masukan (baris)

//=== Program Utama === while(1)

{

kode = bacaKeypad(); //baca tombol Leypad yang ditekan PORTD= kode; //tampilkan kode di 7 ruas(pintu Py) }//while

}//main

//=== Sub program ===

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

{

PORTA = 0b01111111; //kolom 3 diaktifkan delay_ms(5);

if (PINA.0 == 0) //cek baris 0 tombol = keypad[0][3];

if (PINA.1 == 0) //cek baris 1 tombol = keypad[1][3];

if (PINA.2 == 0) //cek baris 2 tombol = keypad[2][3];

if (PINA.3 == 0) //cek baris 3 tombol = keypad[3][3];

return(tombol); //kembalikan nilai tombol }

/* =========================================

(8)

Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:

1. Membuka aplikasi CodeVisionAVR, klik file – New Project – pilih target ATmega – pada CodeWizardAVR pilih ATmega8535 – lalu klik Generate Program – Simpan dengan nama P05-Keypad.prj.

2. Memasukkan program, mengkompilasi [.c] amati apakah ada peringatan kesalah error.

3. Selanjutnya, buka software simulasi Proteus > ISIS 8.1 Profesional .

4. Program yang sudah jadi disimulasikan ke Proteus, masukkan file P05-Keypad.hex ke Mikrokontroler ATmega8535. Lalu klik tombol play untuk menjalankan simulasinya. Dan amati hasilnya.

5. Menghubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Menyalakan modul pelatihan.

6. Membuka program isp. Jika USB sudah terhubung maka progamstate bertuliskan PROGSIP akan menyala hijau.

7. Membuka program progisp, pilih ATmega8535 pada SelectChip, klik load Flash, unggah file P05-Keypad.hex ke kit, klik erase, kemudian klik auto.

8. Lihat hasil nya pada layar LED di modul pelatihan

1.1.3. Pembahasan

Program dengan menggunakan keypad sebagai input pada pintu PA dan LED sebagai output pada pintu PD. Tampilan pada Led yaitu data yang telah dibuat sebelumnya yang ditampung pada Array dua dimensi

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {0x01, 0x02, 0x03, 0x0C},

{0x04, 0x05, 0x06, 0x0D}, {0x07, 0x08, 0x09, 0x0E}, {0x0A, 0x00, 0x0B, 0x0F} },//

Pada program diatas menunjukan data yang akan ditampilkan pada led yaitu data yang akan ditampilkan dengan susunan yang diibaratkan sebuah tombol keypad sebagai contoh:

Kolom ke empat baris ke dua (keypad[1][3]) berisi data hex 0x0D bila tombol pada keypad pada kolom dan baris tersebut ditekan maka Led menampilan data hex 0D

(9)

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

{

PORTA = 0b01111111; //kolom 3 diaktifkan delay_ms(5);

if (PINA.0 == 0) //cek baris 0 tombol = keypad[0][3];

if (PINA.1 == 0) //cek baris 1 tombol = keypad[1][3];

if (PINA.2 == 0) //cek baris 2 tombol = keypad[2][3];

if (PINA.3 == 0) //cek baris 3 tombol = keypad[3][3];

return(tombol); //kembalikan nilai tombol }

Penyambungan keypad ke mikrokontroler seperti ditunjukan pada gambar rangkaian yaitu pada PORTA bit 0 – 3 sebagai masukan dan bit 4 – 7 sebagai luaran, pengaktifan setiap kolom pada keypad secara bergantian, seperti pada program di atas bit ke 7 bernilai Low (0) maka hanya kolom ke 4 yang dicek keadaannya dan bila PinA 0 = 0 maka akan menjalankan perintah tombol sama dengan data pada array keypad [0] [3] = 0x0C begitu pula pada pengaktifan baris lainnya.

3.2. Keypad

3.2.1. Permasalahan

Program untuk menampilkan tombol KEYPAD yang ditekan pada LED (hanya 1 kolom).

Masukan : Pintu PA (Keypad)

Proses : Peralihan data segera ke Pintu PD Keluaran : Pintu PD (LED)

(10)

3.2.2. Penyelesaian

Luaran LED menampilkan kode (hex) sesuai dengan masukan Keypad yang ditekan.

3.2.2.1. Diagram Alir

3.2.2.2. Program

Program untuk menampilkan tombol keypad yang ditekan pad LED. /* =========================================

Proyek 05-Papan Tombol Keypad P051a-Keypad LED

program untuk menampilkan tombol KEYPAD yang ditekan pada LED (hanya 1 kolom) ---Materi baru:

- KEYPAD 4x4

---Komponen:

- 1x modul KEYPAD 4 kolom x 4 baris - 1x Bargraf (8xLED)

- 1x R Net 120 ohm

======================================== */ //=== Daftar Pustaka ===

#include <mega8535.h> //AVR ATmega 8535 #include <delay.h> //tunda

//=== Deklarasi sub program ===

unsigned char bacaKeypad(void); //membaca tombol Keypad yang ditekan

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {0x01, 0x02, 0x03, 0x0C},

(11)

{0x07, 0x08, 0x09, 0x0E}, {0x0A, 0x00, 0x0B, 0x0F} },//keypad b,k, kode,

tombol; //tombol yang ditekan

void main (void) {

//=== Pengesetan Awal ====

DDRD = 0b11111111; //semua pin pada pintu Py sebagai luaran DDRA = 0b11110000; //Px 7-4:luaran (kolom) 3-0:masukan (baris)

//=== Program Utama === while(1)

{

kode = bacaKeypad(); //baca tombol Leypad yang ditekan PORTD= kode; //tampilkan kode di 7 ruas(pintu Py) }//while

}//main

//=== Sub program ===

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

{ for(k=0;k<4;k++) { PORTA=~(0b00010000<<k); delay_ms(5); for(b=0;b<4;b++) { if((PINA & (0b00000001<<b)) == 0) { tombol=keypad[b][k]; }; };//baris }//kolom

return(tombol); //kembalikan nilai tombol }

/* =========================================

(12)

Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:

1. Membuka aplikasi CodeVisionAVR, klik file – New Project – pilih target ATmega – pada CodeWizardAVR pilih ATmega8535 – lalu klik Generate Program – Simpan dengan nama P05-Keypad.prj.

2. Memasukkan program, mengkompilasi [.c] amati apakah ada peringatan kesalah error.

3. Selanjutnya , buka software simulasi Proteus > ISIS 8.1 Profesional .

4. Program yang sudah jadi disimulasikan ke Proteus, masukkan file P05-Keypad.hex ke Mikrokontroler ATmega8535. Lalu click tombol play untuk menjalankan simulasinya. Dan amati hasilnya.

5. Menghubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Menyalakan modul pelatihan.

6. Membuka program isp. Jika USB sudah terhubung maka progamstate bertuliskan PROGSIP akan menyala hijau.

7. Membuka program progisp, pilih ATmega8535 pada SelectChip, klik load Flash, unggah file P05-Keypad.hex ke kit, klik erase, kemudian klik auto.

8. Lihat hasil nya pada layar LED di modul pelatihan

(13)

Program dengan menggunakan keypad sebagai input pada pintu PA dan LED sebagai output pada pintu PD. Tampilan pada Led yaitu data yang telah dibuat sebelumnya yang ditampung pada Array dua dimensi

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {0x01, 0x02, 0x03, 0x0C},

{0x04, 0x05, 0x06, 0x0D}, {0x07, 0x08, 0x09, 0x0E}, {0x0A, 0x00, 0x0B, 0x0F} },//

Pada program diatas menunjukan data yang akan ditampilkan pada led yaitu data yang akan ditampilkan dengan susunan yang diibaratkan sebuah tombol keypad sebagai contoh:

Kolom ke empat baris ke dua (keypad[1][3]) berisi data hex 0x0D bila tombol pada keypad pada kolom dan baris tersebut ditekan maka Led menampilan data hex 0D

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

{ for(k=0;k<4;k++) { PORTA=~(0b00010000<<k); delay_ms(5); for(b=0;b<4;b++) { if((PINA & (0b00000001<<b)) == 0) { tombol=keypad[b][k]; }; };//baris }//kolom

return(tombol); //kembalikan nilai tombol }

Penyambungan keypad ke mikrokontroler seperti ditunjukan pada gambar rangkaian yaitu pada PORTA bit 0 – 3 sebagai masukan dan bit 4 – 7 sebagai luaran, pengaktifan setiap kolom pada keypad secara bergantian. Program di atas pembacaan keypad dengan metode looping.

(14)

3.3.2. Penyelesaian

Program untuk menampilkan tombol keypad yang ditekan pada 7 ruas.

3.3.2.1. Diagram Alir

3.3.2.2. Program

Program untuk menampilkan tombol keypad yang ditekan pada 7 ruas. /* =========================================

Proyek 05-Papan Tombol Keypad P051a-Keypad LED

program untuk menampilkan tombol KEYPAD yang ditekan pada LED (hanya 1 kolom) ---Materi baru:

- KEYPAD 4x4

(15)

---Komponen:

- 1x modul KEYPAD 4 kolom x 4 baris - 1x Bargraf (8xLED)

- 1x R Net 120 ohm

======================================== */ //=== Daftar Pustaka ===

#include <mega8535.h> //AVR ATmega 8535 #include <delay.h> //tunda

//=== Deklarasi sub program ===

unsigned char bacaKeypad(void); //membaca tombol Keypad yang ditekan

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {0x01, 0x02, 0x03, 0x0C}, {0x04, 0x05, 0x06, 0x0D}, {0x07, 0x08, 0x09, 0x0E}, {0x0A, 0x00, 0x0B, 0x0F} },//keypad b, k, kode,

tombol; //tombol yang ditekan

void main (void) {

//=== Pengesetan Awal ====

DDRD = 0b11111111; //semua pin pada pintu Py sebagai luaran DDRA = 0b11110000; //Px 7-4:luaran (kolom) 3-0:masukan (baris)

//=== Program Utama === while(1)

{

kode = bacaKeypad(); //baca tombol Leypad yang ditekan PORTD= 0x70 | kode; //tampilkan kode di 7 ruas(pintu Py) }//while

}//main

//=== Sub program ===

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

{

for(k=0;k<4;k++) { PORTA=~(0b00010000<<k); delay_ms(5);

(16)

Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:

1. Membuka aplikasi CodeVisionAVR, klik file – New Project – pilih target ATmega – pada CodeWizardAVR pilih ATmega8535 – lalu klik Generate Program – Simpan dengan nama P05-Keypad.prj.

2. Memasukkan program, mengkompilasi [.c] amati apakah ada peringatan kesalah error.

3. Selanjutnya , buka software simulasi Proteus > ISIS 8.1 Profesional .

4. Program yang sudah jadi disimulasikan ke Proteus, masukkan file P05-Keypad.hex ke Mikrokontroler ATmega8535. Lalu click tombol play untuk menjalankan simulasinya. Dan amati hasilnya.

5. Menghubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Menyalakan modul pelatihan.

6. Membuka program isp. Jika USB sudah terhubung maka progamstate bertuliskan PROGSIP akan menyala hijau.

7. Membuka program progisp, pilih ATmega8535 pada SelectChip, klik load Flash, unggah file P05-Keypad.hex ke kit, klik erase, kemudian klik auto.

8. Lihat hasil nya pada layar LED di modul pelatihan

(17)

Program dengan menggunakan keypad sebagai input pada pintu PA dan 7 ruas sebagai output pada pintu PD dengan tambahan komponen inversi decoder BCD 7 ruas. 7 ruas akan menampilkan angka 0 – 9 yaitu data yang telah dibuat sebelumnya yang ditampung pada Array dua dimensi 7 ruas tidak dapat menampilkan data hex A – F (10-15), sehingga tampilan pada 7 ruas akan manampilkan kode bentuk aneh.

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {0x01, 0x02, 0x03, 0x0C},

{0x04, 0x05, 0x06, 0x0D}, {0x07, 0x08, 0x09, 0x0E}, {0x0A, 0x00, 0x0B, 0x0F} },//

Pada program diatas menunjukan data yang akan ditampilkan pada led yaitu data yang akan ditampilkan dengan susunan yang diibaratkan sebuah tombol keypad sebagai contoh:

Kolom ke dua baris ke satu (keypad[0][2]) berisi data hex 0x02 bila tombol pada keypad pada kolom dan baris tersebut ditekan maka 7 ruas menampilan angka ‘2’.

3.4. Keypad

3.4.1. Permasalahan

Program untuk menampilkan tombol KEYPAD yang ditekan pada 7 ruas. Masukan : Pintu PA (Keypad)

Proses : Peralihan data segera ke Pintu PD Keluaran : Pintu PD (LCD)

(18)

3.4.2.1. Diagram Alir

3.4.2.2. Program

Program untuk menampilkan tombol keypad yang ditekan pada LCD. /* =========================================

Proyek 05-Papan Tombol Keypad P051a-Keypad LED

program untuk menampilkan tombol KEYPAD yang ditekan pada LED (hanya 1 kolom) ---Materi baru:

- KEYPAD 4x4

---Komponen:

- 1x modul KEYPAD 4 kolom x 4 baris - 1x Bargraf (8xLED)

- 1x R Net 120 ohm

======================================== */ //=== Daftar Pustaka ===

(19)

#include <mega8535.h> //AVR ATmega 8535 #include <delay.h> //tunda

#include <stdlib.h> #include <stdio.h>

//=== Deklarasi sub program ===

unsigned char bacaKeypad(void); //membaca tombol Keypad yang ditekan

#include <alcd.h>

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {'1', '2', '3', 'C'}, {'4', '5', '6', 'D'}, {'7', '8', '9', 'E'}, {'A', '0', 'B', 'F'} },//keypad b, k, kode,

tombol; //tombol yang ditekan

void main (void) {

//=== Pengesetan Awal ====

DDRC = 0b11111111; //semua pin pada pintu Py sebagai luaran DDRA = 0b11110000; //Px 7-4:luaran (kolom) 3-0:masukan (baris)

lcd_init(16);

lcd_clear(); lcd_gotoxy(0,0);

lcd_puts("Tombol yang ditekan: "); //=== Program Utama ===

while(1) {

kode = bacaKeypad(); //baca tombol Leypad yang ditekan lcd_gotoxy(5,1); lcd_putchar(kode); }//while }//main //=== Sub program ===

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

(20)

/* =========================================

3.4.2.3. Hasil Percobaan

Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:

1. Membuka aplikasi CodeVisionAVR, klik file – New Project – pilih target ATmega – pada CodeWizardAVR pilih ATmega8535 – lalu klik Generate Program – Simpan dengan nama P05-Keypad.prj.

2. Memasukkan program, mengkompilasi [.c] amati apakah ada peringatan kesalah error.

3. Selanjutnya , buka software simulasi Proteus > ISIS 8.1 Profesional .

4. Program yang sudah jadi disimulasikan ke Proteus, masukkan file P05-Keypad.hex ke Mikrokontroler ATmega8535. Lalu click tombol play untuk menjalankan simulasinya. Dan amati hasilnya.

5. Menghubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Menyalakan modul pelatihan.

6. Membuka program isp. Jika USB sudah terhubung maka progamstate bertuliskan PROGSIP akan menyala hijau.

(21)

7. Membuka program progisp, pilih ATmega8535 pada SelectChip, klik load Flash, unggah file P05-Keypad.hex ke kit, klik erase, kemudian klik auto.

8. Lihat hasil nya pada layar LED di modul pelatihan

3.4.3. Pembahasan

Program dengan menggunakan keypad sebagai input pada pintu PA dan LCD sebagai output pada pintu PD. Tampilan pada Lcd yaitu data yang telah dibuat sebelumnya yang ditampung pada Array dua dimensi

//=== Deklarasi variabel === unsigned char

keypad [4][4]= { //tombol keypad {'1', '2', '3', 'C'},

{'4', '5', '6', 'D'}, {'7', '8', '9', 'E'}, {'A', '0', 'B', 'F'} },//keypad

Pada program diatas menunjukan data yang akan ditampilkan pada led yaitu data yang akan ditampilkan dengan susunan yang diibaratkan sebuah tombol keypad sebagai contoh:

Kolom ke dua baris ke satu (keypad[0][2]) berisi data hex 0x02 bila tombol pada keypad pada kolom dan baris tersebut ditekan maka LCD menampilan angka ‘2’ atau “Tombol yang ditekan 2”

//-bacaKeypad: untuk membaca tombol Keypad yang ditekan unsigned char bacaKeypad(void)

{ for(k=0;k<4;k++) { PORTA=~(0b00010000<<k); delay_ms(5); for(b=0;b<4;b++) { if((PINA & (0b00000001<<b)) == 0) { tombol=keypad[b][k]; }; };//baris }//kolom

return(tombol); //kembalikan nilai tombol }

(22)

1. Percobaan pertama LED menyala sesuai dengan kode yang telah ditulis, akan menyala bila tombol ditekan.

2. Kotak penyimpanan data dua dimensi berupa array, int matrix[3][4] = { 0, 1, 2, 3,

4, 5, 6, 7, 8, 9, 10, 11 }; Bila kita menuliskan alamat matrix[0][2] = ‘2’

3. Cara kerja keypad adalah pengecekan secara bergantian, pengaktifan setiap kolom pada keypad secara bergantian, seperti pada program di atas bit ke 7 bernilai Low (0) maka hanya kolom ke 4 yang dicek keadaannya dan bila PinA 0 = 0 maka akan menjalankan perintah yang dituliskan

4. Percobaan IV LED pembalikan kode berada di sub program namun sub program berada di file yang berbeda, sehingga pada penulisan library brogram ditambahkan dengan nama file yang dimaksud (byarpet.c). ketika dituliskan program nama yang tidak terdeklarasikan di file utama program tidak terjadi kesalahan data karena nama tersebut sudah dideklarasikan pada file luar yang tertulis di library

Gambar

Gambar rangkaian :
Gambar rangkaian :
Gambar rangkaian :

Referensi

Dokumen terkait

Berdasarkan analisis data dengan menggunakan SEM (Stuctural Equation Modeling) dan pembahasan hasil penelitian yang telah dikemukakan, dapat disimpulkan hal-hal untuk

Mengingat biaya yang cukup besar maka diperlukan sumber dana dari luar yang dapat berasal dari saham, obligasi, kredit bank, leasing dan lain-lain yang dimana

bahwa berdasarkan ketentuan Pasal 37 huruf g dan Pasal 47 Peraturan Menteri Dalam Negeri Nomor 13 Tahun 2006 tentang Pedoman Pengelolaan Keuangan Daerah, sebagaimana telah diubah

Situ bekas galian pasir merupakan ekosistem perairan yang kurang mendapatkan perhatian, namun jika diamati memiliki potensi untuk dikembangkan sebagai lahan budidaya, baik

Dengan terpenuhinya karakteristik-karakteristik tersebut, maka berbagai dampak negatif lingkungan, sosial dan ekonomi yang muncul akibat adanya rencana program

Dengan langkah dan perhitungan yang sama dapat juga untuk menghitung r hitung item nomor 2 sampai dengan item nomor 6 variabel pengelolaan koleksi (Y)3. Untuk lebih jelasnya

Pada tahun 1881 Frederich Bezold (1824-1908) melaporkan adanya pus yang keluar dari sisi medial prosesus mastoid yang terinfeksi dan membentuk abses jaringan leher dalam,

Alhamdulillah, penulis panjatkan kehadirat Allah SWT yang telah melimpahkan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi dengan