SISTEM
MIKROPROSESOR
Laboratorium Dasar
Teknik Elektro
2016
PETUNJUK PRAKTIKUM
SISTEM MIKROPROSESOR
Mervin T. Hutabarat
Waskita Adijarto
Yudi Gondokaryono
Harry Septanto
Sandra Irawan
Nina Lestari
Firmansyah Puspanegara
M. Aznan Firmansyah. B
Laboratorium Dasar Teknik Elektro
2016
KATA PENGANTAR i
KATA PENGANTAR
Puji syukur ke hadirat Tuhan YME, sejak tanggal 1 Oktober 2011 yang lalu Program
Studi Teknik Elektro telah mendapat akreditasi ABET. Perbaikan-perbaikan praktikum
yang sebelumnya merupakan salah satu titik lemah prodi ini ternyata mendapat
apresiasi yang baik dari para asesor ABET. Perbaikan yang telah dilakukan harus
menjadi satu sistem perbaikan yang berkelanjutan. Oleh karena itu, Petunjuk Praktikum
Elektronika ini pun disusun dalam pola pikir tersebut.
Perubahan yang dilakukan dalam penyusunan materi Petunjuk Praktikum ini dari
Petunjuk Praktikum tahun lalu merupakan perubahan atau perbaikan minor saja
terutama pada redaksi kalimat yang tidak langsung dimengerti mahasiswa dengan
baik. Perubahan lain yang tidak menyangkut materi dilakukan untuk membangun
kebiasaan kerja yang memperhatikan faktor keselamatan kerja (safety). Dalam petunjuk
praktikum ini, prosedur kerja untuk mematikan seluruh hubungan listrik yang tidak
diperlukan setelah selesai praktikum diberi penekanan. Dengan mengikuti prosedur
tersebut diharapkan terbentuk kebiasaan praktikan untuk melakukannya juga pada
praktikum lanjutan.
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 anggota Tim Penyusun Petunjuk Praktikum Sistem Mikroprosesor, Mas
Harry Septanto dan Pak Dr. Waskita Adijarto, yang sudah memberikan tenaga, pikiran
dan waktunya untuk perbaikan praktikum dalam Program Studi Teknik Eletro ini.
Ucapan terima kasih juga disampaikan untuk dukungan rekan-rekan teknisi di
Laboratorium Dasar Teknik Elektro, Pak Sandra Irawan dan Mbak Nina Lestari.
Akhir kata, semoga semua usaha yang telah dilakukan berkontribusi pada
dihasilkannya lulusan Program Studi Teknik Elektro sebagai engineer dengan standar
internasional.
Ketua Tim,
DAFTAR ISI
TUGAS IV.A.1................................................................................................................... 41
TUGAS IV.A.2................................................................................................................... 43
IV.B SCANNING KEYPAD ............................................................................................. 43
Persiapan ........................................................................................................................... 43
TUGAS IV.B.1 ................................................................................................................... 43
TUGAS IV.B.2 ................................................................................................................... 44
IV.C LCD ........................................................................................................................ 44
Persiapan ........................................................................................................................... 44
TUGAS IV.C.1 Menjalankan AVR LCD Lib Demo .................................................. 44
TUGAS IV.C.2 ................................................................................................................... 45
TUGAS IV.C.3 ................................................................................................................... 46
TUGAS IV.C.4 ................................................................................................................... 47
Modul V PERANCANGAN APLIKASI ............................................................................ 49
DAFTAR PUSTAKA ................................................................................................................ 51
APENDIKS A PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE ....................... 53
MENJALANKAN WINAVR DAN AVRDUDE .............................................................. 53
Meng-install WinAVR ..................................................................................................... 53
Menginstall Driver GiveIO ............................................................................................. 54
Membuat Program dengan Programmers Notepad [Winavr] .................................. 55
Menyiapkan Makefile ...................................................................................................... 58
Meng-compile Program dan Membuat File *.Hex ...................................................... 64
Mendownload *.hex ke ATMega8535 ........................................................................... 65
Manual WinAVR dan Deskripsi Library AVR-GCC .................................................. 66
MENGATUR FUSE DENGAN AVRDUDE ..................................................................... 66
Deskripsi Fuse ATMega8535 .......................................................................................... 66
Penggunaan Sumber dan Nilai Clock dengan Pengaturan Fuse .............................. 67
Membaca Pengaturan Fuse Atmega8535 dengan Avrdude ...................................... 67
Mengubah Pengaturan Fuse Atmega8535 dengan Avrdude..................................... 68
Memahami Kode-Kode Pada Avrdude ........................................................................ 68
APENDIKS B KIT PRAKTIKUM ........................................................................................... 69
SISTEM MINIMUM ATMEGA8535 .................................................................................. 69
Tata Letak .......................................................................................................................... 69
Informasi PIN ................................................................................................................... 70
DT-51 TRAINER BOARD ................................................................................................... 70
DAFTAR ISI vii
Modul praktikum
Buku Catatan Laboratorium (BCL)
Alat tulis (dan kalkulator, jika diperlukan)
Name tag
Kartu Praktikum
Data sheet ATMega 8535
PERSIAPAN
Sebelum praktikum
Masuk laboratorium
Selama praktikum
Setelah praktikum
PERGANTIAN JADWAL
Kasus biasa
keterangan dokter bagi yang sakit atau surat terkait untuk yang memiliki
urusan pribadi. Form Pergantian Jadwal diserahkan pada TU Lab. Dasar
Praktikan yang bersangkutan selanjutnya harus meminta jadwal
praktikum pengganti ke Kordas praktikum terkait.
Kepentingan massal terjadi jika ada lebih dari 1/3 rombongan praktikan
yang tidak dapat melaksanakan praktikum pada satu hari yang sama
karena alasan yang terkait kegiatan akademis
Isi Form Pergantian Jadwal dan serahkan pada TU Lab. Dasar
secepatnya. Jadwal praktikum pengganti satu hari itu akan ditentukan
kemudian oleh Kordas praktikum yang bersangkutan
SANKSI
praktikum -100
Tidak mengisi form pengumpulan
BCL -10 -10
Copy-paste laporan praktikum
Untuk pemberi contekan -100 % -100 %
Untuk pencontek tidak lulus tidak lulus
-1/min
Terlambat mengumpulkan BCL
maksimum
-50
Tidak membawa kartu praktikum
saat pengumpulan BCL -50
Tidak meminta tanda tangan
admin saat pengumpulan BCL -50
PANDUAN UMUM KESELAMATAN DAN PENGGUNAAN PERALATAN xiii
LABORATORIUM
Bahaya listrik
Kecelakaanakibat bahaya listrik yang sering terjadi adalah tersengat arus listrik.
Berikut ini adalah hal-hal yang harus diikuti praktikan jika hal itu terjadi:
Jangan panik
Matikan semua peralatan elektronik dan sumber listrik di meja masing-
masing dan di meja praktikan yang tersengat arus listrik
Bantu praktikan yang tersengat arus listrik untuk melepaskan diri dari
sumber listrik
Beritahukan dan minta bantuan asisten, praktikan lain dan orang di
sekitar anda tentang terjadinya kecelakaan akibat bahaya listrik
Selalu waspada terhadap bahaya api atau panas berlebih pada setiap
aktivitas praktikum
Berikut ini adalah hal-hal yang harus diikuti praktikan jika menghadapi bahaya
api atau panas berlebih:
Jangan panik
Beritahukan dan minta bantuan asisten, praktikan lain dan orang di
sekitar anda tentang terjadinya bahaya api atau panas berlebih
Matikan semua peralatan elektronik dan sumber listrik di meja masing-
masing
Menjauh dari ruang praktikum
Lain-lain
Berikut ini adalah panduan yang harus dipatuhi ketika menggunakan alat-alat
praktikum:
SANKSI
Pengabaian uraian panduan di atas dapat dikenakan sanksi tidak lulus mata
kuliah praktikum yang bersangkutan.
xvi PANDUAN UMUM KESELAMATAN DAN PENGGUNAAN PERALATAN
LABORATORIUM
MODUL 1 17
MODUL 1
I/O DASAR
TUJUAN
Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535:
Rekomendasi untuk inisialisasi pada pin input (Datasheet ATMega8535 Hal. 56)
TUGAS PENDAHULUAN
Persiapan
TUGAS I.A.1
#include <avr/io.h>
int main(void)
{
DDRA = 0xFF;//inisialisasi PORTA sebagai OUTPUT
PORTA = (1<<PA6)|(1<<PA4)|(1<<PA2)|(1<<PA0);//nilai
OUTPUT
return 0;
}
Apabila kondisi OUTPUT LED DISPLAY sesuai dengan nilai PORTA maka
percobaan yang dilakukan benar.
TUGAS I.A.2
Persiapan
TUGAS I.B.1
Pastikan sumber clock yang digunakan sesuai dengan cara mengatur fuse
(Apendiks A). jalankan contoh program di bawah ini, amati hasilnya dan
buatlah flowchartnya.
#include <avr/io.h>
#define F_CPU 7372800UL // sesuai dengan nilai eksternal clock
#include <util/delay.h>
int main(void)
{
DDRA = 0xFF;
PORTA = 0xFF;
while(1)
{
PORTA = 0b00110011;
_delay_ms(500);
PORTA = 0b11001100;
_delay_ms(500);
}
return 0;
}
Apabila kondisi OUTPUT LED DISPLAY menyala bergantian setiap (sekitar) 500
milidetik sesuai dengan kedua nilai PORTA di atas maka percobaan yang dilakukan
benar.
TUGAS I.B.2
TUGAS I.B.3
Pastikan sumber clock yang digunakan sesuai dengan cara mengatur fuse
(Apendiks A). jalankan contoh program di bawah ini, amati hasilnya dan
buatlah flowchartnya.
#include <avr/io.h>
#define F_CPU 7372800UL // sesuai dengan nilai eksternal clock
#include <util/delay.h>
int main(void)
{
unsigned char i = 0xFE;
I/O DASAR 21
DDRA = 0xFF;
PORTA = i;
while(1)
{
PORTA = i;
_delay_ms(120);
i=(i<<1)|(i>>7);
}
return 0;
}
Apabila kondisi OUTPUT LED DISPLAY menunjukkan nyala LED yang memutar
maka percobaan yang dilakukan benar.
TUGAS I.B.4
Persiapan
TUGAS I.C.1
#include <avr/io.h>
int main(void)
{
unsigned char i;
DDRA = 0xFF; //inisialisasi PORTA sebagai OUTPUT
DDRD = 0x00; //inisialisasi PORTD sebagai INPUT
SFIOR = 0<<PUD; //aktivasi resistor pull-up internal
PORTA = 0xFF;
while(1)
{
i = PIND;
PORTA = i;
}
return 0;
}
Apabila kondisi OUTPUT LED DISPLAY sesuai dengan SWITCH INPUT maka
percobaan yang dilakukan benar.
22 I/O DASAR
TUGAS I.C.2
MODUL II
TIMER, COUNTER, INTERRUPT
TUJUAN
Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535.
Lihat pula hal. 83 untuk memahami definisi MAX, BOTOM dan TOP.
24 TIMER, COUNTER, INTERRUPT
Pengaturan Perilaku pin OCO (misalnya untuk mode non-PWM) (Hal. 84)
TUGAS PENDAHULUAN
Persiapan
TUGAS II.A.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include <avr/io.h>
void init_tim(void);
void Delay(void);
int main(void)
{
DDRA=0xFF;
PORTA = 0x00;
init_tim();
while (1)
{
PORTA = 0x0F;
Delay();
PORTA = 0xF0;
Delay();
}
return 0;
}
void init_tim(void)
{
TIMER, COUNTER, INTERRUPT 27
void Delay(void)
{
//overflow interrupt enable
TIMSK|=_BV(TOIE1);//(1<<TOIE1);
//meng-nol-kan flag
TIFR|=_BV(OCF1A);
TUGAS II.A.2
Modifikasi program di atas sehingga antara 4bit LSB dengan 4 bit MSB berkedip
secara bergantian dengan waktu periode kedip sekitar x detik, dimana x =
(modulus 5 dari nomor kelompok) + 2.
Persiapan
TUGAS II.B.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include<avr/io.h>
#include<avr/io.h>
#define F_CPU 7372800UL // 8MHz
#include <util/delay.h>
void init_tim(void);
int main(void)
{
init_tim();
DDRA=0xFF;
while (1)
{
//penentuan nilai awal timer
TCNT0 = 123;
//penentuan nilai compare
OCR0 = 124;
//menanti compare match
while(bit_is_clear(TIFR,OCF0))
{
PORTA = 0b10101010;
}
//meng-nol-kan flag
TIFR|=_BV(OCF0);
PORTA = 0b01010101;
_delay_ms(500);
}
return 0;
}
void init_tim(void)
{
//mode operasi dan sumber clock
TCCR0=0b00000110;
//overflow interrupt disable
TIMSK=(0<<OCIE0);
}
Apabila kondisi OUTPUT LED DISPLAY berubah setelah 2 kali penekanan tombol
INTERRUPT & COUNTER INPUT maka percobaan yang dilakukan benar.
TUGAS II.B.2
Modifikasi program diatas sehingga LED menyala semua selama x detik ketika
tombol ditekan sejumlah x kali, dimana x = (modulus 5 dari nomor kelompok) +
3. Keterangan: fasilitas delay AVR-gcc tidak digunakan.
TIMER, COUNTER, INTERRUPT 29
Persiapan
TUGAS II.C.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
#include <avr/interrupt.h>
void init_int(void);
ISR(TIMER1_OVF_vect)
{
unsigned char i;
PORTA=0xFF;
_delay_ms(200);
TIFR=(1<<TOV1);
TCNT1H=0xE3;
TCNT1L=0xDF;
}
int main(void)
{
init_int();
DDRA=0xFF;
while (1)
{
PORTA = 0b01010101;
_delay_ms(100);
PORTA = 0b10101010;
_delay_ms(100);
TIMSK=0b000100;
}
return 0;
}
void init_int(void)
{
TIMSK=0b000000;
TCCR1B=0b00000101; //prescalar 1024
TCNT1H=0xE3;
TCNT1L=0xDF;
sei();
}
Bila program ini dijalankan dengan benar, kondisi OUTPUT LED DISPLAY
berbeda ketika terjadi interrupt dan ketika belum terjadi. Interupt terpanggil setiap
satu detik.
30 TIMER, COUNTER, INTERRUPT
TUGAS II.C.2
Persiapan
TUGAS II.D.1
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
#include <avr/interrupt.h>
void Init_Ext_Int(void);
ISR(INT0_vect)
{
unsigned char i=0x01,n;
for(n=0;n<8;++n)
{
PORTA = i;
_delay_ms(250);
i=(i<<1)|(i>>7);
}
}
int main(void)
{
Init_Ext_Int();
sei();
DDRA=0xFF;
while (1)
{
PORTA = 0b10101010;
_delay_ms(500);
PORTA = 0b01010101;
_delay_ms(500);
}
return 0;
}
void Init_Ext_Int(void)
{
MCUCR=0x02;
TIMER, COUNTER, INTERRUPT 31
MCUCSR=0x00;
GICR=0x40;
GIFR=0x40;
}
Bila program ini dijalankan dengan benar, kondisi OUTPUT LED DISPLAY berbeda
ketika interrupt eksternal dilakukan.
TUGAS II.D.2
MODUL III
KOMUNIKASI USART DAN EVALUASI MODUL
I-III
TUJUAN
Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535:
TUGAS PENDAHULUAN
Persiapan
TUGAS III.A.1
Jalankan contoh program di bawah ini. Amati hasilnya dan buatlah flowchart-
nya.
#include<avr/io.h>
Bila program ini dijalankan dengan benar, kondisi OUTPUT LED DISPLAY akan
bersesuaikan dengan tombol PC yang ditekan.
36 KOMUNIKASI USART DAN EVALUASI MODUL I-III
TUGAS III.A.2
Baudrate = 2400bps
Mengaktifkan fasilitas double USART transmission speed
Persiapan
TUGAS III.B.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include<avr/io.h>
int main (void)
{
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRL=47;
char kal[]=" Praktikum Sistem Mikroprosesor ";
unsigned char i=0;
for (i=0;kal[i]!='\0';++i)
{
loop_until_bit_is_set(UCSRA,5);
UDR=kal[i];
}
return 0;
}
Bila program ini dijalankan dengan benar, pada layar Hyperterminal akan
ditampilkan teks setiap tombol RESET ditekan.
TUGAS III.B.2
Persiapan
TUGAS III.C.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include<avr/io.h>
#include<avr/interrupt.h>
#define F_CPU 7372800UL
#include <util/delay.h>
ISR(USART_RX_vect)
{
unsigned char kar;
kar = UDR;
PORTA = kar;
loop_until_bit_is_set(UCSRA,5);
UDR = kar;
}
while(1)
{
if bit_is_set(UCSRA,3)
{
loop_until_bit_is_set(UCSRA,5);
}
}
return 0;
}
TUGAS III.C.2
Buatlah aplikasi seperti contoh program di atas, namun ketika user memberikan
input dari PC berupa angka 1, maka ATMega mengirimkan NIM praktikan
pertama sedangkan jika diberikan input berupa angka 2 maka ATMega
mengirimkan NIM praktikan lainnya dan menampilkannya pada terminal.
38 KOMUNIKASI USART DAN EVALUASI MODUL I-III
TUGAS III.D.1
Ada dua buah kata kunci yang akan diberikan kepada sistem;
Pada saat idle, yaitu Mode Idle, OUTPUT LED DISPLAY menampilkan
nyala sebuah LED seperti pada Tugas I.B.4
Jika sebuah tombol (INTERRUPT INPUT) ditekan, maka sistem akan
berpindah pada Mode Kata Kunci 1, dimana sistem siap menerima kata
kunci 1;
Pada Mode Kata Kunci 1, sistem hanya menyediakan waktu 5 detik
untuk menerima input kata kunci yang direpresentasikan oleh SWITCH
INPUT. Sementara itu, OUTPUT LED DISPLAY akan merepresentasikan
kenaikan waktu per-detik (dimulai dari detik ke-nol) dengan nyala led
yang terus bertambah (dari hanya nyala led Bit0, lalu Bit0 dan Bit1 hingga
led Bit0 sampaidengan Bit4 menyala). Setelah 5 detik berlalu, program
mengecek apakah kata kunci yang direpresentasikan dengan SWITCH
INPUT apakah benar atau salah. Jika salah, maka sistem kembali ke
Mode Idle.
Jika kata kunci 1 benar, semua led pada “OUTPUT LED DISPLAY” akan
menyala sejenak (500ms) kemudian mati;
Setelah itu sistem akan berpindah pada Mode Counter;
Pada Mode Counter, ada sebuah tombol yang digunakan sebagai
penghitung. OUTPUT LED DISPLAY menampilkan representasi biner
dari jumlah penekanan tombol (COUNTER INPUT). Jika tombol itu telah
ditekan sebanyak 5 kali, maka program akan berpindah ke Mode Kata
Kunci 2.
Pada Mode Kata Kunci 2, sistem akan menerima input kata kunci (sebuah
karakter) dari komunikasi serial dalam jangka waktu 5 detik. Sementara
itu, OUTPUT LED DISPLAY akan merepresentasikan kenaikan waktu
per-detik (dimulai dari detik ke-nol) dengan nyala led yang terus
bertambah (dari hanya nyala led Bit0, lalu Bit0 dan Bit1 hingga led Bit0
sampaidengan Bit4 menyala). Program mengecek apakah kata kunci
yang dimasukan melalui HyperTerminal tadi adalah benar atau salah.
Jika salah, akan kembali ke Mode Idle;
Jika kata kunci 2 benar, program akan membuat seluruh led pada
OUTPUT LED DISPLAY nyala dan mati, bergantian tiap detik, sebanyak
2 kali. Setelah itu kembali ke Mode Idle
Catatan: Port, mode timer dan kombinasi kata kunci yang digunakan bebas.
MODUL IV 39
MODUL IV
SEVEN SEGMENT, KEYPAD DAN LCD
TUJUAN
Salah satu teknik untuk menjalankan perangkat Seven Segment adalah teknik
Scanning. Dengan teknik scanning ini, sejumlah seven segmen dapat dijalankan
secara bergantian (dengan frekuensi tertentu) melalui jumlah port yang
minimum.
Pada praktikum ini akan dipelajari teknik scanning untuk menjalankan dua
buah seven segment pada Trainer Board. Aturan untuk menjalankan kedua
seven segmen tersebut adalah sebagai berikut:
Selain dua aturan di atas, untuk menampilkan angka (0 – 9) dan titik (.) dengan
seven segment pada Trainer Board tersebut yaitu dengan mengatur logika pin
dari port ”Data 7S”. Rangkaian seven segment tesebut berisfatactive high(logika
“1” = nyala, logika “0” = padam), dengan urutan dari MSB ke LSB adalah DP
(titik), G, F, E, D, C, B, A.
40 SEVEN SEGMENT, KEYPAD DAN LCD
SCANNING KEYPAD
Pada prinsipnya, teknik scanning pada keypad mirip dengan teknik scanning
pada seven segmen. Namun, pada scanning keypad, selain dilakukan
pengaturan logika pin secara bergantian, juga dilakukan secara bergantian
pemeriksaan/ pembacaan pin oleh mikrokontroler untuk mengetahui tombol
keypad mana yang sedang ditekan.
DT-51 Trainer Board memiliki keypad 2x2 dengan kondisi sebagai berikut:
Pin penerima output dari mkrokontroler adalah pin KBO1 (dari port “I/P
S KEY”) dan KBO2 (dari port “I/P S KEY”) yang bersifat active low.
Sedangkan pin yang memberikan input pada mikrokontroler adalah
KBI1 (dari port “I/P S KEY”) dan KBI2 (dari port “I/P S KEY”) yang
bersifat active low.
Pertama, berikan logika “0” pada pin KBO1 (sementara pin KBO2
berlogika “1”). Lalu, periksa logika dari data input KBI1. Jika logika pin
KBI1 berubah dari “1” ke “0” berarti KEY1 telah ditekan (perhatikan
rangkain listriknya).
Selanjutnya KBI2 diperiksa; jika logikanya berubah dari “1” ke “0”
berarti berarti KEY3 telah ditekan.
Kedua, berikan logika “0” pada KBO2 (sementara pin KBO1 berlogika
“1”). Kemudian tiap-tiap data input-nya diperiksa, seperti pemeriksaan
pada tahap pertama.
SEVEN SEGMENT, KEYPAD DAN LCD 41
LCD
LCD yang digunakan dalam praktikum ini adalah LCD yang berbasis pada
HD44780 LCD controller. Sebelum praktikum, praktikan diharuskan untuk
membaca dan memahami proses untuk menjalankan LCD yang diuraikan pada
datasheet HD44780 tersebut. Datasheet HD44780 disediakan di
http://labdasar.ee.itb.ac.id
TUGAS PENDAHULUAN
Persiapan
TUGAS IV.A.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
char angka;
char kodehex;
unsigned int SSegmen(char angka);
while (1)
{
PORTD =(0<<PD7)|(1<<PD6);
PORTA =SSegmen('7')|(1<<7);
_delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
PORTA =SSegmen('2');
_delay_ms(1);
}
return 0;
}
TUGAS IV.A.2
Persiapan
TUGAS IV.B.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
PORTD=(0<<PD4)|(1<<PD5);
if(bit_is_clear(PIND,0))
PORTA=0b00000011;
_delay_ms(50);
44 SEVEN SEGMENT, KEYPAD DAN LCD
if(bit_is_clear(PIND,1))
PORTA=0b00000111;
_delay_ms(50);
}
return 0;
}
Program di atas dijalankan dengan benar jika
Key1 ditekan,bit 0 OUTPUT LED DISPLAY menyala; dan jika
Key2 ditekan,bit 0 dan 1 OUTPUT LED DISPLAY menyala; dan jika
Key3 ditekan,bit 0, 1 dan 2 OUTPUT LED DISPLAY menyala; dan jika
Key4 ditekan,bit 0, 1, 2 dan 3 OUTPUT LED DISPLAY menyala.
TUGAS IV.B.2
IV.C LCD
Persiapan
Jalankan AVR LCD Lib Demo dengan membuka terlebih dahulu avrlcd.pnproj,
kemudian adaptasikan Makefile-nya.
TUGAS IV.C.2
Contoh program di bawah ini merupakan program pada file main.c yang
dimodifikasi.
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "lcd_lib.h"
//delay 1s
void delay1s(void)
{
uint8_t i;
for(i=0;i<100;i++)
{
_delay_ms(10);
}
}
int main(void)
{
LCDinit();//init LCD bit, dual line, cursor right
LCDclr();//clears LCD
DDRA=0xFF;
PORTA=0x00;
DDRD=(1<<PD4)|(1<<PD5)|(1<<PC7)|(1<<PC6);
SFIOR=(0<<PUD);
delay1s();
LCDGotoXY(0, 1);
delay1s();
while(1)//loop demos
{
CopyStringtoLCD(LCDtombol1, 0, 0);
LCDshiftRight(1);
PORTD =(1<<PD4)|(0<<PD5)|(1<<PC7)|(1<<PC6);
if(bit_is_clear(PIND,0))
{
LCDclr();
LCDGotoXY(8, 1);
LCDsendChar('&');
delay1s();
LCDclr();
46 SEVEN SEGMENT, KEYPAD DAN LCD
_delay_ms(50);
if(bit_is_clear(PIND,1))
{
LCDclr();
LCDGotoXY(8, 1);
LCDsendChar('a');
delay1s();
LCDclr();
}
_delay_ms(50);
PORTD =(0<<PD4)|(1<<PD5)|(1<<PC7)|(1<<PC6);
if(bit_is_clear(PIND,0))
{
LCDclr();
LCDGotoXY(8, 1);
LCDsendChar('5');
delay1s();
LCDclr();
}
_delay_ms(50);
if(bit_is_clear(PIND,1))
{
LCDclr();
LCDGotoXY(8, 1);
LCDsendChar('7');
delay1s();
LCDclr();
}
_delay_ms(50);
}
return 0;
}
TUGAS IV.C.3
Modifikasi contoh program di atas sehingga SCANNING KEYPAD 2x2 dan LCD
bekerja sebagai berikut:
TUGAS IV.C.4
MODUL V
PERANCANGAN APLIKASI
Percobaan ini dilakukan per-kelompok secara mandiri. Tugas diberikan oleh
masing-masing dosen kelas.
50 PERANCANGAN APLIKASI
DAFTAR PUSTAKA 51
DAFTAR PUSTAKA
Datasheet ATMega 8535, www.atmel.com
52 DAFTAR PUSTAKA
APENDIKS A 53
APENDIKS A
PETUNJUK PENGGUNAAN WINAVR DAN
AVRDUDE
WinAVR (winavr.sourceforge.net) adalah seperangkat software opensource,
termasuk di dalamnya adalah Programmers Notepad
(http://sourceforge.net/projects/pnotepad/) dan AVRDude
(http://savannah.nongnu.org/projects/avrdude/), untuk membuat, meng-
compile dan mendownload program Atmel AVR dalam bahasa C.
Meng-install WinAVR
4. Proses instalasi selanjutnya adalah berisi Lisence Agreement yang harus kita
ikuti, kemudian pemilihan lokasi instalasi WinAVR
8. Lalu, tekan Enter (untuk Win XP) atau Ctrl+Shift+Enter (untuk Win Vista
atau Win 7), sehingga Command Prompt yang muncul dengan mode
Administrator
e. Klik OK sekali lagi maka project baru dengan nama “Modul1” telah
siap.
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE 57
c. Pastikan file “Tugas1A1.c” berada pada folder baru yang tadi dibuat,
yaitu folder “C:\Modul1”. Kemudian, akhiri dengan klik Save
Menyiapkan Makefile
Program yang telah diketik tadi tidak dapat di-compile jika belum disiapkan file
“Makefile” yang berada pada folder yang sama dengan file “Tugas1A1.c”, yaitu
pada folder “C:\Modul1”.
a. Pilih atmega8535
60 PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
23. Atur nilai Kristal yang digunakan dengan cara mengedit “Makefile” dengan
mengetikan nilai Kristal tersebut
24. Simpan file “Makefile” tersebut di folder file “Tugas1A1.c” tadi berada
a. FileSave As …
Berikut ini adalah langkah untuk meng-compile sekaligus membuat file *.hex
(pada kasus ini adalah file “Tugas1A1.hex”) yang akan didownload ke
ATMega8535
27. Apabila tidak ada kesalahan pada program, maka pada Output ditampilkan
“Process Exit Code : 0” seperti gambar berikut:
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE 65
Manual WinAVR dan deskripsi library pada AVR-GCC dapat dilihat secara
offline dengan menjalankan WinAVR User Manual (untuk manual WinAVR)
dan menjalankan avr-libc Manual [WinAVR] (untuk desktripsi library pada
AVR-GCC).
Prosesor ATMega8535 memiki konfigurasi fuse awal (default) seperti pada table
di atas sehingga bekerja dengan clock internal 1Mhz (tinjau konfigurasi Fuse
Low Byte); lihat pula datasheet ATMega8535 hal. 29-30.
Pada praktikum ini akan digunakan pula sumber clock eksternal (kristal)
7372800 Hz (lihat Hardware Sismin), sehingga pengaturan ulang fuse harus
dilakukan; lihat pula datasheet ATMega8535 hal 25-27.
Pada bagian ini akan diberikan petunjuk untuk membaca dan mengubah
pengaturan fuse pada ATMega8535 dengan AVRDude
36. Pada Command Prompt, ketik perintah berikut, diikuti dengan tekan Enter:
38. Agar prosesor bekerja sumber clock dari clock eksternal (Kristal) 7372800
Hz, ketik perintah berikut, diikuti dengan tekan Enter:
39. Untuk memahami arti kode-kode , misalnya –c, -P dsb., pada Command
Prompt ketik “avrdude” diikuti dengan tekan:
APENDIKS B 69
APENDIKS B
KIT PRAKTIKUM
SISTEM MINIMUM ATMEGA8535
Tata Letak
70 KIT PRAKTIKUM
Informasi PIN
P1 P3 P5 P7 VEE
PC6 PC1/ GND GND
LED+ PC4 R/W GND VCC GND GND
Tata Letak
KIT PRAKTIKUM 71
Konektor
Kabel Konektor
2x8-Pin Female
8-Pin Female Header Header
72 KIT PRAKTIKUM
Langkah-Langkah Pemasangan
APENDIKS C
KODE ASCII
74
KODE ASCII
75
APENDIKS D
APENDIKS D
HYPERTERMINAL
Di dalam praktikum ini, Anda akan melakukan percobaan komunikasi antara mikrokontroler AVR
ATMega8535 dan komputer melalui protocol RS-232. Pada bagian komputernya, Anda akan
menggunakan program terminal dari Windows XP yaitu HyperTerminal.
Data bits: 8
Parity: None
Stop bits: 1
APENDIX E
INSTALASI DRIVER USB-ASP DI WINDOWS 7
1. Sambungkan kabel USB, antara komputer / laptop kepada downloader USB ASP. Pastikan kondisi
led merah pada downloader USB ASP dalam kondisi ON.
2. Setelah itu sistem akan membaca hardware dari downloader USB ASP
3. Jika ini adalah koneksi pertama dari downloader USB ASP, maka langkah selanjutnya untuk
mengintal/mengupgrade driver tersebut melalui Device Manager. Lalu pilih Other devices, klik
kanan di USBAsp dan pilih Update Driver Software.
7. Jika berhasil terinstall maka akan muncul menu seperti dibawah ini
8. Selain itu juga di Device Manager, driver USB Asp akan terinstall sempurna
Proses Download Flash & EEProm AVR 8-Bit Menggunakan USB ASP
80
Instalasi Driver USB-ASP di Windows 7
1. Klik ganda aplikasi USB ASP (AVR Dude GUI Ver 1.3)
4. Jika Flash dan atau EEprom berhasil di download ke mikro tujuan (dalam hal ini ATmega8535),
maka indikator menu yang muncul
5. Jika Flash dan atau EEprom gagal di download ke mikro tujuan (dalam hal ini ATmega8535) atau
ada kesalahan koneksi di kabel, maka indikator yang muncul adalah