• Tidak ada hasil yang ditemukan

EL3214_4_13212065

N/A
N/A
Protected

Academic year: 2021

Membagikan "EL3214_4_13212065"

Copied!
28
0
0

Teks penuh

(1)

MODUL 4 SEVEN SEGMENT, KEYPAD, DAN LCD

MODUL 4 SEVEN SEGMENT, KEYPAD, DAN LCD

Novi Prihatiningrum (13212065) Novi Prihatiningrum (13212065)

Asisten: Lukman Aji

Asisten: Lukman Aji Samudra (132110Samudra (13211018)18) Tanggal Percobaan: 220!201" Tanggal Percobaan: 220!201" #L321!$Praktikum Sistem %ikro&rosesor #L321!$Praktikum Sistem %ikro&rosesor

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

 Abstrak 

 Abstrak 

 Beberapa

 Beberapa

interface

interface

y

ya

an

ng

g

u

um

mu

um

m

di

digu

guna

naka

kan

n seb

sebag

agai

ai ma

masu

suka

kan

n ma

maup

upun

un

k

ke

ellu

ua

arra

an

n

d

da

alla

am

m

p

pe

en

ng

gg

gu

un

na

aa

an

n

m

miik

krro

ok

ko

on

nttrro

olllle

err

 A

 ATMega8535

TMega8535 

 

adalah

adalah

seven segment, keypad,

seven segment, keypad, dan

dan LCD.

 LCD. Dalam

 Dalam

percobaan di modul 4 ini akan dipelajari

percobaan di modul 4 ini akan dipelajari

bagaimana menggunakan ketiganya.

bagaimana menggunakan ketiganya.

Kata kunci:

Kata kunci: seven segment, keypad, LCD,

seven segment, keypad, LCD,

scanning.

scanning.

1.

1. P

P

ENDAHULUANENDAHULUAN

Dalam menggunakan mikrokontroller ATMega Dalam menggunakan mikrokontroller ATMega 85

853535  seserinringkgkalali i didi!e!erlrlukukan an susuatatu u dede"a"aisis un

untutuk k mmenenaam!m!ililkkaan n kkeleluauararan n mamau!u!uunn memberikan suatu masukan# $ntuk itu da!at memberikan suatu masukan# $ntuk itu da!at dig

digununakakan an dede"a"ais is tatambmbahahan an sese!e!ertrtii sevenseven s

seeggmmeenntt, , kkeeyyppaadd,, ddaan n LL%%DD# # DDaallaamm !enggu

!enggunaannnaann&a&a seven segment seven segment   dan  dan keypadkeypad m

meemmeerrlluukkaan n !rro! osseess scanningscanning   untukuntuk men

menam!am!ilkilkan an kekelualuaran ran mamau!uu!un n memmemba'ba'aa mas

masukukan# an# SemSemententara ara untuntuk uk menmengguggunaknakanan L%D telah terda!at

L%D telah terda!at library library  &ang berisi fungsi- &ang berisi fungsi-fungsi untuk menam!ilkan dalam L%D#

fungsi untuk menam!ilkan dalam L%D#

2.

2. S

S

TUDITUDI

 P

 P

USTAKA USTAKA 

2

2..1

1

S

S

CANNINGCANNING

 S

 S

EVENEVEN

 S

 S

EGMENTEGMENT Salah satu teknik untuk menggunak

Salah satu teknik untuk menggunakanan sevenseven segment 

segment  aaddaalalah h tteekknniikk scanningscanning# # DeDengnganan me

mengnggugunanakakan n teteknknik ik inini i sese(u(umlmlahah sevenseven segment 

segment  da!at di(alankan se'ara bergantian da!at di(alankan se'ara bergantian de

dengngan an frfrekekueuensnsi i tetertrtenentutu# # )a)al l inini i akakanan menghemat (umlah

menghemat (umlah port  port ##

*ada !er'obaan di modul ini akan digunakan *ada !er'obaan di modul ini akan digunakan dua buah

dua buah seven segment seven segment  !ada Trainer Board# !ada Trainer Board# $nt

$ntuk uk menmen(al(alankankanan seven segment seven segment   + dan ,  + dan , se'ara berurutan !in D+ dan D, se'ara berurutan !in D+ dan D, masing-m

masasining g haharurus s didibbereri i lologgikika a ..//0 0 sse'e'aarara be

berrgagantntiaian# n# SeSelalain in ititu u !e!erlrlu u didilalakkukukanan !

!eennggaattuurraann segment segment  mamanna a &&aanng g aakkaann dia

diaktiktifkfkan an dendengan gan memmemberberikaikan n loglogika ika .+.+0#0# $rutan dari MSB ke LSB adalah D* 1 2 D E $rutan dari MSB ke LSB adalah D* 1 2 D E % B A#

% B A#

Gambar 2 1

Gambar 2 1 TTam!"#a$ S%&%$ S%'m%$tam!"#a$ S%&%$ S%'m%$t

2

2..2

2

S

S

CANNINGCANNING

 K 

 K 

EYPADEYPAD $

$nnttuuk k mmeenngggguunnaakkaann keypadkeypad  didigugunanakkanan tteekknniikk scanningscanning se!se!erterti i !ad!ada a !en!engguggunaanaann se

seveven n sesegmgmenent t  sebesebelumn&alumn&a# # *e*engatungaturanran lo

logigika ka didilalakkukukan an sese'a'ara ra bebergrganantitian an ununtutukk me

mengngetetahahui ui totombmbol ol mamana na &a&ang ng sesedadangng di

dittekekanan## KKeeyyppaadd ,,, , &a&ang ng teterdrda!a!at at !a!adada tra

traineiner r boaboard rd memmemiliiliki ki !in !eneri!in !enerimama output output  dar

dari i mikmikrorokokontrntrolloller er 4B4B+ + dan dan 4B4B, , &an&angg be

bersrsififatat actactive ive lowlow  ddan !ian !in n !!emembeberrii input input  !ada mikrokontroller 4BI+ dan 4BI, &ang (uga !ada mikrokontroller 4BI+ dan 4BI, &ang (uga bersifat

bersifat active lowactive low## $n

$ntutuk k memen(n(alalanankakann keypadkeypad ,, diberik,, diberikanan logika ./0 !ada 4B+ dan .+0 !ada 4B,0# logika ./0 !ada 4B+ dan .+0 !ada 4B,0# Selan(utn&a dilakukan !enge'ekan !ada 4BI+ Selan(utn&a dilakukan !enge'ekan !ada 4BI+ dan 4BI, &ang mengalami !erubahan logika dan 4BI, &ang mengalami !erubahan logika da

dari ri ././0 0 memen(n(adadi i .+.+0 0 ununtutuk k memengngetetahahuiui to

tombmbol ol mamana na &a&ang ng diditetekkanan# # SeSelalan(n(ututn&n&aa diulangi langkah &ang sama dengan memberi diulangi langkah &ang sama dengan memberi log

logika .+0 ika .+0 !ad!ada a 4B4B+ + dan dan loglogikika a .+0 !ada.+0 !ada 4B,#

4B,#

Gambar 2 2 Sk%mat"k K%(!a) 2*2 Gambar 2 2 Sk%mat"k K%(!a) 2*2

Laporan Praktikum - Laboratorium Dasar Teknik !ektro " #T$ $T% Laporan Praktikum - Laboratorium Dasar Teknik !ektro " #T$ $T% 11

(2)

2

2..+

+

L

LC

CD

D

*

*adada a !e!er'r'obobaaaan n inini i didigungunakakan an L%L%D D &a&angng b

beerrbbaassiis s ))DD6688/ / LL%%D D %%oonnttrroolllleerr## *

*engenggungunaaaan n L%L%D D akakan an didilalakkukukan an dedengnganan menggunakan

menggunakan librarylibrary dan demodan demo project  project  &ang &ang ber

bernamnama a AA7 7 L%D L%D liblib# # L%D digunaL%D digunakakan n !ad!adaa *ort %#

*ort %#

+.

+. L

L

 ANGKAH ANGKAH

 P

 P

ECO-AANECO-AAN

$ntuk melakukan !er'obaan-!er'obaan !ada $ntuk melakukan !er'obaan-!er'obaan !ada m

moodduul l iinni i ddiigguunnaakkaan n SSiissmmiin n ddeennggaann mikrok

mikrokontroller ATMega 8535# $ntuk ontroller ATMega 8535# $ntuk interfa'einterfa'e digunakan Trainer Board &ang sudah memiliki digunakan Trainer Board &ang sudah memiliki ke

keypypadad, , seseveven n sesegmgmenent,t, dan dan L%DL%D# # SebSebagaagaii su

sumbmber er dada&a &a didigugunanakakann  power  power supply supply  9 9 77## $ntuk

$ntuk melakmelakukan ukan !emr!emrogramograman an digunadigunakankan usbas!#

usbas!#

Sebagai !ersia!an hal berikut dilakukan: Sebagai !ersia!an hal berikut dilakukan: Buk

Buka a *r*rogrogrammammer er ;ot;ote!ae!ad d lallalu u buabuat t ;e<;e< *ro(e't# 4emudian masukkan s'ri!t !rogram# *ro(e't# 4emudian masukkan s'ri!t !rogram# La

Lalu lu sisim!m!an an dadan n adadd d =l=les es tetersrsebebut ut !a!adada !ro(e't#

!ro(e't# Se

Settelelaah h ititu u bubukka a M=M=le le ununttuk uk mememmbubuatat Make=le guna melakuka

Make=le guna melakukan 'om!iling dari n 'om!iling dari s'ri!ts'ri!t &an

&ang g tetelah lah dibudibuat# at# **ada ada M=lM=le e diadiatur tur (en(enisis M

Mikikrrookkonontrtroollller er &a&ang ng ddigigununaakkaan n &&aiaittuu ATMega8535 (enis !rogrammer &aitu usbas! ATMega8535 (enis !rogrammer &aitu usbas! !ort !rogrammer &ang digunakan &aitu 'om+ !ort !rogrammer &ang digunakan &aitu 'om+ da

dan n %l%lo'o'k k 22rre>e>ueuen'n'& & dadari ri ososililatator or &a&angng digunakan &aitu 6368 M)?#

digunakan &aitu 6368 M)?# Se

Setetelalah h s's'riri!t !t dadan n M=M=le le seselelesasai i didibubuatat ke

kembambali li ke ke *r*rogrogrammammer er ;ot;ote!ae!ad d laklakukukanan Ma

Makke e AlAll l ununtutuk k memengng-'-'omom!i!ile le !r!rogograram#m# A!abi

A!abila la berhberhasil asil laklakukan ukan do<ndo<nload load !rog!rogramram u

unnttuuk k mmeemmaassuukkkkaan n !!rrooggrraam m kkee mikrokontroller#

mikrokontroller#

+

+..1

1

T

T

UGASUGAS

 IV.A  S

 IV.A  S

CANNINGCANNING

 S

 S

EVENEVEN

S

S

EGMENTEGMENT )u

)ububungngkakan n **T T A A AATMTMegega8a853535 5 dedengnganan DA

DATTA A 6S 6S !a!ada da TTraraininer er BoBoarard d dadan n **T T DD ATMega 8535 dengan I@* S 4E !ada Trainer ATMega 8535 dengan I@* S 4E !ada Trainer Board#

Board#

+

+..1

1..1

1 T

T

UGASUGAS

 IV.A.1

 IV.A.1

La

Lakkukukan an dodo<n<nloload ad !r!rogograram m &a&ang ng tetelalahh ter

terda!da!at at !ad!ada a modmodul# ul# AmaAmati ti kkelueluaraaran n !ad!adaa se"

se"en en segsegmenment# t# *r*rogrogram am &an&ang g dibudibuat at akakanan menam!ilkan .6#,0 !ada se"en segment# menam!ilkan .6#,0 !ada se"en segment#

+

+..1

1..2

2 T

T

UGASUGAS

 IV.A.2

 IV.A.2

L

Lakakukukan an mmododi=i=kkaassi i !a!ada da !r!rogograram m AA##+#+# !r

!rogograram m akakan an memenanam!m!ilkilkan an .5.5/#/#0 0 ../#/#00 hingga .+/#0 Masing-masing selama + detik hingga .+/#0 Masing-masing selama + detik

kemudian

kemudian menam!ilkan menam!ilkan .22.22#0 #0 ang ang berkedi!berkedi! dengan selang <aktu /#5 detik#

dengan selang <aktu /#5 detik#

+

+..2

2

T

T

UGASUGAS

 IV.-  S

 IV.-  S

CANNINGCANNING

 K 

 K 

EYPADEYPAD )u

)ububungngkakan n **T T A A AATMTMegega a 858535 35 dedengnganan *T $T*$T !ada Trainer Board dan *T D *T $T*$T !ada Trainer Board dan *T D ATMega 8535 dengan I@* S 4E !ada Trainer ATMega 8535 dengan I@* S 4E !ada Trainer Board#

Board#

+

+..2

2..1

1 T

T

UGASUGAS

 IV.-.1

 IV.-.1

La

Lakkukukan an dodo<n<nloload ad !r!rogograram m &a&ang ng tetelalahh ter

terda!da!at at !ad!ada a modmodul# ul# LakLakukukan an !er!er'ob'obaaaann masukan melalui ke&!ad ,, amati keluaran masukan melalui ke&!ad ,, amati keluaran !ada LED#

!ada LED#

+

+..2

2..2

2 T

T

UGASUGAS

 IV.-.2

 IV.-.2

L

Lakakukukan an momodidi==kkaassi i ssehehininggga ga !r!rogograramm menam!ilkan keluaran !ada se"en segment# menam!ilkan keluaran !ada se"en segment#

+

+..+

+

T

T

UGASUGAS

 IV.C  LCD

 IV.C  LCD

)ub

)ubungungkakan n **T T % % AATMeTMega ga 858535 35 dengdenganan *T L%D dan *T D ATMega 8535 dengan *T L%D dan *T D ATMega 8535 dengan I@* S4E !ada Trainer Board#

I@* S4E !ada Trainer Board#

+

+..+

+..1

1 T

T

UGASUGAS

 IV.C.1

 IV.C.1

Ada!tasi make=le dan (alankan a"rl'd#!n!ro( Ada!tasi make=le dan (alankan a"rl'd#!n!ro( !ada A7 L%D Lib Demo#

!ada A7 L%D Lib Demo# Amati keluaran !adaAmati keluaran !ada L%D

L%D

+

+..+

+..2

2 T

T

UGASUGAS

 IV.C.2

 IV.C.2

 alankan

 alankan main#' main#' &ang &ang telah telah dimodi=kasi dimodi=kasi !ada!ada modul# Amati keluaran dari !enekanan tombol modul# Amati keluaran dari !enekanan tombol !ada L%D#

!ada L%D#

+

+..+

+..+

+ T

T

UGASUGAS

 IV.C.+

 IV.C.+

M

Mooddii==kkaassi i ==lle e mmaaiinn##' ' sseehhiinngggga a LL%%DD menam!ilkan ke&!ad ,, &ang ditekan# Amati menam!ilkan ke&!ad ,, &ang ditekan# Amati keluaran dari !enekanan tombol !ada L%D# keluaran dari !enekanan tombol !ada L%D#

1

1

T

T

UGASUGAS

 IV.C.4

 IV.C.4

M

Mooddii==kkaassi i ==lle e mmaaiinn##' ' sseehhiinngggga a LL%%DD menam!ilkan ke&!ad 33 &ang ditekan# Amati menam!ilkan ke&!ad 33 &ang ditekan# Amati keluaran dari !enekanan tombol !ada L%D# keluaran dari !enekanan tombol !ada L%D#

4.

4. H

H

 ASIL ASIL DANDAN

 A 

 A 

NALISISNALISIS

4

4..1

1

T

T

UGASUGAS

 IV.A  S

 IV.A  S

CANNINGCANNING

 S

 S

EVENEVEN

S

S

EGMENTEGMENT

4

4..1

1..1

1 T

T

UGASUGAS

 IV.A.1

 IV.A.1

*ada !er'obaan ini akan dilakukan s'anning *ada !er'obaan ini akan dilakukan s'anning se"

se"en en segsegmenment# t# AkAkan an ditditam!am!ilkilkan an digdigit it 6#,6#, !a

!ada da dudua a sese"e"en n sesegmgmenent# t# *r*rogograram m &a&angng

Laporan Praktikum - Laboratorium Dasar Teknik !ektro " #T$ $T% Laporan Praktikum - Laboratorium Dasar Teknik !ektro " #T$ $T% 22

(3)

digunakan terda!at !ada lam!iran# Berikut Co<'hart dari !rogram &ang digunakan#

Gambar 4  1 /#03art ma"$ T'as A.1

Gambar 4  2 /#03art SS%'m%$ T'as A.1 Dari Co<'hart di atas terlihat bah<a !rogram memiliki bagian main dan sebuah fungsi SSegmen# 2ungsi Ssegmen digunakan untuk mengatur segmen mana &ang diaktifkan saat suatu karakter akan ditam!ilkan# Dalam hal ini han&a karakter angka &ang dibuat &aitu /-9# *enambahan karakter titik !ada se"en segment dilakukan dengan o!erasi  dengan o!eran +6F#

*rogram utama &ang dibuat melakukan s'anning !ada kedua se"en segment se'ara bergantian dengan !eriode , detik terlihat dari (eda + detik tia! !roses s'anning# 4emudian dilakukan !enam!ilan digit .6#0

!ada se"en segment !ertama dan .,0 !ada se"en segment kedua# )asil &ang di!eroleh dari !er'obaan ini telah sesuai &aitu ditam!ilkann&a .6#,0 !ada se"en segment#

4.1.2 T

UGAS

 IV.A.2

*ada !er'obaan ini dilakukan modi=kasi dari tugas A#+# !rogram diinginkan menam!ilkan .5/#0 selama + detik kemudian ./#0 selama satu detik dan begitu seterrusn&a hingga menam!ilkan .+/#0 Setelah itu !rogram akan menam!ilkan .2#2#0 &ang berkedi!-kedi! 3 dengan selang <aktu setengah detik lalu !adam# $ntuk itu dibuat !rogram dengan menggunakan timer+# Timer+ digunakan untuk menghitung <aktu satu detik dan setengah detik# )asil modi=kasi !rogram &ang digunakan terda!at dalam lam!iran# Berikut Co<'hart dari !rogram &ang dimodi=kasi#

Gambar 4  + /#03art ma"$ T'as A.2 $ntuk menghitung <aktu satu detik dan setengah detik digunakan timer + dengan 'om!are mat'h# $ntuk <aktu + detik digunakan %+A G /+%,/# $ntuk <aktu /#5 detik digunakan %+A G //E+/# S'anning se"en segmen untuk menam!ilkan suatu digit dilakukan berulang hingga Cag 'om!are mat'h %2+A diaktifkan &ang menun(ukkan <aktu + detik# Setelah <aktu + detik lan(ut ditam!ilkan digit selan(utn&a !ada se"en segment#

Selain !enambahan timer+ modi=kasi (uga dilakukan !ada fungsi Ssegmen# Sebelumn&a se"en segment han&a menam!ilkan angka sa(a# Modi=kasi dilakukan dengan menambah digit hruf .20 karena di!erlukan dalam !er'obaan ini#

)asil dari !er'obaan ini telah sesuai dengan &ang dihara!kan# Se"en segment

(4)

menam!ilkan .5/#0 ./#0 .3/#0 .,/#0 .+/#0 Masing-masing selama + detik# 4emudian ditam!ilkan .22#0 ang berkedi! dengan selang <aktu /#5 detik#

4.2

T

UGAS

 IV.-  S

CANNING

 K 

EYPAD

4.2.1 T

UGAS

 IV.-.1

*ada !er'obaan ini akan dilakukan s'anning ke&!ad ,, &ang meru!akan em!at buah s<it'h# *rogram akan menam!ilkan LED &ang men&ala sesuai dengan ke&!ad &ang ditekan#  ika SH+ ditekan LED bit / akan men&ala SH, akan men&alakan LED bit / dan + SH 3 akan men&alakan LED bit / + dan , dan SH akan men&alakan LED bit / + , dan 3# *rogram &ang digunakan terda!at dalam lam!iran# Berikut Co<'hart dari !rogram &ang digunakan#

Gambar 4  4 /#03art ma"$ T'as -.1 Dari Co<'hart di atas terlihat bah<a !roses s'anning &ang dilakukan sesuai dengan teori# S'anning dilakukan dengan bergantian mengeluarkan logika ./0 untuk menge'ek ke&!ad &ang ditekan#

)asil &ang di!eroleh dari !er'obaan ini telah sesuai dengan &ang dihara!kan# ika SH+ ditekan LED bit / akan men&ala SH, akan men&alakan LED bit / dan + SH 3 akan men&alakan LED bit / + dan , dan SH akan men&alakan LED bit / + , dan 3#

4.2.2 T

UGAS

 IV.-.2

*ada !er'obaan ini akan dilakukan modi=kasi terhada! !rogram dari !er'obaan B#+# modi=kasi dilakukan dengan menam!ilkan keluaran hasil !enekanan ke&!ad !ada se"en segment# ika SH + ditekan se"en segment

akan menam!ilkan .++0 (ika SH , ditekan se"en segment akan menam!ilkan .,,0 (ika SH 3 ditekan se"en segment akan menam!ilkan .330 dan (ika SH  ditekan se"en segment akan menam!ilkan .0# )asil modi=kasi !rogram &ang digunakan terda!at dalam lam!iran# Berikut Co<'hart &ang digunakan dalam !rogram hasil modi=kasi#

Gambar 4 5 /#03art ma"$ T'as -.2 Modi=kasi dilakukan dengan mengubah keluaran &ang tadin&a melalui LED *TA men(adi keluaran dalam se"en segment# $ntuk itu dilakukan kembali !roses se'anning se"en segment setelah !enge'ekan tombol dilakukan#

)asil &ang di!eroleh telah sesuai dengan hasil &ang dihara!kan# ika SH + ditekan se"en segment akan menam!ilkan .++0 (ika SH , ditekan se"en segment akan menam!ilkan .,,0 (ika SH 3 ditekan se"en segment akan menam!ilkan .330 dan (ika SH  ditekan se"en segment akan menam!ilkan .0#

4.+

T

UGAS

 IV.C  LCD

*ada !er'obaan ini akan digunakan librar& A7 L%D Lib untuk menggunakan fasilitas L%D# Dalam librar& ini telah terda!at bebera!a fngsi dan !rosedur &ang da!at digunakan untuk men(alankan L%D# Berikut !rosedur &ang ada dalam librar& ini#

- L%Dsend%har untuk menam!ilkan karakter

(5)

- L%Dsend%ommand sama se!erti L%Dsend%har

- L%Dinit untuk menginisialisasi L%D - L%D'lr untuk mengosongkan la&ar

L%D

- L%Dhome untuk menggeser 'ursor ke home

- L%Dstring untuk menam!ilkan string !ada la&ar

- L%D1oto untuk menggeser kursor ke !osisi &ang diinginkan

- %o!&StringtoL%D menam!ilkan string !ada L%D

- L%Dde=ne'har untuk menulis sebuah 'har ke L%D %1AM

- L%Dshiftight menggeser se(umlah n karakter ke kanan

- L%DshiftLeft menggeser se(umlah n karakter ke kiri

- L%D'ursorn mengaktifkan !osisi kursor dengan underline

- L%D'ursornBlink mengaktifkan !osisi kursor dengan underline &ang berkedi! - L%D'ursor22 mematikan !osisi

'ursor

- L%Dblank tidak menam!ilkan a!a!un !ada L%D namun tidak membersihkan &ang sebelumn&a ada

- L%D"isible menam!ilkan L%D

- L%D%ursorLeft menggeser kursor L%D ke kiri se(umlah n karakter

- L%D%ursoright menggeser kursor L%D ke kanan se(umlah n karakter

4.+.1 T

UGAS

 IV.C.1

Librar& A7 L%D Lib telah memberikan sebuah main =le untuk mendemokan !enggunaan L%D# *ada !er'obaan ini akan di(alankan demo =le tersebut# *rogram &ang digunakan terda!at dalam lam!iran# Berikut Co<'hart dari !rogram &ang digunakan#

Gambar 4 6 /#03art ma"$ C.1

Gambar 4 7 /#03art )%#a( 1s C.1

(6)

Gambar 4 8 /#03art !r0'r%ssbar C.1

Gambar 4 9 /#03art )%m0a$"mat"0$ )asil dari !er'obaan ini meru!akan tam!ilan !ada L%D &ang menam!ilkan (udul kemudian melakukan !roses loading#

4.+.2 T

UGAS

 IV.C.2

*ada !er'obaan ini dilakukan modi=kasi untuk menam!ilkan !ada L%D karakter &ang ditekan melalui ke&!ad ,,# *rogram hasil modi=kasi

&ang ada !ada modul terda!at dalam lam!iran# Berikut Co<'hart dari !rogram &ang digunakan#

Gambar 4 1: /#03art ma"$ C.2

)asil dari !er'obaan ini ditam!ilkan dalam L%D# ika SH+ ditekan akan ditam!ilkan .J0  (ika SH, ditekan akan ditam!ilkan .60 (ika

SH3 ditekan akan ditam!ilkan .50 (ika SH ditekan akan ditam!ilkan .a0#

4.+.+ T

UGAS

 IV.C.+

*ada !er'obaan ini dilakukan modi=kasi untuk menam!ilkan !ada L%D karakter &ang ditekan melalui ke&!ad ,,# *rogram hasil modi=kasi terda!at dalam lam!iran# Berikut Co<'hart dari !rogram &ang digunakan#

)asil dari !er'obaan ini ditam!ilkan dalam L%D# ika SH+ ditekan akan ditam!ilkan .+0  (ika SH, ditekan akan ditam!ilkan .,0 (ika SH3 ditekan akan ditam!ilkan .30 (ika SH ditekan akan ditam!ilkan .0# umlah karakter &ang ditam!ilkan han&a 3 karakter setelah terda!at tiga karakter dilakukan !enggeserean ke kiri , karakter#

2

T

UGAS

 IV.C.4

*ada !er'obaan ini dilakukan modi=kasi untuk menam!ilkan !ada L%D karakter &ang ditekan melalui ke&!ad # *rogram hasil modi=kasi terda!at dalam lam!iran# Modi=kasi dilakukan

(7)

dengan menambah (umlah s'anning karena kali ini terda!at  tombol# Terda!at em!at !in sebagai out!ut &ang akan diberi logika ./0 se'ara bergantian dan terda!at em!at !in &ang akan di'ek a!akah memiliki logika ./0 )asil &ang di!eroleh belum sesuai &ang dihara!kan# )al ini karena kon=gurasi !in dari ke&!ad  &ang belum diketahui# *enge'ekan berhasil dilakukan untuk , baris &angberisi digit + , 3 a  5 K b# ;amun masih ter(adi kesalahan karena (ika tombol + ditekan &ang ditam!ilkan adalah  dan (ika tombol  ditekan &ang ditam!ilkan adalah 6#

5. K 

ESIMPULAN

Dari !er'obaan-!er'obaan &ang telah dilakukan !ada modul ini di!eroleh kesim!ulan bah<a

- Sebagai interfa'e untuk memberikan masukan ke mikrokontroller ATMega 8535 da!at digunakan ke&!ad#  Terda!at bebera!a (enis ke&!ad dilihat dari ukurann&a &aitu ,, 33 dan #

- Sebagai interfa'e untuk menam!ilkan suatu keluaran selain digunakan LED da!at !ula digunakan se"en segmen dan L%D#

- $ntuk menghemat !enggunaan !ort !ada mikrokontroller ATMega dalam !roses !emba'aan masukan mau!un menam!ilkan keluaran digunakan sebuah teknik s'anning# Dnegan teknik ini s'anning dilakukan se'ara bergantian untuk setia! kom!onen sehingga (umlah !in &ang digunakan han&a sedikit#

- $ntuk menggunakan L%D telah tersedia librar& &ang da!at langsung digunakan beserta dnegan !rosedur-!rosedur di dalamn&a#

D

 A/TA 

 P

USTAKA 

!"

Datas#eet ATMega8535

$"

%uta&arat, Mervin T.,  Petunjuk

 Praktikum Sistem Mikroprosesor ,

La&'rat'rium Dasar Teknik ()ekt',

*andung, $+!5.

(8)

LAMPIAN

!. Tugas A.!

#include <avr/io.h> #define F_CPU 7372800L #include <util/dela.h> char an!"a; char "odehe;

un$i!ned int %%e!&en(char an!"a); int &ain (void) { ''() = 0FF; ''(' = 0FF;  while (*) { P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(7)|(* <<7); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(2); _dela_&$(*); } return 0; }

un$i!ned int %%e!&en(char an!"a) {

switch (an!"a) {

(9)

case 0: "odehe = 03f;  break; case *: "odehe = 00-;  break; case 2: "odehe = 0;  break; case 3: "odehe = 01f;  break; case 1: "odehe = 0--;  break; case : "odehe = 0-d;  break; case -: "odehe = 07d;  break; case 7: "odehe = 007;  break; case 8: "odehe = 07f;  break; case : "odehe = 0-f;  break; } return "odehe; }

$. Tugas A.$

#include <avr/io.h> #include <util/dela.h> char an!"a; char "odehe;

un$i!ned int %%e!&en(char an!"a); int &ain (void) { char i; ''() = 0FF; ''(' = 0FF; ,4%5 |= (* <<,+6*); ,CC(*) = 0; ,CC(* = 00000**0*;

//enentuan nilai a9al ti&er ,C:,*; = 0;

,C:,*L = 0;

//enentuan nilai co&are untu" dela * deti" +C(*); = 0*C; +C(*)L = 020;  while(*) { do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(0)|(* <<7); _dela_&$(*); } while(it_i$_clear(,F(,+CF*))); do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(1); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(0)|(* <<7); _dela_&$(*); } while(it_i$_clear(,F(,+CF*))); do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(3); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(0)|(* <<7);

(10)

_dela_&$(*); } while(it_i$_clear(,F(,+CF*))); do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(2); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(0)|(* <<7); _dela_&$(*); } while(it_i$_clear(,F(,+CF*))); do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(*); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(0)|(* <<7); _dela_&$(*); } while(it_i$_clear(,F(,+CF*))); for(i=*;i <=3;i++){

//enentuan nilai a9al ti&er ,C:,*; = 0;

,C:,*L = 0;

//enentuan nilai co&are untu" dela 0. deti" +C(*); = 006; +C(*)L = 0*0; do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(F); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(F)|(* <<7); _dela_&$(*); } while(it_i$_clear(,F(,+CF*))); do{ ,F(|=(0 <<+CF*)); P+(,' =(0 <<P'7)|(* <<P'-); P+(,) = 000; _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) = 000; _dela_&$(*); } while(it_i$_clear(,F(,+CF*))); } } return 0; }

un$i!ned int %%e!&en(char an!"a) {

switch (an!"a) {

case 0: {"odehe = 03f;  break;} case *: {"odehe = 00-;  break;} case 2: {"odehe = 0;  break;} case 3: {"odehe = 01f;  break;} case 1: {"odehe = 0--;  break;} case : {"odehe = 0-d;  break;} case -: {"odehe = 07d;  break;} case 7: {"odehe = 007;  break;} case 8: {"odehe = 07f;  break;} case : {"odehe = 0-f;  break;}

(11)

case F: {"odehe = 07*;  break;} } return "odehe; }

3. Tugas *.!

#include <avr/io.h> #define F_CPU 7372800UL #include <util/dela.h> int &ain (void) { ''()=0FF; P+(,)=000; ''('=(* <<P'1)|(* <<P'); %F+(=(0 <<PU');  while(*) { P+(,'=(* <<P'1)|(0 <<P'); if(it_i$_clear(P:',0)) P+(,)=00000000*; _dela_&$(0); if(it_i$_clear(P:',*)) P+(,)=00000****; _dela_&$(0); P+(,'=(0 <<P'1)|(* <<P'); if(it_i$_clear(P:',0)) P+(,)=0000000**; _dela_&$(0); if(it_i$_clear(P:',*)) P+(,)=000000***; _dela_&$(0); } return 0; }

. Tugas *.$

#include <avr/io.h> #include <util/dela.h> char an!"a, "odehe;

un$i!ned int %%e!&en(char an!"a);

int &ain (void) { char $tate = 0; ''()=0FF; P+(,)=000; ''('=(* <<P'1)|(* <<P'); %F+(=(0 <<PU');  while(*) { switch($tate) { case 0 : { P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(0); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-);

(12)

P+(,) =%%e!&en(0); _dela_&$(*);  break; } case * : { P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(*); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(*); _dela_&$(*);  break; } case 2 : { P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(2); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(2); _dela_&$(*);  break; } case 3 : { P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(3); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(3); _dela_&$(*);  break; } case 1 : { P+(,' =(0 <<P'7)|(* <<P'-); P+(,) =%%e!&en(1); _dela_&$(*); P+(,' =(* <<P'7)|(0 <<P'-); P+(,) =%%e!&en(1); _dela_&$(*);  break; } } P+(,'=(* <<P'1)|(0 <<P');

if(it_i$_clear(P:',0)) $tate = *; if(it_i$_clear(P:',*)) $tate = 1; P+(,'=(0 <<P'1)|(* <<P');

if(it_i$_clear(P:',0)) $tate = 2; if(it_i$_clear(P:',*)) $tate = 3; }

return 0; }

un$i!ned int %%e!&en(char an!"a) {

switch (an!"a) {

case 0: {"odehe = 03f;  break;} case *: {"odehe = 00-;  break;} case 2: {"odehe = 0;  break;} case 3: {"odehe = 01f;  break;} case 1: {"odehe = 0--;  break;} case : {"odehe = 0-d;  break;} case -: {"odehe = 07d;  break;} case 7: {"odehe = 007;  break;} case 8: {"odehe = 07f;  break;} case : {"odehe = 0-f;  break;}

(13)

case F: {"odehe = 07*;  break;} }

return "odehe; }

5. Li&rary A- LCD : main.c LCD dem'

// 

//

// File :a&e = &ain.c // ,itle = LC' de&o

// )uthor = %ciencero!.co&  Cori!ht ?C@ 2007

// Created = 2007032

// (evi$ed = 20070828

// Aer$ion = *.0

// ,ar!et 4CU = )t&el )A( $erie$ //

// ,hi$ code i$ di$triuted under the B:U Pulic Licen$e

// 9hich can e found at htt=//999.!nu.or!/licen$e$/!l.tt // //  #include <avr/io.h> #include <avr/!&$ace.h> #include <util/dela.h> #include lcd_li.h #include lcd_li.c

//%trin!$ $tored in )A( Fla$h &e&or

con$t uint8_t LC'9elco&eln*[] P(+B464=)A( LC' '64+D0; con$t uint8_t LC'ro!re$$[] P(+B464=Loadin!...D0;

con$t uint8_t LC'ani&ation[] P(+B464= LC' ani&ation D0;

// additional cu$to& LC' character$ con$t uint8_t ac"$la$h[8] P(+B464= { 000000000,//ac" $la$h 0000*0000, 00000*000, 000000*00, 0000000*0, 00000000*, 000000000, 000000000 }; //dela *$ void dela*$(void) { uint8_t i; for(i=0;i <*00;i++) { _dela_&$(*0); } }

//de&on$tration of ro!re$$ ar void ro!re$$(void) { LC'clr(); Co%trin!toLC'(LC'9elco&eln*, 3, 0); dela*$(); LC'clr();

(14)

Co%trin!toLC'(LC'ro!re$$, 3, 0); for(uint8_t i=0;i <2;i++) { _dela_&$(*0); LC'BotoE(0, *); LC'ro!re$$ar(i, 2, *-); } } //de&on$tration of ani&ation void de&oani&ation(void) { LC'clr(); LC'definechar(ac"$la$h,0); Co%trin!toLC'(LC'ani&ation, 0, 0); for(uint8_t i=0;i <3;i++) { LC'BotoE(8, *); LC'$endChar(0); dela*$(); LC'BotoE(8, *); LC'$endChar(); dela*$(); LC'BotoE(8, *); LC'$endChar(/); dela*$(); LC'BotoE(8, *); LC'$endChar(G); dela*$(); LC'BotoE(8, *); LC'$endChar(8);//ac"$la$h dela*$(); LC'BotoE(8, *); LC'$endChar(); dela*$(); LC'BotoE(8, *); LC'$endChar(/); dela*$(); LC'BotoE(8, *); LC'$endChar(G); dela*$(); } } int &ain(void) {

LC'init();//init LC' itH dual lineH cur$or ri!ht LC'clr();//clear$ LC'

 while(*)//loo de&o$ { ro!re$$(); dela*$(); de&oani&ation(); } return 0; }

/. Li&rary A- LCD : )cd0)i&.c

// 

//

(15)

// ,itle = 8 and 1 it LCd interface

// )uthor = %ciencero!.co&  Cori!ht ?C@ 2007

// Created = 2007032

// (evi$ed = 20070808

// Aer$ion = *.0

// ,ar!et 4CU = )t&el )A( $erie$ //

// ,hi$ code i$ di$triuted under the B:U Pulic Licen$e

// 9hich can e found at htt=//999.!nu.or!/licen$e$/!l.tt // //  #include lcd_li.h #include <intte$.h> #include <avr/io.h> #include <avr/!&$ace.h> #include <util/dela.h>

con$t uint8_t LcdCu$to&Char[] P(+B464=//define 8 cu$to& LC' char$ { 000, 0*F, 000, 000, 000, 000, 0*F, 000, // 0. 0/ full ro!re$$ loc" 000, 0*F, 0*0, 0*0, 0*0, 0*0, 0*F, 000, // *. */ full ro!re$$ loc" 000, 0*F, 0*8, 0*8, 0*8, 0*8, 0*F, 000, // 2. 2/ full ro!re$$ loc" 000, 0*F, 0*C, 0*C, 0*C, 0*C, 0*F, 000, // 3. 3/ full ro!re$$ loc" 000, 0*F, 0*6, 0*6, 0*6, 0*6, 0*F, 000, // 1. 1/ full ro!re$$ loc" 000, 0*F, 0*F, 0*F, 0*F, 0*F, 0*F, 000, // . / full ro!re$$ loc" 003, 007, 00F, 0*F, 00F, 007, 003, 000, // -. re9ind arro9 0*8, 0*C, 0*6, 0*F, 0*6, 0*C, 0*8, 000 // 7. fa$tfor9ard arro9 };

void LC'$endChar(uint8_t ch) //%end$ Char to LC' { #ifdef LC'_1it //1 it art L'P=(ch&0****0000); LCP|=* <<LC'_(%; LCP|=* <<LC'_6; _dela_&$(*); LCP&=(* <<LC'_6); LCP&=(* <<LC'_(%); _dela_&$(*); L'P=((ch&00000****)<<1); LCP|=* <<LC'_(%; LCP|=* <<LC'_6; _dela_&$(*); LCP&=(* <<LC'_6); LCP&=(* <<LC'_(%); _dela_&$(*); #el$e //8 it art L'P=ch; LCP|=* <<LC'_(%; LCP|=* <<LC'_6; _dela_&$(*); LCP&=(* <<LC'_6); LCP&=(* <<LC'_(%); _dela_&$(*);

(16)

#endif }

void LC'$endCo&&and(uint8_t c&d) //%end$ Co&&and to LC' { #ifdef LC'_1it //1 it art L'P=(c&d&0****0000); LCP|=* <<LC'_6; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); L'P=((c&d&00000****)<<1); LCP|=* <<LC'_6; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); #el$e //8 it art L'P=c&d; LCP|=* <<LC'_6; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); #endif }

void LC'init(void)//nitialiIe$ LC' { #ifdef LC'_1it //1 it art _dela_&$(*); L'P=000; LCP=000; L''(|=* <<LC'_'7|* <<LC'_'-|* <<LC'_'|* <<LC'_'1; LC'(|=* <<LC'_6|* <<LC'_(J|* <<LC'_(%; //one L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|* <<LC'_'1; //1 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); //t9o L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|* <<LC'_'1; //1 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); //three L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|0 <<LC'_'1; //1 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); //1 itdual line LC'$endCo&&and(000*0*000);

//incre&ent addre$$H invi$ile cur$or $hift LC'$endCo&&and(00000**00);

//init 8 cu$to& char$ uint8_t ch=0, chn=0;  while(ch <-1) { LC'definechar((LcdCu$to&Char+ch),chn++); ch=ch+8; }

(17)

#el$e //8 it art _dela_&$(*); L'P=000; LCP=000; L''(|=* <<LC'_'7|* <<LC'_'-|* <<LC'_'|* <<LC'_'1|* <<LC'_'3 |* <<LC'_'2|* <<LC'_'*|* <<LC'_'0; LC'(|=* <<LC'_6|* <<LC'_(J|* <<LC'_(%; //one L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|* <<LC'_'1|0 <<LC'_'3 |0 <<LC'_'2|0 <<LC'_'*|0 <<LC'_'0; //8 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); //t9o L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|* <<LC'_'1|0 <<LC'_'3 |0 <<LC'_'2|0 <<LC'_'*|0 <<LC'_'0; //8 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*); //three L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|* <<LC'_'1|0 <<LC'_'3 |0 <<LC'_'2|0 <<LC'_'*|0 <<LC'_'0; //8 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*);

//8 it dual line

L'P=0 <<LC'_'7|0 <<LC'_'-|* <<LC'_'|* <<LC'_'1|* <<LC'_'3 |0 <<LC'_'2|0 <<LC'_'*|0 <<LC'_'0; //8 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$(*);

//incre&ent addre$$H invi$ile cur$or $hift L'P=0 <<LC'_'7|0 <<LC'_'-|0 <<LC'_'|0 <<LC'_'1|* <<LC'_'3 |* <<LC'_'2|0 <<LC'_'*|0 <<LC'_'0; //8 it &ode LCP|=* <<LC'_6|0 <<LC'_(J|0 <<LC'_(%; _dela_&$(*); LCP&=(* <<LC'_6); _dela_&$();

//init cu$to& char$ uint8_t ch=0, chn=0;  while(ch <-1) { LC'definechar((LcdCu$to&Char+ch),chn++); ch=ch+8; } #endif }

void LC'clr(void) //Clear$ LC'

{

LC'$endCo&&and(* <<LC'_CL(); }

void LC'ho&e(void) //LC' cur$or ho&e

{

LC'$endCo&&and(* <<LC'_;+46); }

void LC'$trin!(uint8_t! data, uint8_t nte$) //+utut$ $trin! to LC' {

(18)

// chec" to &a"e $ure 9e have a !ood ointer if ("data) return;

// rint data

for(i=0; i <nte$; i++) {

LC'$endChar(data[i]); }

}

void LC'BotoE(uint8_t , uint8_t ) //Cur$or to E  o$ition {

re!i$ter uint8_t ''()4)ddr;

// re&a line$ into roer order switch() { case 0: ''()4)ddr =  LC'_L:60_''()4)''(+;  break; case *: ''()4)ddr =  LC'_L:6*_''()4)''(+;  break; case 2: ''()4)ddr =  LC'_L:62_''()4)''(+;  break; case 3: ''()4)ddr =  LC'_L:63_''()4)''(+;  break; default: ''()4)ddr = LC'_L:60_''()4)''(+; }

// $et data addre$$

LC'$endCo&&and(* <<LC'_''()4 | ''()4)ddr);

}

//Coie$ $trin! fro& fla$h &e&or to LC' at   o$ition //con$t uint8_t 9elco&eln*K P(+B464M)A( LC' '64+D0N //Co%trin!toLC'?9elco&eln*H 3H *@N

void Co%trin!toLC'(con$t uint8_t !Fla$hLoc, uint8_t , uint8_t ) {

uint8_t i;

LC'BotoE(,);

for(i=0;(uint8_t)!&_read_te(&Fla$hLoc[i]);i++) {

LC'$endChar((uint8_t)!&_read_te(&Fla$hLoc[i])); }

}

//define$ char $&ol in CB()4 /

con$t uint8_t ac"$la$hK P(+B464M O 000000000H//ac" $la$h 0000*0000H 00000*000H 000000*00H 0000000*0H 00000000*H 000000000H 000000000 N LC'definechar?ac"$la$hH0@N /

void LC'definechar(con$t uint8_t !c,uint8_t char_code){ uint8_t a, cc;

uint*-_t i;

a=(char_code <<3)|010; for (i=0; i <8; i++){

cc=!&_read_te(&c[i]); LC'$endCo&&and(a++);

LC'$endChar(cc); }

}

void LC'$hiftLeft(uint8_t n) //%crol n of character$ (i!ht {

(19)

for (uint8_t i=0;i <n;i++) {

LC'$endCo&&and(0*6); }

}

void LC'$hift(i!ht(uint8_t n) //%crol n of character$ Left { for (uint8_t i=0;i <n;i++) { LC'$endCo&&and(0*8); } }

void LC'cur$or+n(void) //di$la$ LC' cur$or {

LC'$endCo&&and(006); }

void LC'cur$or+nlin"(void) //di$la$ LC' lin"in! cur$or {

LC'$endCo&&and(00F); }

void LC'cur$or+FF(void) //turn$ +FF cur$or {

LC'$endCo&&and(00C); }

void LC'lan"(void) //lan"$ LC' {

LC'$endCo&&and(008); }

void LC'vi$ile(void) //%ho9$ LC'

{

LC'$endCo&&and(00C); }

void LC'cur$orLeft(uint8_t n) //4ove$ cur$or  n oi$ition$ left { for (uint8_t i=0;i <n;i++) { LC'$endCo&&and(0*0); } }

void LC'cur$or(i!ht(uint8_t n) //4ove$ cur$or  n oi$ition$ left { for (uint8_t i=0;i <n;i++) { LC'$endCo&&and(0*1); } }

//adated fro &)A(L

void LC'ro!re$$ar(uint8_t ro!re$$, uint8_t &aro!re$$, uint8_t len!th) {

uint8_t i;

uint*-_t ielro!re$$; uint8_t c;

// dra9 a ro!re$$ ar di$lain! ?ro!re$$ / &aro!re$$@ // $tartin! fro& the current cur$or o$ition

// 9ith a total len!th of len!th character$

// noteH LC' char$ 0 &u$t e ro!ra&&ed a$ the ar character$ // char 0 M e&t ... char  M full

// total iel len!th of ar!rah eQual$ len!thP(+B(6%%PE6L%_P6(_C;)(N // iel len!th of ar it$elf i$

ielro!re$$ =

((ro!re$$!(len!th!P(+B(6%%PE6L%_P6(_C;)())#&aro!re$$);

(20)

for(i=0; i <len!th; i++) {

// chec" if thi$ i$ a full loc"H or artial or e&t // ?u*-@ ca$t i$ needed to avoid $i!n co&ari$on 9arnin!

if( ((i!(uint*-_t)P(+B(6%%PE6L%_P6(_C;)()+) $  ielro!re$$ ) {

// thi$ i$ a artial or e&t loc"

if( ((i!(uint*-_t)P(+B(6%%PE6L%_P6(_C;)()) $  ielro!re$$ )

{

// thi$ i$ an e&t loc" // u$e $ace characterR c = 0;

} else {

// thi$ i$ a artial loc"

c = ielro!re$$ % P(+B(6%%PE6L%_P6(_C;)(; }

} else {

// thi$ i$ a full loc" c = ;

}

// 9rite character to di$la LC'$endChar(c);

} }

1. Li&rary A- LCD : )cd0)i&.#

// 

//

// File :a&e = lcd_li.h

// ,itle = 8 and 1 it LCd interface

// )uthor = %ciencero!.co&  Cori!ht ?C@ 2007

// Created = 2007032

// (evi$ed = 20070808

// Aer$ion = *.0

// ,ar!et 4CU = )t&el )A( $erie$ //

// ,hi$ code i$ di$triuted under the B:U Pulic Licen$e

// 9hich can e found at htt=//999.!nu.or!/licen$e$/!l.tt // //  #ifndef LC'_L #define LC'_L #include <intte$.h>

//Unco&&ent thi$ if LC' 1 it interface i$ u$ed // #define LC'_1it

//

(21)

#define LC'_(J * //define 4CU in connected to LC' (/J

#define LC'_6 2 //define 4CU in connected to LC' 6

#define LC'_'0 0 //define 4CU in connected to LC' '0 #define LC'_'* * //define 4CU in connected to LC' '* #define LC'_'2 2 //define 4CU in connected to LC' '* #define LC'_'3 3 //define 4CU in connected to LC' '2 #define LC'_'1 1 //define 4CU in connected to LC' '3 #define LC'_'  //define 4CU in connected to LC' '1 #define LC'_'- - //define 4CU in connected to LC' ' #define LC'_'7 7 //define 4CU in connected to LC' '-#define L'P P+(,C //define 4CU ort connected to LC' data in$ #define LCP P+(,C //define 4CU ort connected to LC' control in$

#define L''( ''(C //define 4CU direction re!i$ter for ort connected to LC' data in$

#define LC'( ''(C //define 4CU direction re!i$ter for ort connected to LC' control in$

#define LC'_CL( 0 //'0= clear di$la

#define LC'_;+46 * //'*= return to ho&e o$ition #define LC'_6:,(_4+'6 2 //'2= $et entr &ode

#define LC'_6:,(_:C * //'*= incre&ent #define LC'_6:,(_%;F, 0 //'2= $hift

#define LC'_+:_C,(L 3 //'3= turn lcd/cur$or on

#define LC'_+:_'%PL) 2 //'2= turn di$la on

#define LC'_+:_CU(%+( * //'*= turn cur$or on

#define LC'_+:_L:5 0 //'0= lin"in! cur$or

#define LC'_4+A6 1 //'1= &ove cur$or/di$la

#define LC'_4+A6_'%P 3 //'3= &ove di$la ?0> &ove cur$or@ #define LC'_4+A6_(B;, 2 //'2= &ove ri!ht ?0> left@

#define LC'_FU:C,+:  //'= function $et

#define LC'_FU:C,+:_8, 1 //'1= $et 8, &ode ?0>1, &ode@ #define LC'_FU:C,+:_2L:6% 3 //'3= t9o line$ ?0>one line@

#define LC'_FU:C,+:_*0'+,% 2 //'2= *0 font ?0>7 font@

#define LC'_CB()4 - //'-= $et CB ()4 addre$$

#define LC'_''()4 7 //'7= $et '' ()4 addre$$

// readin!=

#define LC'_U% 7 //'7= LC' i$ u$

#define LC'_L:6% 2 //vi$ile line$

#define LC'_L:6_L6:B,; *- //line len!th ?in character$@

// cur$or o$ition to ''()4 &ain!

#define LC'_L:60_''()4)''( 000

#define LC'_L:6*_''()4)''( 010

#define LC'_L:62_''()4)''( 0*1

#define LC'_L:63_''()4)''( 01

// ro!re$$ ar define$

#define P(+B(6%%PE6L%_P6(_C;)(

-void LC'$endChar(uint8_t); //for&$ data read to $end to 71;C*-1 void LC'$endCo&&and(uint8_t); //for&$ data read to $end to 71;C*-1

void LC'init(void); //nitialiIe$ LC'

void LC'clr(void); //Clear$ LC'

void LC'ho&e(void); //LC' cur$or ho&e

void LC'$trin!(uint8_t!, uint8_t); //+utut$ $trin! to LC' void LC'BotoE(uint8_t, uint8_t); //Cur$or to E  o$ition

void Co%trin!toLC'(con$t uint8_t!, uint8_t, uint8_t);//coie$ fla$h $trin! to LC' at H

void LC'definechar(con$t uint8_t !,uint8_t);//9rite char to LC' CB()4 void LC'$hift(i!ht(uint8_t); //$hift  n character$ (i!ht

void LC'$hiftLeft(uint8_t); //$hift  n character$ Left void LC'cur$or+n(void); //Underline cur$or +:

void LC'cur$or+nlin"(void); //Underline lin"in! cur$or +:

void LC'cur$or+FF(void); //Cur$or +FF

void LC'lan"(void); //LC' lan" ut not cleared

(22)

void LC'cur$orLeft(uint8_t); //%hift cur$or left  n void LC'cur$or(i!ht(uint8_t); //$hif cur$or ri!ht  n

// di$la$ a horiIontal ro!re$$ ar at the current cur$or location // <ro!re$$> i$ the value the ar!rah $hould indicate

// <&aro!re$$> i$ the value at the end of the ar!rah

// <len!th> i$ the nu&er of LC' character$ that the ar!rah $hould cover //adated fro& )A(L  di$la$ ro!re$$ onl for 8 it variale$

void LC'ro!re$$ar(uint8_t ro!re$$, uint8_t &aro!re$$, uint8_t len!th);

#endif

8. Tugas C.$

#include <avr/io.h> #include <avr/!&$ace.h> #include <util/dela.h> #include lcd_li.h #include lcd_li.c

//%trin!$ $tored in )A( Fla$h &e&or

con$t uint8_t LC'to&ol*[] P(+B464=,e"an ,o&ol %cannin! 5eadD0;

//dela *$ void dela*$(void) { uint8_t i; for(i=0;i <*00;i++) { _dela_&$(*0); } } int &ain(void) {

LC'init();//init LC' itH dual lineH cur$or ri!ht LC'clr();//clear$ LC' ''()=0FF; P+(,)=000; ''('=(* <<P'1)|(* <<P')|(* <<PC7)|(* <<PC-); %F+(=(0 <<PU'); dela*$(); LC'BotoE(0, *); dela*$();

 while(*)//loo de&o$ { Co%trin!toLC'(LC'to&ol*, 0, 0); LC'$hift(i!ht(*); P+(,' =(* <<P'1)|(0 <<P'); if(it_i$_clear(P:',0)) { LC'clr(); LC'BotoE(8, *); LC'$endChar(S); dela*$(); LC'clr(); } _dela_&$(0); if(it_i$_clear(P:',*)) { LC'clr(); LC'BotoE(8, *); LC'$endChar(a);

(23)

dela*$(); LC'clr(); } _dela_&$(0); P+(,' =(0 <<P'1)|(* <<P'); if(it_i$_clear(P:',0)) { LC'clr(); LC'BotoE(8, *); LC'$endChar(); dela*$(); LC'clr(); } _dela_&$(0); if(it_i$_clear(P:',*)) { LC'clr(); LC'BotoE(8, *); LC'$endChar(7); dela*$(); LC'clr(); } _dela_&$(0); } return 0; }

2. Tugas C.3

#include <avr/io.h> #include <avr/!&$ace.h> #include <util/dela.h> #include lcd_li.h #include lcd_li.c

//%trin!$ $tored in )A( Fla$h &e&or

con$t uint8_t LC'to&ol*[] P(+B464=Percoaan LC'D0;

//dela *$ void dela*$(void) { uint8_t i; for(i=0;i <*00;i++) { _dela_&$(*0); } } uint8_t counter = 0; int &ain(void) {

LC'init();//init LC' itH dual lineH cur$or ri!ht LC'clr();//clear$ LC' ''()=0FF; P+(,)=000; ''('=(* <<P'1)|(* <<P'); %F+(=(0 <<PU'); dela*$();

 while(*)//loo de&o$ {

(24)

P+(,' =(* <<P'1)|(0 <<P'); if(it_i$_clear(P:',0)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(*); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',*)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(1); dela*$(); } _dela_&$(0); P+(,' =(0 <<P'1)|(* <<P'); if(it_i$_clear(P:',0)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(2); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',*)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(3); dela*$(); } _dela_&$(0); } return 0; }

!+.Tugas C.

#include <avr/io.h> #include <avr/!&$ace.h> #include <util/dela.h> #include lcd_li.h #include lcd_li.c

//%trin!$ $tored in )A( Fla$h &e&or

(25)

//dela *$ void dela*$(void) { uint8_t i; for(i=0;i <*00;i++) { _dela_&$(*0); } } uint8_t counter = 0; int &ain(void) {

LC'init();//init LC' itH dual lineH cur$or ri!ht LC'clr();//clear$ LC' ''()=0FF; P+(,)=000; ''('=(* <<P'1)|(* <<P'); %F+(=(0 <<PU'); dela*$();

 while(*)//loo de&o$ {

LC'BotoE(counter, *);

P+(,' =(0 <<P'1)|(* <<P')|(* <<P'-)|(* <<P'7); if(it_i$_clear(P:',0))

{

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(1); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',*)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(2); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',2)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(3); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',3))

(26)

{

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar()); dela*$(); } _dela_&$(0); P+(,' =(* <<P'1)|(0 <<P')|(* <<P'-)|(* <<P'7); if(it_i$_clear(P:',0)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(7); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',*)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',2)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(-); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',3)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(); dela*$(); } _dela_&$(0); P+(,' =(* <<P'1)|(* <<P')|(0 <<P'-)|(* <<P'7); if(it_i$_clear(P:',0)) {

(27)

{ LC'$hift(i!ht(2); } counter++; LC'$endChar(7); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',*)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(8); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',2)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',3)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(C); dela*$(); } _dela_&$(0); P+(,' =(* <<P'1)|(* <<P')|(* <<P'-)|(0 <<P'7); if(it_i$_clear(P:',0)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',*)) {

if(counter%2==* && counter"=*) {

LC'$hift(i!ht(2); }

(28)

LC'$endChar(0); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',2)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar(#); dela*$(); } _dela_&$(0); if(it_i$_clear(P:',3)) {

if(counter%2==* && counter"=*) { LC'$hift(i!ht(2); } counter++; LC'$endChar('); dela*$(); } _dela_&$(0); } return 0; }

Gambar

Gambar 4  2 /#03art SS%'m%$ T'as A.1 Dari Co&lt;'hart di atas terlihat bah&lt;a !rogram memiliki  bagian  main  dan  sebuah  fungsi SSegmen#  2ungsi  Ssegmen  digunakan  untuk mengatur segmen mana &amp;ang diaktifkan saat suatu  karakter  akan  ditam!i
Gambar 4  4 /#03art ma&#34;$ T'as -.1 Dari  Co&lt;'hart  di  atas  terlihat  bah&lt;a  !roses s'anning &amp;ang dilakukan sesuai dengan teori#

Referensi

Dokumen terkait

Studi permasalahan tersebut mengacu pada faktor-faktor ilmiah yang mempengaruhi dinamika cuaca laut yang tidak diketahui oleh para nelayan, dari permasalahan

[r]

Kepala sekolah dengan kecerdasan spiritual yang tinggi akan mampu m enjalankan nilai-nilai moral yang diambil dari tindakan etis Tuhan Yang Maha Esa terhadap

Selanjutnya dikatakan bahwa ada dua hal yang menyebabkan logam berat digolongkan sebagai pencemar yang berbahaya, yaitu (1) tidak dihancurkan oleh mikroorganisme yang hidup

Bidang Data pelaporan dan Pengaduan melakukan penelaahan dengan menganalisa data form serta melaporkan hasil analisa kepada Kepala Dinas, kemudian melakukan

Yah diharapkan mereka bisa bekerja atau melakukan tugas-tugas lebih baik, mau mengembangkan diri sendiri sehingga mereka mengeluarkan kemampuannya semaksimal mungkin

Dapat menjadi sumber ilmu tambahan untuk berbagai pihak misalnya Aparatur penegak hukum seperti Polisi, Hakim, dan Jaksa yang mengawal jalannya penyelesaian kasus-kasus

Evaluasi hasil penelitianYusdja dkk, (2004) mengemukakan bahwa sasaran program pengadaan daging sapi adalah meningkatkan kelahiran, menurunkan tingkat kematian,