Anda di halaman 1dari 27

LAPORAN HASIL PRAKTIKUM

MICROCONTROLLER DAN INTERFACING

Komunikasi Serial pada ATmega16


Menggunakan Metode USART

Nama

: Fiqi Amalia

No

: 10

NIM

: 1331130038

Kelas

: TT-2A

Mata kuliah

: Praktikum Mikrokontroller dan Interfacing

POLITEKNIK NEGERI MALANG


Jalan Soekarno-Hatta No.9, PO.BOX 04 Malang 65141, Jawa Timur
Telp. (0341) 404424, 404425, Fax. (0341) 404420
Website : www.polinema.ac.id
2014

BAB I
PENDAHULUAN

1.1

Tujuan
1) mampu membuat dan memahami pemrograman komunikasi serial pada
mikrokontroller, baik sebagai penerima atau pengirim data.
2) mampu membuat aplikasi interface sederhana dengan program Code Vision
AVR, Proteus, dan Hercules sebagai penghubung antara mikrokontroller
dengan PC secara komuikasi serial .

1.2

Alat Dan Bahan


1) ATmega16

1 buah

2) Seven segmen Anoda

1 buah

3) DB9 Female PCB

1 buah

4) Male Header 1x40

3 buah

5) 2x5 Male Header with cover

1 buah

6) Resistor 10k watt

2 buah

7) Resistor 15k watt

1 buah

8) Resistor 220k watt

1 buah

9) Resistor 330k watt

1 buah

10) Potensio 10k

1 buah

11) LDR besar

1 buah

12) Kapasitor 10F

7 buah

13) Kapasitor 33pF

2 buah

14) Kristal 12MHz

1 buah

15) Max232

1 buah

16) IC 7025

1 buah

17) Switch 2 pin

5 buah

18) Terminal screw 2 pin

1 buah

19) Socket IC 40 pin

1 buah

20) Socket IC 16 pin

1 buah

21) LED 3mm

1 buah

22) 1 pin backhousing

4 buah

23) 2 pin backhousing

4 buah

24) 4 pin backhousing

2 buah

25) 8 pin backhousing

2 buah

26) Kabel pelangi 10 pin

1 buah

27) Spacer 2mmx10mm

4 buah

BAB II
TEORI DASAR

2.1 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 Port masukan maupun keluaran, dan beberapa peripheral
seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to
Analog converter) dan serial komunikasi.

a. 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). 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

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

b. Konfigurasi Pena (PIN) Atmega16


Konfigurasi pena (pin) mikrokontroler Atmega16 dengan kemasan 40pena dapat dilihat pada Gambar 2.2. Dari gambar tersebut dapat terlihat
ATMega16 memiliki 8 pena untuk masing-masing Port A, Port B, Port C, dan
Port D.

.
c. Deskripsi Mikrokontroller 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.
Pena - pena 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 pena PA0 ke PA7 digunakan sebagai input dan secara eksternal
ditarik rendah, penapena akan memungkinkan arus sumber jika resistor
internal pull-up diaktifkan. Pena Port A adalah tri-stated manakala suatu
kondisi reset menjadi aktif, sekalipun waktu habis.
Port B (PB7..PB0)
Port B adalah suatu port I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Port B output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan
sumber. Sebagai input, pena Port B yang secara eksternal ditarik rendah
akan arus sumber jika resistor pull-up diaktifkan. Pena Port B adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
Port C (PC7..PC0)
Port C adalah suatu port I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Port C output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan
sumber. Sebagai input, pena port C yang secara eksternal ditarik rendah
akan arus sumber jika resistor pull-up diaktifkan. Pena port C adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
Port D (PD7..PD0)
Port D adalah suatu port I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Port D output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan
sumber. Sebagai input, pena port D yang secara eksternal ditarik rendah
akan arus sumber jika resistor pull-up diaktifkan. Pena Port D adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis
RESET (Reset input)
XTAL1 (Input Oscillator)
XTAL2 (Output Oscillator)
AVCC adalah pena penyedia tegangan untuk port A dan
Konverter A/D.
AREF adalah pena referensi analog untuk konverter A/D.

2.2 Seven Segment


a. Pengertian
Layar tujuh segmen (bahasa Inggris: Seven-segment display (SSD)) adalah
salah satu perangkat layar untuk menampilkan sistem angka desimal yang
merupakan alternatif dari layar dot-matrix.

b. Cara kerja
Layar tujuh segmen berbasis LED menampilkan 16 digit HEX 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.
Berdasarkan cara kerjanya, tujuh segmen dibagi menjadi 2 bagian:
common katode
Cara kerja dari seven segmen common katode akan aktif pada kondisi high "1"
dan akan off pada kondisi low "0".
ANGKA

hgf edCba

HEXA

001111 11

3FH

000001 10

06H

010110 11

5BH

010011 11

4FH

011001 10

66H

011011 01

6DH

011111 01

7DH

000001 11

07H

011111 11

7FH

011011 11

6FH

common anode
Cara kerja dari seven segmen common anode akan aktif pada kondisi
low "0" dan akan off pada kondisi high "1".
ANGKA

h g f e d c b a HEXA

1 1 0 0 0 0 0 0 C0H

1 1 1 1 1 0 0 1 F9H

1 0 1 0 0 1 0 0 A4H

1 0 1 1 0 0 0 0 B0H

1 0 0 1 1 0 0 1 99H

1 0 0 1 0 0 1 0 EDH

1 0 0 0 0 0 1 0 12H

1 1 1 1 1 0 0 0 F8H

1 0 0 0 0 0 0 0 10H

1 0 0 1 0 0 0 0 90H

2.3 Potensiometer

Potensiometer satu putaran yang umum

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.
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.
Potensiometer yang digunakan sebagai pengendali volume kadang-kadang
dilengkapi dengan sakelar yang terintegrasi, sehingga potensiometer membuka sakelar
saat penyapu berada pada posisi terendah.
Jenis-jenis potensiometer
1. Potensiometer String
2. Potensiometer linier slider
3. Potensiometer tiga terminal
4. Potensiometer membrane
5. Potensiometer digital

2.4 Sensor Cahaya LDR (Light Dependent Resistor)


Merupakan salah satu jenis resistor yang dapat mengalami perubahan
resistansinya apabila mengalami perubahan penerimaan cahaya. Besarnya nilai hambatan
pada Sensor Cahaya LDR (Light Dependent Resistor) tergantung pada besar kecilnya
cahaya yang diterima oleh LDR itu sendiri.
Simbol Dan Fisik Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) dapat digunakan sebagai :


o Sensor pada rangkaian saklar cahaya
o Sensor pada lampu otomatis
o Sensor pada alarm brankas
o Sensor pada tracker cahaya matahari
o Sensor pada kontrol arah solar cell
o Sensor pada robot line follower
Karakteristik Sensor Cahaya LDR (Light Dependent Resistor)
1. Laju Recovery Sensor
Bila sebuah Sensor Cahaya LDR (Light Dependent Resistor) dibawa
dari suatu ruangan dengan level kekuatan cahaya tertentu ke dalam suatu
ruangan yang gelap, maka bisa kita amati bahwa nilai resistansi dari LDR
tidak akan segera berubah resistansinya pada keadaan ruangan gelap tersebut
2. Respon Spektral
Cahaya LDR (Light Dependent Resistor) tidak mempunyai sensitivitas
yang sama untuk setiap panjang gelombang cahaya yang jatuh padanya (yaitu
warna). Bahan yang biasa digunakan sebagai penghantar arus listrik yaitu
tembaga, aluminium, baja, emas dan perak
Prinsip Kerja Sensor Cahaya LDR (Light Dependent Resistor)
Resistansi Sensor Cahaya LDR (Light Dependent Resistor) akan berubah
seiring den-gan perubahan intensitas cahaya yang mengenainya atau yang ada
disekitarnya. Dalam keadaan gelap resistansi LDR seki-tar 10M dan dalam
keadaan terang sebe-sar 1K atau kurang. LDR terbuat dari ba-han
semikonduktor seperti kadmium sul-fida. Dengan bahan ini energi dari cahaya
yang jatuh menyebabkan lebih banyak mua-tan yang dilepas atau arus listrik
meningkat. Artinya resistansi bahan telah men-galami penurunan.

2.5 USB TTL


USB TTL adalah kombinasi dari USB-232-1 (USB untuk Single RS232 Adapter) dan
TTL-232-1 (Port-powered RS232/TTL).

Interface introduction

VCC: +5V output

TXD: UART data output

RXD: UART data input

VSS: Controllable Power Negative

GND: GND

Connection

USB TTL

ATmega16

BAB III
PEMBAHASAN

3.1 Flowchart

3.2 Script Program

#include <mega16.h>
#include <delay.h>
#include <stdio.h>
unsigned char data,i,pot,ldr,rat,pul,sat,a,b,c;
unsigned seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
unsigned char nama[5]={0X8e,0xf9,0x98,0xf9,0xf7} ;
unsigned char nim[10]={0xF9,0xB0,0xB0,0xF9,0XF9,0xB0,0xC0,0xC0,0xb0,0x80};
unsigned char tgl[10]={0xA4,0x92,0xBF,0xc0,0x92,0xBF,0xF9,0x90,0x90,0x92};
unsignedchar no hp[12] = {0xC0, 0x80, c0x92, 0xf8, 0xb0, 0xb0, 0x99, 0xb0, 0x92, 0x92,
0xc0, 0x82};
unsigned kls[8]={0xf9,0xc0,0xbf,0x87,0x87,0xbf,0xa4,0x88};
unsigned char gelap[5]={0x90,0x86,0xc7,0x88,0x8c};
unsigned char redup[5]={0xce,0x86,0xa1,0xc1,0x8c};
unsigned char terang[6]={0x87,0x86,0xce,0x88,0xc8,0x90};

#ifndef RXB8
#define RXB8 1
#endif
#ifndef TXB8
#define TXB8 0
#endif
#ifndef UPE
#define UPE 2
#endif
#ifndef DOR
#define DOR 3
#endif
#ifndef FE
#define FE 4
#endif
#ifndef UDRE
#define UDRE 5
#endif
#ifndef RXC
#define RXC 7
#endif
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<DOR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE <= 256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif

{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index++]=data;
#if RX_BUFFER_SIZE == 256
// special case for receiver buffer size=256
if (++rx_counter == 0)
{
#else
if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
#endif
rx_buffer_overflow=1;
}}}
#ifndef _DEBUG_TERMINAL_IO_
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index++];
#if RX_BUFFER_SIZE != 256
if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#endif
#asm("cli")
--rx_counter;
#asm("sei")
return data;

}
#pragma used#endif
#include <stdio.h>
#define ADC_VREF_TYPE 0x60
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;
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;

UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;

SPCR=0x00;
TWCR=0x00;
#asm("sei")

while (1)
{
data=getchar();
delay_ms(100);

//memasukan data
pot= read_adc(0);
ldr = read_adc (1);
rat= pot/100;
pul=(pot%100)/10;
sat=(pot%10);
//membaca ADC POT dan LDR
if(data=='A'){puts("Fiqi");
for (i=0;i<4;i++){
PORTC=nama[i];
delay_ms (500);
PORTC=0xff;
delay_ms (500);}}
else if(data=='B'){puts("Jombang, 25-05-1995");
for(i=0;i<10;i++){
PORTC=tgl[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}
else if(data=='3'){puts("1331130038");
for(i=0;i<10;i++){
PORTC=nim[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}
else if(data=='4'){puts("085733435506");
for(i=0;i<12;i++){
PORTC=nohp[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(data=='5'){puts("10-tt-2a");
for(i=0;i<8;i++){
PORTC=kls[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}
a=rat+0x30;
b=pul+0x30;
c=sat+0x30;
if(data=='C'){putchar(a);putchar(b);putchar(c);puts("");
PORTC=seg[rat];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
PORTC=seg[pul];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
PORTC=seg[sat];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}
if(data=='D'){
if (ldr<75){puts("terang");
for (i=0;i<=5;i++){
PORTC=terang[i];
delay_ms (500);
PORTC=0xff;
delay_ms (500);}}
else if (ldr<150){puts("redup");
for (i=0;i<=4;i++){
PORTC=redup[i];

delay_ms (500);
PORTC=0xff;
delay_ms (500);}}
else if (ldr<255){puts("gelap");
for (i=0;i<=4;i++){
PORTC=gelap[i];
delay_ms (500);
PORTC=0xff;
delay_ms (500);
} }}

}
}

3.3 Pembahasan
a) 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.
1.1 Tabel hasil konversi
Kaki 7 Segment

Data

Output 7 segment

Hexsa

0xcf

0xab

0xa1

0xce

a.

0x20

b) Program 2
data=getchar();
delay_ms(100);
pot= read_adc(0);
ldr = read_adc (1);
rat= pot/100;
pul=(pot%100)/10;
sat=(pot%10);
Fungsi getchar(); adalah untuk memasukan karekter dari komputer ke
ATmega16 sehingga variabel data bernilai data input dari komputer. 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 (hasil konversi ke ADC).
Berikut scrip untuk menampilka nama, tanggal lahir, NIM, nomor Hp dan kelas
sekaligus mengirim data ke PC melalui scrip puts (..) :
if(data=='1'){puts("Indra.");
for (i=0;i<5;i++){
PORTC=nama[i];
delay_ms (500);
PORTC=0xff;
delay_ms (500);}}

else if(data=='2'){puts("20-02-1995.");
for(i=0;i<10;i++){
PORTC=tgl[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(data=='3'){puts("1331130027.");
for(i=0;i<10;i++){
PORTC=nim[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(data=='4'){puts("087859521890.");
for(i=0;i<12;i++){
PORTC=nohp[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}

else if(data=='5'){puts("14-tt-2b.");
for(i=0;i<8;i++){
PORTC=kls[i];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}}
Dan Scrip berikut adalah scrip untuk menampilkan hasil ADC dari potensio dan
sensor cahaya (LDR) :
a=rat+0x30;

b=pul+0x30;
c=sat+0x30;
if(data=='6'){putchar(a);putchar(b);putchar(c);puts("");
PORTC=seg[rat];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
PORTC=seg[pul];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
PORTC=seg[sat];
delay_ms(500);
PORTC=0xff;
delay_ms(500);
}

if(data=='7'){
if (ldr<125){puts("terang");
for (i=0;i<=5;i++){
PORTC=terang[i];
delay_ms (500);
PORTC=0xff;
delay_ms (500);}}
else if (ldr<200){puts("redup");
for (i=0;i<=4;i++){
PORTC=redup[i];
delay_ms (500);
PORTC=0xff;
delay_ms (500);}}
else if (ldr<255){puts("gelap");
for (i=0;i<=4;i++){
PORTC=gelap[i];
delay_ms (500);

PORTC=0xff;
delay_ms (500);
} }}
Penjelasan untuk script ADC :
Agar

PC

mampu

menampilkan

nilai

ADC

maka

ditambah

scrip

a=rat+0x30;b=pul+0x30;c=sat+0x30;. Scrip berikut bertujuan untuk menampilkan


hasil ADC pada PC putchar(a);putchar(b);putchar(c). Scrip

for(i=0;i<=4;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.

BAB IV
PENUTUP

4.1 Kesimpulan
Pada praktikum Komunikasi Serial pada ATmega16 Menggunakan Metode USART
dapat diambil kesimpulan :
1) Ketelitian pada program atmega16 harus baik.
2) Kerapian 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 input 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.
10) Rx/Tx terletak pada port ke 4 dikanal 0 dan 1.
11) ATmega16 bisa mengirim data ke komputer dan komputer bisa mengirim ke
ATmega16

LAMPIRAN

Hasil Simulasi menggunakan proteus

Hasil Simulasi menggunakan software Hercules

Keterangan warna pada gambar


diatas :

Hitam adalah kiriman


ATmega16 dari perintah
puts().

Ungu adalah inputan dari


PC yang kita ketikan.

Hijau adalah tanda untuk


koneksi sudah dibuka.

Gambar hasil praktikum pada modul MCU

Anda mungkin juga menyukai