Top Banner

of 33

Modul Mikrokontroler 2014

Nov 04, 2015

Download

Documents

Modul Mikrokontroler 2014
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

S1

NAMA:NIM:KELOMPOK:

LABORATORIUM MIKROPROSESOR DAN ANTARMUKAFAKULTAS TEKNIKUNIVERSITAS TELKOMBANDUNG2014

STRUKTUR ORGANISASILABORATORIUM MIKROPROSESOR DAN ANTARMUKA

Dekan Fakultas Elektro dan Komunikasi: A. Ali Muayyadi, Ir.,MSc., PhDKetua Laboratoria Pengolahan Sinyal Informasi: Koredianto Usman ST., MSc.Pembina Lab Mikroprosesor dan Antarmuka: Burhanudin Dirgantoro ST., MSc.Koordinator Asisten: Mohammad Fakry Abdul GhaniAdministrasi : IstiqomahNur ShabrinaBendahara : Mentari Eka PutriDivisi Praktikum: Mohammad IqbalFadhila Cahya W.M. Fahmi ArsyadPutri Amanda W.Divisi Hardware and Software: Ari SeptayudaDenish NovendaM. FikriansyahWandi WijayaDivisi Riset: Fadli PradityoFitriani HamzahGiwan Gunawan Rendra Laksmana Trianto Fadly HidayatullahZahra BabethTim Pendamping:Royan Bakhtiar RRatna A. NugrahaeniVika Fatwa OnistyamiDwi RamadhaniWahyu WibowoM. Fikri Abdillah

TATA TERTIBPRAKTIKUM MIKROKONTROLER

1. Kelengkapan Praktikuma. Praktikan wajib membawa modul dan kartu praktikum yang telah ditempel foto dan dicap saat pengumpulan TP pertama pada saat pelaksanaan praktikum.b. Praktikan wajib menggunakan seragam resmi mahasiswa IT Telkom selama praktikum berlangsung.2. Pelaksanaan Praktikuma. Pelaksanaan praktikum meliputi Tugas Pendahuluan, Tes Awal, Praktikum, Jurnal dan Tes Akhir.b. Kedatangan Praktikan datang 10 menit sebelum praktikum dimulai. Praktikum dimulai pada waktu yang telah ditentukan. Praktikan yang terlambat kurang dari 20 menit diijinkan mengikuti praktikum. Praktikan yang terlambat lebih dari 20 menit tidak diijinkan mengikuti praktikum.c. Pelaksanaan Praktikum Apabila tidak membawa kelengkapan praktikum (point 1) maka praktikan dipersilahkan melengkapinya sampai waktu pengerjaan Tes Awal selesai. Selama praktikum berlangsung praktikan dilarang melakukan hal-hal yang mengganggu pelaksanaan praktikum seperti : makan, minum, membuat kegaduhan,dll. Praktikan wajib mengikuti semua modul praktikum.3. Tugas Pendahuluana. Tugas pendahuluan bersifat tidak wajib.b. Bagi yang mengerjakan Tugas Pendahuluan wajib mengerjakan semua soal sesuai ketentuan yang ada.c. Tugas Pendahuluan ditulis tangan dalam kertas A4 dan dikumpulkan dalam satu amplop coklat sesuai dengan waktu yang telah ditentukan4. Jurnal Praktikuma. Jurnal diberikan sebelum praktikum berlangsung.b. Jurnal harus dikerjakan semua dan dikumpulkan pada waktu yang telah ditentukan.c. Praktikan dianggap gugur pada modul yang bersangkutan apabila tidak mengerjakan jurnal praktikum.

5. Tes AkhirTes Akhir diberikan oleh asisten setelah praktikum selesai, bisa berupa tes lisan ataupun tertulis.6. Tugas Tambahan a. Asisten bisa memberikan tugas tambahan jika dipandang perlu.b. Tugas tambahan bisa diberikan secara perorangan atau kelompok.c. Waktu pengumpulan tugas tambahan ditentukan asisten masing masing.7. PenilaianTugas Pendahuluan: 20%Tes Awal: 10%Praktikum: 35%Jurnal: 20%Tes Akhir: 15%8. Pertukaran Jadwala. Pertukaran jadwal maksimal satu hari sebelum praktikum yang bersangkutan berlangsung.b. Pertukaran jadwal bisa dilakukan antar sesama praktikan dengan mengisi form tukar jadwal yang disetujui oleh asisten.9. Praktikum SusulanPraktikum susulan dilakukan jika dipandang perlu.10. PresentasiAturan materi presentasi diberitahukan selanjutnya.11. Kelulusana. Praktikan dinyatakan lulus jika nilai akhir setiap modul 50% dan nilai akhir praktikum mempunyai rata rata 60%.b. Jika praktikan gugur dalam satu modul atau lebih maka wajib mengulang seluruh modul pada praktikum semester berikutnya.Bandung, Februari 2014MengetahuiKoordinator AsistenPembina Lab Mikroprosesor dan Antarmuka

M Fakry Abdul Ghani.Burhanudin Dirgantoro ST., MSc.

MODUL IPENGENALAN SISTEM MINIMUM MIKROKONTROLER DAN AVR ATMEGA8535

A. TUJUAN PRAKTIKUM1. Mempelajari sistem minimum mikrokontroler.2. Mengetahui dan memahami fungsi pin-pin pada mikrokontroler AVR ATMega8535.3. Mengerti fungsi-fungsi khusus pin pada mikrokontroler AVR ATMega8535.

B. PERALATAN1. Sismin mikrokontroler.2. PC (Simulator).

C. DASAR TEORI1. Pengenalan AVRArsitektur mikrokontroler jenis AVR (Alf and Vegard RISC atau Advanced Virtual RISC) pertama kali dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian Institute of Technology yaitu Alf-Egil Bogen dan Vegard Wollan. Mikrokontroler AVR kemudian dikembangkan lebih lanjut oleh Atmel. Seri pertama AVR yang dikeluarkan adalah mikrokontroler 8 bit AT90S8515, dengan konfigurasi pin yang sama dengan Mikrokontroler 8051, termasuk address dan data bus yang termultipleksi.Pada awal era industri komputer, bahasa pemrograman masih menggunakan kode mesin dan bahasa assembly. Untuk mempermudah dalam pemrograman para desainer komputer kemudian mengembangkan bahasa pemrograman tingkat tinggi yang mudah dipahami manusia. Namun akibatnya, instruksi yang ada menjadi semakin komplek dan membutuhkan lebih banyak memori. Dan tentu saja siklus eksekusi instruksinya menjadi semakin lama. Dalam AVR dengan arsitektur RISC 8 bit, semua instruksi berukuran 16 bit dan sebagian besar dieksekusi dalam 1 siklus clock. Berbeda dengan mikrokontroler MCS-51 yang instruksinya bervariasi antara 8 bit sampai 32 bit dan dieksekusi selama 1 sampai 4 siklus mesin, dimana 1 siklus mesin membutuhkan 12 periode clock. Perbedaan tersebut terjadi karena AVR berteknologi RISC (Reduced Instruction Set Computer), dimana set instruksinya dikurangi dari segi ukurannya dan kompleksitas mode pengalamatannya. Sedangkan seri MCS-51 berteknologi CISC (Complex Instruction Set Computing).

2. Arsitektur AVRFitur yang tersedia pada ATMega 8535 adalah :

a. Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD. b. ADC 10 bit sebanyak 8 input.

c. 3 buah Timer/Counter dengan kemampuan pembandingan. d. CPU 8 bit yang terdiri dari 32 register.e. Frekuensi clock maksimum 16 MHzf. Watchdog Timer dengan osilator internal. g. SRAM sebesar 512 byte.h. Memori Flash sebesar 8 KB dengan kemampuan read while write.i. Interrupt internal dan eksternal. j. Port komunikasi SPI.k. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.l. Analog Comparator.m. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps.

3. Blok Diagram AVR ATMega 8535

Gambar 1.1 Blok Diagram ATMega8535

4. Spesifikasi AVR ATMega 85354.1 Konfigurasi Pin-pin ATMega8535

Gambar 1.2 Konfigurasi Pin ATMega 8535

Mikrokontroler ATMega8535 mempunyai 40 kaki. 32 diantaranya merupakan port I/O yaitu PortA, PortB, PortC, dan PortD yang masing-masing Port tersebut terdiri dari 8 pin I/O.Dekripsi masing-masing pin:PortA (PA0PA7) sebagai port I/O dan memiliki kemampuan lain yaitu sebagai input untuk ADC (Analog to Digital Converter). Jika ADC tidak digunakan maka PortA merupakan 8-bit I/O dua arah. Pada PortA terdapat internal Pull-up resistor. Ketika pin di PortA disetting low (0) maka arus akan mengalir jika resistor pull-up inernal diaktifkan.PortB (PB0PB7) merupakan 8-bit port I/O dua arah. Pada PortB terdapat internal Pull-up resistor. Ketika pin di PortB disetting low (0) maka arus akan megalir jika resistor pull-up internal diaktifkan.PortC (PC7PC0) merupakan 8-bit port I/O dua arah. Pada PortC terdapat internal Pull-up resistor. Ketika pin di PortC disetting low (0) maka arus akan megalir jika resistor pull-up internal diaktifkan.PortD (PD0PD7) merupakan 8-bit port I/O dua arah. Pada PortC terdapat internal Pull-up resistor. Ketika pin di PortC disetting low (0) maka arus akan megalir jika resistor pull-up internal diaktifkan.GND merupakan pin Ground.VCC merupakan pin input catu daya.AREF merupakan pin input tegangan referensi ADC.AVCC merupakan pin input tegangan ADC.XTAL1 & XTAL2 merupakan pin clock eksternalRESET merupakan pin untuk mereset mikrokontroler. Jika diberi input low(0)maka program yang telah dibuat akan kembali dari awal.

4.2 Spesifikasi PortPort A

PORT AFungsi Tambahan

PA0ADC0 (input ADC channel 0)

PA1ADC1 (input ADC channel 1)

PA2ADC2 (input ADC channel 2)

PA3ADC3 (input ADC channel 3)

PA4ADC4 (input ADC channel 4)

PA5ADC5 (input ADC channel 5)

PA6ADC6 (input ADC channel 6)

PA7ADC7 (input ADC channel 7)

Fungsi Khusus Port A :Pada seri AVR ATMega 8535 ini telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC dapat dikonfigurasi baik secara single ended maupun differential input. Selain itu, ADC ATMega 8535 memiliki kofigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang sangat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dengan ADC itu sendiri.

Port B

PORT BFungsi Tambahan

PB0T0 (Timer/Counter0 External Counter Input),XCK (USART External Clock Input/Output)

PB1T1 (Timer/Counter1 External Counter Input)

PB2AIN0 (Analog Comparator Positive Input),INT2 (External Interupt 2 Input)

PB3AIN1 (Analog Comparator Negative Input),OC0 (Timer/Counter0 Output - Compare MatchOutput)

PB4SS (SPI Slave Select Input)

PB5MOSI (SPI Bus MasterOutput/Slave Input)

PB6MISO (SPI Bus Master Input/Slave Output)

PB7SCK (SPI Bus Serial Clock)

Fungsi Khusus Port B :1. T0/T1 sebagai input Timer/Counter External.2. AIN0 dan AIN1 sebagai input komparator (AIN0=input positif, sedangkanAIN1=input negatif)3. SS (SPI) sebagai port untuk komunikasi antar mikrokontroler.4. MOSI, MISO, SCK berfungsi sebagai input downloader ISP.

Port C

PORT CFungsi Tambahan

PC0SCL (Two-wire Serial Bus Clock Line)

PC1SDA (Two-wire Serial Bus Data I/O Line)

PC2TCK (JTAG Test Clock)

PC3TMS (JTAG Test Mode Select)

PC4TDO (JTAG Test Data Out)

PC5TDI (JTAG Test Data In)

PC6TOSC1 (Timer Oscilator Pin 1)

PC7TOSC2 (Timer Oscilator Pin 2)

Fungsi Khusus Port C :1. SCL dan SDA, sebagai pengatur Interface Serial 2 jalur.2. TCK, sebagai operasi sinkronisasi dari JTAG ke TCK. Jika pin ini digunakan seperti fungsi peripheral tersebut maka pin ini tidak dapat berfungsi sebagai I/O.3. TMS, sebagai pengontrol navigasi mesin TAP. Jika pin ini digunakan seperti fungsi peripheral tersebut maka pin ini tidak dapat berfungsi sebagai I/O.4. TD0, sebagai output Data Serial dari data register. Jika pin ini digunakanseperti fungsi peripheral tersebut maka pin ini tidak dapat berfungsi sebagaiI/O.5. TD1, sebagai Input data serial ke register atau data register. Jika pin ini digunakan seperti fungsi peripheral tersebut maka pin ini tidak dapat berfungsi sebagai I/O.6. TOSC1 dan TOSC2, sebagai penguat amplifier oscillator ketika disambungkan dengan Kristal dan bit ASR serta bit ASSR diset 1 untuk mengaktifkan asynchronous clocking dari Timer/Counter2. Jika pin ini digunakan dalam kondisi tersebut maka pin ini tidak dapat berfungsi sebagai I/O.

Port D

PORT DFungsi Tambahan

PD0RXD (Pin Input USART/Pin terima komunikasi Serial)

PD1TXD (Pin Output USART/Pin kirim Komunikasi Serial)

PD2INT0 (Input Interupt Eksternal 0)

PD3INT1 (Input Interupt Eksternal 1)

PD4OC1B (Timer/Counter1 Output Compare B Match Output)

PD5OC1B (Timer/Counter1 Output Compare A Match Output)

PD6ICP1 (Timer/Counter1 Input Capture Pin)

PD7OC2 (Timer/Counter2 Output Compare Match Output)

Fungsi Khusus Port D :1. RXD dan TXD, pin untuk komunikasi serial.2. INT0 dan INT1, sebagai input Interupsi Eksternal 0 dan Interupsi Eksternal 13. OC1A dan OC1B, sebagai Output untuk PWM mode fungsi timer dan OC1A juga berfungsi sebagai Output Eksternal dari pembanding timer/counter A. Sedangkan OC1B juga berfungsi sebagai Output Eksternal dari pembanding timer/counter B.4. ICP1, sebagai penampung input timer/counter1.5. OC2, sebagai Output untuk PWM mode fungsi timer dan Output Eksternal dari pembanding timer/counter2.

5. Peta MemoriATMega8535 memiliki dua jenis memori yaitu Program Memory dan Data Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan data.Program MemoryATMega8535 memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi dua bagian yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertamakali diaktifkan. Application Flash Section digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalankan program aplikasi ini sebelum menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat diprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program pada Application Flash Section juga sudah aman.

Gambar 1.3 Peta Memory Program

Data MemoryGambar berikut menunjukkan peta memori SRAM pada ATMega8535. Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register File dan I/O Memory sementara 512 lokasi address lainnya digunakan untuk internal data SRAM. Register File terdiri dari 32 general purpose working register, I/O register terdiri dari 64 register.

Gambar 1.4 Peta Data Memory

EEPROM Data MemoryATMega8535 memiliki EEPROM 8-bit sebesar 512 byte untuk menyimpan data. Lokasinya terpisah dengan system address register, data register dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM dumulai dari $000 sampai $1FF.

6. Sistem Minimum Mikrokontroler6.1 Pengertian Sismin MikrokontrolerSismin (Sistim Minimum) Mikrokontroler merupakan suatu rangkaian yang dirancang dengan menggunakan komponen-komponen seminimum mungkin untuk mendukung kerja mikrokontroler sesuai yang kita inginkan. Berbeda dengan sismin mikroprosesor, sismin mikrokontroler ini memiliki pendukung input output yang programmable dan RAM yang On-chip. Sismin ini bisa dibuat sangat fleksibel tergantung aplikasi yang dibuat.

6.2 Blok-blok Sismin AVRBlok-blok yang terdapat pada system minimum Mikrokontroler yang dipakai pada praktikum kali ini adalah sebagai berikut :a. MikrokontrolerMerupakan salah satu bentuk aplikasi teknologi semikonduktor dengan kandungan transistor lebih banyak namun dengan harga yang jauh lebih murah bila dibandingkan dengan mikroprosesor. Sistem mikrokontroler hanya dapat menangani satu program aplikasi mengingat memorinya yang sangat terbatas. Bisa dikatakan, Mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi analog ke digital (ADC) dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau kompleks.b. Catu DayaBlok ini berfungsi untuk memberikan catuan ke sismin sebesar 5 volt. Blok catu Daya terdiri dari Regulator 7805, Kapasitor, Resistor, dan Indikator LED.c. Input/OutputBlok ini berfungsi sebagai input dan output. Blok ini terdiri dari blok input(push button dan keypad) dan blok Output (LED dan LCD).d. OscilatorBlok ini berfungsi untuk membangkitkan sinyal clock. Blok oscillator terdiri dari kapasitor keramik dan kapasitor Kristal.e. SerialBlok ini digunakan untuk mengirimkan data secara serial. Blok Serial terdiri dari IC MAX232 dan port serial (male/DB 9). MAX232 merupakan komponen untuk mengubah tegangan level TTL menjadi lebih tinggi ke level RS232 sebelum data tersebut ditransmisikan secara serial. Tujuan dari MAX232 adalah agar data yang dikirimkan tersebut tidak habis di tengah jalan.

MODUL II TIMER/COUNTER DAN PWM

A. TUJUAN PRAKTIKUM1. Memahami fungsi dan kerja timer pada ATMega8535.2. Memahami fungsi dan kerja counter pada ATMega8535.3. Memahami fungsi dan kerja prescaler serta perhitungan timer menggunakan prescaler.

B.1.PERALATANSismin mikrokontroler.

2.PC (Simulator).

C.DASAR TEORI

1.Timer dan CounterATMega8535 mempunyai

timer/counter yang

berfungsi

sebagai

pencacah/pewaktuan. Karena ATMega8535 mampu memakai crystal berfrekuensisampai dengan 16 MHz maka mikrokontroler ini dapat mencapai 16MIPS (MillionInstruction per Second).Pada AVR ATMega8535 terdapat 3 buah timer, yaitu timer/counter 0 (8 bit), timer/counter 1 (16 bit), dan timer/counter 2 ( 8 bit). Ketiganya dapat berfungsi sebagai timer maupun counter. Pada fungsi 'timer', isi register ditambah satu setiap siklus mesin (secara hardware). Jadi, seperti menghitung siklus mesin. Pada fungsi 'counter', penambahan isi register diatur oleh user secara software. Apabila periode waktu tertentu telah dilampaui, timer/counter segera menginterupsi mikrokontroler untuk memberitahukan bahwa perhitungan peritode waktu telah selesai dilaksanakan.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.

2. PrescalerTimer pada dasarnya hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi crystal yang dipasang atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024. Berikut penjelasannya:Sebuah AVR menggunakan crystal dengan frekuensi 8 MHz dan timer yang digunakan adalah timer 16 bit, maka maksimum waktu timer yang bisa dihasilkan adalah:

TMAX = 1/fCLK x (FFFFh+1) = 0.125uS x 65536 = 0.008192 S

Untuk menghasilkan waktu timer yang lebih lama dapat digunakan prescaler, misalnya 1024, maka maksimum waktu timer yang bisa dihasilkan adalah :TMAX = 1/fCLK x (FFFFh+1) x N = 0.125uS x 65536 x 1024 = 8.388608 S

3. Timer/Counter 0Merupakan 8 bit timer/counter, pengaturan Timer/Counter 0 diatur oleh TCCR0 (Timer/Counter control register 0) seperti berikut ini:

Gambar 2.1 Register TCCR0

Bit 3 ~ 7 digunakan untuk setting PWM.Bit 2, 1, 0 (CS02, CS01, CS00): Clock select. Ketiga bit tersebut memilih sumber clock yang akan digunakan oleh timer/counter.

Tabel 2.1 Konfigurasi Bit Clock Select

4. Timer/Counter 1Merupakan 16-bit timer/counter sehingga terdapat perbedaan cara pengaksesannya dengan 8-bit timer/counter. 16-bit (1 word) timer/counter harus diakses dengan 8 bit high dan 8 bit low.Pengaturan Timer/Counter1 juga diatur oleh register TCCR1B.

Gambar 2.2 Register TCCR1B

Bit 2,1,0 (CS1 2:0): Clock Select. Ketiga bit tersebut (CS2/CS1/CS0)mengatur sumber clock yang digunakan untuk Timer/Counter1.

Tabel 2.2 Konfigurasi Bit Clock Select untuk Memilih Sumber Clock

5. Timer/Counter 2Timer/Counter2 adalah 8-bit Timer/Counter, pengaturan pada Timer/Counter2 diatur oleh TCCR2 (Timer/Counter Control Register 2).

Gambar 2.3 Register TCCR2

Bit 2,1,0 (CS22; CS21, CS20): Clock Select. Ketiga bit ini memilih sumber clock yang akan digunakan oleh Timer/Counter.Tabel 2.3 Konfigurasi Bit Clock Select untuk Memilih Sumber Clock

6. Register TIMSK dan TIFRSelain register-register di atas, terdapat pula register TIMSK (Timer/CounterInterrupt Mask Register) dan register TIFR (Timer/Counter Interrupt Flag Register).

Gambar 2.4 Register TIMSKOCIEx: Output Compare Match Interrupt Enable. Jika bit tersebut diberi logika 1 dan bit I SREG juga berlogika 1, maka bisa dilakukan enable interupsi Output Compare Match Timer/Counter x.TOIEx: Overflow Interrupt Enable. Jika diberi logika 1 dan bit I SREG juga berlogika 1, maka bisa dilakukan enable interupsi Overflow Timer/Counter x.TCIE1: Timer/Counter 1, Input Capture Interrupt Enable

Gambar 2.5 Register TIFR

OCFx: Output Compare Flag. Bernilai 1 (set) jika terjadi compare match antara Timer/Counter x dan data di OCRx (Output Compare Register x). OCFx di-clear secara hardware ketika pengeksekusian corresponding interrupt handling vector. Atau, jika diberi nilai 1 secara lagsung ke bit flag. Saat bit I SREG, OCIEx, dan OCFx set (berlogika 1), maka Timer/Counter x Compare Match Interrupt dieksekusi.TOVx: Timer/Counter x Overflow Flag. Bit ini akan set (bernilai 1) saat terjadi overflow di Timer/Counter x. TOVx akan clear (bernilai 0) secara hardware saat pengeksekusian corresponding interrupt handling vector. Atau, diberikan logika 1 ke bit flag. Saat bit i SREG, TOIEx (Timer/Counter x Overflow Interrupt Enable), dan TOVx set, akan terjadi pengeksekusian Timer/Counter x Overflow Interrupt. Pada mode PWM, bit ini set ketika Timer/Counter x mengubah arah perhitungan hingga menuju nilai 0x00.

7. Setting TimerSebelum kita melakukan setting timer maka kita tentukan dahulu nilai delay yang kita inginkan lalu bisa kita dapatkan nilai TCNTnya

TCNT : Nilai timer (Hex)

fCLK : Frekuensi clock (crystal) yang digunakan (Hz) T timer : Waktu timer yang diinginkan (detik)N : Prescaler (1, 8, 64, 256, 1024)1+FFFFh : Nilai max timer adalah FFFFh dan overflow saat FFFFh ke 0000h

8. Pulse Width Modulation (PWM)Pulse Width Modulation (PWM) adalah cara yang digunakan untuk menyediakan tegangan yang nilainya diantara nilai off (zero) dan nilai on (max) dengan memanipulasi lebar pulsa digital. Pulsa PWM adalah sederetan pulsa digital yang lebar pulsanya dapat diatur. PWM digunakan untuk mengatur kecepatan motor DC, mengatur gelap terang nyala LED, dan aplikasi lainnya.PWM menggunakan gelombang kotak dengan duty cycle tertentu yang menghasilkan berbagai nilai rata-rata dari suatu bentuk gelombang. Duty cycle menyatakan presentase keadaan logika high (pulse) dalam satu periode sinyal. Satu siklus diawali oleh transisi low to high dari sinyal dan berakhir pada transisi berikutnya. Selama satu siklus, jika waktu sinyal pada keadaan high sama dengan low maka dikatakan sinyal mempunyai duty cycle 50%. Fitur PWM merupakan salah satu keunggulan Timer/Counter pada ATMega8535. Pengaturan duty cycle dan nilai rata-rata tegangan DC dilakukan dengan mengatur nilai register OCRnpada Timer/counter

AverageAverageAverage

DCDC 50%DC 75%

25%

ocr=128

Nyala red redup Nyala sedang Nyala led terang255 2550 0

Gambar 6.5 Pola Kerja PWM8.1 Konfigurasi PWMRegister yang digunakan untuk mengkonfigurasi penggunaan PWM berada pada register untuk Timer/counter . Timer/counter0 dan Timer/counter2 memiliki PWM 8 bit, Timer/counter1 memiliki PWM 9 bit,PWM 8 bit dan PWM 10 bit. Output PWM terletak pada pin OC0(timer0), pin OC1A dan OC1B (timer 1) , serta pin OC2 (timer2). Untuk memahami penggunaan PWM,berikut ini contoh pemakaian Timer/Counter0 sebagai PWM.Register untuk Konfigurasi PWM :a. Timer/Counter Register (TCNT0)

Gambar 6.6 Register TCNT0Register ini bertugas menghitung pulsa yang masuk ke dalam rimer/counter. Untuk menggunakan PWM, TCNT0 perlu ditentukan nilai awalnya yaitu 0.

b. Output Compare Register (OCR0)

Gambar 6.7 Register OCR0Register 8 bit ini secara kontinu dibandingkan dengan isi TCNT0. Register ini dapat ditentukan isinya. Ketika isi TCNT0=OCR0 maka akan terjadi compare match yang dapat membangkitkan pulsa PWM pada pin OC0

c. Timer/Counter Control Register (TCCR0)Pemilihan Timer untuk mode PWM dikonfigurasi melalui bit WGM01 dan WGM00 pada register TCCR0.

Gambar 6.8 Register TCCR0

Tabel 6.5 Konfigurasi Bit WGM01 dan WGM00

8.2 Mode Operasi PWMa. Mode Fast PWM

Tabel 6.6 Konfigurasi Bit COM01 dan COM00 Compare Output Mode Fast PWM

Dalam mode ini, TCNT0 mencacah dari BOTTOM(0x00) terus mencacah naik (counting up) hingga mencapai MAX (0xff), kemudian mulai dari BOTTOM lagi dan begitu seterusnya (single slope).

Gambar 6.9 Pulsa Fast PWM

b. Mode Phase Correct PWM

Tabel 6.7 Konfigurasi Bit COM01 dan COM00 Compare Output Mode Fast PWM

Ketika COM00 clear dan COM01 set, pin OC0 clear ketika terjadi compare match (nilai TCNT0=OCR0) saat timer mencacah naik (counting up), dan pin OC0 set jika terjadi compare match ketika timer mencacah turun (counting down), kondisi ini menghasilkan keluaran berupa non-inverting PWM. Sebaliknya, ketika COM00 set dan COM01 juga set, maka pin OC0 set ketika terjadi compare match saat timer naik dan OC0 clear saat timer mencacah turun, kondisi ini menghasilkan inverting PWM.Pada mode ini, TCNT0 mencacah dari BOTTOM (0x00) counting up hingga mencapai MAX(0xff) kemudian counting down hingga BOTTOM, begitu seterusnya (dual slope).

Gambar 6.10 Pulsa Phase Correct PWM

9. Contoh Program

Menggunakan timer :Inisialisasi PORT C sebagai outputInisialisasi timer 1 menjadi seperti berikut:Clock Source: System ClockClock Value: 172.797 kHzMode: Normal top=FFFFhOut A: Discon.Out B: Discon.Interrupt on: Checklist Timer 1 OverflowValue: d5d0h

//Timer 1 overflow interrupt service routineInterrupt [TIM1_OVF] void timer1_ovf_isr(void){//Reinitialize Timer 1 valueTCNT1H=0xD5;TCNT1L=0xD0;//Place your code hereif (PINC==0){PORTC=0xFF;}else{PORTC=0x00;}}

.....TCCR1A=0x00;TCCR1B=0x03;TCNT1H=0xD5;TCNT1L=0xD0;

Menggunakan counter :Inisialisasi PORT B sebagai input dan PORT C sebagai outputInisialisasi timer 0 menjadi seperti berikut:Clock Source: T0 Pin Faling EdgeMode: Normal top=FFhOutput: DisconnectedChecklist Overflow Interrupt

.....//Timer 0 overflow interrupt service routineInterrupt [TIM0_OVF] void timer0_ovf_isr(void){//Reinitialize Timer 0 valueTCNT0=0xFA;//Place your code hereif (PINC==0) {PORTC=0xFF;}else {PORTC=0x00;}}.....

MODUL IIISERIAL USART

A.1.TUJUAN PRAKTIKUMMemahami komunikasi serial pada ATMega8535.

2.Mampu mengimplementasikan komunikasi serial pada komputer.

B.1.PERALATANSismin mikrokontroler.

2.PC (Simulator).

3.Kabel serial.

4.Software HyperTerminal atau AccessPort.

C.DASAR TEORISistem USART ATMega8535 memiliki beberapa keuntungan

dibandingkan

dengan sistem UART, yaitu:a. Operasi full duplex.b. Mode operasi asinkron dan sinkron.c. Mendukung komunikasi multiprosesor.

1. Inisialisasi USARTBerikut register yang perlu disetting untuk mengatur komunikasi serial USART:a. UBRR (USART Baud Rate Register)UBBR merupakan register 16 bit yang berfungsi melakukan penentuan kecepatan transmisi data yang akan digunakan. Dibagi menjadi dua, yaitu UBBRHdan UBBRL. Digunakan untuk menentukan baud rate USART.

Rumus :

Gambar 3.1 USART Baud Rate RegisterUBRR = (fosc/16xbaudrate)-1; untuk mode kecepatan normal asinkronb. UCSRA (USART Control and Status Register A) Tabel 3.1 Register UCSRA

RXCTXCUDREFEDORPEU2XMPCM

1) RXC bernilai 1 jika ada data atau yang belum terbaca dan bernilai 0 jika tidak ada data.

2) TXC bernilai 1 jika keseluruhan data sudah terkirim.3) UDRE adalah interup yang akan aktif jika UDRIE pada UCSRB diset 1. UDREbernilai 1 jika buffer kosong.4) FE bernilai 1 jika terjadi error pada proses penerimaan data.5) DOR bernilai 1 jika terjadi over run data, artinya ketika register penerimaan telah penuh dan terdapat data baru yang menunggu.6) PE bernilai 1 jika terjadi error pada parity.7) U2X berhubungan dengan mode asinkron.8) MPCM berkaitan dengan proses multiprosesor.

c. UCSRB (USART Control and Status Register B)UCSRB merupakan register 8 bit pengatur aktivasi penerima dan pengirimUSART. Digunakan untuk mengaktifkan penerimaan dan pengiriman data USART

Gambar 3.2 USART Control and Status Register B RXEN : Jika di set 1 maka akan mengaktifkan penerimaanTXEN : Jika di set 1 maka akan mengaktifkan pengirimanRXCIE : Jika di set 1 maka akan mengaktifkan interupsi penerimaan

d. UCSRC (USART Control and Status Register C)UCSRC merupakan register 8 bit yang digunakan untuk mengatur mode komunikasi USART.

Gambar 3.3 USART Control and Status Register C

URSEL : Jika di set 1 maka register UCSRC bisa diakses, sebab alamat register UCSRC dan UBRR samaUCSZ2..UCSZ0 : Menentukan ukuran karakter yang dikirimkan. Jika UCSZ2..UCSZ0 = 000 maka ukuran karakter 5 bitJika UCSZ2..UCSZ0 = 001 maka ukuran karakter 6 bit Jika UCSZ2..UCSZ0 = 010 maka ukuran karakter 7 bit Jika UCSZ2..UCSZ0 = 011 maka ukuran karakter 8 bit Jika UCSZ2..UCSZ0 = 100-110 tidak digunakanJika UCSZ2..UCSZ0 = 111 maka ukuran karakter 9 bit

e. Inisialisasi USART

#define fosc 11059200#define baud 19200#define ubrr_val (fosc/(16*baud))-1#define RXEN 4#define TXEN 3#define USBS 3#define USCZ0 1#define USEL 7

void usart_init(unsigned int baudr){//set baud rateUBRRH=((unsigned char) (baudr>>8)) &(0x7f);UBRRL=(unsigned char) (baudr);//------------UCSRA=0x00;//aktifkan txUCSRB=(1