USART praktikum.docx
-
Author
fauzan-n-ramadhan -
Category
Documents
-
view
257 -
download
4
Embed Size (px)
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!?