LAPORAN
LAPORAN
LAPORAN
Nama
NIM
Kelompok
Kelas
BAB I
TEORI DASAR
2.1. Mikrokontroler ATMega16
Mikrokontroler adalah sebuah sistem komputer lengkap dalam
satu chip. Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena
sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (ReadWrite Memory), beberapa port masukan maupun keluaran, dan beberapa
peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter),
DAC (Digital to Analog converter) dan serial komunikasi. Salah satu
mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR.
AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit
berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat
dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx,
ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing
kelas adalah memori, peripheral, dan fiturnya Seperti mikroprosesor pada
umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit
fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja,
register dan dekoder instruksi, dan pewaktu serta komponen kendali
lainnya. Berbeda dengan mikroprosesor, mikrokontroler menyediakan
memori dalam chip yang sama dengen prosesornya (in chip).
Arsitektur ATMega16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data, baik bus alamat maupun bus data,
sehingga pengaksesan program dan data dapat dilakukan secara
bersamaan (concurrent), adapun blog diagram arsitektur ATMega16.
Secara garis besar mikrokontroler ATMega16 terdiri dari :
1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada
frekuensi 16Mhz.
2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan
SRAM 1Kbyte
3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
4. CPU yang terdiri dari 32 buah register.
5. User interupsi internal dan eksternal
6. Port antarmuka SPI dan Port USART sebagai komunikasi serial
7. Fitur Peripheral
a. Dua buah 8-bit timer/counter dengan prescaler terpisah dan
mode compare
b. Satu buah 16-bit timer/counter dengan prescaler terpisah,
mode compare, dan mode capture
c.
d.
e.
f.
g.
Port A (PA7..PA0)
Port A berfungsi sebagai input analog pada konverter A/D. Port A
juga sebagai suatu port I/O 8-bit dua arah, jika A/D konverter tidak
digunakan. Pin - pin Port dapat menyediakan resistor internal pull-up
(yang dipilih untuk masing-masing bit). Port A output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Ketika pin PA0 ke PA7 digunakan sebagai input
dan secara eksternal ditarik rendah, pinpin akan memungkinkan arus
sumber jika resistor internal pull-up diaktifkan. Port A adalah tri-stated
manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
Port B (PB7..PB0)
Pin B adalah suatu pin I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Pin B output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, Pin B yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. Pin B adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
Port C (PC7..PC0)
Pin C adalah suatu pin I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Pin C output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pin C yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. pin C adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
Port D (PD7..PD0)
Pin D adalah suatu pin I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Pin D output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pin D yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. Pin D adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
AVCC adalah pin penyedia tegangan untuk Port A dan Konverter A/D.
ADC Multiplexer-ADMUX
REFS 0, 1 : Pemilihan tegangan referensi ADC
00 : Vref = Aref
01 : vref = AVCC dengan eksternal capasitor pada AREF
10 : vref = internal 2.56 volt dengan eksternal kapasitor pada AREF
ADLAR : Untuk setting format data hasil konversi ADC, default = 0
Baca-Tulis-Saat beroperasi
- Programming Lock untuk Keamanan Software
Fitur Peripheral
- - Dua 8-bit Timer / Counter dengan Prescalers terpisah dan
Mode Bandingkan
8 Single-ended Saluran
I / O dan Paket
- 32 Programmable I / O
- 40-pin PDIP, 44-lead TQFP, dan 44-pad QFN / MLF
Operasi Tegangan
- 2.7 - 5.5V untuk ATmega16L
- 4.5 - 5.5V untuk ATmega16
Kelas Kecepatan
- 0 - 8 MHz untuk ATmega16L
- 0 - 16 MHz untuk ATmega16
dilengkapi karakter titik (dot) yang sering dibutuhkan untuk karakter koma
atau titik pada saat menampilkan suatu bilangan. Display 7 segment terdiri
dari 7 penampil karakter yang disusun dalam sebuah kemasan sehingga
dapat menampilkan karakter angka dan karakter huruf. Terdapat 7 buah
penampil dasar dari LED (Light Emiting Diode) yang dinamakan karakter
A-F dan karakter dot. Bentuk susunan karakter penampil karakter A-F
pada display 7 segmen dapat dilihat pada gambar berikut.
Bentuk Susunan Karakter Display 7 Segment
Dari gambar diatas dapat kita ketahui bahwa LED memiliki kaki 2 buah
seperti dengan dioda yaitu kaki anoda dan kaki katoda. Pada gambar
diatas kaki anoda memiliki ciri fisik lebih panjang dari kaki katoda pada
saat masih baru, kemudian kaki katoda pada LED (Light Emitting Dioda)
ditandai dengan bagian body LED yang di papas rata. Kaki anoda dan
kaki katoda pada LED (Light Emitting Dioda) disimbolkan seperti pada
gambar diatas. Pemasangan LED (Light Emitting Dioda) agar dapat
menyala adalah dengan memberikan tegangan bias maju yaitu dengan
memberikan tegangan positif ke kaki anoda dan tegangan negatif ke kaki
katoda. Konsep pembatas arus pada dioda adalah dengan memasangkan
resistor secara seri pada salah satu kaki LED (Light Emitting Dioda).
Rangkaian dasar untuk menyalakan LED (Light Emitting Dioda)
membutuhkan sumber tegangan LED dan resistor sebgai pembatas arus
seperti pada rangkaian berikut.
Rangkaian Dasar Menyalakan LED (Light Emitting Dioda)
BAB II
FLOWCHART
START
PORTB = INPUT
PORTC = OUTPUT
PORTD = OUTPUT
IF PINB.0 == 0
NAMA
IF PINB.1 == 0
TANGGAL LAHIR
IF PINB.2 == 0
RUNNING LED
Samping ke
Tengah
IF PINB.3 == 0
RUNNING LED
Tengah ke
Samping
END
BAB IV
PROGRAM
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date
: 17/10/2014
Author : NeVaDa
Company :
Comments:
Chip type
Program type
: ATmega16
: Application
: Small
:0
: 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
int i;
//anggy
unsigned char Nama[5] = {0x88,0xC8,0x90,0x90,0x91};
//28-06-95
unsigned char TglLhr[8] = {0xA4,0x00,0xBF,0xC0,0x83,0xBF,0x90,0x92};
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
{
DDRC=0xFF;
DDRD=0xFF;
while (1)
{
// Place your code here
PORTC=0xFF;
if(PINB.0 == 0)
{ for(i=0;i<=4;i++)
{PORTC = Nama [i];
delay_ms(300);
PORTC = 0xFF;
delay_ms(300);
}
}
else if (PINB.1 == 0)
{ for(i=0;i<=7;i++)
{PORTC = TglLhr[i];
delay_ms(300);
PORTC = 0xFF;
delay_ms(300);
}
}
if(PINB.2 == 0)
{ for(i=0;i<=4;i++)
{PORTD = 0b10000001;
delay_ms(200);
PORTD = 0b01000010;
delay_ms(200);
PORTD = 0b00100100;
delay_ms(200);
PORTD = 0b00011000;
delay_ms(200);
}
}
}
}
}
else if(PINB.3 == 0)
{ for(i=0;i<=4;i++)
{PORTD = 0b00011000;
delay_ms(200);
PORTD = 0b00100100;
delay_ms(200);
PORTD = 0b01000010;
delay_ms(200);
PORTD = 0b10000001;
delay_ms(200);
}
}
BAB V
SIMULASI
Tampilan Nama
Tampilan LED
Daftar Pustaka
http://baskarapunya.blogspot.com/2012/09/dasar-teori-atmega16.html
http://elektronika-dasar.web.id/komponen/display-7-segment/
http://bagusrizal.blogspot.com/2013/04/dasar-toeri-seven-segment.html
http://elektronika-dasar.web.id/komponen/led-light-emitting-dioda/
http://desnantara.blogspot.com/2013/03/saklar-atau-switch.html