1
LAPORAN PRAKTIKUM III LAPORAN UNTUK MEMENUHI TUGAS MATA KULIAH Lab ELKA-01
Yang dibina oleh Dyah Lestari, S.T., M.Eng.
Oleh : Abdrrah!an "asyid Abi Adhita!a ind Ai rasetiyo
#1$0%&$'0()&(* #1$0%&$'01+%+* #1$0%&$'01/(&*
23E"S2TAS E4E"2 MALA4 5AKLTAS TEK2K 6"SA TEK2K ELEKT"O "O4"AM STD2 S1 ED2D2KA TEK2K ELEKT"O SETEM7E" (01'
2
TUJUAN •
Mahasis8a da9at !enelasan ;ara !enggnaan EE"OM internal dala!
•
!iroontroler AT!ega)%&% nt !enyi!9an data. Mahasis8a da9at !e!9ratean 9enyi!9anan dan 9e!ba;aan data di dala! EE"OM internal dala! !iroontroler AT!ega )%&%.
EEPROM
EE"OM #Ele;tri;ally Erasable rogra!!able "ead Only Me!ory* !er9aan !e!ori yang da9at !enyi!9an data, di!ana data tersebt aan teta9 ada !esi9n ;at daya di!atian. Data yang tersi!9an dala! EE"OM da9at diha9s dengan sinyal listri dengan tegangan tertent. EE"OM internal dala! !iroontroler AT!ega)%&% !e!9nyai a9asitas %1( byte dan di9etaan sendiri dengan ala!at !lai 00<-55<. EE"OM hanya da9at diases
!elali
register
#EEA"<,
EEA"L,
EED"
dan
EE="*
dan
o9erasi read>8rite yang tertent sehingga 8at asesnya lebih la!ban dari 9ada !engases register ata9n S"AM. "egister yang dignaan nt !engases EE"OM ada & yait: - EEA"< dan EEA"L - EED" - EE=" A. EE"OM Address "egister #EEA"< dan EEA"L*
7it )..0: EEA")..0: EE"OM Address, adalah te!9at !eletaan ala!at se;ara linier nt EE"OM !lai 0-%11. ilai a8alnya tida ada, sehingga etia aan dignaan hars diberi nilai terlebih dahl.
3
7. EE"OM Data "egister #EED"*
EED" berisi data yang aan ditlis e dala! ata diba;a dari EE"OM dala! ala!at yang ditlis dala! register EEA". =. EE"OM =ontrol "egister #EE="*
•
7it & - EE"2E: EE"OM "eady 2nterr9t Enable Menlis logia 1 e EE"2E berarti !engati?an EE"OM "eady 2nterr9t ia bit 2 dala! register S"E4 diberi logia 1. Menlis logia 0 e EE"2E berarti !enonati?an interr9t. EE"OM "eady 2nterr9t !e!bangitan
•
interr9t se;ara ters !eners ia EEE diberi logia 0. 7it ( - EEME: EE"OM Master rite Enable EEME bersa!a dengan EEE dignaan nt !enlis data e EE"OM. Ketia EEME diberi logia 1, !e!beri logia 1 9ada EEE dala! $ sils ;lo; aan !enlis data e EE"OM 9ada ala!at tertent. 6ia EEME diberi logia 0, !e!beri logia 1 9ada EEE tida aan ber9engarh a9a-a9a. 6ia EEME diberi logia 1 oleh so?t8are, hard8are aan !engbah
•
logianya e 0 setelah $ sils ;lo;. 7it 1 @ EEE: EE"OM rite Enable EEE dignaan nt !enlis e EE"OM. Ketia ala!at dan data yang diset sdah benar, EEE hars diberi logia 1 nt !enlis data e EE"OM. EEME hars diberi logia 1 sebel! EEE diberi logia 1, ia
•
tida !aa tida aan teradi 9roses !enlis data e EE"OM. 7it 0 @ EE"E: EE"OM "ead Enable EE"E dignaan nt !e!ba;a data dari EE"OM. Ketia ala!at yang diset EEA" sdah benar, EE"E hars diberi logia 1 nt !e!ba;a data e EE"OM.
4
ALAT DAN BAHAN YANG DIGUNAKAN • • •
1 set =>La9to9 yang sdah berisi 9rogra! =ode 3ision dan Khaa!a 1 set !odl 9rati! !iroontroler L=D dis9lay 1'B(
PROSEDUR
1.
"angailah 9eralatan yang di9erlan se9erti dala! 4a!bar 1.1. <bngan soet
!9er
O"T7
9ada
!ini!!
syste!
dengan
soet
!9er
LED>OTT 9ada 2>O.
4a!bar 1.1 Diagra! antar!a !iroontroler dengan 2>O.
(. &.
7a 9rogra! =ode 3ision A3" 7atlah 9roe;t bar. Setelah !engeset ;hi9 dan ;lo;, set ga bagian O"T7 sebagai ot9t dengan ot9t Cale 0. Ke!dian si!9anlah ?ile tersebt sehingga 9ada 9rogra! bagian inisialisasi O"T7 terlihat sebagai berit: PORTB=0x00; DDRB=0xff;
$.
7atlah 9rogra! nt !engases 1 ala!at di EE"OM se;ara langsng #dire;tly* dengan rtan: !e!ba;a data di ala!at tersebt, !enlis data e ala!at tersebt, dan !e!ba;a data di ala!at tersebt seali lagi. Ta!9ilan data
%.
yang diba;a e LED di O"T7. =atat ala!at dan data yang 9erta!a ali diba;a, ala!at dan data yang ditlis,
'.
serta ala!at dan data yang diba;a eda alinya dala! Tabel 1.1. 7atlah 9rogra! nt !engases 1 ala!at di EE"OM se;ara tida langsng #indire;tly>!enggnaan 9ointer* dengan rtan: !e!ba;a data di ala!at tersebt, !enlis data e ala!at tersebt, dan !e!ba;a data di ala!at tersebt
/.
seali lagi. Ta!9ilan data yang diba;a e LED di O"T7. =atat ala!at dan data yang 9erta!a ali diba;a, ala!at dan data yang ditlis,
).
serta ala!at dan data yang diba;a eda alinya dala! Tabel 1.(. 7atlah 9rogra! o!binasi toggle s8it;h, EE"OM dan LED nt:
5
•
Mena!9ilan hasil 9e!ba;aan EE"OM se;ara berrtan e LED #O"T7* !lai dari ala!at 0, 1, (, &, dan $ sebel! EE"OM diisi ia
•
toggle s8it;h 1 diati?an. Menyi!9an data berrtan ia toggle s8it;h ( diati?an dengan ala!at dan data sebagai berit: 1. (. &. $. %.
+. 10.
!enyi!9an bilangan 0B11 e EE"OM ala!at 0, !enyi!9an bilangan 0B(( e EE"OM ala!at 1, !enyi!9an bilangan 0B&& e EE"OM ala!at (, !enyi!9an bilangan 0B$$ e EE"OM ala!at &, !enyi!9an bilangan 0B%% e EE"OM ala!at $.
Do8nload 9rogra! tersebt e !iroontroler Ati?an toggle s8it;h 1 dahl dan ;atat nyala LED dala! Tabel 1.&. Ke!dian nonati?an togle s8it;h 1 dan ati?an toggle s8it;h (. Terahir
11.
nonati?an togle s8it;h ( dan ati?an toggle s8it;h 1 dan ;atat nyala LED. Le9asan abel S7 dari o!9ter, sa!bngan e!bali abel S7 e
1(.
o!9ter dan laan langah 10. Laan se9erti langah )-11 dengan 9rogra! o!binasi toggle s8it;h, EE"OM dan L=D dis9lay nt !enyi!9an data e % ala!at tertent e EE"OM dan !ena!9ilan eli!a data tersebt bersa!a ala!atnya e L=D dis9lay. =atat ala!at dan data dala! Tabel 1.$.
6
DATA HASIL PERCOBAAN
1.
rogra! nt !engases 1 ala!at di EE"OM se;ara langsng #dire;tly* #include
#include !id ""PRO$%&i'e(un(igned in' ui)dd&e((, un(igned cha& ucDa'a){ **menunggu +&!(e( (e,elumnya (ele(ai while(""-R&( <<""/")); **mengi(i da'a alama' dan da'a &egi('e& "")R = ui)dd&e((; ""DR = ucDa'a; **menuli( l!gia e ""/" un'u menuli( da'a ""-R |=( <<""/"); **memulai menuli( da'a di ee+&!m ""-R|=( <<""/"); }
un(igned cha& ""PRO$&ead(un(igned in' ui)dd&e((){ **menunggu +&!(ee( (e,elumnya (ele(ai while(""-R&( <<""/")); **(e' add&e(( &egi('e& "")R = ui)dd&e((; **mem,aca ee+&!m ""-R |= ( <<""R"); **&e'u&n da&i Da'a Regi('e& return ""DR; }
!id main(!id){
PORT)=0x11; DDR)=0x00;
**('a'e=T!!gle **func=in+u'
PORTB=0x00; DDRB=0x11;
**('a'e=0 **func=!u'+u'
while(){
**mem,aca da'a da&i ee+&!m if(P2).0==){ delay$m( (50); **delay de,!uncing PORTB = ""PRO$&ead(0x00); }
**menuli( da'a e ee+&!m if(P2).==){ delay$m( (50); **delay de,!uncing ""PRO$%&i'e (0x00, 0x))); } } }
7
2. Tabel 1.1 Akses EEPROM secara La!s"!
&.
N#
Pr#ses EEPROM
Ala$a%
Da%a
1 ( &
e!ba;aan data 2 enlisan data e!ba;aan data 22
0B00 0B00 0B00
0B55 0BAA 0BAA
rogra! nt !engases 1 ala!at di EE"OM se;ara tida langsng #indire;tly* #include #include in' ee+&!m *+'&$'!$ee+&!m; in' i; !id main(!id){
PORT)=0x11; DDR)=0x00;
**('a'e=T!!gle **func=in+u'
PORTB=0x00; DDRB=0x11;
**('a'e=0 **func=!u'+u'
while(){
**mem,aca da'a da&i ee+&!m if(P2).0==){ delay$m( (50); **delay de,!uncing +'&$ee+&!m = 0; **alama' 0 ee+&!m i = *+'&$ee+&!m; **memanggil da'a +ada alama' 0 PORTB = i; **menam+ilan da'a alama' 0 }
**menuli( da'a e ee+&!m if(P2).==){ delay$m( (50); **delay de,!uncing i = 0x55; **da'a +'&$ee+&!m = 0; **alama' 0 ee+&!m *+'&$ee+&!m = i; **menuli( da'a +ada ee+&!m } } }
4. Tabel 1.& Akses EEPROM secara T'(ak La!s"!)(e!a P#'%er N#
Pr#ses EEPROM
Ala$a%
Da%a
1 ( &
e!ba;aan data 2 enlisan data e!ba;aan data 22
0B00 0B00 0B00
0B55 0BAA 0BAA
8
%.
rogra! o!binasi toggle s8it;h, EE"OM dan LED #include #include !id ""PRO$%&i'e(un(igned in' ui)dd&e((, un(igned cha& ucDa'a){ **menunggu +&!(e( (e,elumnya (ele(ai while(""-R&( <<""/")); **mengi(i da'a alama' dan da'a &egi('e& "")R = ui)dd&e((; ""DR = ucDa'a; **menuli( l!gia e ""/" un'u menuli( da'a ""-R |=( <<""/"); **memulai menuli( da'a di ee+&!m ""-R|=( <<""/"); }
un(igned cha& ""PRO$&ead(un(igned in' ui)dd&e((){ **menunggu +&!(ee( (e,elumnya (ele(ai while(""-R&( <<""/")); **(e' add&e(( &egi('e& "")R = ui)dd&e((; **mem,aca ee+&!m ""-R |= ( <<""R"); **&e'u&n da&i Da'a Regi('e& return ""DR; }
!id main(!id){
PORT)=0x11; DDR)=0x00;
**('a'e=T!!gle **func=in+u'
PORTB=0x00; DDRB=0x11;
**('a'e=0 **func=!u'+u'
while(){
**mem,aca da'a da&i ee+&!m if(P2B.0==){ delay$m( (50); **delay de,!uncing PORTB = ""PRO$&ead(0x00); delay$m( (500); PORTB = ""PRO$&ead(0x0); delay$m( (500); PORTB = ""PRO$&ead(0x04); delay$m( (500); PORTB = ""PRO$&ead(0x03); delay$m( (500); PORTB = ""PRO$&ead(0x0); delay$m( (500); }
**menuli( da'a e ee+&!m if(P2B.==){ delay$m( (50); **delay de,!uncing ""PRO$%&i'e (0x00, 0x); ""PRO$%&i'e (0x0, 0x44); ""PRO$%&i'e (0x04, 0x33);
9
""PRO$%&i'e (0x03, 0x); ""PRO$%&i'e (0x0, 0x55); } } }
6. Tabel 1.3 Program kombinasi toggle switch, EEPROM dan LED N Proses lam Proses lam Data Data o EEPROM at EEPROM at
1
e!ba;aan data 2 sebel! ;at daya dile9as
enlisan data sebel! ;at daya dile9as
2
e!ba;aan data 22 sebel! ;at daya dile9as
3
/.
0 1 ( & $ 0 1 ( & $ 0 1 ( & $
0B?? 0B?? 0B?? 0B?? 0B?? 0B11 0B(( 0B&& 0B$$ 0B%% 0B11 0B(( 0B&& 0B$$ 0B%%
e!ba;aan data 2 setelah ;at daya dile9as
enlisan data setelah ;at daya dile9as
e!ba;aan data 22 setelah ;at daya dile9as
rogra! o!binasi toggle s8it;h, EE"OM dan L=D #include #include #include #include
<('dli,.h>
cha& ui)dd&e(([40]; **menyim+an alama' cha& ui)dd&e((4[40]; cha& ui)dd&e((3[40]; cha& ui)dd&e(([40]; cha& ui)dd&e((5[40]; cha& ucDa'a[40]; **menyim+an da'a cha& ucDa'a4[40]; cha& ucDa'a3[40]; cha& ucDa'a[40]; cha& ucDa'a5[40]; !id menam+ilan6e7-D(in' i){ lcd$clea&(); lcd$g!'!xy(0,0); lcd$+u'(f()dd&9 ); lcd$g!'!xy(0,); lcd$+u'(f(Da'a9 );
0 1 ( & $ 0 1 ( & $ 0 1 ( & $
0B11 0B(( 0B&& 0B$$ 0B%% 0B11 0B(( 0B&& 0B$$ 0B%% 0B11 0B(( 0B&& 0B$$ 0B%%
10
if (i == ){ lcd$g!'!xy(:,0); lcd$+u'( (ui)dd&e(( );lcd$g!'!xy (:,);lcd$+u'((ucDa'a);} if (i == 4){ lcd$g!'!xy(:,0); lcd$+u'( (ui)dd&e((4 );lcd$g!'!xy (:,);lcd$+u'((ucDa'a4);} if (i == 3){ lcd$g!'!xy(:,0); lcd$+u'( (ui)dd&e((3 );lcd$g!'!xy (:,);lcd$+u'((ucDa'a3);} if (i == ){ lcd$g!'!xy(:,0); lcd$+u'( (ui)dd&e(( );lcd$g!'!xy (:,);lcd$+u'((ucDa'a);} if (i == 5){ lcd$g!'!xy(:,0); lcd$+u'( (ui)dd&e((5 );lcd$g!'!xy (:,);lcd$+u'((ucDa'a5);} }
!id ""PRO$%&i'e(un(igned in' ui)dd&e((, un(igned cha& ucDa'a){ **menunggu +&!(e( (e,elumnya (ele(ai while(""-R&( <<""/")); **mengi(i da'a alama' dan da'a &egi('e& "")R = ui)dd&e((; ""DR = ucDa'a; **menuli( l!gia e ""/" un'u menuli( da'a ""-R |=( <<""/"); **memulai menuli( da'a di ee+&!m ""-R|=( <<""/"); **meng!ne&(i alama' dan da'a aga& ,i(a di'am+ilan e lcd if(ui)dd&e(( == 0x00){ i'!a(ui)dd&e((,ui)dd&e(( ); i'!a(ucDa'a,ucDa'a);} if(ui)dd&e(( == 0x0){ i'!a(ui)dd&e((,ui)dd&e((4 ); i'!a(ucDa'a,ucDa'a4);} if(ui)dd&e(( == 0x04){ i'!a(ui)dd&e((,ui)dd&e((3 ); i'!a(ucDa'a,ucDa'a3);} if(ui)dd&e(( == 0x03){ i'!a(ui)dd&e((,ui)dd&e(( ); i'!a(ucDa'a,ucDa'a);} if(ui)dd&e(( == 0x0){ i'!a(ui)dd&e((,ui)dd&e((5 ); i'!a(ucDa'a,ucDa'a5);} }
un(igned cha& ""PRO$&ead(un(igned in' ui)dd&e((){ **menunggu +&!(ee( (e,elumnya (ele(ai while(""-R&( <<""/")); **(e' add&e(( &egi('e& "")R = ui)dd&e((; **mem,aca ee+&!m ""-R |= ( <<""R"); **&e'u&n da&i Da'a Regi('e& return ""DR; }
!id main(!id){
PORT)=0x11; DDR)=0x00;
**('a'e=T!!gle **func=in+u'
PORTB=0x00; DDRB=0x11;
**('a'e=0 **func=!u'+u'
lcd$ini'(:); while(){
**mem,aca da'a da&i ee+&!m
11
if(P2).0==){ delay$m( (50); **delay de,!uncing PORTB = ""PRO$&ead(0x00); menam+ilan6e7-D ();**menam+ilan delay$m( (400); PORTB = ""PRO$&ead(0x0); menam+ilan6e7-D (4);**menam+ilan delay$m( (400); PORTB = ""PRO$&ead(0x04); menam+ilan6e7-D (3);**menam+ilan delay$m( (400); PORTB = ""PRO$&ead(0x03); menam+ilan6e7-D ();**menam+ilan delay$m( (400); PORTB = ""PRO$&ead(0x0); menam+ilan6e7-D (5);**menam+ilan delay$m( (400); }
ee+&!m alama' 0x00 ee+&!m alama' 0x0
ee+&!m alama' 0x04 ee+&!m alama' 0x03
ee+&!m alama' 0x0
**menuli( da'a e ee+&!m if(P2).==){ delay$m( (50); **delay de,!uncing ""PRO$%&i'e (0x00, 0x); ""PRO$%&i'e (0x0, 0x44); ""PRO$%&i'e (0x04, 0x33); ""PRO$%&i'e (0x03, 0x); ""PRO$%&i'e (0x0, 0x55); } } }
). Tabel 1.* Pr#!ra$ k#$b'as' %#!!le s+'%c,- EEPROM (a LCD ('sla/
N o
1
2
3
Proses EEPROM e!ba;aan data 2 sebel! ;at daya dile9as
enlisan data sebel! ;at daya dile9as
e!ba;aan data 22 sebel! ;at daya dile9as
lam at
Data
0 1 ( & $ 0 1 ( & $ 0 1 ( & $
(%% (%% (%% (%% (%% 1/ &$ %1 ') )% 1/ &$ %1 ') )%
Proses EEPROM e!ba;aan data 2 setelah ;at daya dile9as
enlisan data setelah ;at daya dile9as
e!ba;aan data 22 setelah ;at daya dile9as
lam at
Data
0 1 ( & $ 0 1 ( & $ 0 1 ( & $
1/ &$ %1 ') )% 1/ &$ %1 ') )% 1/ &$ %1 ') )%
12
NL!"!" DT 1.
Si!9lan ;ara !enlis data e EE"OM dan !e!ba;a dari EE"OM. A. Cara $e"l'ska (a%a ke EEPROM
7at ?ngsi bar nt 9rosedr 9enlisan ee9ro! !isal dengan na!a EE"OM8rite !id ""PRO$%&i'e(un(igned in' ui)dd&e((, un(igned cha& ucDa'a){ **menunggu +&!(e( (e,elumnya (ele(ai while(""-R&( <<""/")); **mengi(i da'a alama' dan da'a &egi('e& "")R = ui)dd&e((; ""DR = ucDa'a; **menuli( l!gia e ""/" un'u menuli( da'a ""-R |=( <<""/"); **memulai menuli( da'a di ee+&!m ""-R|=( <<""/"); }
Misal port c digunakan sebagai input dengan disambungkan ke toogle switc maka cara penulisan dapat dilakukan while (){ 2f (P2).0==){
""PRO$%&i'e(0x00, 0xf0) ; **alama' da'a yang di'uli( }
}
B. Cara $e$baca (a%a (ar' EEPROM
7at ?ngsi bar nt 9rosedr 9e!ba;aan ee9ro! !isal dengan na!a EE"OMread un(igned cha& ""PRO$&ead(un(igned in' ui)dd&e((){ **menunggu +&!(ee( (e,elumnya (ele(ai while(""-R&( <<""/")); **(e' add&e(( &egi('e& "")R = ui)dd&e((; **mem,aca ee+&!m ""-R |= ( <<""R"); **&e'u&n da&i Da'a Regi('e& return ""DR; }
13
ort ; dignaan sebagai in9t dengan disa!bngan e toogle s8it;h !aa ;ara 9enlisan da9at dilaan while (){ 2f (P2).==){ PORTB = ""PRO$&ead (0x00) ; **alama' } }
(.
Data a9aah yang !n;l ia EE"OM bel! ditlisiF Data de?alt yang !n;l nt 9erta!a ali EE"OM sebel! ditlis adalah 0B??
&.
ada langah )-1(, adaah 9erbedaan antara 9e!ba;aan 9erta!a dengan 9e!ba;aan eda sebel! ;at daya dile9asF 6ia ada !enga9a teradi 9erbedaan tersebtF Terda9at 9erbedaan 9e!ba;aan data 9erta!a dan eda sebel! dile9as, arena a* Data ee9ro! yang diba;a 9erta!a ali sebel! diisi yang de?alt adalah 0B?? > 0b11111111 b* Maa 9e!ba;aan data 9erta!a adalah 0B?? ;* Ke!dian ditlis !lai ala!at 0-$ #desi!al* dengan etentan 9e!berian data sebagai berit ala$a% (a%a 0 0B11 1 0B(( ( 0B&& & 0B$$ $ 0B%% d* Ke!dian dilaan 9e!ba;aan data eda sebel! dile9as !aa hasil
yang dida9at sesai dengan hasil data yang ditlis 9ada 9roses ; e* 6adi esi!9lan terda9at 9erbedaan 9e!ba;aan data 9erta!a dan eda sebel! ;at daya dile9as
14
$.
ada langah )-1(, adaah 9erbedaan antara 9e!ba;aan 9erta!a dengan 9e!ba;aan eda setelah ;at daya dile9asF Menga9a hal it teradiF Tida Terda9at 9erbedaan 9e!ba;aan data 9erta!a dan eda sesdah ;at daya dile9as, arena a* Saat ;at daya diati?an !aa hasil data yang telah ditlis 9ada 9e!ba;aan data eda #no!or &* telah disi!9an sehingga nilai se9erti 9ada tabel berit ala$a% (a%a 0 0B11 1 0B(( ( 0B&& & 0B$$ b* 6adi 9e!ba;aan data 9erta!a sesdah ;at daya dile9as se9erti tabel
diatas ;* Ke!dian ditlis !lai ala!at 0-$ #desi!al* dengan etentan 9e!berian data sebagai berit ala$a% (a%a 0 0B11 1 0B(( ( 0B&& & 0B$$ $ 0B%% d* Ke!dian dilaan 9e!ba;aan data eda sesdah dile9as !aa hasil
yang dida9at sesai dengan hasil data yang ditlis 9ada 9roses ; e* 6adi esi!9lan tida terda9at 9erbedaan 9e!ba;aan data 9erta!a dan eda sesdah ;at daya dile9as arena data yang ditlis sa!a KESIMPULAN
1. Ee9ro! 9ada at!ega)%&% da9at diases se;ara langsng !a9n tida langsng 6ia langsng !aa data langsng ditlis 9ada ala!at yang dit 6ia tida langsng !aa data ditlis !elali 9ointer (. Data yang telah ditlis 9ada ee9ro! tida aan hilang !esi9n ;at daya telah dile9as &. Data 9ada ee9ro! aan direset e nilai 0B55 setia9 ali at!ega)%&% di9rogra!
15
DA0TAR RUJUKAN
Lestari, Dyah. (01&. Mikroprosesor Lanjut. Malang: niCersitas eger Malang.