Upload
fiqi
View
206
Download
15
Embed Size (px)
DESCRIPTION
Komunikasi Serial pada ATmega16 Menggunakan Metode USART
Citation preview
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 10𝜇F 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 40-
pena 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, pena–pena 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 tri-
stated 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 tri-
stated 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 tri-
stated 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 h g f e d C b a HEXA
0 0 0 1 1 1 1 1 1 3FH
1 0 0 0 0 0 1 1 0 06H
2 0 1 0 1 1 0 1 1 5BH
3 0 1 0 0 1 1 1 1 4FH
4 0 1 1 0 0 1 1 0 66H
5 0 1 1 0 1 1 0 1 6DH
6 0 1 1 1 1 1 0 1 7DH
7 0 0 0 0 0 1 1 1 07H
8 0 1 1 1 1 1 1 1 7FH
9 0 1 1 0 1 1 1 1 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
0 1 1 0 0 0 0 0 0 C0H
1 1 1 1 1 1 0 0 1 F9H
2 1 0 1 0 0 1 0 0 A4H
3 1 0 1 1 0 0 0 0 B0H
4 1 0 0 1 1 0 0 1 99H
5 1 0 0 1 0 0 1 0 EDH
6 1 0 0 0 0 0 1 0 12H
7 1 1 1 1 1 0 0 0 F8H
8 1 0 0 0 0 0 0 0 10H
9 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
Output 7 segment
Kaki 7 Segment Data
Hexsa 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
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