MODUL III MODUL III
MIKROKONTROLER MIKROKONTROLER
(SISTEM I/O, ADC DAN INTERUPSI EKSTERNAL) (SISTEM I/O, ADC DAN INTERUPSI EKSTERNAL) A
A.. TTUUJJUUAANN 1.
1. PengePengenalan secnalan secara umum ara umum dasar-dasar-dasar mikdasar mikrokonrokontroler troler AAVVR.R. 2.
2. MenMengetgetahuahui i dan memadan memahamhami i sissistem inputem input/ot/outputput ut (I/(I/O O dan impldan implemeementantasin!sin!a a padpadaa mikrokontroler.
mikrokontroler. ".
". MengetMengetahui dan mahui dan memahami emahami A#$ dA#$ dan impleman implementasinentasin!a pada m!a pada mikrokoikrokontrolentroler.r. %.
%. MeMengngetetahahui ui dadan n mememamahahami mi ininteterurupspsi i ekekststerernanal l dadan n imimplplememenentatasisin!n!a a papadada mikrokontroler.
mikrokontroler. B.
B. DADASASAR R TETEORORII 1.
1. MikMikrorokonkontrtrololr Ar ATTMEME!A!A
Mikrokontroler adalah suatu alat elektronika digital !ang mempun!ai masukan Mikrokontroler adalah suatu alat elektronika digital !ang mempun!ai masukan dan keluaran serta kendali dengan program !ang &ias ditulis dan dihapus dengan dan keluaran serta kendali dengan program !ang &ias ditulis dan dihapus dengan cara khusus. Mikrokontroler merupakan salah satu perkem&angan teknologi !ang cara khusus. Mikrokontroler merupakan salah satu perkem&angan teknologi !ang mengintegrasikan se&uah sistem computer kedalam se&uah chip tunggal ('ingle mengintegrasikan se&uah sistem computer kedalam se&uah chip tunggal ('ingle $hip sehingga teknologi ini mampu &er)ungsi seperti se&uah sistem komputer $hip sehingga teknologi ini mampu &er)ungsi seperti se&uah sistem komputer salah satun!a adalah pada proses pengendalian. 'alah satu contoh-contoh chip salah satun!a adalah pada proses pengendalian. 'alah satu contoh-contoh chip mikrokontroller !ang dipakai dalam praktik
mikrokontroller !ang dipakai dalam praktikum ini adalah um ini adalah AA**M+,A M+,A 1 dimana1 dimana chip mikrokontroller ini mempun!ai )itur-)itur se&agai &erikut
chip mikrokontroller ini mempun!ai )itur-)itur se&agai &erikut
•
• 0it Mikrokontroller 0it Mikrokontroller •
• 1 &!tes lash1 &!tes lash •
• 312 0!tes ++PROM312 0!tes ++PROM •
• 1 &!te internal 'RAM1 &!te internal 'RAM •
• $lock speed up to 1 M45$lock speed up to 1 M45 •
• $hannel 16 $hannel 16 0it A#$0it A#$ •
• " P7M $hannel" P7M $hannel •
• Programma&le 'erial Programma&le 'erial 8'AR*8'AR* •
• +9ternal and Internal Interupt 'ources+9ternal and Internal Interupt 'ources •
• "6 pin input/output"6 pin input/output •
• Operating VoltagesOperating Voltages
:
: 2.;V - 3.3V 2.;V - 3.3V (A*(A*mega1<mega1< :
,am&ar ".1 on)igurasi Pin A*M+,A 1 Pen=elasan dari masing-masing pin adalah se&agai &erikut
a. V$$ merupakan pin !ang &er)ungsi se&agai pin masukan catu da!a. &. ,># merupakan pin ground.
c. Port A (PA;?PA6 merupakan terminal masukan analog menu=u A/# $on@oerter. Port ini =uga &er)ungsi se&agai port I/O &it dua arah. ika A#$ tidak diakti)kan.
d. Port B (P0;..P06 merupakan port I/O &it dua arah dengan resistor pull-up internal. Port 0 =uga dapat &er)ungsi se&agai terminal khusus !aitu timer/counter komparator analog dan 'PI.
e. Port C (P$;..P06 merupakan port I/O &it dua arah dengan resistor pull-up internal. Port $ =uga dapar &er)ungsi se&agai terminal khusus !aitu komparator analog dan timer Oscilator.
). Port D (P#;..P#6 adalah merupakan port I/O &it dua arah dengan resistor pull-up internal. Port # =uga &er)ungsi se&agai terminal khusus !aitu
komparator analog interupsi eksternal dan komunikasi serial.
g. R+'+* merupakan pin !ang digunakan untuk mereset mikrokontroler. h. B*A<1 dan B*A<2 merupakan pin masukan clock eksternal.
i. AV$$ merupakan pin masukan tegangan untuk A#$.
=. AR+ merupakan pin masukan tegangan re)rensiuntuk A#$.
'e&uah mikrokontroller tidak &isa men=alankan )ungsi smart de@ice =ika tidak terpasang dalam rangkaian minimum sistem !ang ditun=ukkan pada ,am&ar ".2. Rangkaian minimum sistem ini adalah rangkaian dimana se&uah chip mikrokontroller dapat men=alankan perintah !ang telah diprogram. Rangkaian minimum s!stem ini terdiri dari pasokan tegangan !ang memasok da!a ke mikrokontroller selain itu ada se&uah cr!stal !ang &er)ungsi untuk mem&erikan osilasi Caktu untuk dapat &eker=a dengan @aria&el Caktu secara tepat.
,am&ar ".2 Rangkaian Minimum '!stem A*mega 1
,am&ar "." Minimum '!stem A*mega 1 1.1 Si"t# I/O (In$%t/O%t$%t)
Port I/O pada mikrokontroler A*mega 1 dapat di)ungsikan se&agai input ataupun output dengan keluaran high atau low. Pada dasarn!a untuk mengakses I/O (input output AVR ada &e&erapa register !ang harus disetting terle&ih dahulu !aitu
&. #ata Register (POR*9
PORT' digunakan untuk mengeluarkan/menulis data ke port mikrokontroler saat dikon)igurasikan se&agai output.
$ontoh POR*0D69)) E maka Port 0 D 11111111 (&iner 6m m 6 POR*0D69a" E maka Port 0 D 16166611 (&iner
. #ata #irection Register (##R9
DDR' digunakan untuk mende)inisikan port se&agai input atau output ika le@el logika pada register ##R &ernilai 1 maka Port terse&ut dikon)igurasikan se&agai Output. 'edangkan =ika le@el logika pada register ##R &ernilai 6 maka Port terse&ut dikon)igurasikan se&agai input.
$ontoh ##RAD69)) E maka Port A se&agai Output 66 hh 6##RAD6F66 E maka Port A se&agai Input . Port Input Pin (PI>9
PIN' digunakan untuk mengam&il/mem&aca data dari port mikrokontroler saat dikon)igurasikan se&agai input.
1.* An&lo+ to Di+it&l Conrtr (ADC)
A#$ digunakan se&agai rangkaian !ang mengu&ah sin!al analog men=adi sin!al digital. #engan menggunakan A#$ kita dapat mengamati sin!al-sin!al dari peru&ahan-peru&ahan sin!al analog seperti peru&ahan temperatur kepekatan asap tekanan udara kecepatan angin &erat &enda kadar asam dan lain-lain !ang semuan!a dapat diamati melalui sensorn!a masing-masing. 4al !ang paling penting dalam suatu rangkaian A#$ adalah resolusi !aitu &esaran analog terkecil
!ang masih dapat dikon@ersi men=adi satuan digital.
Atmega memiliki resolusi A#$ 16 &it (dapat =uga menggunakan A#$ &it dengan channel (PA6-PA; input A#$ dan mendukung 1 macam penguat &eda. A#$ ini &eker=a dengan teknik succecive approximation. Rangkaian internal A#$ memiliki catu da!a tersendiri !aitu pin AV$$.
Resolusi dari se&uah con@erter menun=ukkan &an!akn!a nilai diskrit !ang dapat dihasilkan pada skala tegangan tertentu. Resolusi &iasan!a din!atakan dalam &it (&inar! digit. 'e&agai contoh se&uah A#$ !ang !ang mengkodekan se&uah masukan analog men=adi salah satu dari 23 nilai diskrit mempun!ai resolusi &it karena antar muka antara mikrokontroller dengan komputer dilakukan dengan cara memasang rangkian komunikasi serial sehingga ada tautan antara mikrokontroller dengan komputer misal suatu sensor !ang di&aca oleh mikrokontroller dapat diamati di komputer !aitu data &it sehingga data !ang tertampil dalam komputer dapat terlihat secara real-time. Rumus A#$ n-&it
ADC-(in
2n)/r0
1. Intr%$"i
Interupsi adalah kondisi dimana mikrokontroler akan &erhenti sementara dari program utama untuk mela!ani perintah-perintah pada interupsi setelah selesai
maka mikrokontroler akan kem&ali menger=akan instruksi pada program utama. 8ntuk Atmega 1 ada " sum&er interupsi eksternal !aitu I>*6 (P#2 I>*1 (P#" dan I>*2 (P02. etiga interupsi itu dapat dipicu dengan adan!a peru&ahan le@el &aik transisi naik (rising edge maupun transisi turun ()alling edge. 8ntuk pengaturan mode dan cara ker=ainterupsi eksternal dilakukan melalui 2 &uah register M$8$R dan register M$8$'R. 8ntuk le&is =elasn!a tentang register-register terse&ut le&ih &aik di&aca datasheetn!a. *etapi =ika menggunakan
compiler $odeVision AVR kita tidak perlu dituntut untuk tau tentang kedua register terse&ut karena secara otomatis $odeVision AVR akan mensettingn!a saat kita menset $ode7i5ard AVR dimana penggunaan $ode7i5ard AVR akan di=elakan pada &agian &erikutn!a.
*. CODEISION AR
$odeVision AVR compiler ($VAVR merupakan compiler &ahasa $ untuk AVR. $ompiler ini cukup memadai unutk &ela=ar AVR karena mudah penggunaan n!a =uga didukung &er&agai )itur !ang sangat mem&antu dalam pem&uatan so)tCare untuk keperluan pemrograman AVR. $VA$R ini dapat mengimplematasikan hamper semua interuksi &ahasa $ !ang sesuai dengan arsitektur AVR &ahkan terdapat &e&erapa keunggulan tam&ahan unutk memenuhi keunggulan spesi)ik #ri AVR.
$odeVisionAVR =uga mempun!ai Automatic Program ,enerator &ernama $ode7i5ardAVR !ang mengu=inkan Anda untuk menulis dalam hitunga menit semua instruksi !ang diperlukan untuk mem&uat )ungsi-)ungsi &erikut
G 'et-up akses memori eksternal G Identi)ikasi sum&er reset untuk chip G Inisialisasi port input/output
G Inisialisasi interupsi eksternal G Inisialisasi *imer/$ounter G Inisialisasi 7atchdog-*imer
G Inisialisasi 8AR* (8'AR* dan komunikasi serial &er&asis &u))er !ang digerakkan oleh interupsi
G Inisialisasi Pem&anding Analog G Inisialisasi A#$
G Inisialisasi Antarmuka 'PI
G Inisialisasi Antarmuka *Co-7ire G Inisialisasi Antarmuka $A>
G Inisialisasi 0us I2$ 'ensor 'uhu <M;3 *hermometer/*hermostat #'121 dan Real-*ime $lock P$3" P$3" #'1"62 dan #'1"6;
G Inisialisasi 0us 1-7ire dan 'ensor 'uhu #'126 #'1'26 G Inisialisasi modul <$#
,am&ar "." *ampilan ACal $odeVision AVR
8ntuk memulai mem&uat program pada $VAVR langkah-langkah !ang harus dilakukan !aitu
1. lik ile H >eC maka akan muncul =endela &erikut
,am&ar ".3 endela $reate >eC ile
2. Pilih Pro=ect kemudian klik O kemudian akan muncul =endela &erikut
,am&ar ". endela $on)irm ". lik es maka akan muncul =endela &erikut
%. Pilih A*J6 A*tin! A*mega P'<I$ lik O maka akan muncul =endela &erikut
,am&ar ".; *ampilan $ode7i5ard AVR
Pada $ode7I5ard terse&ut kita dapat melakukan inisiasi dari parameter- parameter mikrokontroler seperti =enis chip mikrokontroler )rekCensi ristal/clock maupun inisiasi dari settingan register-register dari mikrokontroler !ang ingin kita akses misaln!a A#$ timer counter interuspi dll serta dapat =uga digunakan untuk mengkondisikan port I/O mikrokontroler untuk <$#.
3. 'etelah muncul )orm terse&ut silahkan atur ta&-ta& pada )orm terse&ut sesuai dengan ke&utuhan (nilai clock di&uat D 12.6666Mh5 dan setelah selesai lik pada menu Program H K,enerate Program 'a@e and +9itK dan kemudian
muncul )orm pen!impanan seperti &erikut
. 'impan ketiga )ile terse&ut ()ile dengan )ormat L.c L.p=r dan L.cCp dengan nama dan )older !ang sama setelah itu akan muncul source code dasar seperti &erikut
,am&ar ".J *ampilan 'ource $ode #asar C. PERALATAN
1. 0read&oard
2. Minimum 'istem A*mega 1 ". #oCnloader.
". <+#.
3. PoCer 'uppl! 1 &uah. . a&el =umper. ;. <$#. . Potentiometer/trimpot. J. Push 0utton 16. Resistor. D. PROSEDUR PERCOBAAN Di+it&l In$%t/O%t$%t (I/O)
1. 0uat rangkaian dengan <+# resistor dan push &utton seperti pada gam&ar di&aCah lalu hu&ungkan dengan minimum sistem atmega sesuai dengan dengan port !ang sesuai dengan gam&ar di&aCah.
,am&ar ".16 Rangkaian <+# dan push &utton 2. 0uka $odeVision AVR &uat pro=ect &aru
". Pada $ode7i5ard pada ta& $hip pilih Atmega 1 dan isikan )rekCensi clock se&esar 12.666666 Mh5
%. Pilih ta& port dan inisiasikan port $ se&agai output dan port # de&agai input.
,am&ar ".12 Pengkondisian Port $ dan Port # se&agai Input dan Output 3. ,enerate program isikan script di&aCah ini pada progam utama
Chile (1 i) (PI>#.6DD1 POR*$.6D1N POR*$.1D1N else POR*$.6D6N POR*$.1D6N
. $ompile program terse&ut dengan meng klik compile the pro=ectK 'etelah itu masukkan )ile L.he9K !ang &erada pada )older &inK ke mikrokontroller dengan menggunakan so)tCare kha5ama.
;. Amati peru&ahan pada <+#
. 8langi langkah-langkah terse&ut dengan mengganti masukan program dari (PI>#.6DD1 men=adi (PI>#.6DD6
An&lo+ to Di+it&l Conrtr (ADC)
1. 0uat rangkaian dengan <$# dan Potentiometer/trimpot seperti pada gam&ar di&aCah lalu hu&ungkan dengan minimum sistem atmega sesuai dengan dengan port !ang sesuai dengan gam&ar di&aCah.
,am&ar ".1" Rangkaian Perco&aan A#$ 0uka $odeVision AVR &uat pro=ect &aru
". Pada $ode7i5ard pada ta& $hip pilih Atmega 1 dan isikan )rekCensi clock se&esar 12.666666 Mh5
%. Pilih ta& A#$ &eri tanda centang pada A#$ ena&led seperti pada gam&ar di&aCah ini
3. Pilih *a& Alphanumeric <$# setting port c se&agai port output untuk <$# seperti pada gam&ar &erikut.
,am&ar ".13 'etting *a& <$#
. ,enerate program tam&ahkan li&rar! Qinclude stdli&.hH dan #eklarasikan int A#$ serta char tempSTN
seperti pada gam&ar di&aCah ini
;. *am&ahkan script di&aCah ini pada program utama. Chile (1
lcdUclear( N
A#$ D readUadc(6N //0aca A#$ chanel 6 atau PA.6 lcdUgoto9!(66N
lcdUputs)(Praktikum A#$N )toa(A#$1tempN
//)loat to arra! mengu&ah tipedata )loat ke tipe data arra! !g kan ditampilkan di <$# lcdUgoto9!(61N lcdUputs(tempN dela!Ums(366N N
. $ompile program terse&ut dengan meng klik compile the pro=ectK 'etelah itu masukkan )ile L.he9K !ang &erada pada )older &inK ke mikrokontroller dengan menggunakan so)tCare kha5ama.
J. Putar potentiometer/trimpot amati peru&ahan !ang ter=adi dan simpulkan. Intr%$"i Ek"trn&l
1. 0uat rangkaian dengan <+# dan push &utton seperti pada gam&ar di&aCah lalu hu&ungkan dengan minimum sistem atmega sesuai dengan dengan port !ang sesuai dengan gam&ar di&aCah.
,am&ar ".1; Rangkaian Perco&aan Interupsi +ksternal 2. 0uka $odeVision AVR &uat pro=ect &aru
". Pada $ode7i5ard pada ta& $hip pilih Atmega 1 dan isikan )rekCensi clock se&esar 12.666666 Mh5
3. Pilih ta& +9ternal IRW &eri tanda centang pada I>*6 +na&led !ang &erarti mengakti)kan interupsi eksternal I>*6 serta pilih mode alling edge seperti pada gam&ar di&aCah
,am&ar ".1 'etting *a& +9ternal IRW . ,enerate program tam&ahkan li&rar! Qinclude dela!.hH ;. *am&ahkan script &erikut pada &agian interupt
// +9ternal Interrupt 6 ser@ice routine
interrupt S+B*UI>*6T @oid e9tUint6Uisr(@oid POR*$D6BN dela!Ums(1666N POR*$D6B66N dela!Ums(1666N POR*$D6BN dela!Ums(1666N POR*$D6B66N dela!Ums(1666N POR*$D6BN dela!Ums(1666N
. *am&ahkan script &erikut pada program utama Chile (1 POR*$D6B6N dela!Ums(366N POR*$D6B6;N dela!Ums(366N POR*$D6B6"N dela!Ums(366N POR*$D6B61N dela!Ums(366N POR*$D6B66N dela!Ums(366N
J. $ompile program terse&ut dengan meng klik compile the pro=ectK 'etelah itu masukkan )ile L.he9K !ang &erada pada )older &inK ke mikrokontroller dengan menggunakan so)tCare kha5ama.
16. 'aat rangkaian di =alankan maka <+# akan men!ala &er=alan dan kemudian saat ter=adi interupsi !aitu saat push &utton ditekan maka <+# akan &erkedip se&an!ak " kali. 'etelah interupsi selesai di=alankan maka program utama akan kem&ali di=alankan.