Anda di halaman 1dari 9

LAPORAN

MIKROKONTROLER
(APLIKASI ATMega8535 PADA NIM MAHASISWA)

Dosen Pembimbing
(Ir.Azam MI,MT)

Disusun Oleh: Cap Tawon

Anggarica Mudji Pratama (2A/01/0731130028)

Eko Adi Santoso (2A/06/0731130013)

Puspita Dewi Triwulandari (2A/16/0731130092)

PROGRAM STUDI TEKNIK TELEKOMUNIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2008
1. TUJUAN
-Menampilkan NIM mahasiswa pada 7 Segment dengan menggunakan ATMega 8535.
-Mengaplikasikan software Codevision AVR dengan ATMega 8535.
-Bisa mengenal hardware sekaligus membuat program nya.
- Menggunakan potensio pada program AVR
- Pengaplikasian menggunakan potensio sebagai alat batas suatu pengukuran.

2. TEORI DASAR

ADC (Analog to Digital Converter)

INISIALISASI ADC

1. Register ADMUX(ADC Multiplexer)

Mengatur tegangan referensi ADC,format data,dan saluran ADC

7 6 5 4 3 2 1 0

REFS1 RERF0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0

Bit 7:6 – REFS1:0: Reference Selection Bits

REFS1 REFS0 VREF

0 0 Pin VRef

0 1 Vcc

1 0 Not Used

1 1 2,56 V

Bit 5 – ADLAR : ADC Left Adjust Result

Untuk mengatur format penyimpanan data ADC pada register ADCL dan ADCH.

ADLAR ADCH ADCL

0 D9 – D8 D7 – D0

1 D9 – D2 D1 – D0
Bit 4:0 – MUX4:0 : Analog Channel and Gain Selection Bits

Bit – bit MUX4:0 dapat digunakan untuk menentukan pin masukan analog ADC pada
mode konversi tunggal atau untuk menentukan pin- pin masukan analog dan nilai
penguatannya (gain) pada mode penguat beda.

SINGLE END
MUX4 MUX3 MUX2 MUX1 MUX0
Input

0 0 0 0 0 ADC0

0 0 0 0 1 ADC1

0 0 0 1 0 ADC2

0 0 0 1 1 ADC3

0 0 1 0 0 ADC4

0 0 1 0 1 ADC5

0 0 1 1 0 ADC6

0 0 1 1 1 ADC7

2. ADCSRA (ADC Control and Status Register)

Management sinyal control

7 6 5 4 3 2 1 0

ADEN ADCS ADATE ADIF ADIE ADPS2 ADPS1 ADPS0

• Bit7 - ADEN (ADC Enable)

Jika bit ADEN diset 1 = ADC Aktif,

0 = ADC non Aktif

• Bit6 - ADCS

‘1’ = Saat operasi

‘0’ = Selesai operasi

• Bit5 – ADATE (ADC Auto Trigger Enable)


‘1’ = Aktif start otomatis saat tepi positif (pemicu ADC diaktifkan)

• Bit4 – ADIF (ADC Interrupt Flag)

Penanda akhir konversi

‘0’ = Belum siap dibaca

‘1’ = Siap dibaca data ADCnya

• Bit3 – ADIE (ADC Interrupt Enable)

‘0’ = Interupsi selesai belum aktif

‘1’ = Interupsi penanda telah selesai konversi ADC diaktifkan

• Bit2:0 – ADPS2:0 (ADC Prescaler Select Bits)

Digunakan untuk menetukan factor pembagi frekuensi Kristal yang kemudian hasilnya
digunakan sebagai frekuensi clock ADC.(Pengatur clock ADC).

ADPS2 ADPS1 ADPS0 Faktor Pembagi

0 0 0 2

0 0 1 2

0 1 0 4

0 1 1 8

1 0 0 16

1 0 1 32

1 1 0 64

1 1 1 128

3. SFIOR

Pengaturan sumber pemicu ADC //start ADC

ADTS2 ADTS1 ADTS0 - ACME PUD PSR2 PSR10

Bila ADATE = 0 //REG ADCSRA ADTS2 – ADTS3 tidak berfungsi


ADTS2 ADTS1 ADTS0 Sumber pemicu/start

0 0 0 Free Running Mode

0 0 1 Analisis Komparator

0 1 0 External Interupsi Request

ADATE = 1 0 1 1 Timer/counter 0 compare match

1 0 0 Timer/counter 0 over flow

1 0 1 Timer/counter 1 compare match B

1 1 0 Timer/counter 1 over flow

1 1 1 Timer/counter 1 capture event

3. GAMBAR RANGKAIAN
4. FLOW-CHART

start

inisialisasi

Start ADC

Selesai konversi

Baca ADC

portB = ADCH

Delai 200ms

Pilih nim sesuai


ADC

<100 T

<200 T
Y
Y
>200
Y
Tampilkan
0731130028
Tampilkan Y
0731130013
Tampilakan
0731130009
5. LISTING PROGRAM
#include<mega853 delay_ms(500);
5.h> PORTB=0xFF;
#include<delay.h> delay_ms(500);
void nim (unsigned char
level); PORTB=0xB0;//3
unsigned char level; delay_ms(500);
void main (void) PORTB=0xFF;
{ PORTB=0x00; delay_ms(500);
DDRB=0xff;
ADMUX=0x60; PORTB=0xC0;//0
ADCSRA=0x84; delay_ms(500);
SFIOR=0x1f; PORTB=0xFF;
while(1) delay_ms(500);
{ ADMUX=0x00|
0x60; PORTB=0xC0; //0
ADCSRA|=0x40; delay_ms(500);
while((ADCSRA&0x10)= PORTB=0xFF;
=0); delay_ms(500);
{ ADCSRA|=0x10;
level=ADCH; PORTB=0xA4;//2
nim (level); delay_ms(500);
}; PORTB=0xFF;
}; delay_ms(500);
}
void nim (unsigned PORTB=0x80;//8
char level) delay_ms(500);
{ if (level<=0x64) PORTB=0xFF;
{ //anggarica mudji pratama delay_ms(500);
PORTB=0xC0;//0 }
delay_ms(500);
PORTB=0xFF;
delay_ms(500);
else
PORTB=0xF8;//7 if((level>0x64)&&(level<=0xc
delay_ms(500); 8))
PORTB=0xFF; { //eko adi
delay_ms(500); santoso
PORTB=0xC0;//0
PORTB=0xB0;//3 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xF8;//7
PORTB=0xF9;//1 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xB0;//3
PORTB=0xF9;//1 delay_ms(500);
PORTB=0xFF; PORTB=0xFF;
delay_ms(500); delay_ms(500);

PORTB=0xF9;//1 PORTB=0xB0;//3
delay_ms(500); delay_ms(500);
PORTB=0xFF;
delay_ms(500);

PORTB=0xF9; //1
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xF9;//1
PORTB=0xB0; //3 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xF9;//1
PORTB=0xC0;//0 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xB0;//3
PORTB=0xC0;//0 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xC0;//0
PORTB=0XF9; //1 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);
PORTB=0xC0;//0
PORTB=0XB0;//3 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);

} PORTB=0X90;//9
delay_ms(500);
PORTB=0xFF;
else if (level>0xc8) delay_ms(500);
{ //puspita
dewi PORTB=0xA4;//2
PORTB=0xC0;//0 delay_ms(500);
delay_ms(500); PORTB=0xFF;
PORTB=0xFF; delay_ms(500);
delay_ms(500);

PORTB=0xF8;//7 } }
delay_ms(500);
6. ANALISIS
1. Code PORTB=0x00 menunjukkan nilai awalnya adalah “low” atau off.
2. Code DDRB=0xff menunjukkan perintah port B sebagai output .
3. Code ADMUX=0x60 menunjukkan tegangan referensinya adalah VCC dan
menunjukkan bahwa single end input adalah terletak pada pin 40 yaitu ADC0 .
4. Code ADCSRA=0x84 menunjukkan ADC dalam keadaan ON , aktif start
otomatis saat input tepi positif , juga menunjukkan penanda akhir konversi
siap dibaca data ADC nya dan juga menunjukkan pengatur clock ADC sama
dengan foc / 16.
5. Code SFIOR=0x1f menunjukkan free running MODE.
6. Code ADMUX=0x00 menandakan start konversi.
7. Code ADCSRA|=0x40 menunjukkan ADCS = 1 sehingga program harus
menunggu dahulu selesai pengkonversian.
8. Code tingkat =ADCH merepresentasikan bahwa kata “tingkat” mewakili
memori ADCH yang nantinya akan diubah - ubah dengan bahasa C
9. void nim (unsigned char level) adalah berasal bahasa C yang menunjukkan
program utama yang selanjutnya akan diisi dengan bahasa C.
10. if (level<=0x64) … dst. Adalah program yang akan menampilkan NIM jika
keadaannya terpenuhi. Keadaan tersebut adalah yaitu ketika tingkat = 64
dalam hexa atau 0110 0100 dalam biner mencatu pin 40 maka display LED
akan menunjukkan NIM 0731130028. Dan akan menunjukkan NIM
0731130013 ketika tingkat berada diantara 64 dan c8. Begitu juga akan
menunjukkan NIM 0731130092 ketika tingkat sama dengan c8.

7. KESIMPULAN

1. Microcontroller dapat difungsikan sebagai pengendali 7 segmen display dengan


cara mengatur logika dari pin-pin dari port I/O microcontroller tersebut.
2. Pemilihan keluaran / respons output dari microcontroller dapat dikendalikan dari
luar dengan cara membaca level tegangan dari masing – masing pin input.
3. Cara penulisan code untuk 7 segmen common anoda dan common katoda berbeda
hal ini dikarenakan logikan pin yang dibutuhkan untuk mengendalikan led – led
pada dua 7 segmen tersebut berbeda.
4. Microcontroller ATmega 8535 mempunyai fungsi ADC yang build in dengan chip
microcontroller tersebut.

Anda mungkin juga menyukai