Anda di halaman 1dari 16

PERCOBAAN 4

KOMUNIKASI USART
Bagas Yuda Ananda (119130102)
Asisten : Shovyana Wulan Tika (13117007)
Tanggal Percobaan : 01/05/2021
EL2209_A-10_Praktikum_Sistem_Mikroprosesor
Laboraturium Teknik Elektro
Institut Teknologi Sumater

Abstrak – pada praktikum kali ini tentang USART, BAB II


yang mana pada percobaan nya menampilkan karakter LANDASAN TEORI
huruf atau pun kata dalam hyper terminal. Pada
percobaan yang pertama melakukan percobaan USART(Universal Synchronous Asynchronous
menampilkan karakter huruf yang diinginkan, lalu Receiver/Transmitter)
pada percobaan kedua menampilkan suatu kata pada
hyper terminal dan percobaan yang ketiga USART Pada transimi sinkron (USART) pengirim
menampilkan suatu kata dengan menggunakan akan mengirimkan clock / timing signal sehingga
intrupt. Pada hasilnya dapat menampilkan karakter device penerima tahu kapan membaca bit data
huruf dan kata yang dinginkan praktikan dan karakter berikutnya. Transimisi asinkron (UART) mengijinkan
dan kata tersebut sesuia dengan yang dinginkan pengirim tidak memberikan clock sinyal pada
praktikan. penerima, sebagai gantinya untuk memulai transmisi
pengirim mengirimkan start bit pada tiap byte data
Kata Kunci – Usart, ubrr yang dikirimkan dan diakhiri dengan stop bit.
Komunikasi dengan menggunakan USART dapat
BAB I dilakukan dengan dua cara yaitu dengan mode sinkron
PENDAHULUAN dimana pengirim data mengeluarkan pulsa/clock
untuk sinkronisasi data, dan yang kedua dengan mode
Penambahan komponen pada mikroprosesordapat
asinkron, dimana pengirim data tidak mengeluarkan
menjadi kebutuhan hardware designer oleh karena itu,
pulsa/clock, tetapi untuk proses sinkronisasi
Praktikan akan mempelajari bagaimana mengatur
memerlukan inisialisasi, agar data yang diterima sama
tranfer data (kecepatan) pada mikroprosesor dan
dengan data yang dikirimkan. Pada proses inisialisasi
komponen yang diberikan. USART ini akan menjadi
ini setiap perangkat yang terhubung harus memiliki
register yang mengatur hal tersebut. Pada praktikum
baud rate (laju data) yang sama. Pada mikrokontroler
ini juga kita akan melakukan percobaan komunikasi
AVR untuk mengaktifkan dan mengeset komunikasi
usart.
USART dilakukan dengan cara mengaktifkan
Lalu adapun tujuan dari praktikum ini adalah : register2 yang digunakan untuk komunikasi USART.

1. Praktikan mampu memahami cara


melakukan inisialisasi pada komunikasi
serial USART mikrokontroler
2. Praktikan mampu membuat program untuk
mengirim suatu karakter dari mikrokontroler
AVR ke komputer
3. Mampu membuat program untuk menerima
suatu karakter dari komputer
USART Pada transimi sinkron (USART) pengirim antara device satu dengan yang lainnya. Sebagai
akan mengirimkan clock / timing signal sehingga contoh komunikasi antara sesama mikrokontroler atau
device penerima tahu kapan membaca bit data mikrokontroler ke PC. Dalam pengiriman data, clock
berikutnya. Transimisi asinkron (UART) mengijinkan antara pengirim dan penerima harus sama karena
pengirim tidak memberikan clock sinyal pada paket data dikirim tiap bit mengandalkan clock
penerima, sebagai gantinya untuk memulai transmisi tersebut. Inilah salah satu keuntungan model
pengirim mengirimkan start bit pada tiap byte data asynchronous dalam pengiriman data karena dengan
yang dikirimkan dan diakhiri dengan stop bit. hanya satu kabel transmisi maka data dapat
Komunikasi dengan menggunakan USART dapat dikirimkan. Berbeda dengan model synchronous yang
dilakukan dengan dua cara yaitu dengan mode sinkron terdapat pada protokol SPI (Serial Peripheral
dimana pengirim data mengeluarkan pulsa/clock Interface) dan I2C (Inter-Integrated Circut) karena
untuk sinkronisasi data, dan yang kedua dengan mode protokol membutuhkan minimal dua kabel dalam
asinkron, dimana pengirim data tidak mengeluarkan transmisi data, yaitu transmisi clock dan data. Namun
pulsa/clock, tetapi untuk proses sinkronisasi kelemahan model asynchronous adalah dalam hal
memerlukan inisialisasi, agar data yang diterima sama kecepatannya dan jarak transmisi. Karena semakin
dengan data yang dikirimkan. Pada proses inisialisasi cepat dan jauhnya jarak transmisi membuat paket-
ini setiap perangkat yang terhubung harus memiliki paket bit data menjadi terdistorsi sehingga data yang
baud rate (laju data) yang sama. Pada mikrokontroler dikirim atau diterima bisa mengalami error.
AVR untuk mengaktifkan dan mengeset komunikasi
USART dilakukan dengan cara mengaktifkan BAB III
register2 yang digunakan untuk komunikasi USART. METODOLOGI

A. Alat dan Bahan


1. Laptop atau PC
2. Software Proteus
3. Software CV AVR

UART (Universal Asynchronous B. Diagram Alir


Receiver/Transmitter)
Percobaan mengirim data karakter ke PC
UART atau Universal Asynchronous Receiver-
Transmitter adalah bagian perankat keras yang
menerjemahkan antara bit – bit paralel data dan bit-bit
Persiapkan semua software
serial. UART biasanya berupa sirkuit terintegrasi yang yang digunakan
digunakan untuk komunikasi serial pada komputer
atau port seria perangkat periperal. UART sekarang
ini termasuk di dalam beberapa mikrokontroller.

Struktur UART Atur spesipikasi terminal


Sebuah clock generator, biasanya kelipatan dari bit dengan yang ada dalam modul
rate untuk memungkinkan pengambilan sampel di
tengah bit.
• Input dan Output pergeseran register
• kontrol mengirim / menerima
• Kontrol logika untuk membaca / menulis Jalankan sesuai dengan
• Kirim / menerima buffer (opsional) codingan
• Paralel data bus buffer (opsional)
•Pertama-in, first-out (FIFO) memori
(opsional)

UART atau Universal Asynchornous Receiver


Transmitter adalah protokol komunikasi yang umum Buat flowchatnya
digunakan dalam pengiriman data serial
Percobaan mengirim bebrapa kata ke PC BAB IV
HASIL DAN ANALISI

Lalukan persiapan seperti 1. Percobaan mengirim data karakter ke PC


percobaan 1

Jalankan program sesuai dengan


coding nya

Jika berhasil maka hyper terminal


akan menampikan karakter huruf

Pada percobaan yang pertama ini dengan rangkaian


Buat flowchatnya
yang seperti pasda gambar di atas, yang mana akan
dilakukan suatu program untuk menampilkan suatu
karkter huruf yang bila di tekan tombol reset akan
Percobaan menerima data menggunakan sistem menampilkan karkter huruf yang di deklarasikan
interupt melalui codingan yang telah ada pada modul. Pada
rangkaian nya IC atmega 8535 yang dihubungkan
dengan virtual terminal yang mana pada bagian TXD
Lakukan persiapan seperti di hubungkan pada RXD, dan bagian RXD ke bagian
percobaan 1 TXD nya, lalu bagian reset di hubungkan dengan
yombol button yang di hubungkan dengan power
resistor, capasitor dan juga ground.

2. Percobaan mengirim suatu kata ke PC


Hubungkan port LCD
dengan pin mikrokontroler

Jalankan sesuai dengan


codingan

Buat flowchatnya
Pada percobaan ini rangkaian nya masih sama persis
dengan percobaan pertama tadi, bedanya hanya pada
codingan dan tujuan dari program ini saja. Pada
percobaan ini du lakukan program untuk
menampilkan suatu kata yang akan dikirim kedalam
suatu IC sehingga muncul pada virtual terminal yang
telah di hubungkan tadi. Susunan dari rangkain ini
pun masih saya seperti yang percobaan 1.

3. Percobaan menerima data dengan


menggunakan sitem interupt

Pada percobaan ini memiliki perbedaan dengan BAB V


percobaan pertama dan juga kedua, yang mana pada KESIMPULAN
percobaan ini di berikan tambahan sebuah layar LCD
sebagai keluaran yang akan di amati nantinya. LCD Kesimpulan dari praktikum ini adalah :
ini di hubungkan dengan PORTA pada atmega 8535
sehingga menjadikan PORTA sebagi output badi 1. Dalam menginisialisasi harus mengetahui
percobaan ini. pada percobaan ini akan dilakukan mode apa yang ingin digunakan
ketika praktikan menekan keyboard akan muncul kata 2. Antara rangkaian dengan codingan harus
yang diketkan pada layar LCD tadi tapi hanya sebata sesuai sehingga program dapat berjalan baik
hanya 8 karakter huruf aja tidak lebih. 3. Dalam mengirim data karakter atau kata
harus menginisialisasi virtual terminal dan
Flowchart : tombol nya

DAFTAR PUSTAKA

Heryanto. (2008). Pemrograman Bahasa C untuk


mikrokontroler atmega 8535. Yogyakarta: Andi.

Syahrin. (2013). Sekilas tentang interupsi pada


mikrokontroler. jakarta.

Modul Praktikum Sistem Mikroprosesor Teknik


Elektro Institut Teknologi Sumatera
LAMPIRAN

Link video percobaan Modul 4 : https://youtu.be/WGGrvPC2_sE

Codingan semua percobaan :


Percobaan 1:

#include <mega8535.h>

#include <stdio.h>

void main(void)

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0x00; //USART baud rate 9600bps

UBRRL=0X19; //Kristal 4MHz

putchar('A'); //Kirim karakter ‘A’

UDR='B'; //Kirim karakter ‘B’

Percobaan 2 :

#include <mega8535.h>

#include <string.h>

#include <stdio.h>

flash unsigned char string1[] = { " PRAKTIKUM " };

flash unsigned char string2[] = { " SISTEM " };

flash unsigned char string3[] = { " MIKROPROSESOR " };

void main(void){

unsigned char i;

//Inisialisasi USART

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0x00; //USART Baud rate: 9600 bps


UBRRL=0x19;

for(i=0; i<strlenf(string1)-1; i++){

UDR=string1[i];

while(UCSRA.5!=1); //Tunggu UDR siap menerima data

for(i=0; i<strlenf(string2)-1; i++){

putchar(string2[i]);

putsf(string3);

Percobaan 3 :

#include <mega8535.h>

#include <delay.h>

#include <stdio.h>

#define RS PORTD.5

#define RW PORTD.6

#define E PORTD.7

#define PORT_DATA PORTA //Sebagai port biderectional

#define DDR_DATA DDRA

#define PIN_DATA PINA

unsigned char dataLCD;

void kirim_perintah_lcd (void){

DDR_DATA=0xFF; //Sebagai output

RS=0;

RW=0;

E=1; //Sinyal chip enable

PORT_DATA=dataLCD;

E=0;

void tulis_data_ram_lcd (void){


DDR_DATA=0xFF;

RS=1;

RW=0;

E=1;

PORT_DATA=dataLCD;

E=0;

void lcd_ready (void){

dataLCD=0x80;

while(dataLCD & 0x80){

DDR_DATA=0x00; //Sebagai input

PORT_DATA=0x00; //Matikan internal pull-up

RS=0;

RW=1;

E=1;

#asm("nop"); //Sinkronisasi pin

dataLCD=PIN_DATA;

E=0;

void init_lcd (void){ //Inisialisasi LCD

delay_ms(20);

dataLCD=0x30; //Func set interface 8 bit

kirim_perintah_lcd();

delay_ms(5);

dataLCD=0x30;

kirim_perintah_lcd();

delay_us(150);

dataLCD=0x30;

kirim_perintah_lcd();
delay_us(50);

dataLCD=0x38;

kirim_perintah_lcd();

lcd_ready();

dataLCD=0x04;

kirim_perintah_lcd(); //Display off

lcd_ready();

dataLCD=0x01;

kirim_perintah_lcd(); //Display clear

lcd_ready();

dataLCD=0x06;

kirim_perintah_lcd();

lcd_ready();

dataLCD=0x0C;

kirim_perintah_lcd();

lcd_ready();

unsigned char i;

//Interrupt Service Routine

interrupt [USART_RXC] void usart_rx_complete(void){

dataLCD=UDR;

tulis_data_ram_lcd();

lcd_ready();

i++;

if(i==8){ //Jika sudah 8 karakter

dataLCD=0x80; //Pindah kursor ke baris 1

kirim_perintah_lcd();

lcd_ready();

i=0;

}
}

void main (void){

//unsigned char i;

DDRD=0xFF;

PORTD=0x1C;

init_lcd();

//Inisialisasi USART

UCSRA=0x00;

UCSRB=0x98; //RX complete interrupt enable

UCSRC=0x86;

UBRRH=0x00; //USART baud rate: 9600 (4MHz)

UBRRL=0x19;

i=0;

#asm("sei");

Anda mungkin juga menyukai