Top Banner
MODUL 1 Tujuan Mengenal Arsitektur dan sistem minimum Mikrokontroler ATMega 8535. Mengenal Bahasa C dan software CodeVision AVR untuk pemrograman Mikrokontroler ATMega 8535. Mampu membuat aplikasi Input/Output dengan LED, push button dan seven segment. Dasar Teori 1.1 Mikrokontroler AVR ATMega 8535 Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Hal ini karena perbedaan arsitektur yang dipakai. AVR menggunakan arsitektur RISC (Reduced Instruction Set Computing) sedangkan MCS51 menggunakan arsitektur CISC (Complex Instruction Set Computing). AVR secara umum dibagi menjadi empat kategori, yaitu : ATtiny, AT90Sxx, ATmega, dan AT86RFxx. Yang membedakan keempat kategori diatas secara mendasar ialah ukuran memori, peripheral, dan fungsinya. Konfigurasi Pin dan Fitur-fitur ATMega 8535 Konfigurasi pin ATMega 8535 1 Laboratorium Teknik Elektro - UNRIKA
38

Modul Mikroprosesor

Nov 21, 2015

Download

Documents

Addy Yang

Modul Praktikum Mikroprosesor
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Modul1

MODUL 1

Tujuan Mengenal Arsitektur dan sistem minimum Mikrokontroler ATMega 8535. Mengenal Bahasa C dan software CodeVision AVR untuk pemrograman Mikrokontroler ATMega 8535. Mampu membuat aplikasi Input/Output dengan LED, push button dan seven segment.Dasar Teori1.1 Mikrokontroler AVR ATMega 8535Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Hal ini karena perbedaan arsitektur yang dipakai. AVR menggunakan arsitektur RISC (Reduced Instruction Set Computing) sedangkan MCS51 menggunakan arsitektur CISC (Complex Instruction Set Computing). AVR secara umum dibagi menjadi empat kategori, yaitu : ATtiny, AT90Sxx, ATmega, dan AT86RFxx. Yang membedakan keempat kategori diatas secara mendasar ialah ukuran memori, peripheral, dan fungsinya.Konfigurasi Pin dan Fitur-fitur ATMega 8535Konfigurasi pin ATMega 8535

Gambar 1.1 Konfigurasi pin ATMega 8535Fitur yang tersedia pada ATMega 8535 adalah : Frekuensi clock maksimum 16 MHz Jalur I/O 32 buah, yang terbagi dalam Port A, Port B, PortC dan Port D CPU 8 bit yang terdiri dari 32 register ADC 10 bit sebanyak 8 kanal input Timer/Counter sebanyak 3 buah Watchdog Timer dengan osilator internal SRAM sebesar 512 byte Memori Flash sebesar 8 Kbyte dengan kemampuan read while write EEPROM sebesar 512 byte yang dapat diprogram saat operasi Interrupt internal maupun eksternal Port komunikasi SPI Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps Analog ComparatorSistem minimum ATMega 8535Sistem minimum adalah rangkaian minimum yang dibutuhkan suatu mikrokontroler agar dapat bekerja. Rangkaian sistem minimum ATMega 8535 dapat dilihat pada gambar 1.2.

Gambar 1.2 Rangkaian sistem minimum ATMega 8535Sistem minimum terdiri dari blok catu daya, blok oscillator, blok reset, dan input/output dengan fungsi sebagai berikut : Catu daya : sebagai sumber power rangkaian. Blok oscillator : sebagai pembangkit sinyal clock (pewaktu). Blok reset : berfungsi untuk menghentikan kerja dan mengembalikan stack pointer ke alamat paling awal. Blok reset terdiri dari sebuah push button sebagai switch, resistor sebagai pembatas arus,dan sebuah kapasitor sebagai filter. Input/output : terdiri dari berbagai komponen tergantung kebutuhan penggunaan. Misalnya push button, keypad dan potensiometer sebagai input serta motor, LCD, atau sekedar LED sebagai output.

1.2 Pemrograman mikrokontroler dengan bahasa C menggunakan CodeVision AVRBahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan bahasa pemrograman tingkat tinggi sehingga memudahkan programmer menuangkan algoritmanya. Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu header, deklarasi variabel dan atau konstanta global, fungsi dan program utama.Struktur PenulisanContoh

Header : berfungsi untuk memanggil library yang akan digunakan.#include < [library1.h] > #include < [library2.h] > #define [nama1] [nilai] ; #define [nama2] [nilai] ;

#include #include

Deklarasi variabel dan atau konstanta globalunsigned char dt, xx;char buf[33];

Deklarasi fungsiFungsi dapat dideklarasikan di atas ataupun di bawah program utama. Fungsi yang dideklarasikan di bawah (setelah) program utama harus menggunakan prototype fungsi yang diletakkan sebelum program utama.unsigned char lampu {PORTA=lampu & 0x3C;}

Program Utamavoid main(void){/* Deklarasi konstanta dan atau variabel lokal */[Isi Program Utama]}void main (void){char data;PORTA=0x00;DDRA=0xF0;While (1) { }}

1.3 Operasi Input OutputATMega 8535 mempunyai empat buah port, yaitu PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan pilihan internal pull-up. Setiap port memiliki tiga buah register I/O, yaitu DDRx, PORTx dan PINx, dimana x mewakili nama port. DDRx (Data Direction Register) : digunakan untuk memilih arah pin. Jika DDRx = 1 maka Pxn sebagai pin output dan DDRx = 0 maka Pxn sebagai input. PORTx : digunakan untuk jalur output atau untuk mengaktifkan resistor pullup.Tabel 1.1 Konfigurasi PORTDDRxnPORTxnI/OPull upMode Tegangan Referensi

00InputNoPin Pxn sebagai output tanpa resistor pull up

01InputYesPin Pxn sebagai pin input dengan resistor pull up

10OutputNoOutput Low

11OutputNoOutput High

PINx : digunakan sebagai register input.

1.4 LEDLED (Light Emitting Diode) adalah komponen semikonduktor yang dapat mengemisikan cahaya ketika dialiri arus listrik. LED terdiri dari 2 kaki yaitu anoda dan katoda, dimana LED akan menyala jika arus mengalir dari anoda ke katoda.

Gambar 1.3 Bentuk dan simbol LED1.5 Push ButtonAgar push button dapat memberikan input pada mikrokontroler maka tombol dirangkai sehingga member perbedaan kondisi pada pin-pinnya ketika tidak ditekan dan saat ditekan. Pada saat tombol tidak ditekan maka arus akan mengalir dari Vcc menuju ke port. Sedangkan saat tombol ditekan, maka tombol akan terhubung ke ground sehingga kondisi push button akan berlogika low.1.6 Seven SegmentPada dasarnya seven segment merupakan rangkaian 7 buah LED. Terdapat 2 jenis rangkaian dasar seven segment, yaitu seven segment Common Anoda (CA) dan Common Cathoda (CC). Pada display common anoda, untuk mengaktifkan karakter display seven segment diperlukan logika low (0) pada jalur A-G dan dot, serta sebaliknya untuk display seven segment common cathode.

Gambar 1.4 Rangkaian push button

Gambar 1.5 Rangkaian internal seven segmen CA dan CC

PraktikumProgram 1.1Prosedur : Rangkailah peralatan yang diperlukan seperti pada gambar berikut :

Gambar 1.6 Projek 1.1

Bukalah Code Vision AVR, buat project baru tanpa menggunakan code wizard, dan tuliskan program berikut :#include #include void main(void){DDRA = 0xff;PORTA = 0xff;while (1) { PORTA = 0x0f; delay_ms(300); PORTA = 0x00; delay_ms(300); PORTA = 0xff; delay_ms(300); }}

Program 1.2Prosedur : Rangkailah peralatan seperti pada program 1, kemudian tuliskan program berikut :#include #include unsigned char pola[8] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};void main(void){DDRA = 0xff;PORTA = 0xff;while (1) { int i; for (i=0;i> 8; TCNT1L=0xD23A & 0xff; data++; //setelah 1 detik increament data}

void main(void){TCCR1A=0x00; TCCR1B=0x05; TCNT1H=0xD2; TCNT1L=0x3A; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; TIMSK=0x04; // Timer(s)/Counter(s) Interrupt(s) initializationlcd_init(16); // LCD module initialization #asm ("sei") // Global enable interrupts

while (1) { if (data==100) { lcd_clear(); data=0; } lcd_gotoxy(0,0); lcd_putsf("Timer :"); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); };}

Program 4.2Prosedur : Rangkailah peralatan yang diperlukan seperti pada gambar berikut :

Gambar 4.3 Projek 4.3 Tulis program berikut pada Code Vision AVR :#include #include #asm .equ __lcd_port=0x15; #endasm #include

unsigned char temp[6];int data;

void main(void){TCCR0=0x06; TCNT0=0x00; OCR0=0x00;ACSR=0x80; SFIOR=0x00; lcd_init(16); // LCD module initialization

while (1) { data=TCNT0;//hasil counter (TCNT0) dipindah ke data if (data>=256) { lcd_clear(); } lcd_gotoxy(0,0); lcd_putsf("*ELEKTRO-UNRIKA*"); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); };}

Program 4.3Prosedur : Rangkailah peralatan yang diperlukan seperti pada gambar berikut :

Gambar 4.3 Projek 4.3 Tulis program berikut pada Code Vision AVR :#include #include

#include #include

unsigned char dt=0x01;void InisialisasiINT0();void main (void){ DDRA=0xff; InisialisasiINT0(); #asm ("sei"); while(1) { PORTA=dt; delay_ms(300); dt=dt