LAPORAN PRAKTIKUM MIKROKONTROLLER DOSEN PENGAMPU MUSLIKHIN, M.Pd.
AKSES LCD
OLEH
PRIYO SAPUTRA
NIM.14507134001/B1
TEKNIK ELEKTRONIKA ELEKTRO NIKA FAKULT FAKULTAS TEKNIK UNIERSITAS NEGERI YOGYAKARTA MARET !01"
A. TU#UAN Setelah melakukan praktik mahasiswa diharapkan dapat: 1. Memahami konfigurasi LCD
2. Menguasai animasi tampilan data pada LCD B. TEORI DASAR
Mengakses LCD padaAVR padaAVR dapat dilakukan dengan mode !it. "ntuk menggunakan mode !it# kita dapat menggunakan li!rar$ !uilt in pada Code Vision. Li!rar$ ini telah terdapat !er!agai fungsi untuk menampilkan karakter ke LCD. %e!erapa perintah dasar akses LCD antara lain& 1' Mem!ersihkan la$ar LCDClear(); 2' Set (ursor pada posisi tertentu LCDGotoXY(x,y); ) merupakan (olom pada LCD# $ adalah !arisn$a. *ada LCD 1+)2# terdapat 1+ $akni ,-1 dan ,-1. /' 0nisialisasi LCD lcd_init(void) ' Menuliskan karakter ke LCD lcd_putchar(char c). Misaln$a
lcd_putchar(”C”) akan menuliskan karakter C ke LCD. ' Menuliskan string ke LCD lcd_puts(char!str). Misaln$a# M*RA"R pada LCD. lcd_putsf(“TEMPERATURE”) akan menuliskan string M*RA"R Se!elum dapat menggunakan !er!agai fungsi terse!ut# pada !agian header dari program kita harus mengin(lude li!rar$n$a. C. ALAT DAN BAHAN
1. Modul AVR Atmega3/4341+4/2 2. *C (Personal computer)/ laptop laptop /. 5umper
D. SKEMA RANGKAIAN
E.LANGKAH KER#A DAN PENGAMATAN
1. %uatlah alat dan !ahan seperti rangkaian di atas& 2. %uatlah program seperti $ang tertulis !erikut# u6i (o!akan4simulasikanla (o!akan4simulasikanlah h di *roteus lalu (o!a pada hardware n$ata& /. Co!alah list program !erikut& !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" #include $%e&a'.h* #include $delay.h* "" +lphanu%eric LCD odule unctions #as% .e-u __lcd_port/x01 ;2345D #endas% #include $lcd.h* "" Declare your &lo6al varia6les here void %ain(void)
7 "" Declare your local varia6les here "" 8nput"3utput 2orts initiali9ation "" 2ort + initiali9ation "" :unc8n :unc<8n :unc8n :unc=8n "" >tate5 >tate<5 >tate5 >tate=5 2345+/x//; DD4+/x//; "" 2ort ? initiali9ation "" :unc8n :unc<8n :unc8n :unc=8n "" >tate5 >tate<5 >tate5 >tate=5 2345?/x//; DD4?/x//; "" 2ort C initiali9ation "" :unc8n :unc<8n :unc8n :unc=8n "" >tate5 >tate<5 >tate5 >tate=5 2345C/x//; DD4C/x//; "" 2ort D initiali9ation "" :unc8n :unc<8n :unc8n :unc=8n "" >tate5 >tate<5 >tate5 >tate=5 2345D/x//; DD4D/x//; "" 5i%er"Counter / initiali9ation "" Cloc@ sourceA >yste% Cloc@ "" Cloc@ valueA 5i%er / >topped "" odeA Bor%al top::h "" 3C/ outputA Disconnected 5CC4//x//; 5CB5//x//; 3C4//x//; "" 5i%er"Counter 0 initiali9ation "" Cloc@ sourceA >yste% Cloc@ "" Cloc@ valueA 5i%er 0 >topped "" odeA Bor%al top::::h "" 3C0+ outputA Discon. "" 3C0? outputA Discon. "" Boise CancelerA 3 "" 8nput Capture on :allin& d&e "" 5i%er 0 3verlo 8nterruptA 3 "" 8nput Capture 8nterruptA 3 "" Co%pare + atch 8nterruptA 3 "" Co%pare ? atch 8nterruptA 3 5CC40+/x//; 5CC40?/x//; 5CB50E/x//; 5CB50L/x//; 8C40E/x//; 8C40L/x//; 3C40+E/x//; 3C40+L/x//; 3C40?E/x//; 3C40?L/x//; "" 5i%er"Counter 1 initiali9ation "" Cloc@ sourceA >yste% Cloc@ "" Cloc@ valueA 5i%er 1 >topped
:unc8n :unc18n :unc08n :unc/8n >tate5 >tate15 >tate05 >tate/5
:unc8n :unc18n :unc08n :unc/8n >tate5 >tate15 >tate05 >tate/5
:unc8n :unc18n :unc08n :unc/8n >tate5 >tate15 >tate05 >tate/5
:unc8n :unc18n :unc08n :unc/8n >tate5 >tate15 >tate05 >tate/5
"" odeA Bor%al top::h "" 3C1 outputA Disconnected +>>4/x//; +>>4/x//; 5CC41/x//; 5CB51/x//; 3C41/x//; "" xternal 8nterrupt(s) initiali9ation "" 8B5/A 3 "" 8B50A 3 "" 8B51A 3 CFC4/x//; CFC4/x//; CFC>4/x//; CFC>4/x//; "" 5i%er(s)"Counter(s) 8nterrupt(s) initiali9ation 58>/x//; "" +nalo& Co%parator initiali9ation "" +nalo& Co%paratorA 3 "" +nalo& Co%parator 8nput Capture 6y 5i%er"Counter 0A 3 +C>4/x'/; +C>4/x'/; >:834/x//; "" LCD %odule initiali9ation lcd_init(0<); 7 lcd_&otoxy(/,/); ""%asu@ @e i di&it perta%a lcd_puts(HL+> ? 1/0=H); "" lcd_&otoxy(/,0); delay_%s(0//); ""delay a@hir ta%pilnya 0//%s lcd_clear(); "" 6ersih@an LCD untu@ ta%pilan 6eri@utnya I lcd_puts(H?L+J+4 +K4..H); delay_%s(//); lcd_clear(); lcd_&otoxy(/,/); lcd_puts(H>F>> ?43H); lcd_&otoxy(/,0); lcd_puts(H25. L+ 1/0=H); delay_%s(0///); lcd_clear(); lcd_&otoxy(/,/); lcd_puts(H>inau sre&ep..H); lcd_&otoxy(/,0); lcd_puts(H6y 2riyoH); delay_%s(//); lcd_clear(); hile (0) (0) 7 "" 2lace your code here I; I . %uatlah kesimpulan dari hasil praktik saudara.
. ugas# !uatlah program dengan tulisan 7L8AD09;< !er6alan dari kiri ke kanan setelah itu mun(ul 7M0=R8 % 2,1< tulisan !er6alan dari kanan kekiri.
F. HASIL DAN ANALISIS
G$%&$' LCD %()$%*+-$) +$) KELAS B !0142
am!ar LC LCD menampilakan tulisan SUKSES BRO PT ELKA !0142
am!ar LCD menampilakan tulisan BELA#AR AR. .62
am!ar LC LCD menampilakan tulisan +)$ '((* & *'+2
S'( Cd( P('&$$) 18 /***************************************************** This program was producd !" th #od$i%ardA&R &'+a E,aluatioAutomatic Program .-rator #op"right 01123'00 Pa,l 4aiduc5 4P 6-foTch srl http7//wwwhpi-fotchcom Pro8ct 7 &rsio- 7 9at 7 +/+/'0: Author 7 ;rwar5 for ,aluatio- a-d -o-3commrcial us o-l" #ompa-" 7 #omm-ts7 #hip t"p 7 ATmga2+ Program t"p 7 ApplicatioA&R #or #loc< fr=u-c"7 2 M4% Mmor" modl 7 >mall E?tr-al RAM si% 7 9ata >tac< si% 7 0'2 *****************************************************/ @i-clud mga2+hB @i-clud dla"hB // Alpha-umric C#9 fu-ctio-s @asm =u _lcd_portD?0' PFRT9 @-dasm @i-clud alcdhB // 9clar "our glo!al ,aria!ls hr ,oid mai-(,oid) G // 9clar "our local ,aria!ls hr // 6-put/Futput Ports i-itiali%atio// Port A i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRTAD? 99RAD? // Port J i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRTJD? 99RJD?
// Port # i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRT#D? 99R#D? // Port 9 i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRT9D? 99R9D? // Timr/#ou-tr i-itiali%atio// #loc< sourc7 >"stm #loc< // #loc< ,alu7 Timr >toppd // Mod7 Kormal topD?;; // F# output7 9isco--ctd T##RD? T#KTD? F#RD? // Timr/#ou-tr 0 i-itiali%atio// #loc< sourc7 >"stm #loc< // #loc< ,alu7 Timr0 >toppd // Mod7 Kormal topD?;;;; // F#0A output7 9isco- // F#0J output7 9isco- // Kois #a-clr7 Fff // 6-put #aptur o- ;alli-g Edg // Timr0 F,rflow 6-trrupt7 Fff // 6-put #aptur 6-trrupt7 Fff // #ompar A Match 6-trrupt7 Fff // #ompar J Match 6-trrupt7 Fff T##R0AD? T##R0JD? T#KT04D? T#KT0CD? 6#R04D? 6#R0CD? F#R0A4D? F#R0ACD? F#R0J4D? F#R0JCD? // Timr/#ou-tr ' i-itiali%atio// #loc< sourc7 >"stm #loc< // #loc< ,alu7 Timr' >toppd // Mod7 Kormal topD?;; // F#' output7 9isco--ctd A>>RD? T##R'D?
T#KT'D? F#R'D? // E?tr-al 6-trrupt(s) i-itiali%atio// 6KT7 Fff // 6KT07 Fff // 6KT'7 Fff M#U#RD? M#U#>RD? // Timr(s)/#ou-tr(s) 6-trrupt(s) i-itiali%atioT6M>LD? // U>ART i-itiali%atio// U>ART disa!ld U#>RJD? // A-alog #omparator i-itiali%atio// A-alog #omparator7 Fff // A-alog #omparator 6-put #aptur !" Timr/#ou-tr 07 Fff A#>RD?2 >;6FRD? // A9# i-itiali%atio// A9# disa!ld A9#>RAD? // >P6 i-itiali%atio// >P6 disa!ld >P#RD? // T$6 i-itiali%atio// T$6 disa!ld T$#RD? // Alpha-umric C#9 i-itiali%atio// #o--ctio-s ar spcifid i- th // Pro8ct#o-figur# #ompilrCi!rarisAlpha-umric C#9 m-u7 // R> 3 PFRT9 Jit // R9 3 PFRT9 Jit 0 // EK 3 PFRT9 Jit ' // 9I 3 PFRT9 Jit I // 9 3 PFRT9 Jit // 9: 3 PFRT9 Jit : // 9H 3 PFRT9 Jit H // #haractrs/li-7 2 lcd_i-it(0:) G lcd_goto?"(5) //masu< < i digit prtama lcd_putsf (NLECA> J '0IN) // lcd_goto?"(50) dla"_ms(0) //dla" a
lcd_clar() lcd_goto?"(5) lcd_putsf(N>UL>E> JRFN) lcd_goto?"(50) lcd_putsf(NPT ECLA '0IN) dla"_ms() lcd_clar() whil (0) G // Plac "our cod hr O O
A)$+$ P('&$$) 1 8 *ada per(o!aan ini mengakses LCD menggunakan A-Mega3/. *8RD se!agai output ke LCD $ang nantin$a akan menampilkan tulisan 7%LA5AR AVR...>< dengan dela$ ,, ms kemudian di (lear. Lalu menampilkan tulisan 7S"=SS %R8< di LCD 1+)2 dengan posisi posisi kolom pertama !aris pertama 44 lcd_goto?"(5)// dan menampilkan tulisan 7*. L=A
2,1< di LCD 1+)2 dengan posisi kolom pertama !aris kedua44 lcd_goto?"(50) 44 kedua tulisan terse!ut mempun$ai dela$ ,,ms.
T$ :
Program dengan tulisan 7L8AD09;< !er6alan dari kiri ke kanan setelah itu mun(ul 7M0=R8 % 2,1< tulisan !er6alan dari kanan kekiri
S'( Cd( $ 8 /***************************************************** This program was producd !" th #od$i%ardA&R &' E,aluatioAutomatic Program .-rator #op"right 01123'0 Pa,l 4aiduc5 4P 6-foTch srl http7//wwwhpi-fotchcom Pro8ct 7 &rsio- 7 9at 7 +/'/'0: Author 7 ;rwar5 for ,aluatio- a-d -o-3commrcial us o-l" #ompa-" 7 #omm-ts7
#hip t"p 7 ATmga0: Program t"p 7 ApplicatioA&R #or #loc< fr=u-c"7 2 M4% Mmor" modl 7 >mall E?tr-al RAM si% 7 9ata >tac< si% 7 ': *****************************************************/ @i-clud mga0:hB // Alpha-umric C#9 Modul fu-ctio-s
@i-clud alcdhB @i-clud dla"hB // 9clar "our glo!al ,aria!ls hr i-t a5 simpa- ,oid mai-(,oid) G // 9clar "our local ,aria!ls hr // 6-put/Futput Ports i-itiali%atio// Port A i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRTAD? 99RAD? // Port J i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRTJD? 99RJD? // Port # i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRT#D? 99R#D? // Port 9 i-itiali%atio// ;u-cHD6- ;u-c:D6- ;u-cD6- ;u-cID6- ;u-c+D6- ;u-c'D6- ;u-c0D6;u-cD6// >tatHDT >tat:DT >tatDT >tatIDT >tat+DT >tat'DT >tat0DT >tatDT PFRT9D? 99R9D? // Timr/#ou-tr i-itiali%atio// #loc< sourc7 >"stm #loc< // #loc< ,alu7 Timr >toppd // Mod7 Kormal topD?;; // F# output7 9isco--ctd T##RD? T#KTD? F#RD? // Timr/#ou-tr 0 i-itiali%atio// #loc< sourc7 >"stm #loc< // #loc< ,alu7 Timr0 >toppd
// Mod7 Kormal topD?;;;; // F#0A output7 9isco- // F#0J output7 9isco- // Kois #a-clr7 Fff // 6-put #aptur o- ;alli-g Edg // Timr0 F,rflow 6-trrupt7 Fff // 6-put #aptur 6-trrupt7 Fff // #ompar A Match 6-trrupt7 Fff // #ompar J Match 6-trrupt7 Fff T##R0AD? T##R0JD? T#KT04D? T#KT0CD? 6#R04D? 6#R0CD? F#R0A4D? F#R0ACD? F#R0J4D? F#R0JCD? // Timr/#ou-tr ' i-itiali%atio// #loc< sourc7 >"stm #loc< // #loc< ,alu7 Timr' >toppd // Mod7 Kormal topD?;; // F#' output7 9isco--ctd A>>RD? T##R'D? T#KT'D? F#R'D? // E?tr-al 6-trrupt(s) i-itiali%atio// 6KT7 Fff // 6KT07 Fff // 6KT'7 Fff M#U#RD? M#U#>RD? // Timr(s)/#ou-tr(s) 6-trrupt(s) i-itiali%atioT6M>LD? // U>ART i-itiali%atio// U>ART disa!ld U#>RJD? // A-alog #omparator i-itiali%atio// A-alog #omparator7 Fff // A-alog #omparator 6-put #aptur !" Timr/#ou-tr 07 Fff A#>RD?2 >;6FRD? // A9# i-itiali%atio// A9# disa!ld A9#>RAD? // >P6 i-itiali%atio// >P6 disa!ld >P#RD?
// T$6 i-itiali%atio// T$6 disa!ld T$#RD? // Alpha-umric C#9 i-itiali%atio// #o--ctio-s spcifid i- th // Pro8ct#o-figur# #ompilrCi!rarisAlpha-umric C#9 m-u7 // R> 3 PFRT9 Jit ' // R9 3 PFRT9 Jit 0 // EK 3 PFRT9 Jit + // 9I 3 PFRT9 Jit I // 9 3 PFRT9 Jit // 9: 3 PFRT9 Jit : // 9H 3 PFRT9 Jit H // #haractrs/li-7 0: lcd_i-it(0:) whil (0) G for (aDaD:a) G lcd_goto?"(a5) lcd_putsf(NCFA96K.N) dla"_ms(+) lcd_clar() O for (aDIaBDa33) G lcd_goto?"(a5) lcd_putsf(NM6LRF J '0IN) dla"_ms(+) lcd_clar() O O O
A)$+$ T$ 8 *ada tugas praktikum praktikum ini untuk untuk men$alakan men$alakan LCD 1+?2 $ang menampilk menampilkan an tulisan tulisan 7L8AD09< $ang !ergerak dari kiri kanan dengan dela$ /,,ms.selan6utn$a men$alakan tulisan 7M0=R8 % 2,1< $ang !ergerak dari kanan ke kiri dengan dela$ /,,ms. =emudian 6ika !erhasil disimulasikan maka program siap di upload di modul AVR.
G.KESIMPULAN
Dari praktik mikrokontroller mikrokontroller kali ini kita dapat mempela6ari fungsi dari LCD $ang dapat menampilkan karakter sesuai 6umlah karakter $ang kita program se!elumn$a pada AVR# selain itu kita harus mengetahui 6umlah !it LCD terse!ut seperti mode !it pada rangkaian diatas."ntuk menggunakan mode !it# kita dapat menggunakan li!rar$ !uilt !u ilt in pada Code Vision.pada saat menampilkan karakter terse!ut kita harus mengatur 6umlah delay untuk delay untuk tampilan karakter selan6utn$a apakah proses menampilkan @ scanning scanning ' !er6alan (epat atau lam!at.
H.REFERENSI La!sheet 6o!2LCD http:44www.engineersg http:44www .engineersgarage.(om4ele(troni(-(omp arage.(om4ele(troni(-(omponents41+)2-l(d onents41+)2-l(d-module-datasheet -module-datasheet http:44www .!esmart.un$.a(.id4B24 .!esmart.un$.a(.id4B24