modul4 -avr mikrokontroler

Download Modul4 -AVR mikrokontroler

If you can't read please download the document

Upload: roland-lagi-tidur

Post on 03-Jul-2015

1.010 views

Category:

Documents


2 download

TRANSCRIPT

MODUL IV PRAKTIKUM MIKROPROSESSOR DAN INTERFACE (AVR MICROKONTROLLER)

DI SUSUN OLEH : JAENAL ARIFIN, ST

LABORATORIUM ELEKTRONIKA & DIGITAL AKADEMI TEKNIK TELEKOMUNIKASI SANDHY PUTRA PURWOKERTO

MODUL AVR MICROKONTROLLER(Alfand Vegard's Risc processor)

A. PENDAHULUAN Perkembangan teknologi elektronika digital telah berkembang dengan pesatnya, diberbagai bidang. Pengunaan mikrokontroller sangat luas, mulai dari mainan elektronika sampai dengan modul-modul rangkaian digital lainnya. Teknologi ini dirasakan masih cukup ampuh dalam menyelesaikan permasalahan elektronika digital, dikarenakan memiliki kemudahan dalam hal pemrograman untuk mengendalikan input-output dan biaya murah. Lahirnya mikrokontroler telah menimbulkan suatu revolusi dalam membuat system berbasis digital yang kompleks. Sebuah chip mikrokontroler yang relatif `murah' dapat bekerja sesuai dengan keinginan programmer. Sebagai contoh seperti pada sistem pengontrolan maupun sistem otomasi maupun pada sistem robot. Mikrokontroller type CISC clan RISC saat ini berkembang pesat. Hal ini didasarkan pada arsitektur processor dan set instruksinya. Tipe AVR (Alfand Vegard's Risc processor) merupakan jenis RISC, yang hamper semua instruksi dikerjakan 1 siklus, sehingga lebih cepat waktu eksekusinya. AVR keluaran ATMEL saat ini dikelompokan menjadi 4 group : keluarga AT90Sxx, keluarga ATMega, keluarga ATtiny dan keluarga AT89RFxx. Tidak ada perbedaan mendasar pada keempatnya, baik arsitektur maupun instruksinya. Kapasitas memori, peripheral dan fungsi adalah yang menjadikan masing masing keluarga AVR memiliki keunikan tersendiri. B. MODUL PRAKTIKUM AVR INI TERDIRI DARI : a. Arsitektur Mikrokontroller ATMEGA16 b. Dasar pemrograman C c. Menggunakan software avr studio untuk mikrokontroler AVR. d. Input output (8 X LED) e. Timer f. Display LCD Character 2x16 g. ADC h. USART AVR i. Interupsi j. EEPROM INTERNAL k. Watchdog l. Brown Out Detector m. RTC DS 1307 n. EEPROM EXTERNAL

I. ARSITEKTUR AVR ATMEGA16 Fitur Dasar ATmega16 AVR Atmega16 merupakan salah satu produk dari ATMEL. Mikrokontroler ini memiliki fitur-fitur sebagai berikut: 1. Port I/O 32 jalur (Port A, Port B, Port C, Port D masing - masing 8 bit) 2. ADC 8 channel dengan resolusi 10 bit 3. 3 buah timer / counter 4. Osilator internal 5. Flash PEROM 16 Kb 6. EEPROM 512 byte 7. SRAM 512 byte 8. Interupsi Eksternal dan Internal 9. Port USART untuk komunikasi serial Konfigurasi Hardware Mikrokontroler ATmega16 memiliki konfigurasi pin 40 kaki yang terdiri dari masing-masing pin I/O (32 pin) serta mempunyai fungsi khusus tergantung penggunaannya.Tabel 1. Konfigurasi Pin ATmega16 FUNGSI Port BO/Counter 0 /clock eksternal untuk USART (XCK) Port B1/Counter 1 Port B2/Input (+) Analog Komparator (AINO) dan interupsi eksternal 2 INT2 Port B3 / Input (-) Analog Komparator (AIN1) dan output PWM0 Port B4 / SPI Slave Select Input (SS) Port BS / SPI bus Master Out Slave In Port B6 / SPI bus Master In Slave Out Port B7 / sinyal clock serial SPI Reset mikrokontroler Catu daya (+) Sinyal ground terhadap catu daya Sinyal input clock eksternal (kristal) Port D0 / Penerima data serial Port D1 / Pengirim data serial Port D2 / Interupsi eksternal 0 Port D3 / Interupsi eksternal 1 Port D4 / Pembanding Timer-Counter 1 (Output PWM 1B) Port D5 / Output PWM 1A Port D6 / Timer-Counter 1 input Port D7 / Output PWM 2 Port C0 / Serial bus clock line

NO. 1 2 3 4 5 6 7 8 9 10 11 12 s/d 13 14 15 16 17 18 19 20 21 22

NAMA PBO XCK/TO PB1 (T1) PB2 (INT2/AIN0) PB3 (OC0/AIN1) PB4 (SS) PB5 (MOSl) PB6 (MISO) PB7 (SCK) RESET VCC GND XTAL2-XTAL1 PD0 (RXD) PD1 (TXD) PD2 (INT0) PD3 (INT1) PD4 (OC1B) PD5 (OC1A) PD6 (ICP1) PD7 (OC2) PC0 (SCL)

23 24 s/d 27 28 29 30 31 32 33 s/d 40

PC1 (SDA) PC2 PC5 PC6 (TOSC1) PC7 (TOSC2) AVCC GND AREFF PA0 PA7

Port C1 / Serial bus data input-output PC2 PC5 Port C6 / Timer osilator 1 Port C7 / Timer osilator 2 Tegangan ADC Sinyal ground ADC Tegangan referensi ADC Port A0-PortA7 input untuk ADC (8 channel : ADCO-ADC7)

STRUKTUR MEMORI Secara khusus Mikrokontroller AVR ATmega16 mempunyai ruang memori data dan memori program yang terpisah. Memori data terdiri 3 bagian : - 32 buah General Purspose Register (GPR) / register umum - 64 buah register I/O - 512 byte SRAM Internal Memori program sebesar 8 Kbyte dalam Flash PEROM dengan alamat 000H - FFFH. II. DASAR PEMROGRAMAN C

Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat dipelajari sebagai berikut. 1. Struktur penulisan program #include < [library1.h] > // Opsional #include < [library2.h] > // Opsional #define [nama1] [nilai] ; // Opsional #define [nama2] [nilai] ; // Opsional [global variables] // Opsional [functions] // Opsional int main(void) // Program Utama { [Deklarasi local variable/constant] [Isi Program Utama] } 2. Tipe data * char : 1 byte ( -128 s/d 127 ) * unsigned char : 1 byte ( 0 s/d 255 ) * int : 2 byte ( -32768 s/d 32767 ) * unsigned int : 2 byte ( 0 s/d 65535 ) * long : 4 byte ( -2147483648 s/d 2147483647 ) * unsigned long : 4 byte ( 0 s/d 4294967295 ) * float : bilangan desimal * array : kumpulan data-data yang sama tipenya.

3. Deklarasi variabel & konstanta * Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. Penulisan : [tipe data] [nama] = [nilai] ; * Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah. Penulisan : const [nama] = [nilai] ; * Tambahan: Global variabel/konstanta yang dapat diakses di seluruh bagian program. Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya. 4. Statement Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar. Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu 5. Function Function adalah bagian program yang dapat dipanggil oleh program utama. Penulisan : [tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2]) { [statement] ; } 6. Conditional statement dan looping if else : digunakan untuk penyeleksian kondisi if ( [persyaratan] ) { [statement1]; [statement2]; } else { [statement3]; [statement4]; } for : digunakan untuk looping dengan jumlah yang sudah diketahui for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2]; } while : digunakan untuk looping jika dan salama memenuhi syarat tertentu while ( [persyaratan] ) { [statement1]; [statement2]; }

do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali do { [statement1]; [statement2]; } while ( [persyaratan] ) switch case : digunakan untuk seleksi dengan banyak kondisi switch ( [nama variabel] ) { case [nilai1]: [statement]; break; case [nilai2]: [statement]; break; } 7. Operasi logika dan biner * Logika AND :&& NOT : ! OR : || * Biner AND : & OR : | XOR : ^ Shift right: >> Shift left : = * Lebih kecil : < * Lebih kecil sama dengan :