Anda di halaman 1dari 28

LAPORAN HASIL PRAKTIKUM

MICROCONTROLLER DAN INTERFACING

Menampilkan Data ADC Pada


7Segment Berdasarkan Nilai Potensio
10K dan LDR Menggunakan Atmega16

Instruktur:

Ir. Azam Muzakhim Imammuddun, MT

Disusun oleh:
Indra Bayu Winardi (1331130027)

Kelas TT 2B

PROGRAM STUDI TEKNIK TELEKOMUNIKASI

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI MALANG

2014
Daftar Isi

DASAR TEORI ...................................................................................................... 3


A. Mikrokontroler ATMEGA16 ......................................................................... 3

A.1 Arsitektur ATmega 16 .............................................................................. 3

B. 7Segment ........................................................................................................ 6

B.1 Konsep dan struktur tampilan ................................................................... 6

B.2 Cara kerja .................................................................................................. 6

C. Potensiometer ................................................................................................. 7

D. LDR (Light Dependent Resistor) ................................................................... 8

E. Algoritma Program ......................................................................................... 9

F. Flowchart Program ........................................................................................ 10

G. Listing Program ............................................................................................ 11

H. Program dan penjelasannya .......................................................................... 15

H.1. Program 1 ............................................................................................... 15

H.2. Program 2 ............................................................................................... 16

I. Tampilan Hasil Pada Software Proteus .......................................................... 18

1. Tampilan hasil program pada proteus yang menggunakan potensio 10k .. 18

2. Tampilan hasil program pada proteus yang menggunakan LDR. ............. 21

J. Tampilan hasil praktek................................................................................... 22

1. Tampilan hasil praktek yang menggunakan Potensio 10k......................... 22

2. Tampilan hasil praktek yang menggunakan LDR. .................................... 26

PENUTUP ............................................................................................................. 28
A. Analisis ......................................................................................................... 28

B. Kesimpulan ................................................................................................... 28

2
DASAR TEORI

A. Mikrokontroler ATMEGA16
Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih
(chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah
terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory),
beberapa bandar 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
beserta komponen kendali lainnya. Berbeda dengan mikroprosesor,
mikrokontroler menyediakan memori dalam serpih yang sama dengan
prosesornya (in chip).
A.1 Arsitektur ATmega 16
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).
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 Bandar A, Bandar B, Bandar C, dan Bandar D.
4. CPU yang terdiri dari 32 buah register.
5. User interupsi internal dan eksternal
6. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial

3
7. Fitur Peripheral
Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode
compare.
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare
dan mode capture.
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.

4
Gambar 2.1 Blok diagram ATMega16

5
B. 7Segment
Layar tujuh segmen (bahasa
Inggris: Seven-segment display (SSD))
adalah salah satu perangkat layar untuk
menampilkansistem angka desimal yang
merupakan alternatif dari layar dot-matrix.
Layar tujuh segmen ini seringkali digunakan
pada jam digital, meteran elektronik, dan
perangkat elektronik lainnya yang
menampilkan informasi numerik.[1] Ide
mengenai layar tujuh segmen ini sudah cukup tua. Pada tahun 1910 misalnya, sudah
ada layar tujuh segmen yang diterangi oleh lampu pijar yang digunakan pada panel
sinyal kamar ketel suatu pembangkit listrik.
B.1 Konsep dan struktur tampilan
Tujuh bagian dari layar dapat dinyalakan
dalam bermacam-macam kombinasi untuk
menampilkan angka Arab. Sering ketujuh segmen
tersebut disusun dengan kemiringan tertentu, untuk
memudahkan pembacaan. Pada sebagian besar
penerapannya, ketujuh segmen ini memiliki bentuk
dan ukuran yang hampir seragam
(biasanya segienam panjang, walaupun trapesium
dan persegi panjang juga dapat digunakan.
B.2 Cara kerja
Layar tujuh segmen ini terdiri dari 7 buah LED yang membentuk angka 8
dan 1 LED untuk titik/DP. Angka yang ditampilkan di seven segmen ini dari 0-9.
Cara kerja dari seven segmen disesuaikan dengan LED. LED merupakan
komponen diode yang dapat memancarkan cahaya. kondisi dalam keadaan ON
jika sisi anode mendapatkan sumber positif dari Vcc dan katode mendapatkan
sumber negatif dari ground.

6
C. Potensiometer
Potensiometer adalah resistor tiga terminal
dengan sambungan geser yang membentuk pembagi
tegangan dapat disetel. Jika hanya dua terminal yang
digunakan (salah satu terminal tetap dan terminal
geser), potensiometer berperan sebagai resistor
variabel atau Rheostat. Potensiometer biasanya
digunakan untuk mengendalikan peranti elektronik
seperti pengendali suara pada penguat. Potensiometer
yang dioperasikan oleh suatu mekanisme dapat digunakan sebagai transduser,
misalnya sebagai sensor joystick.
1. Elemen resistif
2. Badan
3. Penyapu (wiper)
4. Sumbu
5. Sambungan tetap
6. Sambungan penyapu
7. Cincin
8. Baut
9. Sambungan tetap
Potensiometer jarang digunakan untuk mengendalikan daya tinggi (lebih
dari 1 Watt) secara langsung. Potensiometer digunakan untuk menyetel taraf
isyarat analog (misalnya pengendali suara pada peranti audio), dan sebagai
pengendali masukan untuk sirkuit elektronik. Sebagai contoh, sebuah peredup
lampu menggunakan potensiometer untuk menendalikan pensakelaran
sebuah TRIAC, jadi secara tidak langsung mengendalikan kecerahan lampu.

7
D. LDR (Light Dependent Resistor)
LDR singkatan dari Light Dependent Resistor adalah resistor yang nilai
resistansinya berubah-ubah karena adanya intensitas cahaya yang diserap. LDR
juga merupakan resistor yang mempunyai koefisien temperature negative, dimana
resistansinya dipengaruhi oleh intrensitas cahaya. LDR dibentuk dari cadium
Sulfied (CDS) yang mana CDS dihasilkan dari serbuk keramik. Secara umum,
CDS disebut juga peralatan photo conductive, selama konduktivitas atau resistansi
dari CDS bervariasi terhadap intensitas cahaya. Jika intensitas cahaya yang
diterima tinggi maka hambatan juga akan tinggi yang mengakibatkan tengangan
yang keluar juga akan tinggi begitu juga sebaliknya disinilah mekanisme proses
perubahan cahaya menjadi listrik terjadi.
CDS tidak mempunyai sensitivitas yang sama pada tiap panjang
gelombang dari ultraviolet sampai dengan infra merah. Hal tersebut dinamakan
karakteristik respon spectrum dan diberikan oleh pabrik. CDS banyak digunakan
dalam perencanaan rangkaian bolak-balik (AC) dibandingkan denagn photo
transistor dan photo dioda.

a. Karakteristik LDR b. Simbol LDR

8
E. Algoritma Program
1. Inisialisasi Port
- PA = input
- PC = output (7 segmen)
2. Start ADC
3. Baca data ADC
4. Tampilkan pada 7Segment

9
F. Flowchart Program

10
G. Listing Program
#include <mega16.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x60

unsigned char pot,i,RATUSAN,PULUHAN,SATUAN;


unsigned seg[10] = {0XC0, 0XF9, 0XA4, 0XB0, 0X99, 0X92, 0X82, 0XF8,
0X80, 0X90};
unsigned nama[5]={0xcf,0xab,0xa1,0xce,0x20};
unsigned tgl[10]={0xa4,0xc0,0xbf,0xc0,0xa4,0xbf,0xf9,0x90,0x90,0x12};
unsigned nim[10]={0xf9,0xb0,0xb0,0xf9,0xf9,0xb0,0xc0,0xc0,0xa4,0x78};
unsigned nohp[12] = {0xc0, 0x80, 0xf8, 0x80, 0x92, 0x90, 0x92, 0x82, 0xa4,
0x80, 0x90, 0x40};
unsigned kls[8]={0xf9,0x99,0xbf,0x87,0x87,0xbf,0xa4,0x03};
unsigned char read_adc(unsigned char adc_input){
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
void main(void){
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0xFF;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;

11
TCNT0=0x00;

OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SPCR=0x00;
TWCR=0x00;

while (1)
{
pot=read_adc(0);
RATUSAN=pot/100;
PULUHAN=(pot%100)/10;

12
SATUAN=pot%10;
PORTC=seg[RATUSAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(500);
PORTC=seg[PULUHAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(500);
PORTC=seg[SATUAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(1000);

if(pot>=0 && pot<=50){


for(i=0;i<5;i++){
PORTC=nama[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(pot>=51 && pot<=100){


for(i=0;i<10;i++){
PORTC=tgl[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(pot>=101 && pot<=150){


for(i=0;i<10;i++){

13
PORTC=nim[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(pot>=151 && pot<=200){


for(i=0;i<12;i++){
PORTC=nohp[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(pot>=201 && pot<=255){


for(i=0;i<8;i++){
PORTC=kls[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

}
}

14
H. Program dan penjelasannya
H.1. Program 1
#include <mega16.h>
#include <delay.h>
unsigned char i;
unsigned char nama[5] = {0xcf, 0xab, 0xa1, 0xce, 0x20};

Pada program diatas terdapat #include<mega16.h> yang merupakan file


header untuk komponen atmega 16.Dan file header #include<delay.h>
digunakan untuk waktu display pada seven segment. Program unsigned char
merupakan tipe data, i merupakan variable tipe data dari unsigned char.
unsigned nama[20] merupakan tipe data, nama adalah variabel dan 20 adalah
banyaknya data array yang di pesan. Setelah itu data array di konversi menjadi
data heksa. Misalnya kita ingin mendisplaykan angka 1 pada 7segment maka data
hasil konversi adalah 0x09.

Beri logika nol pada huruf led yang ingin di nyalakan, dan lainnya di
beri logika satu agar mati. Beri 0x untuk awalan data hasil konversi. Berikut
adalah data hasil konversi.

15
H.1.1 Tabel hasil konversi
Kaki 7 Segment
Data Hexsa
Output 7 segment h g f e d c b a
I 1 1 0 0 1 1 1 1 0xcf
n 1 0 1 0 1 0 1 1 0xab
d 1 0 1 0 0 0 0 1 0xa1
r 1 1 0 0 1 1 1 0 0xce
a. 0 0 1 0 0 0 0 0 0x20

H.2. Program 2
pot=read_adc(0);
RATUSAN=pot/100;
PULUHAN=(pot%100)/10;
SATUAN=pot%10;
PORTC=seg[RATUSAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(500);
PORTC=seg[PULUHAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(500);
PORTC=seg[SATUAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(1000);

if(pot>=0 && pot<=50){


for(i=0;i<5;i++){
PORTC=nama[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

16
Scrip pot=read_adc(0); berfungsi untuk membaca ADC dan (0)
digunakan untuk memilih chanel dikaki ATmega 16 pada port A. Scrip
RATUSAN=pot/100; PULUHAN=(pot%100)/10; SATUAN=pot%10; adalah
rumus untuk mencari nilai ratusan, puluhan dan satuan.
Berikut scrip untuk menampilkan nilai ADC dari rumus diatas :
PORTC=seg[RATUSAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(500);

PORTC=seg[PULUHAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(500);

PORTC=seg[SATUAN];
delay_ms(500);
PORTC=0XFF;
delay_ms(1000);

Scrip berikut adalah scrip untuk menampilkan nama jika nilai pot = 0-50.
if(pot>=0 && pot<=50){
for(i=0;i<5;i++){
PORTC=nama[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500); }}

Scrip for(i=0;i<5;i++){ adalah perulangan dimulai dari 0 sampai


kurang dari 5. PORTC=nama[i]; untuk input program dari atmega16 port c
agar outputnya ditampilkan di 7segment sesuai program. Scrip delay_ms(500);
digunakan untuk waktu tunda. PORTC=0xff; agar lampu pada 7segment mati
semua.

17
I. Tampilan Hasil Pada Software Proteus
1. Tampilan hasil program pada proteus yang menggunakan potensio 10k
Rangkaian pada Software Proteus yang menggunakan potensio 10k :

18
1. Menampilkan Nama jika hasil ADC = 0-50.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

2. Menampilkan Tanggal Lahir jika hasil ADC = 51-100.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

3. Menampilkan NIM jika hasil ADC = 101-150.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

19
4. Menampilkan Nomor Handphone jika hasil ADC = 151-200.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

5. Menampilkan Nomor Absen dan Kelas jika hasil ADC = 200-255.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

20
2. Tampilan hasil program pada proteus yang menggunakan LDR.
Rangkaian pada Software Proteus yang menggunakan LDR :

Menampilkan hasil yang sama dengan potensio jika :


1. Nilai hasil ADC = 0-50 akan menampilkan Nama.
2. Nilai hasil ADC = 51-100 akan menampilkan Tanggal Lahir.
3. Nilai hasil ADC = 101-150 akan menampilkan NIM.
4. Nilai hasil ADC = 151-200 akan menampilkan Nomor Handphone.
5. Nilai hasil ADC = 201-255 akan menampilkan Nomor Absen dan Kelas.

21
J. Tampilan hasil praktek
1. Tampilan hasil praktek yang menggunakan Potensio 10k.
a. Nilai hasil ADC = 0-50 akan menampilkan Nama.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

b. Nilai hasil ADC = 51-100 akan menampilkan Tanggal Lahir.

22
Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

c. Nilai hasil ADC = 101-150 akan menampilkan NIM.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

23
d. Nilai hasil ADC = 151-200 akan menampilkan Nomor Handphone.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

24
e. Nilai hasil ADC = 201-255 akan menampilkan Nomor Absen dan Kelas.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari potensio.

25
2. Tampilan hasil praktek yang menggunakan LDR.
a. Nilai hasil ADC = 0-50 akan menampilkan Nama.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari LDR.

b. Nilai hasil ADC = 51-100 akan menampilkan Tanggal Lahir.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari LDR.

c. Nilai hasil ADC = 101-150 akan menampilkan NIM.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari LDR.

26
d. Nilai hasil ADC = 151-200 akan menampilkan Nomor Handphone.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari LDR.

e. Nilai hasil ADC = 201-255 akan menampilkan Nomor Absen dan Kelas.

Catatan : Tiga digit pertama menampilakan nilai hasil ADC dari LDR.

27
PENUTUP

A. Analisis
Faktor-faktor yang mempengaruhi dalam praktikum Mikrokontroller dan
Intefacing :

Pada program :

1. Pemberian {} kurung kurawa yang kurang.


2. Format perulangan yang tidak sesuai.
3. Pemesanan array yang kurang dengan data (nama dan tanggal).
4. Format untuk program array yang sering salah.
5. Kurang ; titik koma untuk pembatas tiap-tiap program
Pada PCB (praktek) :

1. Hasil penyolderan yang kurang baik.


2. Terjadi shot antar komponen.
3. Atmega16 terkena dampak fuse bits.
4. Kabel blackhoussing kurang baik.
5. 7segment yang rusak.

B. Kesimpulan
Dari semua pembahasan beberapa kesimpulan antara lain adalah sebagai
berikut :

1. Ketelitian pada program atmega16 harus baik.


2. Penyolderan harus lebih ditingkatkan.
3. Atmega16 akan berfungsi jika diberi program terlebih dahulu.
4. Atmega16 mempunyai 4 port, setiap port terdiri dari 8 pin.
5. 4 port tersebut dapat difungsikan sebagai input atau output.
6. 7segmen Common Anoda agar menyala diberi output 0.
7. Potensiometer dapat diubah nilainya, dan nilai tersebut dapat
mempengaruhi nilai ADC dari atmega16.
8. Nilai minimum potensiometer (0) maka nilai ADCnya adalah 000.
Nilai maksimal potensiometer (10k) maka nilai ADCnya adalah 255.
9. Kepekaan LDR dapat disetting dengan menggunakan resistor.

28