6 0 2 MB
MODUL III TIMER / COUNTER Epran Pratama Ginting (119130004) Asisten : Leja Aprianza (13117085) Tanggal Percobaan : 17/04/2021 EL2109 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro Institut Teknologi Sumatera AbstrakβPercobaan ini berjudul Timer / Counter yang bertujuan praktikan mampu membuat aplikasi Timer / Counter pada AVR menggunakan Bahasa pemrograman C. Percobaan ini dilakukan secara daring sehingga percobaan dikerjakan secara simulasi pada software proteus dan CVAVR. Komponen yang digunakan pada praktikum kali ini yaitu ATMega 8535 yang biasanya digunakan pada otomasi peralatan elektronik. Interrupt adalah kondisi dimana pada saat program utama berjalan kemudian suatu program dieksekusi terlebih dahulu, setelahnya program utama berlanjut Kembali. Timer / Counter difungsikan sebagai program yang menghitung pulsa clock. Memfungsikan timer sebagai counter sama dengan fungsi sebagai timer akantetapi clock tidak berasal dari frekueensi kristal melainkan dari kaki Tn Kata Kunciβ Timer, Counter
II. LANDASAN TEORI Timer / Counter ATMega 8535 ATMega8535 mempunyai timer/counter yang berfungsi sebagai pencacah/pewaktuan, karena ATMega8535 mampu memakai crystal berfrekuensi sampai dengan 16 MHz maka mikrokontroler ini dapat mencapai 16 MIPS (Million Intruction per Second). Pada mikrokontroler ATMega 8535 perlu diperhaatikan pemilihan sumber clock. Hal ini berhubungan dengan frekuensi yang kita inginkan. Jika kita ingin menggunakan frekuensi 12 MHz dengan sumber clock eksternal maka perlu dilakukan kalibrasi fuse bit mikrokontroler dengan downloader, jka tidak maka mikrokontroler akan menggunakan frekuensi dengan sumber clock internal sekitar 4 MHz. [1]
I. PENDAHULUAN ATMega8535 mempunyai timer/counter yang berfungsi sebagai pencacah/pewaktuan. Karena ATMega8535 mampu memakai crystal berfrekuensi sampai dengan 16 MHz maka mikrokontroler ini dapat mencapai 16MIPS (Million Instruction per Second). Pada mikrokontroler ATMega 8535 perlu diperhatikan pemilihan sumber clock. Hal ini berhubungan dengan frekuensi yang kita inginkan. Jika kita ingin menggunakan frekuensi 12MHz dengan sumber clock eksternal maka perlu dilakukan kalibrasi fuse bit mikrokontroler dengan downloader, jika tidak maka mikrokontroler akan menggunakan frekuensi dengan sumber clock internal sekitar 4 MHz. Adapun tujuan dari percobaan modul 1 ini ialah :
Counter Secara prinsip, memfungsikan Timer/Counter sama dengan fungsi sebagai Timer akan tetapi sumber bukan berasal dari frekuensi kristal, tetapi input dari kaki Tn. Dengan memanfaatkan counter naik, maka bisa diberikan nilai TCNT yang sesuai dengan rumus : TCNT = (1+FFH) β jumlah counter Sehingga jika diinginkan membuat counter 5, maka nilai TCNT adalah FBH. Mode PWM
1.
Praktikan mampu membuat aplikasi Timer / Counter pada AVR dengan menggunakan Bahasa pemrograman C
Dengan mode ini, maka mikrokontroler bisa membangkitkan sinyal dengan frekuensi tertentu dan duty cycle tertentu sesuai dengan rumur sebagai. Untuk Fast PWM :
πππΆππππ=πππππΌ/π/π.256 Untuk Phase Correct PWM: πππΆππππ=πππππΌ/π2/π.256
Dimana nilai OCR yang berkaisar dari 0 sampai 255 akan mempengaruhi duty cycle sinyal yang dibangkitkan.[2]
Buat kode program di software AVR sesuai yang ada pada modul
III. METODOLOGI Alat dan Bahan 1. 2.
3.
Compile kode program ke IC pada rangkaian
Laptop Software proteus digunakan untuk merancang rangkaian dan display atau serial monitor hasil percobaan Software CV AVR digunakan untuk membuat kode program
Jalankan dan analisa percobaan
Langkah Kerja 1.
Penggunaan 8-Bit Mengendalikan Led
Timer/Counter0
Untuk
Buat rangkaian di software proteus
IV. HASIL DAN ANALISIS Penggunaan 8-bit Timer/Counter0 untuk Mengendalikan LED #include unsigned char led=0xfe;
Buat kode program di software AVR sesuai yang ada pada modul
Compile kode program ke IC pada rangkaian
Jalankan dan analisa percobaan
2.
Penggunaan 16-Bit Timer/Counter1 Sebagai Pwm Untuk Mengendalikan Kecepatan Putar Motor Dc Buat rangkaian di software proteus
void main(void) { // Please write your application code here DDRA=0xff; PORTA=led; TCNT0=0x00; TCCR0=0x05; TIMSK=0x01; TIFR=0x00; #asm ("sei"); while(1) {PORTA=led;} } interrupt [TIM0_OVF] void timer0_overflow(void) { TCNT0 = 0x00; led