Anda di halaman 1dari 29

LABORATORIUM MIKROPROSESOR

Adam Ridianto Muhamad


Pratikum Sistem MikroController

MODUL BELAJAR MIKRO AVR MENGGUNAKAN


ATMEGA16A

PERSIAPAN
Dalam pemrograman mikrokontroler terdapat dua klasifikasi perangkat yang dibutuhkan, yang
pertama adalah perangkat lunak (software) dan yang kedua adalah perangkat keras (hardware)
Berikut ini adalah daftar software yang dibutuhkan sebelum memulai kegiatan programming
menggunakan trainer AVR.
1. CodeVisionAVR2.05.03
2. USBASP (driver USB downloader)
3. ProgISP1.72
Bentuk fisik satu paket perangkat mikroAVR adalah sebagai berikut:

Gambar 1
Trainer MikroAVR

Gambar 2
USB downloader

Gambar 3
NumPad

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

INSTALASI SOFTWARE
Sebelum memulai kegiatan programming pada trainer mikroAVR, ketiga software sebagaimana
yang telah disebutkan di bagian awal harus sudah terinstal pada laptop atau PC. Proses instalasi
CodeVisionAVR2.05.03 dan ProgISP1.72 mudah untuk dilakukan sebagaimana proses instalasi software
pada umumnya.
Untuk instalasi driver USB downloader ikuti langkah-langkah berikut. Buka properties My Computer.

1. Kemudian pilih menu Device Manager.

2. Kemudian klik kanan pada USB ASP dan pilih update driver software.

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
3. Kemudian klik Browse My Computer for driver software

4. Set tempat direktori file USBASP. Kemudian klik OK dan Next.


5. Setting Fuse & Lock

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

MENGOSONGKAN PROGRAM DALAM CHIP


Trainer mikroAVR baru, kemungkinan sudah terisi program dari vendor pembuatnya. Untuk itu
program dalam chip ATMEGA16A itu perlu dikosongkan terlebih dahulu. Berikut ini adalah langkahlangkah untuk mengosongkan chip ATMEGA16A.
1. Buka software ProgISP1.72 dan pilih chip ATMEGA16A.

2. Klik tombol RD (read), untuk membaca apakah trainer mikroAVR sudah terhubung dengan
laptop atau PC melalui USB downloader.

Ini artinya, mikroAVR telah


terhubung dengan laptop/PC
3. Setelah terhubung, lakukan penghapusan program pada chip dengan cara klik tombol erase.

4. Chip ATMEGA16A telah dikosongkan, dan siap untuk diisi dengan program yang baru.

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

BAB I
MENAMPILKAN DATA KE PORT D (OUTPUT)
TUJUAN
1. Memahami cara membuat file project dengan aplikasi CodeVision AVR
2. Memahami cara menggunakan CodeWizzard
3. Memahami cara menampilkan data ke port output
PERALATAN
Personal Computer
Kit
Program CodeVision AVR
PROSEDUR
Menampilkan Data Ke Port D

Percobaan 1. LED ON/OFF


Pada percobaan ini, kita akan membuat program untuk menampilkan data 0xFF ke PortD
selama 1 detik, kemudian data pada PortD tersebut berubah menjadi 0x00 selama 1 detik
berikutnya. Demikian siklus berulang-ulang. Berikut adalah langkah-langkah percobaannya :
1. Jalankan program CodeVisionAVR C Compiler.
2. Pilih Projectuntuk membuat project baru.

3. Klik Yes untuk menggunakan CodeWizardAVR

4. Pada CodeWizardAVR pilih menu Chip dan pilih menu pilihan ATMega16 pilih frekuensi
Clock sebesar 8 MHz.

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

5. Masih pada CodeWizardAVR, pilih menu Ports, kemudian setting Port D sebagai output
dengan output value 0.

6. Setelah selesai melakukan setting maka klik menu File->Generate, Save and Exit.

7. Simpan File program anda dengan sebuah nama file misalnya Belajar. Kemudian klik Save.
File ini akan disimpan dengan extention .c
8. Simpan file project anda dengan nama project misalnya Belajar. Kemudian klik Save. File ini
akan disimpan dengan extention .prj.
9. Simpan file CodeWizzardAVR project files anda dengan nama file misalnya Belajar. Kemudian
klik Save. File ini akan disimpan dengan extention .cwp. Selanjutnya anda bisa membuat
program pada editor yang sudah disediakan.

10. Tambahkan library delay dengan menuliskan #include <delay.h> tepat dibawah #include

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

<mega16.h>
11. Kemudian ketik program dibawah ini
while (1)
{
// Place your code here
output();
};

// memanggil sub rutine output();

// sub rutine output di tulis dibawah #include <delay.h>


void output()
{
PORTD=0xff;
delay_ms(1000);
PORTD=0x00;
delay_ms(1000);
}

12. Compile, download

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 2. Data Increment


Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang
naik satu persatu (increment) mulai dari 0x01 sampai 0xFF dengan interval 1 detik.
Berikut adalah langkah langkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void output()
{
unsigned char x;
x=1;
while(1)
{
PORTD=x;
x++;
delay_ms(1000);
}
}

// hasil x di keluarka pada PORTD


// Nilai x = x + 1
// tunda selama 1000ms / 1 detik

3. Compile, download dan perhatikan yang terjadi pada PortD


4. PERTANYAAN APA YANG TERJADI PADA DETIK KE 256
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 3. Data Decrement


Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang
turun satu persatu (decrement) mulai dari 0x00 sampai 0xFF dengan interval 1 detik.
Berikut adalah langkah langkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void output()
{
unsigned char x;
x=0;
while(1)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x--;
// Nilai x = x - 1
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
}

3. Compile, download dan perhatikan yang terjadi pada PortD


4. PERTANYAAN APA YANG TERJADI PADA DETIK KE 256
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

10

Percobaan 4. Data geser kekiri


Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortA yang
digeser kekiri satu persatu (shift left) mulai dari 0x01 dengan 9 kali iterasi dengan interval 1
detik. Berikut adalah langkahlangkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void output()
{
unsigned char x,iterasi;
x=0x01;
for(iterasi=0;iterasi<9;iterasi++)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x=x<<1;
// Nilai x = digeser kekiri 1 x
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
}

3. Compile, download dan perhatikan yang terjadi pada PortD


4. PERTANYAAN APA YANG TERJADI PADA iterasi ke 0 sampai ke 9
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

11

Percobaan 5. Data geser kekanan


Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang
digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali iterasi dengan interval 1
detik. Berikut adalah langkahlangkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void output()
{
unsigned char x,iterasi;
x=0x80;
for(iterasi=0;iterasi<9;iterasi++)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x=x>>1;
// Nilai x = digeser kekiri 1 x
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
}

3. Compile, download dan perhatikan yang terjadi pada PortD


4. PERTANYAAN APA YANG TERJADI PADA iterasi ke 0 sampai ke 9
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

12

Percobaan 6. Data geser kekanan dan kekiri


Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang
digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali iterasi dengan interval 1
detik. Berikut adalah langkahlangkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void output()
{
unsigned char x,iterasi;
x=0x80;
for(iterasi=0;iterasi<9;iterasi++)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x=x>>1;
// Nilai x = digeser kekiri 1 x
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
for(iterasi=0;iterasi<9;iterasi++)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x=x<<1;
// Nilai x = digeser kekiri 1 x
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
}

3. Compile, download dan perhatikan yang terjadi pada PortD


4. PERTANYAAN APA YANG TERJADI
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

13

Percobaan 7. Data geser kekanan dan kekiri


Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortA yang
digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali iterasi dengan interval 1
detik. Berikut adalah langkahlangkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void output()
{
unsigned char x,iterasi;
x=0x80;
for(iterasi=0;iterasi<10;iterasi++)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x=x>>1;
// Nilai x = digeser kekiri 1 x
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
for(iterasi=0;iterasi<9;iterasi++)
{
PORTD=x;
// hasil x di keluarka pada PORTD
x=x<<1;
// Nilai x = digeser kekiri 1 x
delay_ms(1000);
// tunda selama 1000ms / 1 detik
}
}

3. Compile, download dan perhatikan yang terjadi pada PortD


4. PERTANYAAN APA YANG TERJADI
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

BAB II
MEMASUKKAN DATA KE PORT C (INPUT)
TUJUAN
1. Memahami cara membuat file project dengan aplikasi CodeVision AVR
2. Memahami cara menggunakan CodeWizzard
3. Memahami cara menampilkan data ke port output
PERALATAN
Personal Computer
Kit
Program CodeVision AVR
PROSEDUR

Percobaan 8. LED -> TOMBOL


Memasukkan Data Ke Port C
1. BUka Tools -> Code Wizard

2. File -> Program View

14

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

15

3. Hasil Setelah Program Preview

Select pada PortC dan copy , replace pada program belajar.c

. Kemudian ketik program dibawah ini


while (1)
{
// Place your code here
input();
};

// memanggil sub rutine output();

// sub rutine output di tulis dibawah #include <delay.h>


void input()
{
PORTD=PINC;
}

4. Compile, download

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

5. PERTANYAAN APA YANG TERJADI


6. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7. Kesimpulan

16

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 9. Beda PIN dan PORT


Berikut adalah langkah langkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void input()
{
PORTD.0=PINC.7;
PORTD.1=PINC.6;
PORTD.2=PINC.5;
PORTD.3=PINC.4;
PORTD.4=PINC.3;
PORTD.5=PINC.2;
PORTD.6=PINC.1;
PORTD.7=PINC.0;
}

3. Compile, download
4. PERTANYAAN
a. Apa beda PORTD.0 dengan PORTD
b. Apa Beda PINC.0 dengan PINC
6. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Kesimpulan

17

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

18

Percobaan 10. Memanfaatkan IF dengan PIN


Berikut adalah langkah langkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void input()
{
unsigned char x;
x=0x01;
while(1)
{
PORTD=x;
if(PINC.0==0)
{
x=x<<1;
if(x==0b00000000){x=0b10000000;}
}
else
{
x=x>>1;
if(x==0b00000000){x=0b00000001;}
}
delay_ms(100);
}
}

// Pertanyaan 1 ..Fungsinya Apa ??

// Pertanyaan 2 ..Fungsinya Apa ??

6. Compile, download
7. PERTANYAAN
a. Pertanyaan 1 ..Fungsinya Apa ?? DAN jika baris tersebut di hapus.apa akibatnya..
b. Pertanyaan 2 ..Fungsinya Apa ?? DAN jika baris tersebut di hapus.apa akibatnya..
6. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

19

Percobaan 11. Memanfaatkan IF dengan PIN


Berikut adalah langkah langkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
void input()
{
unsigned char x;
x=0x01;
while(1)
{
PORTD=x;
if(PINC.0==1)
{
x=x>>1;
if(x==0b00000000){x=0b00000001;}
}
if(PINC.1==1)
{
x=x<<1;
if(x==0b00000000){x=0b10000000;}
}
if(PINC.6==1)
{
x=x>>2;
if(x==0b00000000){x=0b00000001;}
}
if(PINC.7==1)
{
x=x<<2;
if(x==0b00000000){x=0b10000000;}
}

// Pertanyaan 1 ..Fungsinya Apa ??

// Pertanyaan 2 ..Fungsinya Apa ??


// Pertanyaan 3 ..Fungsinya Apa ??

// Pertanyaan 4 ..Fungsinya Apa ??


// Pertanyaan 5 ..Fungsinya Apa ??

// Pertanyaan 6 ..Fungsinya Apa ??


// Pertanyaan 7 ..Fungsinya Apa ??

delay_ms(100);
}
}

3. PERTANYAAN
a. Jawab pertanyaan 1 sampai 7
4. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4. Kesimpulan

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

BAB III
Display LCD
TUJUAN
1. Memahami cara membuat file project dengan aplikasi CodeVision AVR
2. Memahami cara menggunakan CodeWizzard
3. Memahami cara menampilkan data ke LCD
PERALATAN
Personal Computer
Kit
Program CodeVision AVR
PROSEDUR

Percobaan 12. Inisialisasi LCD


Memasukkan Data Ke Port C
1. BUka Tools -> Code Wizard

2. File -> Program View

3. Tulis program tersebut dibawah #include <delay.h>


// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm

20

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
#include <lcd.h>

Dan
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
tampil();
};

DAN program dibawah ini ditempatkan dibawah #include <lcd.h>


void tampil()
{
lcd_gotoxy(0,0);
lcd_putsf("MIKROCONTROLLER");
lcd_gotoxy(0,1);
lcd_putsf("BELEJAR LCD");
}

4.PERTANYAAN
a. Apa yang terjadi dari program diatas
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Kesimpulan

21

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 13. Memahami FUNGSI LCD


Berikut adalah langkah langkah percobaannya :
1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.
2. Buat program seperti berikut
3. dibawah #include <delay.h> di tulis #include <stdlib.h>
4. Ketik program dibawah ini
void tampil()
{
unsigned char *test="ADAM RIDIANTO"; // pertanyaan 1. Fungsinya ?
unsigned char a,b,c;
// pertanyaan 2. Fungsinya ?
unsigned char simpan[3];
// pertanyaan 3. Fungsinya ?
a=0;
// pertanyaan 4. Fungsinya ?
b='0';
// pertanyaan 5. Fungsinya ?
c=123;
// pertanyaan 6. Fungsinya ?
lcd_gotoxy(0,0);
// pertanyaan 7. Fungsinya ?
lcd_putsf("MIKROCONTROLLER");
// pertanyaan 8. Fungsinya ?
lcd_gotoxy(0,1);
// pertanyaan 9. Fungsinya ?
lcd_putsf("BELAJAR LCD");
// pertanyaan 10. Fungsinya ?
delay_ms(100);
// pertanyaan 11. Fungsinya ?
lcd_clear();
// pertanyaan 12. Fungsinya ?
lcd_gotoxy(0,0);
// pertanyaan 13. Fungsinya ?
lcd_puts(test);
// pertanyaan 14. Fungsinya ?
delay_ms(100);

// pertanyaan 15. Fungsinya ?

lcd_clear();
lcd_gotoxy(0,0);
lcd_putchar(a);
lcd_gotoxy(0,1);
lcd_putchar(b);

// pertanyaan 16. Fungsinya ?


// pertanyaan 17. Fungsinya ?
// pertanyaan 18. Fungsinya ?
// pertanyaan 19. Fungsinya ?
// pertanyaan 20. Fungsinya ?

delay_ms(100);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putchar(c);
itoa(c,simpan);
lcd_gotoxy(0,1);
lcd_puts(simpan);
while(1){}

// pertanyaan 21. Fungsinya ?


// pertanyaan 22. Fungsinya ?
// pertanyaan 23. Fungsinya ?
// pertanyaan 24. Fungsinya ?
// pertanyaan 25. Fungsinya ?
// pertanyaan 26. Fungsinya ?
// pertanyaan 27. Fungsinya ?
// pertanyaan 28. Fungsinya ?

3. PERTANYAAN
a. Jawab pertanyaan 1 sampai 28
b. Apa perbedaan pertanyaan 4 dan 5 ??
c. Apa perbedaan pertanyaan 10 dan 14 ??
d. Apa perbedaan pertanyaan 18 dan 20 ??
e. Apa perbedaan pertanyaan 24 dan 27 ??
4. Analisa ??
.
.
.
.
.
.
.
.
.
.
.

22

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan

23

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 14. Memahami KEYPAD


Berikut adalah langkah langkah percobaannya :
1. Dibawah ini Gambar dari keypad

2. Buat project baru. Setting CodeWizard sama dengan Percobaan 1.


3. Buat program dengan fasilitas LCD seperti percobaan 13
4. Pada PORTC.0 PORTC.3 Sebagai Output dan PINC.4 PINC.7 sebagai INPUT
5. Setting PORTC pada CODEWIZART
6. Ketik program dibawah ini
while (1)
{
// Place your code here
keypad();
};

Dan
void keypad()
{
unsigned char a=0;
lcd_gotoxy(0,0);
// pertanyaan 7. Fungsinya ?
lcd_putsf("MIKROCONTROLLER");
// pertanyaan 8. Fungsinya ?
lcd_gotoxy(0,1);
// pertanyaan 9. Fungsinya ?
lcd_putsf("BELAJAR keypad2");
// pertanyaan 10. Fungsinya ?
delay_ms(1000);
// pertanyaan 11. Fungsinya ?
lcd_clear();
while(1)
{
lcd_gotoxy(0,0);
PORTC.3=1;PORTC.2=1;PORTC.1=1;PORTC.0=0;
// P1
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
// P2
{
a='D';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1) // P3
{
a='C';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1) // P4
{
a='B';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1) // P5
{
a='A';
}

24

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

25

PORTC.3=1;PORTC.2=1;PORTC.1=0;PORTC.0=1;
// P6
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0) // P7
{
a='#';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1) // P8
{
a='9';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1) // P9
{
a='6';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1) // P10
{
a='3';
}
PORTC.3=1;PORTC.2=0;PORTC.1=1;PORTC.0=1;
// P11
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0) // P12
{
a='0';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1) // P13
{
a='8';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1) // P14
{
a='5';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1) // P15
{
a='2';
}
PORTC.3=0;PORTC.2=1;PORTC.1=1;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='*';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='7';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='4';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='1';
}
lcd_putchar(a);

// P16
// P17

// P18

// P19

// P20

7. Pertanyaan
Jawab Pertanyaan (P1 P20 ) apa maksudnya dan fungsinya
8. Analisa ??
.
.
.

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

26

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 15. Memahami FUNCTION 1


1.
2.
3.
4.

Buat project baru. Setting CodeWizard sama dengan Percobaan 1.


Buat program dengan fasilitas LCD seperti percobaan 13
Buat program dengan fasilitas Keypad seperti percobaan 14
Ketik program dibawah ini
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Belajar Function");
lcd_gotoxy(0,1);
while (1)
{
// Place your code here
lcd_gotoxy(0,1);
lcd_putchar(keypad());
};

// P1

Dan
unsigned char keypad()
{
unsigned char a='-';
PORTC.3=1;PORTC.2=1;PORTC.1=1;PORTC.0=0;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='D';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='C';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='B';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='A';
}
PORTC.3=1;PORTC.2=1;PORTC.1=0;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='#';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='9';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='6';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='3';
}
PORTC.3=1;PORTC.2=0;PORTC.1=1;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)

27

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
{
a='0';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='8';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='5';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='2';
}
PORTC.3=0;PORTC.2=1;PORTC.1=1;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='*';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='7';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='4';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='1';
}
return a;
}

5. Pertanyaan
Jawab Pertanyaan (P1) apa maksudnya dan fungsinya
6. Analisa ??
.
.
.
.
.
.
.
.
.
.

28

LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController

Percobaan 16. Memahami FUNCTION 2


1.
2.

Buat project baru. Setting CodeWizard sama dengan Percobaan 1.


Buat program dengan fasilitas LCD seperti percobaan 13
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Belajar Function");
lcd_gotoxy(0,1);
while (1)
{
// Place your code here
lcd_gotoxy(0,1);
//
itoa(tambah(1,2),buff); // P1
lcd_puts(buff);
//
};

Dan ditulis dibawah #include <lcd.h>


unsigned char buff[3]; // P3
unsigned char tambah(unsigned char a,unsigned char b)
{
return a+b;
// P2
}

3.Pertanyaan
Jawab Pertanyaan (P1 dan P2) apa maksudnya dan fungsinya
Mengapa P3 di tempatkan di luar function
4. Analisa ??
.
.
.
.
.
.
.
.
.
.

29

Anda mungkin juga menyukai