If you can't read please download the document
Upload
didik-hartadi
View
126
Download
10
Embed Size (px)
DESCRIPTION
Microprocessor Module
Citation preview
PRAKTIKUM MIKROPROSESSOR
PTE-408
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
PETUNJUK PRAKTIKUM
DYAH LESTARI
LABORATORIUM MIKROPROSESSOR
JURUSAN TEKNIK ELEKTRO-FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
2012
PRAKTIKUM MIKROPROSESSOR
PTE-408
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
PETUNJUK PRAKTIKUM
Dosen Pembina
Dyah Lestari
Asisten Praktikum
Daniel Wijaya
Frebu Trilangga
Ahmad Ganjar Baiquni
Ian Hadinata
LABORATORIUM MIKROPROSESSOR
JURUSAN TEKNIK ELEKTRO-FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
2012
i
KATA PENGANTAR
Puji syukur ke hadirat Tuhan YME, perbaikan-perbaikan petunjuk
praktikum yang sebelumnya merupakan salah satu titik lemah prodi telah selesai.
Perbaikan yang telah dilakukan harus menjadi satu sistem perbaikan yang
berkelanjutan.
Perubahan yang dilakukan dalam penyusunan materi Petunjuk Praktikum
ini dari Petunjuk Praktikum tahun lalu merupakan perubahan atau perbaikan
layout serta penambahan tugas-tugas yang bersifat eksplorasi.
Pada kesempatan ini, kami ingin menyampaikan terima kasih yang besar-
besarnya pada semua pihak yang telah terlibat dalam penyusunan petunjuk
praktikum ini. Secara khusus untuk dosen pembina Praktikum Mikroprosessor,
Ibu Dyah Lestari, yang sudah memberikan tenaga, pikiran dan waktunya untuk
perbaikan praktikum dalam Program Studi S1 Pendidikan Teknik Elektro ini.
Ucapan terima kasih juga disampaikan untuk dukungan rekan-rekan teknisi dan
asisten praktikum di Laboratorium Mikroprosessor. Akhir kata, semoga semua
usaha yang telah dilakukan berkontribusi pada dihasilkannya lulusan Program
Studi S1 Pendidikan Teknik Elektro yang berkompeten.
Malang, September 2012
Tim Penyusun
ii
DAFTAR ISI
Halaman KATA PENGANTAR ............................................................................................ i DAFTAR ISI ........................................................................................................ ii MODUL I ANTARMUKA MIKROKONTROLLER DENGAN LED ....................... 1 MODUL II ANTARMUKA MIKROKONTROLLER DENGAN TOGGLE SWITCH . 6 MODUL III ANTARMUKA MIKROKONTROLLER DENGAN SEVEN SEGMENT . 10 MODUL IV ANTARMUKA MIKROKONTROLLER DENGAN KEYPAD ............... 15 MODUL V ANTARMUKA MIKROKONTROLLER DENGAN LCD ...................... 20 MODUL VI MENGGUNAKAN ANALOG TO DIGITAL CONVERTER (ADC)
DALAM MIKROKONTROLLER ATMEGA8535 .............................. 26 MODUL VII MENGGUNAKAN INTERRUPT DALAM MIKROKONTROLLER
ATMEGA8535 ............................................................................. 34 MODUL VIII MENGGUNAKAN TIMER, COUNTER dan PWM DALAM MIKRO-
KONTROLLER ATMEGA8535 ...................................................... 39 DAFTAR RUJUKAN ........................................................................................... 49
1
MODUL I
ANTARMUKA MIKROKONTROLER DENGAN LED
TUJUAN
Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan
rangkaian LED.
Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk
menyalakan LED.
LED
Sebuah LED (Light Emitting Diode) adalah sebuah sumber cahaya yang terbuat dari
semikonduktor. Biasanya LED digunakan sebagai lampu indikator dalam beberapa piranti,
dan mulai banyak digunakan sebagai penerangan/lampu. Gambar 1 memperlihatkan bentuk
fisik LED dan simbol rangkaiannya.
(a) Bentuk fisik LED (b) Simbol elektronik
Untuk menyalakan sebuah LED perlu
rangkaian tambahan yang dapat dilihat pada
gambar disamping. Rangkaian tersebut berupa
sebuah transistor yang difungsikan sebagai
saklar dan dua buah resistor untuk pembatas
arus. Dalam modul I/O yang dipakai dalam
praktikum, kedelapan rangkaian LED tersebut
dihubungkan ke sebuah soket jumper bernama
OUTPUT.
2
PERINTAH DASAR MENGELUARKAN DATA
Sebelum mulai menulis program dengan bahasa C, perlu diketahui bahwa
mikrokontroler ATmega8535 perlu diset isi register DDR dan PORT agar bisa digunakan
sebagaimana mestinya, seperti yang terlihat dalam Tabel 1.
Tabel 1 Konfigurasi Pengaturan Port I/O
DDR bit = 1 DDR bit = 0
PORT bit = 1 Output ; High Input; R pull up
PORT bit = 0 Output; Low Input, Floating
Untuk mengirim data byte dalam bentuk bilangan desimal ke PORTX (X=A, B, C, D) digunakan
statement
PORTX = desimal; PORTB = 128;
Untuk mengirim data byte dalam bentuk bilangan biner ke PORTX (X=A, B, C, D) digunakan
statement
PORTX = 0bdata; PORTB = 0b10101010;
Untuk mengirim data per bit ke PORTX.Y (X=A, B, C, D, dan Y=0, 1, 2 , 3, 4, 5, 6, 7) digunakan
statement
PORTX.Y = data; PORTB.1 = 0;
Dimana data bisa berupa 0 atau 1.
ALAT DAN BAHAN YANG DIGUNAKAN
1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
1 buah catu daya DC +5V
1 buah multimeter
1 buah ISP Downloader AVR
1 buah sistem minimum AVR
1 buah I/O
1 buah kabel printer USB
1 buah kabel pita hitam
3
PROSEDUR
1. Rangkailah peralatan yang diperlukan seperti pada gambar dibawah. Hubungkan
soket jumper PORTB pada minimum system dengan soket jumper OUTPUT pada I/O.
I/OISP Downloader
Kabel USBKabel
downloader Minimum
system AVR
Kabel pita
hitam
Catu Daya + 5V
2. Buka program Code Vision AVR
3. Buatlah project baru dengan inisialisasi PORTA sebagai output (DDRA = FFH) dan
output value = 0 (PORTA=00H) sehingga pada program bagian inisialisasi PORTA
terlihat sebagai berikut:
PORTA=0x00;
DDRA=0xff;
4. Tambahkan file header
#include
5. Tuliskan dalam program utama sebagai berikut:
// Program LED1
PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);
6. Amati nyala LED dan gambarkan nyala LED tersebut.
7. Ulangi langkah 3-6 untuk program-program berikut:
//Program LED2
PORTA=0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);
4
//Program LED3
PORTA=0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);
//Program LED4
PORTA=0b11100111;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b01111110;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
//Program LED5
PORTA=0b00000001; PORTA.2=1;
delay_ms(1000);
PORTA=0b00000010; PORTA.1=1;
delay_ms(1000);
PORTA=0b00000100;
delay_ms(1000);
PORTA=0b00001000;
delay_ms(1000);
PORTA=0b00010000;
delay_ms(1000);
PORTA=0b00100000;
delay_ms(1000);
PORTA=0b01000000;
delay_ms(1000);
PORTA=0b10000000;
delay_ms(10 00);
5
DATA HASIL PERCOBAAN
1. Tampilan nyala LED Program LED1
2. Tampilan nyala LED Program LED2
3. Tampilan nyala LED Program LED3
4. Tampilan nyala LED Program LED4
5. Tampilan nyala LED Program LED5
ANALISA DATA
1. Analisa Program LED1 LED5!
2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2?
3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED?
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan
yang berikutnya?
6
MODUL II
ANTARMUKA MIKROKONTROLER DENGAN TOGGLE SWITCH
TUJUAN
Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan
rangkaian input saklar toggle.
Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk membaca
data input dari saklar toggle.
SAKLAR TOGGLE
Saklar toggle adalah salah satu saklar elektrik yang digerakkan secara manual oleh batang
mekanik. Saklar toggle tersedia dalam berbagai bentuk dan ukuran, serta digunakan dalam
berbagai aplikasi. Gambar dibawah memperlihatkan bentuk fisik dan symbol saklar toggle.
(b) Salah satu toggle switch (b) Simbol elektronik
Dalam modul I/O yang dipakai dalam
praktikum, saklar toggle yang digunakan diberi
rangkaian tambahan berupa rangkaian LED
untuk melihat secara langsung logika yang ada
pada saklar. Rangkaian LED sama dengan
rangkaian dalam Modul I. Kedelapan rangkaian
saklar tersebut dihubungkan ke sebuah soket
jumper bernama INPUT.
7
PERINTAH DASAR MEMBACA DATA
Sebelum membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan.
Data bisa bertipe char. Deklarasi variabel diletakkan di variabel lokal pada main
program.
void main (void)
{
//Declare your local variables here
unsigned char data_in;
Untuk membaca data byte ke PORTX (X=A, B, C, D) digunakan statement
data_in = PINX;
contoh: data_in = PINB;
Untuk membaca data bit ke PORTX.Y (X=A, B, C, D dan Y=0, 1, 2 , 3, 4, 5, 6, 7)
digunakan statement
data_in = PINX.Y;
contoh: data_in = PINB.1;
ALAT DAN BAHAN YANG DIGUNAKAN
1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
1 buah catu daya DC +5V
1 buah multimeter
1 buah ISP Downloader AVR
1 buah sistem minimum AVR
1 buah I/O
1 buah kabel printer USB
2 buah kabel pita hitam
PROSEDUR
1. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper
OUTPUT pada I/O dan soket jumper PORTC pada minimum system dengan soket
jumper INPUT pada I/O
2. Buka program Code Vision AVR
8
3. Buatlah project baru dengan inisialisasi PORTB sebagai output (DDRB = FFH) dan
output value = 0 (PORTB=00H), dan PORTC sebagai input (DDRC = 00H) dan resistor
pullup dihubungkan (PORTC=FFH) sehingga pada program bagian inisialisasi PORTB
dan PORTC terlihat sebagai berikut:
PORTB=0x00;
DDRB=0xff; //portb sebagai output, 0b11111111, nilai awal 0
PORTC=0xff;
DDRC=0x00; // portc sebagai input, 0b00000000, pull up
4. Tambahkan deklarasi variabel lokal dalam program utama
unsigned char data_in;
5. Tuliskan dalam program utama sebagai berikut:
// Program Saklar1
data_in=PINC; //baca saklar di PORTC
PORTB=data_in; //tampilkan logika saklar ke LED di PORTB
6. Pindahkan saklar sesuai tabel 2.1 dibawah, amati dan catat nyala LED.
Tabel 2.1 Program Saklar1
No. Saklar LED
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 0 1
4 0 0 0 0 1 0 0 1
5 0 0 0 1 0 0 0 1
6 0 0 1 0 0 0 0 1
7 0 1 0 0 0 0 0 1
8 1 0 0 0 0 0 0 1
9 1 1 1 1 1 1 1 1
7. Ulangi langkah 3-4 untuk program berikut:
//Program Saklar2
data_in = PINC.0; // baca saklar bit ke 0
PORTB.7 = data_in; // tampilkan logika saklar pada LED bit ke 7
8. Pindah saklar sesuai tabel 3.1 dibawah, Amati dan catat nyala LED. Tabel 3.1 Program Saklar2
No. Saklar LED
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 0 0
4 0 0 0 0 1 0 0 1
5 0 0 0 1 0 0 0 0
6 0 0 1 0 0 0 0 1
7 0 1 0 0 0 0 0 0
9
9. Buat program untuk masingmasing algoritma berikut dengan menggunakan if :
a) Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
b) Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
10. Buat satu program untuk masingmasing algoritma berikut dengan menggunakan if-
else.
a) Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
b) Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
c) Jika switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi
ON-OFF-ON-OFF-ON-OFF-ON-OFF (bit7-bit0).
d) Jika switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi
OFF-ON-OFF-ON-OFF-ON-OFF-ON (bit7-bit0).
e) Jika switch bit 4 berlogika 1 maka LED menyala semua.
f) JIka switch bit 5 berlogika 1 maka LED mati semua.
g) Jika switch bit 6 berlogika 1 maka LED menyala berurutan mulai dari bit0 ke bit7
lalu kembali lagi ke bit0 dengan delay 1 detik
h) Jika switch bit 7 berlogika 1 maka LED akan menyala dengan nilai sama dengan
dua digit terakhir NIM anda.
DATA HASIL PERCOBAAN
1. Tabel 2.1
2. Tabel 3.1
3. Source code program pada percobaan langkah 9
4. Source code program pada percobaan langkah 10
ANALISA DATA
1. Analisa Program Saklar1 dan Saklar2
2. Instruksi apa yang digunakan untuk membaca data input?
3. Apakah perbedaan program yang menggunakan if dan if-else?
10
MODUL III
ANTARMUKA MIKROKONTROLER DENGAN SEVEN SEGMEN
TUJUAN
Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan
rangkaian seven segment.
Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk
menampilkan karakter ke seven segment.
SEVEN SEGMENT
Penampil seven segment adalah sebuah piranti penampil untuk menampilkan angka
desimal. Penampil seven segment banyak digunakan dalam jam digital, meter elektronik,
dan piranti elektronik yang lain. Gambar 3.1 memperlihatkan bentuk fisik dan layout dasar
penampil seven segment. Penampil seven segment terdiri atas 8 LED yang disusun seperti
dalam Gambar 3.1(b). Setiap LED diidentifikasi sebagai huruf a, b, c, d, e, f, g, yang dimulai
dari huruf a di sebelah atas. Di sebelah kanan terdapat satu LED tambahan yang digunakan
sebagai koma (dp).
(a) Penampil seven segment (b) Layout LED
Gambar 3.1 Seven segment
Untuk menampilkan sebuah karakter, minimal 2 LED harus dinyalakan. Tabel 3.1
memperlihatkan kode heksadesimal untuk menampilkan angka 0 sampai 9.
Dalam modul I/O yang dipakai dalam praktikum, seven segment yang digunakan ada
2 buah, semuanya bertipe common anoda. Kedua seven segment tersebut dimultipleks
sehingga data diperoleh dari satu kaki (D0-D7), sedangkan untuk menyalakannya digunakan
kaki kontrol yang berbeda (DO1 dan DO2). Rangkaian lengkap seven segment dapat dilihat
dalam Gambar 3.2.
http://en.wikipedia.org/wiki/File:Seven_segment_02_Pengo.jpg11
Tabel 3.1 Kode heksadesimal untuk angka 0-9
Digit gfedcba g f e d c b a
0 0x3F off on on on on on on
1 0x06 off off off off on on off
2 0x5B on off on on off on on
3 0x4F on off off on on on on
4 0x66 on on off off on on off
5 0x6D on on off on on off on
6 0x7D on on on on on off on
7 0x07 off off off off on on on
8 0x7F on on on on on on on
9 0x6F on on off on on on on
Gambar 3.2 Rangkaian penampil seven segment
Dalam Gambar 3.2, kaki a, b, c, d, e, f, g, dp dihubungkan ke soket jumper DATA 7S,
sedangkan kaki kontrol (DO1 dan DO2 dihubungkan dengan soket jumper I/P S KEY.
12
ALAT DAN BAHAN YANG DIGUNAKAN
1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
1 buah catu daya DC +5V
1 buah multimeter
1 buah ISP Downloader AVR
1 buah sistem minimum AVR
1 buah I/O
1 buah kabel printer USB
2 buah kabel pita hitam
PROSEDUR
1. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper
DATA7S pada I/O dan soket jumper PORTC pada minimum system dengan soket
jumper I/P S KEY pada I/O.
2. Buka program Code Vision AVR
3. Buatlah project baru dengan inisialisasi PORTB sebagai output (DDRB = FFH) dan
output value = 0 (PORTB=00H), dan PORTC.0-PORTC.3 sebagai input, PORTC.4-
PORTC.7 sebagai output (DDRC = F0H) dan (PORTC=F0H) sehingga pada program
bagian inisialisasi PORTB dan PORTC terlihat sebagai berikut:
PORTB=0x00;
DDRB=0xff; //portb sebagai output, 0b11111111
//un tuk data 7s
PORTC=0xf0;
DDRC=0xf0; //portc sebagai input dan output, 0b11110000
//untuk kontrol DO1, DO2
4. Tuliskan dalam program utama sebagai berikut:
PROGRAM SEGMEN1
//Menampilkan angka 8 pada seven segmen sebelah kanan.
while (1)
{
PORTC.7=1; //nonaktifkan seven segment kiri
PORTC.6=0; //aktifkan seven segmen kanan
PORTB=0x7f; //tampilkan data angka 8
delay_ms(10);
}
13
5. Amati nyala seven segment.
6. Ulangi langkah 3-5 untuk program berikut:
PROGRAM SEGMEN2
//Menampilkan angka 4 pada seven segmen sebelah kiri.
while (1)
{
PORTC.7=0; //aktifkan seven segment kiri
PORTC.6=1; //nonaktifkan seven segmen kanan
PORTB=0x66; //tampilkan data angka 4
delay_ms(10);
}
7. Gabungkan kedua program di atas dan lihat nyala seven segmen.
8. Ubah nilai delay untuk masing-masing seven segment menjadi 100 ms dan amati
tampilan seven segmen.
9. Ulangi langkah 3-5 untuk program berikut:
PROGRAM SEGMEN3
//Membuat counter 0 - 9 di segmen sebelah kanan
// Declare your gl obal variables here
unsigned char bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // Declare your local variables here
int kanan;
while (1)
{
// Place your code here
kanan=0;
for (kanan=0;kanan
14
DATA HASIL PERCOBAAN
5. Program SEGMEN1
6. Program SEGMEN2
7. Gabungan SEGMEN1 dan SEGMEN2 delay 100ms
8. Program SEGMEN3
9. Program SEGMEN3 delay 100ms
10. Source code Program SEGMEN4
11. Source code Program SEGMEN5
ANALISA DATA
1. Analisa Program SEGMEN1 sampai SEGMEN5
2. Instruksi apa yang digunakan untuk mengeluarkan data ke seven segment?
3. Instruksi apa yang digunakan untuk mengontrol nyala seven segment?
4. Jika nilai delay pada Gabungan Program SEGMEN1 dan SEGMEN2 diperbesar, apa
yang terjadi pada tampilan seven segment?
5. Jika nilai delay pada program SEGMEN3 diperkecil, apa yang terjadi pada tampilan
seven segment?
15
MODUL IV
ANTARMUKA MIKROKONTROLER DENGAN KEYPAD
TUJUAN
Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan
keypad.
Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk membaca
masukan dari keypad.
KEYPAD
Keypad merupakan tombol push button yang disusun sebagai baris dan kolom sehingga
membentuk matriks. Keypad banyak digunakan sebagai piranti masukan dalam piranti
elektronik. Gambar 4.1 memperlihatkan bentuk fisik keypad. Keypad ini memiliki 16 tombol
yaitu 0,1,2,3,4,5,6,7,8,9,A,B,C, D,* dan #.
Gambar 4.1 Keypad 4x4
Dalam modul I/O yang di Dalam gambar 4.2 keypad dihubungkan ke PORTB
mikrokontroler dengan posisi baris (b1-b4) terhubung ke PORTB.0-PORTB.3 dan posisi kolom
(c1-c4) terhubung ke PORTB.4-PORTB.7. Sedangkan untuk mengetahui tombol apa yang
ditekan oleh user, 8 buah LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC.
Gambar 4.2
Rangkaian keypad dan LED
http://www.google.co.id/imgres?imgurl=http://www.futurlec.com.au/images/KEYPAD4X4B.jpg&imgrefurl=http://www.futurlec.com.au/Keypads.jsp&usg=__akJh_U9FPEYRx8prSSv8lt8ByAI=&h=231&w=250&sz=43&hl=id&start=1&zoom=1&tbnid=qtZ0nmEuM8eNoM:&tbnh=103&tbnw=111&prev=/images?q=keypad+4x4&um=1&hl=id&tbs=isch:1&um=1&itbs=116
ALAT DAN BAHAN YANG DIGUNAKAN
1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
1 buah catu daya DC +5V
1 buah multimeter
1 buah ISP Downloader AVR
1 buah sistem minimum AVR
1 buah modul I/O
1 buah keypad
1 buah kabel printer USB
2 buah kabel pita hitam
PROSEDUR
1. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper
KEYPAD dan soket jumper PORTC pada minimum system dengan soket jumper
OUTPUT pada I/O.
2. Buka program Code Vision AVR
3. Buatlah project baru dengan inisialisasi PORTB.0-PORTB.3 sebagai output dengan
kondisi awal berlogika HIGH dan PORTB.4-PORTB.7 sebagai input dengan pull-up
(DDRB = 0FH dan PORTB=FFH), serta PORTC sebagai output dan kondisi awal LOW
(DDRC = FFH dan PORTC=00H), sehingga pada program bagian inisialisasi PORTB dan
PORTC terlihat sebagai berikut:
PORTB=0xff; //0b11111111
DDRB=0x0f; //PORTB sebagai input dan output, 0b00001111
PORTC=0x00;
DDRC=0xff; //PORTC sebagai output
4. Deklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program utama
sebagai bilangan integer pada global variabel.
unsigned char keypad();
5. Tuliskan script berikut dalam program utama:
while (1)
{
PORTC=keypad();
//menampilkan hasil yang dikembalikan oleh fungsi ke LED
}
17
6. Tambahkan fungsi berikut di bawah program utama (di luar fungsi void) :
unsigned char keypad()
{
PORTB = 0b11111110; //aktifkan baris1 (memberi logika 0 ke baris1) delay_ms(100);
if(PINB.7==0) return (10);
if(PINB.6==0) return (3);
if(PINB.5==0) return (2);
if(PINB.4==0) return (1);
//========================
PORTB = 0b11111101; //aktifkan baris2 delay_ms(100);
if(PINB.7==0) return (11);
if(PINB.6==0) return (6);
if(PINB.5==0) return (5);
if(PIN B.4==0) return (4);
//========================
PORTB = 0b11111011; //aktifkan baris3 delay_ms(100);
if(PINB.7==0) return (12);
if(PINB.6==0) return (9);
if(PINB.5==0) return (8);
if(PINB.4==0) return (7);
//============== ==========
PORTB = 0b11110111; //aktifkan baris4 delay_ms(100);
if(PINB.7==0) return (13);
if(PINB.6==0) return (15);
if(PINB.5==0) return (0);
if(PINB.4==0) return (14);
}
7. Tekan tombol keypad, amati nyala LED dan isi Tabel 4.1.
8. Ubah program utama untuk algoritma berikut:
a. Jika tombol 0 ditekan semua LED mati.
b. Jika tombol 1 ditekan semua LED menyala.
9. Buatlah satu program dengan algoritma sebagai berikut:
a. Jika tombol 0 ditekan LED bit 0 menyala.
b. Jika tombol 1 ditekan LED bit 1 menyala.
c. Jika tombol 2 ditekan LED bit 2 menyala.
d. Jika tombol 3 ditekan LED bit 3 menyala.
e. Jika tombol 4 ditekan LED bit 4 menyala.
f. Jika tombol 5 ditekan LED bit 5 menyala.
g. Jika tombol 6 ditekan LED bit 6 menyala.
h. Jika tombol 7 ditekan LED bit 7 menyala.
18
i. Jika tombol 8 ditekan LED menyala sesuai gambar dibawah ini ber urutan dari atas kebawah dengan delay 1 detik. (Gunakan perulangan for ...)
j. Jika tombol 9 ditekan LED menyala sesuai gambar dibawah ini ber urutan dari
atas kebawah dengan delay 1 detik. (Gunakan perulangan for ...)
k. Jika tombol A ditekan LED bit 0,2,4,6 menyala dan bit 1,3,5,7 mati.
l. Jika tombol B ditekan LED bit 0,2,4,6, mati dan bit 1,3,5,7 menyala.
m. Jika tombol C ditekan ditekan algoritma k dan l dilaksanakan bergantian dengan
delay 1 detik.
n. Jika tombol D ditekan ditekan maka LED menyala menunjukkan nilai biner dua
digit terakhir NIM anda.
o. Jika tombol * semua LED mati.
p. Jika tombol # semua LED menyala.
LED Menyala
LED Mati
LED Menyala
LED Mati