-->

Cara Melakukan Inisialisasi pada Komunikasi Serial USART Mikrokontroler AVR (Praktikum V)



I. TUJUAN PRAKTIKUM 

  • Mampu memahami cara melakukan inisialisasi pada komunikasi serial USART Mikrokontroler AVR. 
  • Mampu membuat program untuk mengirimkan suatu karakter dari mikrokontroler AVR ke komputer. 
  • Mampu membuat program untuk menerima suatu karakter dari komputer. 

Baca Juga

Cara Melakukan Inisialisasi pada Komunikasi Serial USART Mikrokontroler AVR (Praktikum V)


    II. PENGANTAR 

    USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter ) adalah komunikasi serial anatara PC dan Mikrokontroler. USART memiliki 2 pin (RxD dan TxD) untuk Asynchronous dan 3 bit TxD, RxD, XCK untuk Synchronous.Untuk PORT yang digunakan pada USART yaitu PORTD.  Secara umum pengaturan mode syncrhronous maupun asyncrhronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja.
    Dari pengertia USART dapat disimpulkan ada dua hal yang harus diperhatikan yaitu Receiver dan Transmitter. Receiver adalah menerima Karakter dengan menggunakan fungsi “getchar()”, sedangkan Transmitteradalah mengirimkan karakter dengan menggunakan fungsi “putchar()”.


    III. PERCOBAAN

    3.1 Alat dan Bahan 



    3.2 Prosedur Percobaan 

    1)   Persiapkan alat dan bahan, pastikan semuanya bisa digunakan dengan baik.
    2)   Untuk rangkaian percobaan perhatikan gambar dibawah ini:
    3)   Buka aplikasi CVAVR, atur PORTB sebagai output kemudian PORTB dihubungkan ke LED, dan PORTA ke LCD.
    4)   Buatlah Program untuk instruksi-instruksi yang telah ditentukan.

    3.3 Rangkaian Percobaan




    IV. HASIL dan PEMBAHASAN 

    1) Mampu membuat Program untuk menerima (Receiver)  dan mengirimkan (Transmitter) suatu karakter dari komputer 

    (1) Menerima Satu Karakter 


    #include <mega8535.h>                      // library
    #include <alcd.h>                    // Alphanumeric LCD functions
    #include <stdio.h>                   // Standard Input/Output functions
    char terima;                              // Variable terima dengan type data char
    void main(void)
    {
    PORTA=0x00;                         // Inisialisasi PORTA
    DDRA=0x00;                          // menandakan PORTA sebagai input
    PORTB=0xFF;                         // Inisialisasi PORTB
    DDRB=0xFF;                           // menandakan PORTB sebagai output
    PORTC=0x00;                         // Inisialisasi PORTC
    DDRC=0x00;
    PORTD=0x00;                         // Inisialisasi PORTD
    DDRD=0x00;
    // Timer/Counter 0 initialization, Clock source: System Clock, Clock value: TimStopped
    // Mode: Normal top=0Xff, OC0 output: Disconnected
     TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    TCCR1A=0x00;                       // Timer/Counter 1 initialization
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    // Timer/Counter 2 initialization,  Clock source: System Clock, Clock value: Timer2 //Stopped, Mode: Normal top=0xFF, OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    // External Interrupt(s) initialization, INT0: Off, INT1: Off,  INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
    TIMSK=0x00;                        
    // USART initialization, USART Receiver: On,USART Transmitter: On, USART Mode: Asynchronous,  USART Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0x18;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x19;                       // TANDA BAUD RATE
    ACSR=0x80;                                      // Analog Comparator initialization
    SFIOR=0x00;
    ADCSRA=0x00;                     //ADC initialization, ADC disabled
    SPCR=0x00;                                       //SPI initialization,  SPI disabled
    TWCR=0x00;                                                 // TWI Inisialisasi, TWI disabled
    lcd_init(8);
    while (1)          {
           terima=getchar(); // karakter yang kita terima kita simpan di variable terima
           // getchar=menerima suatu karakter dan terima=variable
           if(terima==’h’)   { // jika dan jika  diterima karakter ‘h’
                PORTB.0=0;  }// output nya hidup
               else if(terima==’m’) {// maka jika dan jika terima m
                PORTB.0=1;} //outputnya mati
          }     // mengakhiri program while
    }        // mengakhiri program void main

    Hasilnya seperti gambar dibawah ini:




    Catatan : Pertama kita harus menconnectkan Terminal dengan cara pilih menu Setting kemudian pilih terminal. Setelah itu compile program diatas jika tidak ada error ketikkan pada 

     sheet yang diberi tanda panah sesuai dengan perintah yang kita buat di program yaitu pada saat kita mengetikkan huruf h maka hidup dan mengetikkan huruf m maka mati . Pada saat mengetikkan huruf h di AVR board lampu button akan hidup seperti gambar dibawah ini:

    (2)Menerima beberapa Karakter Menggunakan strlen

    // Declare your global variables here
    char tulisan []=("politeknik kampar");
    char terima,i;

    while (1)  {    
     terima=getchar();
     if(terima=='h')
    {
    for (i=0;i<strlen(tulisan);i++) // strln untuk menentukan banyak
    // karakter//untuk mengetahui panjang tulisan
     {
      putchar(tulisan[i]);
     }
     } 
     }
    }

    Hasilnya seperti gambar dibawah ini:




    Gambar. Menerima beberapa karakter menggunakan strlen 

    (3) Mengirimkan beberapa character ke LCD


    #include <mega8535.h>
    #include <alcd.h>
    #include <stdio.h>
    #include <string.h>
    #include <delay.h>
    char i,h;                      
    void main(void) 
    {
    Untuk inisialisasi yang digunakan sama dengan Program diatas

    while (1){   
          while(UCSRA.7){         // inisialisasi USART
          h=UDR;
          i++;   } 
         lcd_gotoxy(i-1,0);         // untuk menentukan kolom dan baris
         lcd_putchar(h);             // mengirimkan character
         if (h==0x08) {               // 0x08adalah nilai dari ASCII
         lcd_clear();                   // membersihkan
         i=0;
         h=0x20 ; }                    // 0x20 nilai ASCII dari space

    Hasilnya seperti gambar dibawah ini:





    Gambar. Mengirimkan beberapa character ke LCD

    Catatan: pada program ini tidak bisa membuat character ke baris ke dua , untuk mengirimkan character perbaris programnya seperti program ke 4 dibawah ini.
    (4) Mengirimkan Karakter Perbaris 



    while (1){   
        while(UCSRA.7){       // Inisialisasi USART
         h=getchar();             // menerima character dan disimpan di variable h
         i++;           }              // akan membaca nilai di terminal
        if(i>8)                     {            // fungsinya untuk mempersingkat program
              lcd_gotoxy(i-9,1);                        // ditampilkan di lcd berdasarkan kolom & baris
              lcd_putchar(h);}              // mengirimkan character
         else           {                           // maka
               lcd_gotoxy(i-1,0);                       // ditampilkan berdasarkan kolom dan baris
               lcd_putchar(h);               // mengirimkan character
         if (h==0x08) {                                  
              lcd_clear();
              i=0;
              h=0x20; }                          // ASCII dari space   
                          }
    }
    }

    Hasilnya seperti gambar dibawah ini:


    Gambar. Mengirimkan character per baris 



    Related Posts

    0 Response to "Cara Melakukan Inisialisasi pada Komunikasi Serial USART Mikrokontroler AVR (Praktikum V)"

    Post a Comment

    Iklan Atas Artikel

    Iklan Tengah Artikel 1

    Iklan Tengah Artikel 2

    Iklan Bawah Artikel