Anda di halaman 1dari 21

LAPORAN

ATMega16 (NIM & Tgl Lahir) dan Running LED


MATA KULIAH
SISTEM MIKROKONTROLER DASAR
Dosen Pembimbing :
Ir. AZAM MUZAKHIM IMAMMUDDIN, MT

Nama
NIM
Kelompok
Kelas

: ANGGY PRAMANTA PUTRA


: 1341160012
:
: JTD-2C

JARINGAN TELEKOMUNIKASI DIGITAL

POLITEKNIK NEGERI MALANG


JalanSoekarno-Hatta No. 9, PO BOX 04, Malang 65141
Tel. (0341) 404424, 404425, Fax. (0341) 404420
TAHUN 2014

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.

Real time counter dengan osilator tersendiri


Empat kanal PWM dan Antarmuka komparator analog
8 kanal, 10 bit ADC
Byte-oriented Two-wire Serial Interface
Watchdog timer dengan osilator internal
BLOK DIAGRAM ATMega16

Konfigurasi Pin ATMega16


Konfigurasi pin mikrokontroler Atmega16 dengan kemasan 40.

Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 Pin untuk


masing-masing Port A, Port B, Port C, dan Port D.

Konfigurasi PIN ATMega 16 PDIP

Konfigurasi PIN ATMega 16 SMD

Deskripsi Mikrokontroler ATMega16

VCC (Power Supply) dan GND(Ground)

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.

RESET (Reset input)

XTAL1 (Input Oscillator)

XTAL2 (Output Oscillator)

AVCC adalah pin penyedia tegangan untuk Port A dan Konverter A/D.

AREF adalah pin referensi analog untuk konverter A/D.

Peta Memori ATMega16


Memori Program Arsitektur ATMega16 mempunyai dua memori
utama, yaitu memori data dan memori program. Selain itu, ATMega16
memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki
16K byte On-chip In-System Reprogrammable Flash Memory untuk
menyimpan program. Instruksi ATMega16 semuanya memiliki format 16
atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash
dibagi kedalam dua bagian, yaitu bagian program boot dan aplikasi.
Bootloader adalah program kecil yang bekerja pada saat sistem dimulai
yang dapat memasukkan seluruh program aplikasi ke dalam memori
prosesor.
Memori Data (SRAM)
Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32
register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General
purpose register menempati alamat data terbawah, yaitu $00 sampai $1F.
Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20
hingga $5F. Memori I/O merupakan register yang khusus digunakan
untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti
kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024
alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM
internal.

Peta Memori Data ATMega16


Memori Data EEPROM
ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data
dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data
terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori
ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat
EEPROM mulai dari $000 sampai $1FF.
Analog To Digital Converter
AVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan
8 saluran ADC internal dengan resolusi 10 bit. Dalam mode operasinya,
ADC dapat dikonfigurasi, baik single ended input maupun differential
input. Selain itu, ADC ATMega16 memiliki konfigurasi pewaktuan,
tegangan referensi, mode operasi, dan kemampuan filter derau (noise)
yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan
kebutuhan dari ADC itu sendiri.
ADC pada ATMega16 memiliki fitur-fitur antara lain :

AREF adalah pin referensi analog untuk konverter A/D.


Resolusi mencapai 10-bit
Akurasi mencapai 2 LSB
Waktu konversi 13-260s
8 saluran ADC dapat digunakan secara bergantian
Jangkauan tegangan input ADC bernilai dari 0 hingga VCC
Disediakan 2,56V tegangan referensi internal ADC

Mode konversi kontinyu atau mode konversi tunggal


Interupsi ADC complete
Sleep Mode Noise canceler

Proses inisialisasi ADC meliputi proses penentuan clock, tegangan


referensi, formal data keluaran, dan modus pembacaan.
Register-register yang perlu diatur adalah sebagai berikut:

ADC Control and Status Register A ADCSRA.


ADEN :
1 = adc enable, 0 = adc disable
ADCS : 1 = mulai konversi, 0 = konversi belum terjadi
ADATE : 1 = auto trigger diaktifkan, trigger berasal dari sinyal
yang dipilih (set pada trigger SFIOR bit ADTS). ADC akan start
konversi pada edge positif sinyal trigger.
ADIF : Diset ke 1, jika konversi ADC selesai dan data register terupdate. Namun ADC Conversion Complete Interrupt dieksekusi
jika bit ADIE dan bit-I dalam register SREG diset.
ADIE : Diset 1, jika bit-I dalam register SREG di-set.
ADPS[0..2]: Bit pengatur clock ADC, faktor pembagi 0 7 = 2, 4,
8, 16, 32, 64, 128.

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

Special Function IO Register-SFIOR


SFIOR merupakan register 8 bit pengatur sumber picu konversi
ADC, apakah dari picu eksternal atau dari picu internal.
ADTS[0...2] : Pemilihan trigger (pengatur picu) untuk konversi ADC,
bit-bit ini akan berfungsi jika bit ADATE pada register ADCSRA
bernilai 1.
Konfigurasi bit ADTS[0...2] : dapat dilihat pada Tabel 2.1.
ADHSM : 1. ADC high speed mode enabled.
Untuk operasi ADC, bit ACME, PUD, PSR2 dan PSR10 tidak
diaktifkan.

Pemilihan Sumber Picu ADC


Fitur :

Kinerja tinggi, rendah daya AVR 8-bit Microcontroller


Advanced RISC Arsitektur
- 131 Instruksi Powerfull - Most Single-clock Cycle Execution
- 32 x 8 Register General Purpose Working
- Operasi Statis Penuh
- Sampai dengan 16 MIPS throughput pada 16 MHz
- 2-siklus Multiplier berada pada chipnya

Ketahanan Tinggi segmen memori Non-volatile


- 16K Bytes pemograman memori flash didalam sistemnya
- 512 Bytes EEPROM
- 1K Byte internal SRAM
- Menulis / Menghapus dengan Siklus: 10.000 Flash/100, 000
EEPROM
- Data retensi: 20 tahun pada 85 C/100 tahun pada 25 C
(1)
- Boot Kode Bagian Opsional dengan Bits Lock Independen

Pemrograman didalam sistem secara On-chip Program Boot

Baca-Tulis-Saat beroperasi
- Programming Lock untuk Keamanan Software

JTAG (IEEE std 1149,1 Compliant.) Interface


- Batas-scan Kemampuan Menurut Standar JTAG
- Ekstensif On-chip Dukungan Debug
- Pemrograman Flash, EEPROM, Sekering, dan Lock Bits
melalui Antarmuka JTAG

Fitur Peripheral
- - Dua 8-bit Timer / Counter dengan Prescalers terpisah dan
Mode Bandingkan

- Satu 16-bit Timer / Counter dengan Prescaler terpisah, Mode


Bandingkan, dan Capture Mode
- Counter Real Time dengan Osilator terpisah
- Empat PWM Channels
- 8-channel, 10-bit ADC

8 Single-ended Saluran

7 Differential Saluran dalam Paket TQFP Hanya

2 Differential Saluran dengan Gain Programmable pada 1x, 10x,


atau 200x
- Byte-oriented Antarmuka Dua-kawat Serial
- Serial USART Programmable
- Master / Slave SPI Serial Interface
- Timer Programmable Watchdog On-chip dengan Oscillator
terpisah
- Komparator Analog On-chip

Fitur Khusus Mikrokontroler


- Power-on Reset dan Programmable Brown-out Detection
- RC Oscillator internal yang Dikalibrasi
- Interrupt Sumber Eksternal dan Internal
- Enam Sleep Mode: Idle, ADC Noise Reduction, Power-save,
Power-down, Standby dan siaga diperpanjang

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

Konsumsi Daya @ 1 MHz, 3V, dan 25 C untuk ATmega16L


- Aktif: 1,1 mA
- Diam Mode: 0,35 mA
- Power-down Mode: <1 p="p">

2.2. Seven Segment


Display 7 segment merupakan komponen yang berfungsi sebagai
penampil karakter angka dan karakter huruf. Display 7 segment sering
juga disebut sebgai penampil 7 ruas. Pada display 7 segment juga

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

Pada dasarnya penampil 7 segment merupakan rangkaian 7 buah dioda


LED (Light Emiting Diode). Terdapat 2 (dua) jenis rangkaian dasar dari
display 7 segment yang dikenal sebagai display 7 segment common
anoda (CA) dan common cathoda (CC). Pada display common anoda
untuk mengaktifkan karakter display 7 segment diperlukan logika low (0)
pada jalur A-F dan DP dan sebaliknya untuk display 7 segment common
cathoda (CA). Rangkaian internal display 7 segment common anoda dan
common cathoda (CC) dapat dilihat pada gambar berikut.
Rangkaian Internal Display 7 Segment Common Anoda

Rangkaian Internal Display 7 Segment Common Cathoda

Rangkaian LED seperti pada gambar diatas disusun sedemikian rupa


sehingga membentuk display 7 segment yang dapat menampilkan
karakter angka dan huruf. Karena hanya terdiri dari 7 bagian (7 ruas)
maka tampilan huruf yang dihasilkan dispaly 7 segment tidak dapat
menampilkn karakter huruf secara lengkap a-z, akan tetapi dalam aplikasi
rangkaian elektronika karakter huruf yang sering ditampilkan oleh display
7 segment adalah karakter A-F saja. Display 7 segment dapat
menamplikan karakter angka desimal 0 9 yang dapat dilihat pada
gambar berikut. Karakter Angka Pada Display 7 Segment

Dipasaran dapat dijumpai dispaly 7 segment dalam beberapa farian fisik


yang bermacam-macam. Ada yang dikemas untuk menampilkan 1
karakter angka dan ada juga yang dikemas langsung untuk menampilkan
beberapa karakter angka. Contoh bentuk display 7 segment yang dapat
dijumpai dipasaran dapat dilihat dipasaran dapat dilihat pada gambar
berikut : Contoh Bentuk Fisik Display 7 Segment

2.3. LED (Light Emitting Dioda)


LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan
cahaya pada saat mendapat arus bias maju (forward bias). LED (Light
Emitting Dioda) dapat memancarkan cahaya karena menggunakan
dopping galium, arsenic dan phosporus. Jenis doping yang berbeda diata
dapat menhasilkan cahaya dengan warna yang berbeda. LED (Light
Emitting Dioda) merupakann salah satu jenis dioda, sehingga hanya akan
mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya
apabil diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda
dengan dioda pada umumnya, kemampuan mengalirkan arus pada LED
(Light Emitting Dioda) cukup rendah yaitu maksimal 20 mA. Apabila LED
(Light Emitting Dioda) dialiri arus lebih besar dari 20 mA maka LED akan
rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai
pembatas arus. Simbol dan bentuk fisik dari LED (Light Emitting Dioda)
dapat dilihat pada gambar berikut.

Simbol Dan Bentuk Fisik LED

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)

Besarnya arus maksimum pada LED (Light Emitting Dioda) adalah 20


mA, sehingga nilai resistor harus ditentukan. Dimana besarnya nilai
resistor berbanding lurus dengan besarnya tegangan sumber yang
digunakan. Secara matematis besarnya nilai resistor pembatas arus LED
(Light Emitting Dioda) dapat ditentukan menggunakan persamaan berikut.
Dimana :
R = resistor pembatas arus (Ohm)
Vs = tegangan sumber (volt)
2 volt = tegangan LED (volt)
0,02 A = arus maksimal LED (20 mA)

2.4. Saklar atau Switch


Saklar atau switch merupakan komponen yang sangat penting
dalam suatu rangkaian elektronika ataupun rangkaian listrik. Saklar adalah
sebuah alat yang dapat menyambungkan dan memutuskan arus listrik.
Pada dasarnya saklar memiliki simbol seperti pada gambar di bawah ini :

Gambar dasar sebuah saklar


Jika dilihat gambar di atas maka saklar pada dasarnya terdiri dari dua
buah terminal yaitu terminal P (Pole atau induk) dan terminal T (Throw
atau anak) serta sebuah tuas penghubung antara kedua terminal tersebut
yang bisa di tutup / dihubung atau dibuka. Terminal Pole atau induk selalu
terhubung dengan tuas penghubung sedangkan terminal Throw atau anak
bisa dihubung dan bisa dibuka.

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

AVR Core Clock frequency: 1,000000 MHz


Memory model

: Small

External RAM size

:0

Data Stack size

: 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};

// Declare your global variables here


void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=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: 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