USART CodevisionAVR [1]: kirim data USART

Pengertian USART

USART (Universal Synchronous and Ansynchronous Serial Receiver and Transmitter) adalah protokol komunikasi serial antara PC dengan komponen elektronika lainnya, salah satunya adalah mikrokontroler. USART juga digunakan sebagai alat komunikasi antara satu mikrokontroler dengan mikrokontrol lain maupun dengan port expander.

Hal terpenting dalam komunikasi USART antara mikrokontroler (ATMega/PIC/MCS51) dengan PC adalah diperlukannya driver penghubung yaitu IC RS232 yang berfungsi mengkonversi perbedaan logic tegangan pada PC dan mikrokontroler. Hal lain yang perlu diperhatikan adalah setting baudrate dan clock yang digunakan mikrokontroler tersebut.

Sementara jika kita hanya bermaksud melakukan simulasi komunikasi PC dengan Atmega menggunakan Proteus ISIS kita dapat menggunakan virtual terminal maupun compim milik Proteus tanpa menyertakan driver max232.

Program berikut adalah contoh simulasi penggunaan USART untuk mengirimkan data jumlah penekanan tombol PINB.0 ke PC, data akan dikirimkan ke PC setelah tombol tersebut dilepas. Di sisi mikrokontroler, untuk mengecek jumlah penekanan tombol kita dapat menggunakan display led, 7 segment maupun LCD. Dengan demikian pada masing-masing perangkat receiver dan transmiter kita bisa melihat jumlah penekanan tombol yang sama.

BACA JUGA:   Bermain dengan Codevision (4) Gerbang Logika XOR dan XNOR

Program ini dibuat menggunakan Codevision 2.05 Advanced, dimana untuk setting lcd menggunakan pustaka alcd.h (alphanumeric LCD) sehingga setting port langsung dikelola oleh pustaka tersebut, untuk pengguna codevision versi standar perlu menyesuaikan sesuai setting pustaka lcd.h

Program Kirim Data USART

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Advanced

Project : kirim data USART
Version : 1.0
Date    : 5/28/2013
Author  : priyo harjiyono
Company : https://anotherorion.com
Comments: 
kirim data USART dengan codevision AVR
kirim jumlah penekanan tombol PINB.0 ke computer

Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 4.001000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/
#include <mega16.h>
#include <alcd.h>
#include <stdio.h>

void main(void)
{
 char tekan=0;  
 char buff[33];
PORTB=0x00;
DDRB=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;

ACSR=0x80;
SFIOR=0x00;

// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTA Bit 0
// RD - PORTA Bit 1
// EN - PORTA Bit 2
// D4 - PORTA Bit 4
// D5 - PORTA Bit 5
// D6 - PORTA Bit 6
// D7 - PORTA Bit 7
// Characters/line: 16
lcd_init(16);
printf("kirim data USART anotherorion.com \r");
printf("tekan tombol untuk mengirim data \r");
while (1)
      {
      // Place your code here
       if(PINB.0==1)
       {                                        
       while (PINB.0==1){} 
       tekan++;
       printf("tombol ditekan %u kali \r",tekan);
       lcd_gotoxy(0,0);
       lcd_putsf("tombol ditekan");
       lcd_gotoxy(0,1);
       sprintf(buff,"%i kali",tekan); 
       lcd_puts(buff);
       } }}

Tampilan proteus ISIS program kirim data USART menggunakan codevision sebagai berikut

BACA JUGA:   Bermain dengan Codevision AVR (5) All Seven Logic Gates

kirim data usart menggunakan codevision

5 Comments

Add a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

(Note, links and most HTML attributes are not allowed in comments)

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.