USART praktikum.docx

download USART praktikum.docx

of 15

Transcript of USART praktikum.docx

  • 8/18/2019 USART praktikum.docx

    1/15

    MODUL 3

    KOMUNIKASI USART DAN EVALUASI MODUL I-III

    Fauzan Naufal Ramadhan (13213078)Asisten: Fadhil Mochammad (13212118)

    Tanggal Percobaan: 12/4/201!"3214 # Pra$ti$%m &istem Mi$ro'rosesor

    Laboratorium Dasar - Sekolah Teknik Elektro dan Informatika ITB

     Abstrak 

    Saat komponen mikrokontroler ingindipasangi komponen dari luar yangdapat mengirimkan banyak data, USART atau Universal Synchronous

     Asynchronous serial Receiver Transmitter digunakan untukmenterjemahkan dan menghubungkan

    data antara dua port serial dan paralelagar data dapat ditransfer dengan baik.

     Pengiriman data terbagi menjadi dua jenis, yaitu masuk dan keluar. USART akan menerjemahkan data dari duakomponen tersebut.

     ikenal pula istilah baudrate !daritransmission speed" yaitu nilaikecepatan perubahan data yangdisetting dengan mengubah nilairegister U#RR. Salain itu modul

    hyperterminal dan clock jugamempengaruhi kecepatan transfer.

     Pada percobaan kali ini akan diamatipenggunaan USART dan juga akan adapenggunaan dan aplikasi dari hasil yangtelah diamati di praktikum sebelumnya.

    Kata kunci : USART, baudrate,hyperterminal, PC. 

    1. PENDAHULUAN 

    Penambahan komponen pada mikroprosesordapat menjadi kebutuhan hardware designer.leh karena itu! praktikan akan mempelajaribagaimana mengatur transfer data"ke#epatan$ pada mikroprosesor dankomponen %ang diberikan. &S'(T akanmenjadi register %ang mengatur hal tersebut.

    Pada praktikum ini kita akan men#obaaplikasi komunikasi &S'(T %ang akandilakukan pada beberapa per#obaan.Diharapkan setelah melakukan praktikummodul ini! praktikan dapat )

    • *emahami datasheet 'T*ega +,,.

    • *embuat aplikasi komunikasi &S'(T.

    2. STUDI PUSTAKA 

    KONFIGURASI TIMER!OUNTER "ANINTERRU#T

    ambar dan tabel di bawah dikutip daridatasheet 'T*ega+,,.

    USART "a$a R%&'$%

    USART !*n$*l and S$a$u R%&'$% A

     

    USART !*n$*l and S$a$u R%&'$% +

     

    USART !*n$*l and S$a$u R%&'$% !

    R%&'$%,%&'$% -%n$'n& la'n

    .a-*an #a/$'/um , .a*a$*'um "aa T%/n'/ El%/$* STEI IT+ 1

  • 8/18/2019 USART praktikum.docx

    2/15

    III.'./ *odi0kasi program sehingga

    -nilai baudrate 1 /233 bps

    -mengaktifkan fasilitas double &S'(Ttransmission speed

    III.'.4 *asukkan kode program seperti dalammodul dan setting baudrate realterm %ang

    sesuai 5633 bps

    Settinf sumber #lo#k menggunakan kristal77/+3389 dengan #ara mengatur fuse.

     :alankan realterm.

    Sambungkan kit pada power suppl% 5;.8ubungkan port ' pada port output LED.

    8ubungkan kit dengan &SB komputer.

    III.B./ *odi0kasi program sehingga pada la%ar (ealTermditampilkan nama masing-masing anggota kelompok

    bergantian selama < detik.

    III.B.4 *asukkan kode program sesuai dalam modul

    Settinf sumber #lo#k menggunakan kristal 77/+3389dengan #ara mengatur fuse. :alankan realterm.

    Sambungkan kit pada power suppl% 5;. 8ubungkan port 'pada port output LED. 8ubungkan kit dengan &SB komputer.

    III.=./ *odi0kasi kode program sehingga*ikroprosesor menerima input 4 atau / dari realterm

    dan menampilkan >I*

    III.=.4 *asukkan kode program sesuai dalam modul

    Settinf sumber #lo#k menggunakan kristal77/+3389 dengan #ara mengatur fuse. :alankan

    realterm.

    Sambungkan kit pada power suppl% 5;. 8ubungkan

    port ' pada port output LED. 8ubungkan kit dengan&SB komputer.

    'tur spesi0kasi program sesuai dengan perintahdalam modul

    Buat program %ang berfungsi untuk memeriksapassword %ang diberikan melalui komunikasi serial

    dan S?IT=8 I>P&T

    3. METODOLOGI

    3.1 MENERIMA  D ATA  DARI PC

    3.2 MENGIRIM D ATA  KE PC

    3.3 PENGIRIMAN DAN PENERIMAAN 

    D ATA  DARI DAN KE PC

    3.4 R  EVIE  MODUL 1-3

    4. H ASIL DAN A NALISIS

    4.1 MENERIMA  D ATA  DARI PC

    Tu&a IIIA1

    Lampu LED akan men%ala sesuai data %angdikirimkan (ealTerm. Saat mengirimkanangka! maka LED akan menunjukanrepresentasi kode biner angka desimaltersebut. Saat mengirimkan kode 'S=II! makaLED akan mun#ul sesuai kode 'S=II dari#hara#ter %ang kita kirimkan.

    @etika ditekan tombol A4,A "send number$)7 6 , 2 / 4 3

    .a-*an #a/$'/um , .a*a$*'um "aa T%/n'/ El%/$* STEI IT+ 2

  • 8/18/2019 USART praktikum.docx

    3/15

    ⦿⦿⦿⦿⦿⦿⦿⦿

    @etika ditekan tombol A4,A "send 'S=II$ )

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    @etika ditekan tombol A4A "send number$)

    7 6 , 2 / 4 3⦿⦿⦿⦿⦿⦿⦿⦿

    Tu&a IIIA2

    Sama seperti per#obaan III.'.4! lampu LEDakan men%ala sesuai data %ang dikirimkan(ealTerm. Saat mengirimkan angka! makaLED akan menunjukan representasi kodebiner angka desimal tersebut. Saatmengirimkan kode 'S=II! maka LED akanmun#ul sesuai kode 'S=II dari #hara#ter %angkita kirimkan.

    @etika ditekan tombol A4,A "send number$)

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    @etika ditekan tombol A4,A "send 'S=II$ )

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    @etika ditekan tombol A4A "send number$)

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    Perbedaan juga ada dari ke#epatan transfer!namun karena data han%a satu "relatif sedikit$ membuat kita sulit mengamatidikarenakan transfer data untuk satu datasangatlah #epat.

    Dapat diamati juga! saat kita mengaturbaudrate pada (ealTerm berbeda denganpada program! maka pengiriman data akanka#au dan tidak terkirim dengan baik.

    L?=8'(T )

    Gama 1 Fl*45ha$ -*&am IIIA

    '>'LISIS III')

    Program akan membuat mikroprosesormenerima input dari P= pada (ealTerm. >ilaidari pesan akan di-assign ke &D( %ang nantiakan din%alakan ada P(T'.

    Baudrate %ang diharapkan pada III.'.4 dan disetting pada (ealTerm adalah 5633.Didapatkan dari &B(( 27 tanpa ke#epatanganda dan frekuensi #lo#k 77/+3389. >ilaiBaudrate didapat dari persamaan dibawah.&ntuk single speed kita gunakan)

    Baudrate %ang diharapkan pada III.'./ dan disetting pada (ealTerm adalah /233 dengandouble &S'(T Didapatkan dari &B(( +atau 3

  • 8/18/2019 USART praktikum.docx

    4/15

    Pada per#obaan ini la%ar 8%perterminalmenampilkan output seperti berikut )

    jan *ar#el jan *ar#el jan *ar#el .

     Tulisan CjanC dan C*ar#elC ditampilkanbergantian dengan jeda selama , detik.

    L?=8'(T )

    Gama Fl*45ha$ -*&am III+1

    Gama 6 Fl*45ha$ -*&am u$ama III+2

    Gama Fl*45ha$ "%la (da' m*dul%%lumna)

    Gama 7 Fl*45ha$ 'n'$9$'m (da' m*dul%%lumna)

    '>'LISIS )

    Tu&a III+

    @ita dapat mengirimkan data dengan meng-assign nilai &D( dengan nilai %ang ingin kitakirim. Data %ang di assign akan dikirim ke(ealTerm dengan ke#epatan tertentu"baudrate$ %ang diatur &B((. >ilai baudrateprogram mikroprosesor harus tersinkronasidengan baudrate (ealTerm agar data dikirimdengan baik.

    Pada per#obaan III.B.4! tidak ada loopingdengan kode while (1) sehingga

    mikroprosesor tidak berjalan terus menerus.Proses mengeluarkan tampilan ke P= pada(ealTerm han%a 4< setiap proses dan harusmengulangi proses "dengan reset$ untukmemun#ulkan data pada (ealTerm pada P=lagi.

     Tugas III.B./! digunakan kode while (1) oleh

    karena itu kemun#ulan dua nama akanterjadi bergantian. Pada program ini jugamenggunakan dela% %ang diambil dari modul

    .a-*an #a/$'/um , .a*a$*'um "aa T%/n'/ El%/$* STEI IT+ 4

  • 8/18/2019 USART praktikum.docx

    5/15

    sebelumn%a. Dela% ini menggunakan #ounterdengan men%eting T=>T tertentu dan =(3T 1 "4F3ilai dela% ini akan diselipkan diantarakemun#ulan dua nama.

    4.3 PENGIRIMAN DAN PENERIMAAN D ATA  DARI DAN KE PC

    Tu&a III!1

    8asil sama dengan per#obaan III.'. LampuLED akan men%ala sesuai data %angdikirimkan (ealTerm. Saat mengirimkanangka! maka LED akan menunjukanrepresentasi kode biner angka desimaltersebut. Saat mengirimkan kode 'S=II! makaLED akan mun#ul sesuai kode 'S=II dari#hara#ter %ang kita kirimkan.

    @etika ditekan tombol A4,A "send number$)

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    @etika ditekan tombol A4,A "send 'S=II$ )

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    @etika ditekan tombol A4A "send number$)

    7 6 , 2 / 4 3

    ⦿⦿⦿⦿⦿⦿⦿⦿

    Dan juga! huruf %ang dikirimkan akan mun#ulpada la%ar (ealTerm.

    Tu&a III!2

    Saat (ealTerm mengirimkan nilai 4! makapada la%ar (ealTerm akan mun#ul >I*C4/4376C! sedangkan jika dikirimkan nilai/ maka la%ar (ealTerm akan mengeluarkan>I*) C4/437+C

    L?=8'(T )

    Gama 8 Fl*45ha$ -*&am u$ama

    Gama : Fl*45ha$ In$%u-$

    '>'LISIS )

    Dengan IS( "Interupt Seri#e (outine$ %angdiaktifkan oleh masukan (ealTern! programakan dapat mengeluarkan sebuah perintahtertentu. IS( akan aktif saat nilai dari(ealTerm dikirim. &ntuk III.=.4! program akanmengeluarkan angka %ang dikirim pada LED"representasi biner$ karena isi program

    interupt tersebut adalah meng-assign P(T'dengan &D(.

    unsigned char kar;kar = UDR;PR!"= kar;l##$%un&il%'i&%is%se&(UR",*);

    Pada III.=./! isi program Interupt adalahswit#h konditional. Saat data %ang dikirim(ealTerm ke *ikroprosesor adalah nilai 4!maka mikroprosesor akan mengembalikannilai C4/4376C ke La%ar (ealTerm. Saatdata %ang dikirim adalah nilai /! maka

    mikroprosesor akan mengirimkan nilaiC4/437+C ke (ealTerm. Pengiriman data kerealterm dapat dilakukan dengan mengasign&D( dengan sebuah arra% of #har dan proseslooping.

    if (kar==1)for (i=0;kal+[i]!=,-0,;++i){

    l##$%un&il%'i&%is%se&(UR",*);UDR=kal1[i];

    }

    4.4 R  EVIE  MODUL 1-3

    Tu&a III"1

    .a-*an #a/$'/um , .a*a$*'um "aa T%/n'/ El%/$* STEI IT+ 5

  • 8/18/2019 USART praktikum.docx

    6/15

    Per#obaan kali ini! praktikan akanmenggunakan kembali hasil %ang didapatdari praktikum sebelumn%a.

    Program akan mengeluarkan sebuah kondisiLED running pada keadaan idle. Lalu jika IS4ditekan! maka interupsi akan terjadi!memun#ulkan LED #ount-up ,

    L?=8'(T )

    Gama 10 Fl*45ha$ -*&am u$ama

    !. K ESIMPULAN

    Pada modul ini! dapat disimpulkan )

    4. 'T*ega+,, memiliki komponen&S'(T %ang mengatur hubunganinterfa#e mikroprosesor dengan

    komponen serial. Pada reg &=S(.

    /. &S'(T dapat digunakan mengirimatau menerima data pada interfa#eini! dengan #ara meng-assign &D(

    . &ntuk mengeset nilai ke#epatanB'&D('TE! dapat dengan mengeset(egister &B((. &ntuk singletransmission speed

    untuk mode double transmissionspeed diisi sesuai dengan formula

    D A"TAR  PUSTAKA 

    [1] utabarat, !er"in T., dkk. #$1%.

     Petunjuk Praktikum Sistem $ikroprosesor. &andun' :(ab)rat)rium *a+ar Teknik lektr)-T&.

    [#] *ata+heet AT!e'a%/%,000.atmel.c)m

    [/] 000.a+ciitable.c)m, diak+e+ padatan''al 1/ April #$1% pukul ##.$/.

    [] 2l)0chart pada 000.dra0.i) 

    .a-*an #a/$'/um , .a*a$*'um "aa T%/n'/ El%/$* STEI IT+ 6

    http://www.asciitable.com/http://www.draw.io/http://www.draw.io/http://www.asciitable.com/

  • 8/18/2019 USART praktikum.docx

    7/15

    .a-*an #a/$'/um , .a*a$*'um "aa T%/n'/ El%/$* STEI IT+ 7

  • 8/18/2019 USART praktikum.docx

    8/15

    LAMPIRAN

    1. S)urcec)de untuk tu'a+ ---.A.1 :

    .include/ari#2h3

    in& 4ain (#id){

    &en&ukan nilai 'audra&e 5ang sesuai dengan inisialisasiiniUR"=0x00;URB=0x10;UR=0x6;UBRR8=97;

     while (1){

    l##$%un&il%'i&%is%se&(UR",7);PR!"=UDR;UR"|=%B:(7);

    }

    return 0;

    }

    #. S)urcec)de untuk pr)'ram ---.A.#

    .include/ari#2h3

    in& 4ain (#id){

    &en&ukan nilai 'audra&e 5ang sesuai dengan inisialisasi iniUR"=0x0+; d#u'le s$eedURB=0x10;UR=0x6;UBRRH=0X01; &en&ukan 'audra&e dengan UBRRUBRR8=0X7F;

     while (1){

    l##$%un&il%'i&%is%se&(UR",7);PR!"=UDR;UR"|=%B:(7);

    }

    return 0;

    }

    /. S)urcec)de untuk pr)'ram ---.&.1.include/ari#2h3in& 4ain (#id){

    UR"=0x00;URB=0x06;UR=0x6;UBRR8=97;char kal[]= Prak&iku4 is&e4

  • 8/18/2019 USART praktikum.docx

    9/15

    . S)urcec)de untuk pr)'ram ---.&.#

    .include/ari#2h3#id Dela5(#id);

    #id ini&%&i4(#id);in& 4ain (#id){

    ini&%&i4();UR"=0x00;URB=0x06;UR=0x6;UBRR8=97;char kal1[]= an ;char kal+[]=

  • 8/18/2019 USART praktikum.docx

    10/15

    #er>l#w in&erru$& disa'le!?

    %. S)urcec)de untuk pr)'ram ---.C.1

    .include/ari#2h3

    .include/arin&erru$&2h3

    .de>ine F%PU 7C7+600U8

    .include /u&ildela52h3

    ?R(U"R!%RX%ec&){

    unsigned char kar;kar = UDR;PR!"= kar;l##$%un&il%'i&%is%se&(UR",*);UDR = kar;

    }

    in& 4ain (#id){

    UR"=0x00;URB=0x6;UR=0x6;UBRR8=97;sei();

     while(1){

    if 'i&%is%se&(UR",C){

    l##$%un&il%'i&%is%se&(UR",*);}

    }

    return 0;}

    3. S)urcec)de untuk pr)'ram ---.C.#

    .include/ari#2h3

    .include/arin&erru$&2h3

    .de>ine F%PU 7C7+600U8

    .include /u&ildela52h3

    ?R(U"R!%RX%ec&){

    unsigned char kar;kar = UDR;char kal1[]=1C+1C07;char kal+[]=1C+1C076;unsigned char i=0;

    if (kar==1)for (i=0;kal+[i]!=,-0,;++i)

    {

    l##$%un&il%'i&%is%se&(UR",*);UDR=kal1[i];

    }

    else if (kar==+)for (i=0;kal+[i]!=,-0,;++i)

  • 8/18/2019 USART praktikum.docx

    11/15

    {

    l##$%un&il%'i&%is%se&(UR",*);UDR=kal+[i];

    }

    }

    in& 4ain (#id){

    UR"=0x00;URB=0x6;UR=0x6;UBRR8=97;sei();

     while(1){

    if 'i&%is%se&(UR",C){

    l##$%un&il%'i&%is%se&(UR",*);}

    }

    return 0;}

    4. S)urcec)de untuk pr)'ram ---.*.1

    .include/ari#2h3

    .include/arin&erru$&2h3

    .de>ine F%PU 7C7+600U8

    .include /u&ildela52h3

    .de>ine R1"H = 0x70

    .de>ine R1"8 = 0x60.include/ars&ring2h3

    in& 4#de, de&ik,i;#id ?ni&%Ax&%?n&(#id);char $assw#rd[+0];#id &ugas1B9(#id);#id ini&%in&(#id);

    ?R(?!0%ec&){

    PR!" = 0x01;%dela5%4s(1000);de&ik;

    PR!"= 0x0+

    ;

    %dela5%4s(1000);PR!" = 0x09;%dela5%4s(1000);de&ik;PR!" = 0x06;%dela5%4s(1000);de&ik;PR!" = 0x1;%dela5%4s(1000);

    if(PR!==0xF0){

    PR!" = 0xFF;%dela5%4s(*00);

    4#de = 1;}

    }

  • 8/18/2019 USART praktikum.docx

    12/15

    ?R(!?

  • 8/18/2019 USART praktikum.docx

    13/15

    !?FR|=%B:(F0);4#de = 0;

    $enen&uan nilai awal &i4er!!0 = 1+C;

    $enen&uan nilai c#4$are la4$u +xR0 = 1+C;

     while('i&%is%clear(!?FR,F0)){

    PR!"=0'00000011;}

    !?FR|=%B:(F0);4#de = 0;

    $enen&uan nilai awal &i4er!!0 = 1+C;

    $enen&uan nilai c#4$are la4$u Cx

    R0 = 1+C; while('i&%is%clear(!?FR,F0)){

    PR!"=0'00000111;}

    !?FR|=%B:(F0);4#de = 0;

    $enen&uan nilai awal &i4er!!0 = 1+C;

    $enen&uan nilai c#4$are la4$u 9xR0 = 1+C;

     while('i&%is%clear(!?FR,F0)){

    PR!"=0'00001111;}

    !?FR|=%B:(F0);4#de = 0;

    $enen&uan nilai awal &i4er!!0 = 1+C;

    $enen&uan nilai c#4$are la4$u *xR0 = 1+C;

     while('i&%is%clear(!?FR,F0)){

    PR!"=0'00011111;4#de = +;

    }

    !?FR|=%B:(F0);}

    if (4#de==+){

    sisa = 0; while (4#de == + && sisa 

  • 8/18/2019 USART praktikum.docx

    14/15

    }

    }

    return 0;}

    #id ?ni&%Ax&%?n&(#id){

  • 8/18/2019 USART praktikum.docx

    15/15

    #er>l#w in&erru$& disa'le!?