Post on 07-Jul-2018
8/18/2019 ADC DAN USART
1/17
I. Tujuan
Setelah menyelesaikan praktikum ini, diharapkan dapat memahami:
1. Mengakses Timer dengan mode normal dan CTC serta Timer sebagai counter
2. Memprogram timer dengan ketiga mode tersebut3. Mengaplikasi fungsi timer pada mikrokontroler !" Teori Dasar
II. Dasar Teori#enis timer yang diberikan oleh !" ada dua yaitu timer dengan resolusi $%bit dan
1&%bit. Sedangkan fitur timer dari masing%masing resolusi tersebut adalah sebagai
berikut :
1. T'M(" ) dan 2 *resolusi $%bit+
eatures:
a. Single Compare -nit Counter b. Clear Timer on Compare Match *uto "eload+
c. litch%free, /hase Correct /ulse 0idth Modulator */0M+
d. reuency enerator
e. (ternal (ent Counter f. 1)%bit Clock /rescaler *1, $, &4, 25&, 1)24+
g. 6erflo7 and Compare Match 'nterrupt Sources *T6!) and 6C)+
2. T'M(" 1 *resolusi 1&%bit+eatures:
a. True 1&%bit 8esign *i.e., llo7s 1&%bit /0M+
b. T7o 'ndependent 6utput Compare -nitsc. 8ouble 9uffered 6utput Compare "egisters
d. 6ne 'nput Capture -nit
e. 'nput Capture oise Canceler f. Clear Timer on Compare Match *uto "eload+
g. litch%free, /hase Correct /ulse 0idth Modulator */0M+
h. !ariable /0M /eriodi. reuency enerator ;. (ternal (ent Counter
k. our 'ndependent 'nterrupt Sources *T6!1, 6C1, 6C19, and 'C1+
8/18/2019 ADC DAN USART
2/17
Secara umum mode pada Timer
8/18/2019 ADC DAN USART
3/17
8ari mode CTC ini, terdapat istilah pembagi clock *prescaller = + yang harus
diketahui dalam menghitung 7aktu atau frekuensi yang akan ditentukan nantinya,
rumusan tersebut yaitu :
tau:
"umusan 7aktu maksimum dari suatu timer adalah sebagai berikut:
8imana : clk = nilai frekuensi kristal yang digunakan.
> = nilai bit timer yang digunakan, bisa $%bit atau 1&%bit.
• ;ika $%bit maka > = 255
• ;ika 1&%bit maka > = &5535
= /rescaller, faktor pembagi mulai $, &4, 25& 1)24.
Contoh :
8iketahui clk = 11.)5?2)) Mh@ dan menggunakan T'M(" )
8/18/2019 ADC DAN USART
4/17
;ika $%bit maka > = 255
;ika 1&%bit maka > = &5535
Salah satu fitur !" TMega1& yaitu fitur Timer tersebut difungsikan sebagai counter
yang bisa menerima masukan dari luar. Masukan sinyal fitur timer tersebut terbagi dua
yang dikendalikan oleh multiplekser clock select, yaitu :
1. ia prescaler
merupakan konstanta yang digunakan sebagai faktor pembagi terhadap kristal yang
digunakan untuk men;adi denyut mikrokontroler, konstanta tersebut bernilai 1, $, &4,
25&
dan 1)24 untuk diturunkan sebagai sumber clock % clkTn.
2. ia sinyal eksternal
merupakan pengaktifasian timer sebagai counter, tiap fitur Timer di !"
TMega1& memiliki beda pin masukan yaitu T)%Timer), T1%Timer1 dan
8/18/2019 ADC DAN USART
5/17
Selain itu ;uga ada fitur mikrokontroler !" TMega1& yang ;uga mampu menerima
sinyal luar yang secara khusus dan spesifik terhadap masukan yang diterimanya. 8ari
fitur tersebut bisa di;elaskan sebagai berikut :
1. itur Timer sebagai Counter
/ada fitur ini difungksikan sebuah timer yang ada di !" TMega1& dimana ada
dua timer yang bisa menerima sinyal data dari luar yaitu :
a. Timer) pada pin T)
9erikut ini merupakan blok dari unit counter dimana sebuah input Tn atau T)difungsikan sebagai sinyal eksternal yang masuk ke sistem counter dari Timer).
Sinyal keluaran clkTn ditentukan oleh multiplekser untuk pembeda sinyal masuk
dari prescaler atau T).
8/18/2019 ADC DAN USART
6/17
Timer1 pada pin T1
9erikut ini merupakan blok dari unit counter dimana sebuah input Tn atau T1
difungsikan sebagai sinyal eksternal yang masuk ke sistem counter dari Timer1.
8ikarenakan 8ata Counter adalah 1&%bit, register TCT1 dipecah men;adi $%bit taitu
TCT1B dan TCT1I. register T(M/ diisi dari TCT1B ketika TCT1I dibaca.
8an TCT1B diisi oleh register T(M/ ketika register TCT1I ditulis
III. Alat dan Bahan
1. omputer 1 -nit
2. Trainer board Mikrokontroller !" 1 -nit3. abel -S9 1 9uah
IV. Setting Percobaan
V. Prosedur Percobaan
Prosedur Umum
1. Secara keseluruhan beberapa percobaan diba7ah ini menggunakan 7i@ard sehingga
kode digenerate secara otomatis.
2. tur semua kode program yang ada kemudian diletakkan sesuai pada bagian%bagian
kode hasil generate 7i@ard.
8/18/2019 ADC DAN USART
7/17
3. /astikan hasil compile tidak menghasilkan error dengan menekan F9.
4. Selan;utnya do7nload program tersebut ke MS%1& ia -S9 dengan menekan Shift
F9 dan tekan tombol Program the chi!.
5. mati dan analisa hasilnya kemudian catat hasil tersebut sebagai laporan
sementara.Prosedur "husus
Percobaan #e $
%. &enerate dela' % deti# TI()*% mengguna#an mode normal
Selanjutn'a #eti#an !rogram beri#ut$
/****************************************************This program was produced by theCodeWizardAVR V2.03. !ta"dardAutomatic #rogram $e"eratorCopyright %&&'(200' #a)e +aiduc, +# -"oTech s.r..http//www.hpi"otech.com#roect 1ip(op usi"g T-R% mode 4ormaVersio" %.05ate 20%3(03(%%Author Taui6urrahma"Compa"y 5207 ( #-!Comme"ts Timer % o)erow i"terrupt ser)ice routi"eChip type ATmega%7#rogram type Appicatio"Coc8 re6ue"cy %%.09&200 +zemory mode !ma:ter"a RA size 05ata !tac8 size 297
*****************************************************/;i"cude
8/18/2019 ADC DAN USART
8/17
// #ace your code here
if (8o"disi){
>ar?5=0:;
8o"disi=0;
}else{
>ar?5=0:00;
8o"disi=%;
}}// 5ecare your goba )ariabes here
)oid mai"()oid)
{// 5ecare your oca )ariabes here// -"put/@utput #orts i"itiaizatio"// #ort A i"itiaizatio"// 1u"cB-" 1u"c7-" 1u"c9-" 1u"c-" 1u"c3-" 1u"c2-" 1u"c%-"1u"c0-"// !tateBT !tate7T !tate9T !tateT !tate3T !tate2T !tate%T!tate0T
#@RTA=0:00;
55RA=0:00;// #ort > i"itiaizatio"// 1u"cB-" 1u"c7-" 1u"c9-" 1u"c-" 1u"c3-" 1u"c2-" 1u"c%-"
1u"c0-"
// !tateBT !tate7T !tate9T !tateT !tate3T !tate2T !tate%T!tate0T
#@RT>=0:00;
55R>=0:00;// #ort C i"itiaizatio"// 1u"cB-" 1u"c7-" 1u"c9-" 1u"c-" 1u"c3-" 1u"c2-" 1u"c%-"1u"c0-"
// !tateBT !tate7T !tate9T !tateT !tate3T !tate2T !tate%T!tate0T
#@RTC=0:00;
55RC=0:00;// #ort 5 i"itiaizatio"// 1u"cB@ut 1u"c7@ut 1u"c9@ut 1u"c@ut 1u"c3@ut 1u"c2@ut1u"c%@ut 1u"c0@ut// !tateB0 !tate70 !tate90 !tate0 !tate30 !tate20 !tate%0!tate00
#@RT5=0:00;
55R5=0:11;// Timer/Cou"ter 0 i"itiaizatio"// Coc8 source !ystem Coc8// Coc8 )aue Timer 0 !topped// ode 4orma top11h// @C0 output 5isco""ected
TCCR0=0:00;
TC4T0=0:00;
@CR0=0:00;// Timer/Cou"ter % i"itiaizatio"// Coc8 source !ystem Coc8// Coc8 )aue %0.'00 8+z// ode 4orma top1111h// @C%A output 5isco".// @C%> output 5isco".
// 4oise Ca"ceer @// -"put Capture o" 1ai"g dge// Timer % @)erow -"terrupt @"// -"put Capture -"terrupt @// Compare A atch -"terrupt @// Compare > atch -"terrupt @
TCCR%A=0:00;
TCCR%>=0:09;
TC4T%+=0:59;
8/18/2019 ADC DAN USART
9/17
TC4T%?=0:50;
-CR%+=0:00;
-CR%?=0:00;
@CR%A+=0:00;
@CR%A?=0:00;
@CR%>+=0:00;
@CR%>?=0:00;
// Timer/Cou"ter 2 i"itiaizatio"// Coc8 source !ystem Coc8// Coc8 )aue Timer 2 !topped// ode 4orma top11h// @C2 output 5isco""ected
A!!R=0:00;
TCCR2=0:00;
TC4T2=0:00;
@CR2=0:00;// :ter"a -"terruptDsE i"itiaizatio"// -4T0 @// -4T% @
CFCR=0:00;CFC!R=0:00;
// TimerDsE/Cou"terDsE -"terruptDsE i"itiaizatio"
T-!G=0:0;// A"aog Comparator i"itiaizatio"// A"aog Comparator @// A"aog Comparator -"put Capture by Timer/Cou"ter % @
AC!R=0:'0;
!1-@R=0:00;// $oba e"abe i"terrupts;asmDHseiHE
while (%)
{// #ace your code here
};
}
+. &enerate dela' % deti# TI()*% mengguna#an mode ,T, -,lear Timer on
,om!are (atch Interru!t
Mekanisme berikut ini adalah membuat delay 1 detik pada timer 1. gar
memperoleh 7aktu yang lebih presisi, didapatkan nilai ,om!are A / +A+F0
8/18/2019 ADC DAN USART
10/17
Code0i@ard!" !2.)3.4 Standard
utomatic /rogram enerator
Copyright 1??$%2))$ /ael Baiduc, B/ 'nfoTech s.r.l.
http:
8/18/2019 ADC DAN USART
11/17
8/18/2019 ADC DAN USART
12/17
8/18/2019 ADC DAN USART
13/17
Tambahkan program dalam fungsi void main di bagian while
Tetapi untuk mengakses optocoupler dengan IC8 tidak bisa diakses bersamaan haru
memilih ;umper 3 sesuai ilustrasi berikut ini.
4. Mengakses Timer) sebagai counter dengan interrupt
-ntuk membuat interrupt ketika timer) difungsikan sebagai counter, dimana
ketika hitungan tercapai maka flag interrupt aktif. 9erikut ini dibuat hitungan ke%&
maka 9arI(8 men;alankan running led dan hitungan ke%3 running led tersebut
akan padam hingga proses tersebut ber;alan seterusnya.
8/18/2019 ADC DAN USART
14/17
Copyright 1??$%2))$ /ael Baiduc, B/ 'nfoTech s.r.l.
http:
8/18/2019 ADC DAN USART
15/17
kondisi=3Q
for*a=1QaL=1)QaUU+O
9arI(8 = )55QdelayNms*1))+Q9arI(8 = )QdelayNms*1))+Q
R
Relse if*kondisi==3+ O
8/18/2019 ADC DAN USART
16/17
8/18/2019 ADC DAN USART
17/17
6C"2/)))1