Saturday, 11 July 2015

Komunikasi Data Serial (Pengiriman multi karakter)

Salam Kapasitor!!
Apa kabar semua??!! semoga diminggu terakhir bulan ramadhan kita semua masih diberikan kesehatan dan nikmat berkah dari Allah Swt aamiin
Langsung saja, pada kesempatan kali ini kita akan membahas bagaimana cara melakukan pengiriman data atau karakter dalam komunikasi serial karena biasanya kita cuma mengirimkan data satu persatu. Sama seperti tutorial mengenai Komunikasi Serial Antar 2 Mikrokontroller , pada bahasan kali ini kita menggunakan rangkaian simulasi yang sama dan setting yang sama pada USART. Maka saya anggap teman - teman semua udah mengetahuinya. Oleh karena itu untuk postingan kali ini, saya langsung ke bagian pemrogramannya saja.


Berikut source code masternya :


  1. #include <mega8535.h>

  2. // Alphanumeric LCD Module functions
  3. #asm
  4.    .equ __lcd_port=0x15 ;PORTC
  5. #endasm
  6. #include <lcd.h>

  7. // Standard Input/Output functions
  8. #include <stdio.h>

  9. #include <delay.h>

  10. char get_RX;
  11. char data[20];

  12. // Declare your global variables here

  13. void main(void)
  14. {

  15. // USART initialization
  16. // Communication Parameters: 8 Data, 1 Stop, No Parity
  17. // USART Receiver: On
  18. // USART Transmitter: On
  19. // USART Mode: Asynchronous
  20. // USART Baud Rate: 9600
  21. UCSRA=0x00;
  22. UCSRB=0x18;
  23. UCSRC=0x86;
  24. UBRRH=0x00;
  25. UBRRL=0x47;


  26. // LCD module initialization
  27. lcd_init(16);

  28. while (1)
  29.       {

  30.         printf("Abdi Prasetyo");
  31.         putchar('\n');

  32.       };

dan berikut untuk source code yang slave :



  1. #include <mega8535.h>  
  2. #include <delay.h>

  3. // Alphanumeric LCD Module functions
  4. #asm
  5.    .equ __lcd_port=0x15 ;PORTC
  6. #endasm
  7. #include <lcd.h>

  8. // Standard Input/Output functions
  9. #include <stdio.h>   

  10. int i;
  11. char data[16];
  12. char RX;


  13. // Declare your global variables here

  14. void main(void)
  15. {

  16. // USART initialization
  17. // Communication Parameters: 8 Data, 1 Stop, No Parity
  18. // USART Receiver: On
  19. // USART Transmitter: On
  20. // USART Mode: Asynchronous
  21. // USART Baud Rate: 9600
  22. UCSRA=0x00;
  23. UCSRB=0x18;
  24. UCSRC=0x86;
  25. UBRRH=0x00;
  26. UBRRL=0x47;

  27. lcd_init(16);

  28. while (1)
  29.       {
  30.       // Place your code here
  31.        i=0;
  32.        do
  33.        {                
  34.        data[i]=getchar();
  35.        i++;
  36.        }
  37.        while(data[i-1]!='\n');  

  38.        lcd_gotoxy(0,0);
  39.        lcd_puts(data);

  40.       };
  41. }    
Note : Sintaks printf(""); dapat digunakan untuk mengirimkan data seperti putchar (''); .

Dan berikut video hasil simulasinya.



Sekian tutorial kali ini.. 
semoga bermanfaat..

No comments:

Post a Comment