PRAKTIKUM MIKROKONTROLER

download PRAKTIKUM MIKROKONTROLER

of 21

Transcript of PRAKTIKUM MIKROKONTROLER

PRAKTIKUM MIKROKONTROLER NIM dan SWITC

Oleh :HANIFATUL ILMIYYAH1231130004

JURUSAN TEKNIK ELEKTROPRODI TEKNIK TELEKOMUNIKASIPOLITEKNIK NEGERI MALANG2013

1. TujuanMembuat rangkaian yang mampu menampilkan 4 keadaan berbeda ke dalam LED dan 7segmen dengan menggunakan 4 buah switch yaitu PORTB0 , PORTB1, PORTB2 dan PORTB3 dengan menggunakan IC ATMega16.

2. Alat dan Bahan0. Protoboard1 buah0. AT Mega 161 buah0. Resitor 330 7 buah0. Resistor 10K watt2 buah0. Capasitor 10F/16V1 buah0. Capasitor 22 pF2 buah0. 7 Segment CA1 buah0. Kabel penghubungsecukupnya

3. Teori Dasar3.1 AtMega 16AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. ATMega16. ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.

Gambar Pin-pin AtMega16 kemasan 40-pin

Pin-pin pada ATMega16 dengan kemasan 40-pin DIP (dual inlinepackage) menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data).Konfigurasi pin ATMEGA16 dengan kemasan 40 pin Dual In-linePackage (DIP) dapat dilihat dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin ATMEGA16 sebagai berikut:1. VCC merupakan pin yang brfungsi sebagai masukan catu daya2. GND merupakanpin Ground3. Port A (PA0 PA7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin masukan ADC4. Port B (PB0 PB7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel di bawah ini.

5. Port A (PC0 PC7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel di bawah ini.

6. Port D (PD0 PD7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel di bawah ini.

7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler8. XTAL1 dan XTAL2, merupakanpin masukan external clock9. AVCC merupakan pin masukan tegangan untuk ADC10. AREF merupakan pin masukan tegangan referensi untuk ADC.

Mikrokontroler AVR ATMEGA16 memiliki tiga buah Timer/Counter:1. Timer 0 (8 bit)2. Timer 1 (16 bit) 3. Timer 2 (8 bit)

Keunggulan dari AVR ATMEGA16 antara lain:1. Mikrokontroler AVR 8 bit yang memilliki kemampuan tinggi dengan konsumsi daya rendah.2. Arsitektur RISC denganthroughput mencapai 16 MIPS pada frekuensi 16MHz. 3. MemilikikapasitasFlash memori 16 Kbyte, EEPROM 512 Byte dan SRAM 1 Kbyte.4. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D.5. CPU yang terdiri dari 32 buah register. 6. Unit interupsi dan eksternal.7. Port USART untuk komunikasi serial.8. Fitur peripheral Tiga buah Timer/Counter dengan kemampuan perbandingan (compare) Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compare. SatubuahTimer/Counter 16 bit denganPrescaler terpisah, Mode Compare dan Mode Capture. Real Time Counter dengan Oscillator tersendiri. Empat kanal PWM. 8 kanal ADC 8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10 resolusi (register ADCH dan ADCL) 7 Diferrential Channel hanya pada kemasan Thin Quad Flat Pack (TQFP) 2 Differential Channel denganProgrammable Gain Antar muka Serial Peripheral Interface (SPI) Bus Watchdog Timer dengan Oscillator Internal On-chip Analog Comparator

3.2 7Segment

Seven segment (7-segments) adalah sebuah komponen untuk menampilkan bilangan 0 sampai 9 yang banyak digunakan pada aplikasi yang memerlukan tampilan angka. 7-segments pada dasarnya adalah LED (Light Emitting Diode), yaitu diode yang dapat mengeluarkan cahaya bila diberi tegangan pada pin-nya. Gambar di disamping ini memperlihatkan gambaran tentang 7-segment yang masing-masing segment diberi notasi mulai dari a, b, c, d, e, f, dan g.

Gambar konfigurasi 7Segment.

LED tersebut terdiri dari 7 buah yang dihubungkan satu dengan lainnya. Cara menghubungkan pin pada seven segments ada 2 (dua) mode, yaitu Common Anode dan Common Katode. Common Anode adalah LED pada 7 segment semua pin anode-nya dihubungkan menjadi satu, sedangkan pin katoda dihubungkan ke port-port pada mikrokontroller. Common anode digunakan untuk rangkaian yang memerlukan aktif rendah (active low). Common katode adalah semua pin katoda pada 7 segments disatukan, sedangkan pin anoda dihubungkan ke port-port pada mikokontroller. Common katoda digunakan pada rangkaian yang memerlukan aktif tinggi (active high).

Gambar 7Segment3.3 LED

Diode pancaran cahaya (bahasa Inggris: light-emitting diode; LED) adalah suatu semikonduktor yang memancarkan cahaya monokromatik yang tidak koheren ketika diberi tegangan maju.Gejala ini termasuk bentuk elektroluminesensi. Warna yang dihasilkan bergantung pada bahan semikonduktor yang dipakai, dan bisa juga ultraviolet dekat atau inframerah dekat.

Gambar LEDSebuah LED adalah sejenis diode semikonduktor istimewa. Seperti sebuah diode normal, LED terdiri dari sebuah chip bahan semikonduktor yang diisi penuh, atau di-dop, dengan ketidakmurnian untuk menciptakan sebuah struktur yang disebut p-n junction. Pembawa-muatan - elektron dan lubang mengalir ke junction dari elektrode dengan voltase berbeda. Ketika elektron bertemu dengan lubang, dia jatuh ke tingkat energi yang lebih rendah, dan melepas energi dalam bentuk photon.Panjang gelombang dari cahaya yang dipancarkan, dan oleh karena itu warnanya, tergantung dari selisih pita energi dari bahan yang membentuk p-n junction. Sebuah diode normal, biasanya terbuat dari silikon atau germanium, memancarkan cahaya tampak inframerah dekat, tetapi bahan yang digunakan untuk sebuah LED memiliki selisih pita energi antara cahaya inframerah dekat, tampak, dan ultraungu dekat.Tak seperti lampu pijar dan neon, LED mempunyai kecenderungan polarisasi. Chip LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati chip LED. Ini menyebabkan chip LED tidak akan mengeluarkan emisi cahaya.Chip LED pada umumnya mempunyai tegangan rusak yang relatif rendah. Bila diberikan tegangan beberapa volt ke arah terbalik, biasanya sifat isolator searah LED akan jebol menyebabkan arus dapat mengalir ke arah sebaliknya.Karakteristik chip LED pada umumnya adalah sama dengan karakteristik diode yang hanya memerlukan tegangan tertentu untuk dapat beroperasi. Namun bila diberikan tegangan yang terlalu besar, LED akan rusak walaupun tegangan yang diberikan adalah tegangan maju.Pengembangan LED dimulai dengan alat inframerah dan merah dibuat dengan gallium arsenide. Perkembagan dalam ilmu material telah memungkinkan produksi alat dengan panjang gelombang yang lebih pendek, menghasilkan cahaya dengan warna bervariasi.LED konvensional terbuat dari mineral inorganik yang bervariasi, menghasilkan warna sebagai berikut: aluminium gallium arsenide (AlGaAs) - merah dan inframerah gallium aluminium phosphide - hijau gallium arsenide/phosphide (GaAsP) - merah, oranye-merah, oranye, dan kuning gallium nitride (GaN) - hijau, hijau murni (atau hijau emerald), dan biru gallium phosphide (GaP) - merah, kuning, dan hijau zinc selenide (ZnSe) - biru indium gallium nitride (InGaN) - hijau kebiruan dan biru indium gallium aluminium phosphide - oranye-merah, oranye, kuning, dan hijau silicon carbide (SiC) - biru diamond (C) - ultraviolet silicon (Si) - biru (dalam pengembangan) sapphire (Al2O3) - biruSirkuit LED dapat didesain dengan cara menyusun LED dalam posisi seri maupun paralel. Bila disusun secara seri, maka yang perlu diperhatikan adalah jumlah tegangan yang diperlukan seluruh LED dalam rangkaian tadi. Namun bila LED diletakkan dalam keadaan paralel, maka yang perlu diperhatikan menjadi jumlah arus yang diperlukan seluruh LED dalam rangkaian ini.Menyusun LED dalam rangkaian seri akan lebih sulit jika warna LED berbeda-beda, karena tiap warna LED yang berlainan mempunyai tegangan maju (Vf) yang berbeda. Perbedaan ini akan menyebabkan bila jumlah tegangan yang diberikan oleh sumber daya listrik tidak cukup untuk membangkitkan chip LED, maka beberapa LED akan tidak menyala. Sebaliknya, bila tegangan yang diberikan terlalu besar akan berakibat kerusakan pada LED yang mempunyai tegangan maju relatif rendah.Pada umumnya, LED yang disusun secara seri harus mempunyai tegangan maju yang sama atau paling tidak tak berbeda jauh supaya rangkaian LED ini dapat bekerja secara baik. Jika LED digunakan untuk indikator pada voltase lebih tinggi dari operasinya dirangkai seri dengan resistor untuk menyesuaikan arus agar tidak melampaui arus maksimum LED, kalau arus maksimum terlampau LED jadi rusakAlgoritma1) Inisialisaasi PA = outputPB = outputPC = inputPD = output2) Deklarasi unsigned char dataD, i, NAMA[5]={0x89,0x88,0xC8,0xCF};unsigned char NAMAI[7]={0xCE,0xCF,0xA1,0xC1,0x88,0xC8};3) Menampilkan 4 keadaan berbeda ke dalam LED dan 7segmen dengan menggunakan 2 buah switch yaitu PORTB.0, PORTB.1 ,PORTB.2 dan PORTB.3 dengan menggunakan IC ATMega16.4) Tampilan 1 (PINB.0 ==1 && PINB.1==0)a. NAMA ke-1 (HANI) pada 7segment yang ada pada PORT Db. NAMA ke-2 (RIDUAN) pada 7segment yang ada pada PORT Dc. Nyala lampu LED untuk menunjukkan NIM ke-1 dengan satu per satu (PORT D0-PORTD7)5) Tampilan 2 (PINB.2 ==0 && PINB.3==1)a. Nyala lampu LED bergeser dari kiri (PORTD0-PORTD7)b. Nyala lampu LED bergeser dari kanan (PORTD0-PORTD7)

4 FLOWCHART

5 PROGRAM AVR/*****************************************************This program was produced by theCodeWizardAVR V2.03.4 StandardAutomatic Program Generator Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com

Project : Version : Date : 29/09/2013Author : Company : Comments:

Chip type : ATmega16Program type : ApplicationClock frequency : 8,000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*****************************************************/

#include #include

// Declare your global variables here

void main(void){// Declare your local variables hereunsigned char dataD, i, NIM[5]={0x89,0x88,0xC8,0xCF};unsigned char NIMI[7]={0xCE,0xCF,0xA1,0xC1,0x88,0xC8};

/*****************************************************This program was produced by theCodeWizardAVR V2.03.4 StandardAutomatic Program Generator Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com

Project : Version : Date : 29/09/2013Author : Company : Comments:

Chip type : ATmega16Program type : ApplicationClock frequency : 8,000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*****************************************************/

#include #include

// Declare your global variables here

void main(void){// Declare your local variables hereunsigned char dataD, i, NIM[5]={0x89,0x88,0xC8,0xCF};unsigned char NIMI[7]={0xCE,0xCF,0xA1,0xC1,0x88,0xC8};

// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;

// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;

// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;

// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;

while (1) { // Place your code here PORTA = 0xFF; PORTD = 0x00; if (PINB.0 == 0) { for (i=0; i