Upload
dio-wiryawan
View
383
Download
0
Embed Size (px)
Citation preview
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 1/40
ATMEGA8535
Posted by iswanto
AVR termasuk kedalam jenis mikrokontroler RISC ( Reduced Instruction Set Computing ) 8 bit.
Berbeda dengan mikrokontroler keluarga MCS-51 yang berteknologi CISC (Complex Instruction Set Computing ). Pada mikrokontroler dengan teknologi RISC semua instruksidikemas dalam kode 16 bit (16 bits words) dan sebagian besar instruksi dieksekusi dalam 1clock, sedangkan pada teknologi CISC seperti yang diterapkan pada mikrokontroler MCS-51,untuk menjalankan sebuah instruksi dibutuhkan waktu sebanyak 12 siklus clock.
AVR atau sebuah kependekan dari Alf and Vegard’s Risc Processor merupakan chipmikrokontroler yang diproduksi oleh Atmel, yang secara umum dapat dikelompokkan ke dalam4 kelas :
• ATtiny• ATMega• AT90Sxx• AT86RFxx
Perbedaan yang terdapat pada masing-masing kelas adalah kapasitas memori, peripheral, danfungsinya. Dalam hal arsitektur maupun instruksinya, hampir idak ada perbedaan sama sekali.Dalam hal ini ATMEGA8535 dapat beroperasi pada kecepatan maksimal 16MHz serta memiliki6 pilihan mode sleep untuk menghemat penggunaan daya listrik. Lebih jelas tentangATMEGA8535, download disini
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 2/40
BAB I
Konstruksi dasar ATMega8535
PENDAHULUAN
Mikrokontroler merupakan chip cerdas yang menjadi tren dalam
pengendalian dan otomatisasi, terutama di kalangan mahasiswa. Dengan banyak
jenis keluarga, kapasitas memori, dan berbagai fitur, mikrokontroler menjadi pilihan
dalam aplikasi prosesor mini untuk pengendalian skala kecil.
Beberapa vendor populer seperti Intel, Atmel, Motorola, Microchip, dan Harris
telah memasarkan beberapa jenis mikrokontroler ke pasar di seluruh dunia dalam
berbagai bentuk dan fiturnya.
MIKROKONTROLER AVR
Mikrokontroler AVR (Alf and Vegard’s Risc processor) dari Atmel ini
menggunakan arsitektur RISC (Reduced Instruction Set Computer ) yang artinya
prosesor tersebut memiliki set instruksi program yang lebih sedikit dibandingkan
dengan MCS-51 yang menerapkan arsitektur CISC (Complex Instruction Set
Computer).
Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum tentu
sederhana), sehingga instruksi-instruksi ini umumnya hanya memerlukan 1 siklus
mesin untuk menjalankannya. Kecuali instruksi percabangan yang membutuhkan 2
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 3/40
siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard , karena arsitektur ini
yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam
satu atau dua siklus mesin, sehingga akan semakin cepat dan handal. Proses
downloading programnya relatif lebih mudah karena dapat dilakukan langsung pada
sistemnya.
Sekarang ini, AVR dapat dikelompokkan menjadi 6 kelas, yaitu keluarga
ATtiny, keluarga AT90Sxx, keluarga ATmega, keluarga AT90CAN, keluarga
AT90PWM dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas
adalah memori, peripheral, dan fungsinya, sedangkan dari segi arsitektur dan
instruksi yang digunakan, mereka hampir sama. Sebagai pengendali utama dalam
pembuatan robot ini, digunakan salah satu produk ATMEL dari keluarga ATmega
yaitu ATmega8535.
ARSITEKTUR ATMEGA8535
Mikrokontroler ATmega8535 memiliki fitur-fitur utama, seperti berikut.
1. Saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C, dan
Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga unit Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kbytes dengan kemampuan Read While
Write.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 4/40
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
11. Antarmuka komparator analog.
12. Port USART untuk komunikasi serial.
Mikrokontroler AVR ATMega8535 merupakan mikrokontroler produksi Atmel
dengan 8 KByte In-System Programmable-Flash, 512 Byte EEPROM dan 512 Bytes
Internal SRAM. AVR ATMega8535 memiliki seluruh fitur yang dimiliki AT90S8535.
Selain itu, konfigurasi pin AVR ATMega8535 juga kompatibel dengan AT90S8535.
Diagram blok arsitektur ATmega8535 ditunjukkan oleh Gambar 2.3. Terdapat
sebuah inti prosesor ( processor core) yaitu Central Processing Unit , di mana terjadi
proses pengumpanan instruksi (fetching) dan komputasi data. Seluruh register
umum sebanyak 32 buah terhubung langsung dengan unit ALU ( Arithmatic and
Logic Unit ). Tedapat empat buah port masing-masing delapan bit dapat difungsikan
sebagai masukan maupun keluaran.
Media penyimpan program berupa Flash Memory , sedangkan penympan data
berupa SRAM (Static Ramdom Access Memory ) dan EEPROM (Electrical Erasable
Programmable Read Only Memory ). Untuk komunikasi data tersedia fasilitas SPI
(Serial Peripheral Interface), USART (Universal Synchronous and Asynchronous
serial Receiver and Transmitter ), serta TWI (Two-wire Serial Interface).
Di samping itu terdapat fitur tambahan, antara lain AC ( Analog Comparator ),
8 kanal 10-bit ADC ( Analog to Digital Converter ), 3 buah Timer/Counter , WDT
(Watchdog Timer ), manajemen penghematan daya (Sleep Mode), serta osilator
internal 8 MHz. Seluruh fitur terhubung ke bus 8 bit. Unit interupsi menyediakan
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 5/40
sumber interupsi hingga 21 macam. Sebuah stack pointer selebar 16 bit dapat
digunakan untuk menyimpan data sementara saat interupsi.
Gambar 1.1. Arsitektur ATmega8535
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 6/40
Mikrokontroler ATmega8535 dapat dipasang pada frekuensi kerja hingga 16
MHz (maksimal 8MHz untuk versi ATmega8535L). Sumber frekuensi bisa dari luar
berupa osilator kristal, atau menggunakan osilator internal.
Keluarga AVR dapat mengeksekusi instruksi dengan cepat karena
menggunakan teknik “memegang sambil mengerjakan” (fetch during execution).
Dalam satu siklus clock , terdapat dua register independen yang dapat diakses oleh
satu instruksi.
1.1. KONFIGURASI PIN
ATMega8535 terdiri atas 40 pin dengan konfigurasi seperti pada tabel 1.1.
Tabel 1.1. Deskripsi pin
Nama Pin Fungsi
VCC Catu daya
GND Ground
Port A
(PA7..PA0)
Port I/O 8-bit dua arah dengan resistor pull-up internal.
Juga berfungsi sebagai masukan analog ke ADC (ADC0 s.d. ADC7)
Port B
(PB7..PB0)
Port I/O 8-bit dua arah dengan resistor pull-up internal .Fungsi khusus masing-masing pin :Port Pin Fungsi lain
PB0 T0 (Timer/Counter0 External Counter Input )PB1 T1 (Timer/Counter1 External Counter Input )PB2 AIN0 ( Analog Comparator Positive Input )PB3 AIN1 ( Analog Comparator Negative Input )PB4 SS (SPI Slave Select Input )PB5 MOSI (SPI Bus Master Output/Slave Input )PB6 MISO (SPI Bus Master Input/Slave Output )PB7 SCK (SPI Bus Serial Clock )
Port C
(PC7..PC0)
Port I/O 8-bit dua arah dengan resistor pull-up internal .
Dua pin yaitu PC6 dan PC7 berfungsi sebagai oscillator luar untuk Timer/Counter2.
Port D
(PD7..PD0
)
Port I/O 8-bit dua arah dengan resistor pull-up internal .Fungsi khusus masing-masing pin :Port Pin Fungsi lain
PD0 RXD (UART Input Line)PD1 TXD (UART Output Line)PD2 INT0 ( External Interrupt 0 Input )PD3 INT1 ( External Interrupt 1 Input )
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 7/40
PD4 OC1B (Timer/Counter1 Output CompareB Match Output )PD5 OC1A (Timer/Counter1 Output CompareA Match Output )PD6 ICP (Timer/Counter1 Input Capture Pin)PD7 OC2 (Timer/Counter2 Output Compare Match Output )
RESET Masukan reset. Sebuah reset terjadi jika pin ini diberi logika rendah melebihi periode minimum yang diperlukan.
XTAL1 Masukan ke inverting oscillator amplifier dan masukan ke rangkaian clock internal.
XTAL2 Keluaran dari inverting oscillator amplifier .
AVCC Catu daya untuk port A dan ADC.
AREF Referensi masukan analog untuk ADC.
AGND Ground analog.
Gambar 1.2. Konfigurasi pin ATMega 8535
1.2. PETA MEMORI
Arsitektur AVR terdiri atas dua memori utama, yaitu Data Memori dan
Program Memori. Sebagai tambahan fitur dari ATMega8535, terdapat EEPROM 512
byte sebagai memori data dan dapat diprogram saat operasi.
ATMega8535 terdiri atas 8k byte On-chip In-System Reprogrammable Flash
memory untuk penyimpan program. Karena seluruh instruksi AVR dalam bentuk 16
bit atau 32 bit, maka Flash dirancang dengan komposisi 4K x 16. Untuk mendukung
keamanan software atau program, Flash Program Memori dibagi menjadi dua
bagian yaitu bagian Boot Program dan bagian Application Program. Gambar 1.3
mengilustrasikan susunan Memori Program Flash ATMega8535.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 8/40
Gambar 1.3. Peta memori program
Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64
buah register I/O, dan 512 byte SRAM Internal. Konfigurasi memori data ditunjukkan
oleh Gambar 1.4
Register AlamatR0 $0000R1 $0001R2 $0002
........ ........
R29 $001D
R30 $001ER31 $001FRe ister I/O
$00 $0020$01 $0021$02 $0022
........ ........
$3D $005D$3E $005E$3F $005F
Internal SRAM$0060$0060........
$025E$025F
Gambar 1.4. Peta memori data
1.3. STACK POINTER
A p p l i c a t i o n
F l a s h S e c t i o n
Boot Flash
Section
$FFF
$00
0
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 9/40
Stack pointer merupakan suatu bagian dari AVR yang berguna untuk
menyimpan data sementara, variabel lokal, dan alamat kembali dari suatu interupsi
ataupun subrutin. Stack pointer diwujudkan sebagai dua unit register, yaitu SPH
dan SPL.
Saat awal, SPH dan SPL akan bernilai 0, sehingga perlu diinisialisasi terlebih
dahulu. SPH merupakan byte atas (MSB), sedangkan SPL merupakan byte bawah
(LSB). Hal ini hanya berlaku untuk AVR dengan kapasitas SRAM lebih dari 256 byte.
Bila tidak, maka SPH tidak didefinisikan dan tidak dapat digunakan.
1.4. KOMUNIKASI SERIAL DENGAN UART
AVR ATMega8535 memiliki 4 buah register I/O yang berkaitan dengan
komunikasi UART, yaitu UART I/O Data Register (UDR), UART Baud Rate Register
(UBRR), UART Status Register (USR) dan UART Control Register (UCR).
1.7.1.REGISTER DATA I/O UART (UDR)
Proses pengiriman data secara serial dapat dimulai setelah UDR diberi karakter
data. Pada sisi penerima, UART memiliki buffer sehingga UDR dapat dibaca ketika
sebuah data baru sedang digeser masuk.
1.7.2.REGISTER BAUD RATE UART (UBRR)
UBRR digunakan untuk menentukan clock yang dibangkitkan oleh baud rate
generator . Nilai baud rate ditentukan dengan mengisi register UBRR sesuai
persamaan 1.1
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 10/40
1*16
−=
baud
fclock UBRR (1.1)
Misal, diinginkan baud rate sebesar 9600 bps. Dengan kristal 11.059.200 Hz
maka register UBRR akan bernilai 71.
1.7.3.REGISTER STATUS UART (USR)
Register USR menyimpan berbagai flag status seperti interupsi, overflow, dan
framing error . Susunan bit register USR ditunjukkan dalam Gambar 1.5.
bit 7 6 5 4 3 2 1 0
RXC TXC UDRE FE OR - - -
Gambar 1.5. Register status UART
Penjelasan bit-bit register USR adalah sebagai berikut
1. RXC (Receive Complete) ; bernilai 1 otomatis setelah UART menerima sebuah
karakter secara lengkap,
2. TXC (Transmit Complete) ; bernilai 1 jika sebuah karakter telah selesai digeser
keluar dari register geser kirim,
3. UDRE (UART Data Register Empty ) ; bernilai 1 jika UDR kosong,
4. FE (Framing Error ) ; bernilai 1 jika Stop Bit tidak diterima dengan benar, yaitu
jika Stop Bit terbaca 0,
5. OR (Overrun) ; bernilai 1 jika ada karakter yang dipindahkan dari register geser
terima ke UDR sebelum karakter yang diterima sebelumnya dibaca.
1.7.4.REGISTER KONTROL UART (UCR)
Register UCR mengendalikan berbagai fungsi penerima dan pengirim, serta
interupsinya. Susunan bit register UCR ditunjukkan dalam Gambar 1.6.
bit 7 6 5 4 3 2 1 0
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 11/40
RXCIE TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8
Gambar 1.6. Register kendali UART
Penjelasan bit-bit register UCR adalah sebagai berikut
1. RXCIE (Receive Complete Interrupt Enable) ; jika bernilai 1, UART akan
membangkitkan interupsi ketika sebuah karakter selesai diterima,
2. TXCIE (Transmit Complete Interrupt Enable) ; bernilai 1 setelah karakter
terkirim dan membangkitkan interupsi,
3. UDRIE (UART Data Register Empty Interrupt Enable) ; jika bernilai 1, sebuah
interupsi terjadi ketika UDR kosong (bit UDRE bernilai 1),
4. RXEN (Receiver Enable) ; jika bernilai 1, penerima UART diaktifkan dan pin RxD
menjadi pin input yang terhubung ke UART,
5. TXEN (Transmitter Enable) ; jika bernilai 1, pengirim UART diaktifkan dan pin
TxD menjadi pin output dari pengirim UART,
6. CHR9 (9-Bit Characters) ; jika bernilai 1, ukuran karakter yang dikirim menjadi
9-bit, dan bit ke-9 berada pada bit RXB8 dan TXB8,
7. RXB8 (Receive Data Bit 8) ; jika CHR9 bernilai 1, bit ini adalah bit ke-9 dari data
yang diterima,
8. TXB8 (Transmit Data Bit 8) ; jika CHR9 bernilai 1, bit ini adalah bit ke-9 dari
data yang dikirim, jadi TXB8 harus diisi sebelum pengiriman.
1.5. TIMER ATMEGA8535
AVR ATmega8535 memiliki tiga buah timer, yaitu Timer/Counter0 (8 bit),
Timer/Counter1 (16 bit), dan Timer/Counter2 (8 bit).
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 12/40
1.8.1.TIMER/COUNTER0
Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari
Timer/Counter0 pada ATmega8535 adalah sebagai berikut.
a. Counter 1 kanal.
b. Timer di-nol-kan saat proses pembandingan tercapai (compare match).
c. Sebagai pembangkit gelombang PWM.
d. Sebagai pembangkit frekuensi.
e. Clock prescaler 10 bit.
f. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).
Pengaturan Timer/Counter0 diatur oleh TCCR0 (Timer/Counter Control
Register0) yang dapat dilihat pada Gambar 1.7
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00
Gambar 1.7. Register TCCR0
Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.
a. Bit 7 – FOC0: Force Output Compare
b. Bit 6,3 –WGM01:WGM00: Waveform Generation Unit
Bit ini mengontrol kenaikan dari counter , sumber dari nilai maksimum counter ,
dan tipe dari jenis timer/counter yang dihasilkan, yaitu mode normal, clear
timer , mode compare match, dan dua tipe dari PWM (Pulse Width Modulation).
Berikut ini tabel pengaturan pada bit WGM01 dan WGM00 untuk menghasilkan
mode tertentu.
Tabel 1.2. Pengaturan Bit WGM01 dan WGM00
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 13/40
Mode WGM01
(CTC0)
WGM00
(PWM0)
Mode operasi
Timer/Counter
TOP Update
OCR0
Bendera
TOV0
diset saat
nilai
0 0 0 Normal 0xFF Immediate MAX
1 0 1 PWM, phase
correct
0xFF TOP BOTTOM
2 1 0 CTC OCR0 Immediate MAX
3 1 1 Fast PWM 0xFF TOP MAX
c. Bit 5, 4 – COM01:COM00: Compare Match Output Mode
Bit ini mengontrol pin OC0 (pin Output Compare). Apabila kedua bit ini nol atau
clear, maka pin OC0 berfungsi sebagai pin biasa. Bila salah satu bit set, maka
fungsi pin ini tergantung pada pengaturan bit pada WGM00 dan WGM01. Berikut
daftar tabel pengaturan bit COM01 dan COM00 sesuai pengaturan bit pada
WGM00 dan WGM01.
Tabel 1.3. Pengaturan Bit COM01 dan COM00 Mode Non-PWM
COM01 COM00 Keterangan
0 0 Operasi port normal, OC0 tidak dihubungkan.
0 1 Toggle OC0 saat proses pembandingan tercapai.
1 0 Clear OC0 saat proses pembandingan tercapai.
1 1 Set OC0 saat proses pembandingan tercapai.
Tabel 1.4. Pengaturan Bit COM01 dan COM00 Mode Fast PWM
COM01 COM00 Keterangan
0 0 Operasi port normal, OC0 tak dihubungkan.
0 1 Reserved
1 0 Clear OC0 saat proses pembandingan tercapai, set OC0 pada nilai TOP.
1 1 Set OC0 saat proses pembandingan tercapai, clear OC0 pada nilai TOP.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 14/40
Tabel 1.5. Pengaturan Bit COM01 dan COM00 Mode Phase Correct PWM
COM01 COM00 Keterangan
0 0 Operasi port normal, OC0 tak dihubungkan.0 1 Reserved
1 0
Clear OC0 saat proses pembandingan tercapai, yaitu ketika hitungan naik.
Set OC0 saat proses pembandingan tercapai, yaitu ketika hitungan turun.
1 1
Set OC0 saat proses pembandingan tercapai, yaitu ketika hitungan naik.
Clear OC0 saat proses pembandingan tercapai, yaitu ketika hitungan turun.
d. Bit 2, 1, 0 – CS02, CS01, CS00: Clock Select
Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter0.
Tabel 1.6. Konfigurasi Bit Clock Select
CS02 CS01 CS00 Keterangan
0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).
0 0 1 clk I/O /1 (tanpa prescaling )
0 1 0 clk I/O /8 (dari prescaler)
0 1 1 clk I/O /64 (dari prescaler )1 0 0 clk I/O /256 (dari prescaler )
1 0 1 clk I/O /1024 (dari prescaler )
1 1 0 Sumber clock eksternal pada pin T0. Clock pada falling edge.
1 1 1 Sumber clock eksternal pada pin T0. Clock pada rising edge.
1.8.2.TIMER/COUNTER1
Timer/Counter1 adalah Timer/Counter 16 bit yang memungkinkan program
pewaktuan lebih akurat. Fitur-fitur dari Timer/Counter1 ini adalah sebagai berikut.
a. Desain 16 bit, sehingga memungkinkan untuk menghasilkan PWM 16 bit.
b. Dua buah unit pembanding.
c. Dua buah register pembanding.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 15/40
d. Satu buah input capture unit.
e. Timer di-nol-kan saat proses pembandingan tercapai (match compare).
f. Dapat menghasilkan gelombang PWM.
g. Periode PWM yang dapat diubah-ubah.
h. Sebagai pembangkit frekuensi.
i. Empat buah sumber interupsi (TOV1, OCF1A, OCF1B dan ICF1).
Pengaturan Timer/Counter1 diatur oleh TCCR1A (Timer/Counter1 Control
Register A) dan TCCR1B (Timer/Counter1 Control Register B).
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10
Gambar 1.8. Register TCCR1A
Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.
a. Bit 7, 6 – COM1A1, COM1A0: Compare Output Mode untuk kanal A
b. Bit 5, 4 – COM1B1, COM1B0: Compare Output Mode untuk kanal B
COM1A1, COM1A0, COM1B1, dan COM1B0 mengatur pin pembanding
keluaran (Output Compare pins), yaitu pin OC1A dan OC1B. Jika salah satu atau
keduanya dari COM1A1 dan COM1A0 diset 1, maka OC1A akan terhubung (aktif)
sebagai pin keluaran. Begitu juga jika salah satu atau keduanya dari COM1B1
dan COM1B0 diset 1, maka OC1B akan terhubung (aktif) sebagai pin keluaran.
Sebelum mengaktifkan OC1A dan OC1B, pin-pin yang bersangkutan tersebut
harus diatur sebagai keluaran atau DDR (Data Direction Register) dari pin
tersebut diset sebagai keluaran. Pengaturan COM1A1, COM1A0, COM1B1, dan
COM1B0 harus menyesuaikan pengaturan bit WGM13, WGM12, WGM11, dan
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 16/40
WGM10 terlebih dahulu. Pengaturan bit-bit tersebut dapat dilihat pada tabel
berikut ini.
Tabel 1.7. Pengaturan Bit COM1Ax dan COM1Bx Mode Non-PWM
COM1A1/
COM1B1/
COM1A0/
COM1B0/
Keterangan
0 0 Operasi port normal, OC1A/OC1B tidak dihubungkan.
0 1 Toggle OC1A/OC1B saat proses pembandingan tercapai.
1 0 Clear OC1A/OC1B saat proses pembandingan tercapai (set keluaran
ke aras rendah).
1 1 Set OC1A/OC1B saat proses pembandingan tercapai (set keluaran ke
aras tinggi).
Tabel 1.8. Pengaturan Bit COM1Ax dan COM1Bx Mode Fast PWM
COM1A1/
COM1B1/
COM1A0/
COM1B0/
Keterangan
0 0 Operasi port normal, OC1A/OC1B tidak terhubung.
0 1
WGM13:0=15, toggle OC1A saat proses pembandingan tercapai
dan OC1B tidak terhubung. Untuk semua pengaturan WGM1 yang
lain, maka operasi port normal atau OC1A/OC1B tidak terhubung.
1 0 Clear OC1A/OC1B saat proses pembandingan tercapai, set
OC1A/OC1B pada nilai TOP.1 1 Set OC1A/OC1B saat proses pembandingan tercapai, clear
OC1A/OC1B pada nilai TOP.
Tabel 1.9. Pengaturan Bit COM1Ax dan COM1Bx Mode Phase Correct PWM
COM1A1/
COM1B1/
COM1A0/
COM1B0/
Keterangan
0 0 Operasi port normal, OC1A/OC1B tak dihubungkan.
0 1
WGM13:0=9, toggle OC1A saat proses pembandingan tercapai dan
OC1B tidak terhubung. Untuk semua pengaturan WGM1 yang lain,
maka operasi port normal atau OC1A/OC1B tidak terhubung.
1 0
Clear OC1A/OC1B saat proses pembandingan tercapai, yaitu ketika
hitungan naik. Set OC1A/OC1B saat proses pembandingan tercapai,
yaitu ketika hitungan turun.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 17/40
1 1
Set OC1A/OC1B saat proses pembandingan tercapai, yaitu ketika
hitungan naik. Clear OC1A/OC1B saat proses pembandingan
tercapai, yaitu ketika hitungan turun.
c. Bit 3, 2 – FOC1A, FOC1B: Force Output Compare untuk kanal A dan B.
Bit ini harus diset 0 ketika TCRR1A dioperasikan sebagai fungsi PWM.
d. Bit 1, 0 – WGM11, WGM10: Waveform Generation Mode
Bit-bit ini satu kesatuan dengan WGM13, WGM12 yang terdapat pada register
TCCR1B. Bit-bit tersebut mengatur urutan penghitungan dari counter,
menentukan nilai TOP (nilai maksimal dari pengaturan counter ), dan
menentukan pilihan tipe pengoperasian Timer/Counter1.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ICNC1 ICES1 - WGM13 WGM12A CS12 CS11 CS10
Gambar 1.9. Register TCCR1B
Dari register tersebut, bit-bit yang berperan dalam pengaturan PWM adalah bit
4, bit 3, bit 2, bit 1, dan bit 0.
a. Bit 2, 1, 0 – CS12, CS11, CS00: Clock Select
Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter1.
Tabel 1.10. Konfigurasi Bit Clock Select Register TCCR1B
CS12 CS11 CS10 Keterangan
0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).
0 0 1 clk I/O /1 (tanpa prescaling )
0 1 0 clk I/O /8 (dari prescaler)
0 1 1 clk I/O /64 (dari prescaler )
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 18/40
1 0 0 clk I/O /256 (dari prescaler )
1 0 1 clk I/O /1024 (dari prescaler )
1 1 0 Sumber clock eksternal pada pin T1. Clock pada falling edge.
1 1 1 Sumber clock eksternal pada pin T1. Clock pada rising edge.
b. Bit 4, 3 – WGM13, WGM12: Waveform Generation Mode
Bit-bit ini satu kesatuan dengan bit WGM11 dan bit WGM10 yang terdapat pada
register TCCR1A. Seperti pada bit WGM11 dan bit WGM10, bit WGM13 dan bit
WGM12 berfungsi mengatur urutan penghitungan dari counter, menentukan nilai
TOP (nilai maksimal dari pengaturan counter ), dan menentukan pilihan tipe
pengoperasian Timer/Counter1. Pengaturan bit-bit ini dapat dilihat pada Tabel
2.10.
Tabel 1.11. Pengaturan Bit WGM12, WGM11, dan WGM10
Mode WGM12 WGM11 WGM10 Mode Operasi
Timer/Counter
TOP
Update
OCR1x
saat
Bendera
TOV1
diset saat
0 0 0 0 Normal 0xFFFF Immediate MAX
1 0 0 1 PWM, Phase Correct , 8 bit 0x00FF TOP BOTTOM
2 1 1 0 PWM, Phase Correct , 9 bit 0x01FF TOP BOTTOM
3 1 1 1 PWM, phase correct , 10 bit 0x03FF TOP BOTTOM
4 1 1 1 CTC OCR1A Immediate MAX
5 1 1 1 Fast PWM, 8 bit 0x00FF TOP TOP
6 1 1 1 Fast PWM, 9 bit 0x01FF TOP TOP
7 1 1 1 Fast PWM, 10 bit 0x03FF TOP TOP
8 1 1 1 PWM, Phase and FrequencyCorrect
ICR1 BOTTOM BOTTOM
9 1 1 1 PWM, Phase and FrequencyCorrect
OCR1A BOTTOM BOTTOM
10 1 1 1 PWM, Phase Correct ICR1 TOP BOTTOM
11 1 1 1 PWM, Phase Correct OCR1A TOP BOTTOM
12 1 1 1 CTC ICR1 Immediate MAX
13 1 1 1 Reserved - - -
14 1 1 1 Fast PWM ICR1 TOP TOP 15 1 1 1 Fast PWM OCR1A TOP TOP
1.8.3.TIMER/COUNTER2
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 19/40
Timer/Counter2 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur
untuk Timer/Counter2 pada ATmega8535 adalah sebagai berikut.
a. Sebagai counter 1 kanal.
b. Timer di-nol-kan saat proses pembandingan tercapai (match compare).
c. Dapat mengahasilkan gelombang PWM.
d. Sebagai pembangkit frekuensi.
e. Clock prescaler 10 bit.
f. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).
Pengaturan Timer/Counter2 diatur oleh TCCR2 (Timer/Counter2 Control
Register).
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20
Gambar 1.10.Register TCCR2
Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.
a. Bit 7 – FOC2: Force Output Compare
b. Bit 6,3 –WGM21, WGM20: Waveform Generation Unit
Bit ini mengatur kenaikan dari counter , sumber nilai maksimum counter , dan
tipe jenis timer/counter yang dihasilkan, yaitu mode normal, clear timer , mode
compare match, dan dua tipe PWM. Berikut tabel pengaturan pada bit WGM
untuk menghasilkan mode tertentu. Pengaturan bit-bit ini dapat dilihat pada
Tabel 2.12.
Tabel 1.12. Pengaturan Bit WGM21 dan WGM20
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 20/40
Mode WGM21
(CTC2)
WGM20
(PWM2)
Mode Operasi
Timer/Counter
TOP Update
OCR2
Bendera
TOV2
diset saat
nilai
0 0 0 Normal 0xFF Immediate MAX
1 0 1 PWM, Phase
Correct
0xFF TOP BOTTOM
2 1 0 CTC OCR2 Immediate MAX
3 1 1 Fast PWM 0xFF TOP BOTTOM
c. Bit 5, 4 – COM21, COM20: Compare Match Output Mode
Bit ini mengatur pin OC2 (Output Compare). Apabila kedua bit ini nol atau clear,
maka pin OC2 berfungsi sebagai pin biasa, tetapi apabila salah satu bit diset,
maka fungsi pin ini tergantung dari pengaturan bit pada WGM20 dan WGM21.
Berikut daftar tabel pengaturan bit COM21 dan COM20 sesuai pengaturan bit
pada WGM20 dan WGM21.
Tabel 1.13. Pengaturan Bit COM21 dan COM20 Mode Non-PWM
COM21 COM20 Keterangan
0 0 Operasi port normal, OC2 tidak dihubungkan.
0 1 Toggle OC2 saat proses pembandingan tercapai.
1 0 Clear OC2 saat proses pembandingan tercapai.1 1 Set OC2 saat proses pembandingan tercapai.
Tabel 1.14. Pengaturan Bit COM21 dan COM20 Mode Fast PWM
COM21 COM20 Keterangan
0 0 Operasi port normal, OC2 tak dihubungkan.
0 1 Reserved
1 0 Clear OC2 saat proses pembandingan tercapai, set OC2 pada nilai
TOP.
1 1 Set OC2 saat proses pembandingan tercapai, clear OC2 pada nilai
TOP.
Tabel 1.15. Pengaturan Bit COM21 dan COM20 Mode Phase Correct PWM
COM21 COM20 Keterangan
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 21/40
0 0 Operasi port normal, OC2 tak dihubungkan.
0 1 Reserved
1 0 Clear OC2 saat proses pembandingan tercapai, yaitu ketika hitungan
naik. Set OC2 saat proses pembandingan tercapai yaitu, ketika
hitungan turun.
1 1 Set OC2 saat proses pembandingan tercapai, yaitu ketika hitungannaik. Clear OC2 saat proses pembandingan tercapai, yaitu ketika
hitungan turun.
d. Bit 2, 1, 0 – CS22, CS21, CS20: Clock Select
Ketiga bit ini untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter2. Pengaturan dari bit-bit ini dapat dilihat pada Tabel 2.16.
Tabel 1.16. Pengaturan Bit Clock Select
CS02 CS01 CS00 Keterangan
0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).
0 0 1 clk I/O /1 (tanpa prescaling )
0 1 0 clk I/O /8 (dari prescaler)
0 1 1 clk I/O /64 (dari prescaler )
1 0 0 clk I/O /256 (dari prescaler )
1 0 1 clk I/O /1024 (dari prescaler )
1.6. INTERUPSI
ATMega8535 memiliki 21 buah sumber interupsi. Interupsi tersebut bekerja jika bit I
pada Register status atau Status Register (SREG) dan bit pada masing-masing
register bernilai 1. Penjelasan sumber interupsi terdapat pada tabel 1.17
Tabel 1.17. Vektor interupsi ATMega 8535
No. Alamat Sumber Keterangan
1. 0x000 RESET Hardware Pin, Power-on Reset and
Watchdog Reset
2. 0x001 INT0 External Interrupt Request 0
3. 0x002 INT1 External Interrupt Request 1
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 22/40
4. 0x003 TIMER2 COMP Timer/Counter 2 Compare Match
5. 0x004 TIMER2 OVF Timer/Counter2 Overflow
6. 0x005 TIMER1 CAPT Timer/Counter1 Capture Event
7. 0x006 TIMER1 COMPA Timer/Counter1 Compare Match A
8. 0x007 TIMER1 COMPB Timer/Counter1 Compare Match B
9. 0x008 TIMER1 OVF Timer/Counter1 Overflow
10. 0x009 TIMER0 OVF Timer/Counter0 Overflow11. 0x00A SPI, STC SPI Serial Transfer Complete
12. 0x00B UART, RX UART, RX Complete
13. 0x00C UART, UDRE UART, Data Register Empty
14. 0x00D UART, TX UART, TX Complete
15. 0x00E ADC ADC Conversion Complete
16. 0x00F EE_RDY EEPROM Ready
17. 0x010 ANA_COMP Analog Comparator
18. 0x011 TWI Two Wire Serial Interface
19. 0x012 INT2 External Interrupt Request 2
20. 0x013 TIMER0 COMP Timer/Counter Compare Match
21. 0x014 SPM RDY Store Program Memory Ready
1.7. FITUR
1.10.1. ANALOG TO DIGITAL CONVERTER (ADC)
ADC pada ATmega8535 merupakan ADC 10-bit tipe Successive
Approximation, yang terhubung ke sebuah multiplekser analog yang akan memilih
satu dari delapan kanal. Untuk menjaga validitas data, terdapat untai Sample and
Hold . Tegangan suplai ADC terpisah dari tegangan suplai mikrokontroler, tetapi
selisihnya tidak boleh lebih dari 0,3 V. Untuk mengatasinya, digunakan untai filter
LC seperti ditunjukkan pada Gambar 1.11.
Terdapat 8 kanal ADC masing-masing selebar 10 bit. ADC dapat digunakan
dengan memberikan masukan tegangan pada port ADC, yaitu port A.0 sampai
dengan port A.7.
Ada dua mode ADC yang dapat digunakan, yaitu single conversion dan free
running. Pada mode single conversion, pengguna harus mengaktifkan setiap kali
ADC akan digunakan. Sedangkan pada mode free running, pengguna cukup sekali
mengaktifkan, sehingga ADC akan terus mengkonversi tanpa henti.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 23/40
Dalam kemasan TQFP (Thin Quad Flat Package) terdapat fasilitas tambahan,
yaitu kanal diferensial dan kanal diferensial dengan penguatan, yang
memungkinkan dua kanal ADC digunakan sekaligus. Kemasan PDIP tidak
menyediakan fasilitas ini.
Gambar 1.11. Koneksi dengan filter LC pada suplai ADC
Terdapat beberapa register I/O yang terlibat dalam proses konversi ADC, antara
lain :ADMUX ( ADC Multiplexer Selection Register ). Register ADMUX berisi bit-bit
yang mengatur pilihan kanal (MUX4:0), bit pengatur penyajian data (ADLAR), dan
bit-bit pemilih tegangan referensi (REFS1:0). Gambar1.18 menunjukkan isi register
ADMUX.
Gambar 1.12.Register ADMUX
a. ADCSRA ( ADC Control and Status Register A)
Register ADCSRA berisi bit-bit yang mengatur nilai prescaler
(ADPS2:0), bit aktivasi interupsi selesainya ADC (ADIE), bit penanda (flag)
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 24/40
selesainya konversi (ADIF), bit aktivasi penyulut otomatis ADC (ADATE), bit
pemulai konversi (ADSC), dan bit aktivasi ADC (ADEN). Gambar 1.13
menunjukkan isi register ADCSRA.
Gambar 1.13.Register ADCSRA
b. SFIOR (Special Function Input/Output Register )
Register SFIOR berisi beberapa bit yang terlibat dalam ADC, dan
beberapa bit yang terlibat dalam fitur lain. Bit-bit yang terlibat dalam ADC
adalah bit-bit pemilih sumber penyulut otomatis (ADTS2:0). Gambar 1.14
menunjukkan isi register SFIOR.
Gambar 1.14.Register SFIOR
c. ADCH ( ADC High-byte data)
Register ADCH berisi data hasil konversi. Bentuk penyajiannya
ditentukan oleh bit ADLAR. Jika dibiarkan bernilai 0 (clear ), register ini berisi
bit MSB dan MSB-1 dari data hasil konversi.
d. ADCL ( ADC Low-byte data)
Register ADCL berisi data hasil konversi. Bentuk penyajiannya
ditentukan oleh bit ADLAR. Jika dibiarkan bernilai 0 (clear ), register ini berisi
bit LSB+7 hingga LSB dari data hasil konversi.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 25/40
Dalam mengakses ADC, terdapat proses pengaturan register-register I/O
yang terlibat dalam ADC. Proses pengaturan tersebut meliputi :
a. menentukan sumber tegangan referensi
Referensi pada ADC merupakan batas rentang representasi nilai digital hasil
konversi. Hasil konversi pada mode single ended conversion dirumuskan sebagai
berikut :
REF
IN
V
V ADC
1024⋅
= (2.2)
dengan IN V = tegangan masukan analog pada kanal ADC yang aktif
REF V = tegangan referensi yang dipilih
Ada tiga sumber referensi yang dapat digunakan, dan dipilih dengan mengatur
bit REF1:0 (Reference Selection Bit1:0) pada register ADMUX. Tabel 1.18
menunjukkan pengaturan bit-bit tersebut dan pilihan referensi yang tersedia.
Tabel 1.18. Pemilihan Tegangan Referensi pada ADC
REF1 REF0 Tegangan Referensi yang Dipilih
0 0 Tegangan pada pin AREF
0 1 Tegangan pada pin AVCC, dengan kapasitor
eksternal pada pin AREF
1 0 Dilarang
1 1 Tegangan referensi internal 2,56 V, dengan
kapasitor eksternal pada pin AREF
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 26/40
b. menentukan bentuk penyajian data ADC
Bentuk penyajian data pada register ADCL dan ADCH ditentukan oleh bit
ADLAR ( ADC Left Adjusted Result ) pada register ADMUX. Data hasil konversi
memiliki panjang 10 bit, sedangkan setiap register data dapat menampung 8 bit.
Artinya jika sebuah register diisi penuh, maka register lain tidak penuh berisi.
Jika bit ADLAR dibiarkan tetap ‘0’ (clear ), delapan bit rendah disimpan di
ADCL, dan ADCH sisanya. Dan sebaliknya. Gambar1.15 menunjukkan konfigurasi
bit ADLAR dan pengaruhnya pada register ADCL dan ADCH.
Gambar 1.15.Pengaruh Konfigurasi bit ADLAR pada Register Data ADC
c. memilih kanal yang aktif (satu dari delapan)
Kanal yang aktif ditentukan oleh bit-bit MUX4:0 ( Analog Channel and Gain
Selection Bits) pada register ADMUX. Tabel 1.19 menunjukkan konfigurasi bit-bit
tersebut.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 27/40
d. menentukan mode ADC
Mode single conversion atau free running ditentukan dengan menulisi bit
ADATE ( ADC Auto Trigger Enable) pada register ADCSRA. Jika dibiarkan ‘0’
(clear ), maka mode single conversion
Tabel 1.19. Konfigurasi Bit-bit ADMUX4:0
MUX4 MUX3 MUX2 MUX1 MUX0 Kanal yang
Aktif
0 0 0 0 0 ADC0
0 0 0 0 1 ADC1
0 0 0 1 0 ADC2
0 0 0 1 1 ADC3
0 0 1 0 0 ADC4
0 0 1 0 1 ADC5
0 0 1 1 0 ADC6
0 0 1 1 1 ADC7
yang dijalankan. Apabila diberi logika ‘1’ (set ), ADC beraksi dalam mode free
running. Sebagai catatan, register SFIOR dibiarkan apa adanya (default setting).
Apabila ADC diinginkan disulut oleh sumber lain, maka bit-bit ADTS2:0 ( ADC
Auto Trigger Source2:0) di register SFIOR harus diberi nilai. Tabel 1.20
menunjukkan konfigurasi bit-bit pemilih sumber penyulut ADC.
Tabel 1.20. Konfigurasi Bit-bit ADTS2:0
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 28/40
ADTS2 ADTS1 ADTS0 Sumber Penyulut
0 0 0 Mode free running
0 0 1 Analog Comparator
0 1 0 Sumber interupsi eksternal INT0
0 1 1 Compare match pada Timer/Counter0
1 0 0 Limpahan (overflow) Timer/Counter0
1 0 1 Compare match B pada Timer/Counter1
1 1 0 Limpahan (overflow) Timer/Counter1
1 1 1 Rekam kejadian (capture event ) pada
Timer/Counter1
e. menentukan prescaler (clock ADC)
Prescaler merupakan faktor pembagi yang diterapkan pada clock
mikrokontroler agar untai successive approximation ADC mampu menerima
clock yang cukup sehingga data hasil konversi cukup valid. Untuk ketelitian ADC
10 bit, rentang frekuensi clock yang diperbolehkan adalah 50 kHz hingga 200
kHz. Frekuensi clock yang lebih tinggi dapat digunakan jika resolusi lebih rendah
dari 10 bit.
Nilai prescaler ditentukan oleh bit-bit ADPS2:0 ( ADC Prescaler Select Bits2:0).
Tabel 1.21 menunjukkan konfigurasi bit-bit tersebut.
Tabel 1.21. Konfigurasi Bit-bit ADPS
ADPS2 ADPS
1
ADPS0 Nilai Prescaler
0 0 0 2
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 29/40
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
f. inisialisasi ADC
Untuk mengaktifkan ADC, bit ADEN ( ADC Enable) harus diberi logika ‘1’. Dan
untuk memulai ADC, logika ‘1’ juga harus diberikan pada bit ADSC ( ADC Start
Conversion). Kedua bit ini terletak pada register ADCSRA. Waktu yang
diperlukan untuk satu konversi adalah 25 siklus clock ADC pada konversi
pertama, dan 13 siklus clock ADC untuk konversi berikutnya.
Idealnya, ADC dapat melakukan konversi secara linear antara GND dan VREF
dalam 2n
langkah. Sehingga faktor pengali hasil konversi terendah adalah 0, dan
tertinggi 2n – 1. Indeks n menunjukkan resolusi ADC (8, 9, atau 10 bit). Tetapi
terdapat beberapa hal yang menyebabkan ADC tidak mencapai kondisi ideal,
yaitu galat yang terjadi saat konversi, antara lain :
a. offset error
b. gain error
c. integral non-linearity
d. differential non-linearity
e. quantization error
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 30/40
Dengan adanya galat-galat tersebut, pada akhirnya fasilitas ADC memiliki
akurasi absolut sebesar ±2 LSB.
1.10.2. Pulse Width Modulation (PWM)
Mikrokontroler ATmega8535 menyediakan fitur Timer/Counter1 yang dapat
diatur sebagai timer , pencacah (counter ), perekam waktu kejadian (even occurance
time capture), pembangkit isyarat PWM (Pulse Width Modulation), serta autoreload
timer (Clear Timer on Compare/CTC). Dengan lebar 16 bit, Timer/Counter1 dapat
digunakan secara fleksibel untuk berbagai tujuan yang berkaitan dengan waktu dan
pembangkit gelombang.
Register-regiser yang terlibat pada operasi Timer/Counter1 antara lain :
a. TCCR1A (Timer/Counter Control Register A)
Register TCCR1A berisi bit-bit yang menentukan mode pembangkitan
gelombang (WGM11:0), bit-bit yang memaksa keadaan Compare Match (FOC1A,
FOC1B), serta bit-bit yang mengatur perubahan keadaan pin OC1A:B saat terjadi
Compare Match (COM1A1:0, COM1B1:0). Gambar 1.16 menunjukkan isi register
TCCR1A.
Gambar 1.16.Register TCCR1A
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 31/40
b. TCCR1B (Timer/Counter Control Register B)
Register TCCR1B berisi bit-bit yang menentukan sumber clock yang
digunakan Timer/Counter1, bit-bit yang menentukan mode pembangkitan
gelombang (WGM13:2), bit yang menentukan tepi mana pada pin ICP1 yang
digunakan untuk menyulut perekam kejadian (ICES1), serta bit yang mengatur
aktivasi penghilang derau pada mode Input Capture (ICNC1). Gambar 1.17
menunjukkan isi register TCCR1B.
Gambar 1.17.Register TCCR1B
c. TCNT1H (Timer/Counter1 High-byte) dan TCNT1L (Timer/Counter1 Low-byte)
Kedua register ini berisi nilai Timer/Counter1, seperti ditunjukkan pada
Gambar 1.18. Operasi baca (read ) maupun tulis (write) dapat diterapkan pada
kedua register ini.
Gambar 1.18.Register TCNT1H dan TCNT1L
d. OCR1AH/L (Output Compare Register 1 A High-byte/Low-byte) dan OCR1BH/L
(Output Compare Register 1 B High-byte/Low-byte)
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 32/40
Register OCR1AH/L dan register OCR1BH/L berisi data yang terus
menerus dibandingkan dengan isi register TCNT1H/L. Hasilnya dapat digunakan
untuk membangkitkan gelombang pada pin OC1A/B. Gambar 1.19 menunjukkan
isi register-register tersebut.
Gambar 1.19.Register OCR1AH/L dan OCR1BH/L
e. ICR1H/L (Input Capture Register 1 High-byte/Low-byte)
Register ICR1H/L selalu diperbarui nilainya dengan nilai register TCNT1H/L
setiap kali terjadi kejadian yang terdeteksi. Register ini dapat digunakan untuk
menentukan nilai puncak (TOP value). Gambar 1.20 menunjukkan isi register
ICR1H/L.
Gambar 1.20. Register ICR1H/L
f. TIMSK (Timer/Counter Interrupt Mask Register )
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 33/40
Register TIMSK mempunyai tugas khusus yang berkaitan dengan interupsi
pada Timer/Counter0, Timer/Counter1, dan Timer/Counter2. Bit-bit yang
berkaitan dengan Timer/Counter1 adalah bit aktivasi interupsi karena waktu
melimpah (overflow) register TCNT1 (TOIE1), bit-bit yang mengaktifkan interupsi
karena compare match register OCR1A/B (OCIE1A/B), serta bit aktivasi interupsi
rekam kejadian (TICIE1). Gambar 1.21 menunjukkan isi register TIMSK.
Gambar 1.21.Register TIMSK
g. TIFR (Timer/Counter Flag Register )
Register TIFR hanya berisi status (flag) khusus yang berkaitan dengan
kejadian pada Timer/Counter0, Timer/Counter1, dan Timer/Counter2. Bit-bit
yang berkaitan dengan Timer/Counter1 antara lain bit yang berlogika ‘1’ saat
terjadi limpahan (overflow) register TCNT1 (TOV1), bit yang berlogika ‘1’ jika
terjadi compare match register OCR1A/B (OCF1A/B), serta bit yang berlogika ‘1’
bila terjadi perekaman kejadian pada pin ICP1 (ICF1). Gambar 1.22
menunjukkan isi register TIFR.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 34/40
Gambar 1.22.Register TIFR
Isyarat PWM merupakan hasil modulasi isyarat segitiga oleh isyarat konstan.
Pengubahan amplitudo isyarat konstan akan mengubah lebar pulsa hasil modulasi.
Sementara pengubahan amplitudo isyarat segitiga (dengan bentuk segitiga
sebangun dengan segitiga awal) akan mengubah frekuensi PWM.
Terdapat dua register OCR1A/B (Output Compare Register1A/B) yang isinya
secara kontinyu dibandingkan dengan isi register Timer/Counter1. Register-register
ini dapat diisi oleh pengguna, selebar masing-masing 16 bit. Dalam mode PWM,
nilai register OCR1A/B ini yang menjadi isyarat pemodulasi.
Lebar register data Timer/Counter1 adalah 16 bit, sehingga dapat mencacah
nilai dari $0000 hingga $FFFF. Dalam operasi PWM, nilai Timer/Counter1 ini yang
menjadi isyarat segitiga. Sebagai catatan, istilah segitiga di sini tidak berarti
segitiga dalam bidang geometri, tetapi isyarat yang meningkat amplitudonya
secara berlangkah sehingga bentuknya menyerupai segitiga.
Fasilitas PWM yang disediakan memiliki resolusi 8 hingga 10 bit. Mode
operasinya meliputi Fast PWM (FPWM), Phase Correct PWM (PCPWM), dan Phase
and Frequency Correct PWM (PFCPWM). Pada mode Fast PWM, Timer/Counter1 akan
mencacah ulang dari nol (BOTTOM) setiap kali terjadi limpahan (overflow). Segitiga
yang terjadi adalah segitiga siku-siku. Sedangkan pada dua mode yang lain,
Timer/Counter1 akan mencacah turun ketika terjadi limpahan, sehingga segitiga
berbentuk sama kaki dengan puncak pada nilai TOP. Perbedaan utama pada mode
PCPWM dan PFCPWM adalah waktu perbaruan nilai OCR1A/B. Mode PCPWM
memperbarui OCR1A/B saat nilai TOP, sedangkan pada PFCPWM saat nilai BOTTOM.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 35/40
Gambar 1.23 menunjukkan modulasi nilai TCNT1 oleh OCR1A pada mode
FPWM. Perubahan nilai OCR1A menjadi lebih kecil menunjukkan pulsa yang
menyempit pula. Durasi pulsa saat nilai OCR1A lebih besar daripada nilai TCNT1
disebut waktu ON (tON). Sebaliknya, ketika nilai OCR1A lebih kecil, disebut waktu
OFF (tOFF). Perbandingan tON terhadap periode PWM disebut duty cycle, yang nilainya
maksimal 100 %.
Gambar 1.23. Fast Pulse Width Modulation
Dalam mengakses PWM, terdapat proses pengaturan register-register I/O
yang terlibat. Proses pengaturan tersebut meliputi :
a. menentukan aksi terhadap pin OC1A/B saat compare match
OCR1A
TCNT1
PWM pada
T PWM
t
t
t ON
t OFF
nilai maks (TOP) TCNT1
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 36/40
Aksi yang dimaksud adalah inverting atau non-inverting pada keluaran
OC1A/B. Jika diatur inverting, maka waktu ON adalah ketika OCR1A lebih rendah
daripada nilai TCNT1. Aksi non-inverting menyebabkan aksi yang berlawanan.
Gambar 1.24 menunjukkan mode inverting dan non-inverting. Aksi tersebut
ditentukan oleh bit COM1A1:0 (Compare Output Mode for Channel A) dan bit
COM1B1:0 (Compare Output Mode for Channel B) pada register TCCR1A. Tabel
2.5 menunjukkan konfigurasi bit-bit tersebut.
Gambar 1.24.Mode Inverting dan Non-Inverting
b. menentukan jenis gelombang yang dibangkitkan
Tergantung pada bit-bit WGM13:0 (Waveform Generation Mode 13:0)
yang sebagian terletak di register TCCR1A dan sebagian lagi di register TCCR1B,
unit Timer/Counter1 dapat menghasilkan beberapa macam bentuk gelombang.
Mode operasi ini ditunjukkan pada Tabel1.22.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 37/40
Tabel 1.22. Konfigurasi Bit-bit COM1A1:0 dan COM1B1:0 pada Mode FPWM
COM1A1
/
COM1B1
COM1A0/
COM1B0
Penjelasan
0 0 Operasi port normal, pin OC1A/OC1B tidak
berfungsi
0 1 Balik (toggle) kondisi logika pin OC1A saat
compare match, dan OC1B tidak berfungsi.
Pengaturan tersebut hanya berlaku jika nilai
bit WGM13:0 = 15 (0b1111). Jika tidak,
pengaturan sama dengan operasi portnormal, pin OC1A/OC1B tidak berfungsi
1 0 Logika ‘0’ (clear ) saat compare match, logika
‘1’ (set ) saat mencapai TOP (non-inverting)
1 1 Logika ‘1’ (set ) saat compare match, logika
‘0’ (clear ) saat mencapai TOP (inverting)
Tabel 1.23. Konfigurasi Bit-bit WGM13:0
Mod
e
WGM
13
WGM
12
WGM
11
WGM
10
Mode
Operasi
Nilai
Maks
(TOP)
Pembaru
an OCR1x
saat
TOV1
set
saat
0 0 0 0 0 Normal $FFFF segera MAX
1 0 0 0 1 PCPWM,
8 bit
$00FF TOP BOTTOM
2 0 0 1 0 PCPWM,
9 bit
$01FF TOP BOTTOM
3 0 0 1 1 PCPWM,
10 bit
$03FF TOP BOTTOM
4 0 1 0 0 CTC OCR1A segera MAX
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 38/40
5 0 1 0 1 FPWM,
8 bit
$00FF TOP TOP
6 0 1 1 0 FPWM,
9 bit
$01FF TOP TOP
7 0 1 1 1 FPWM,
10 bit
$03FF TOP TOP
8 1 0 0 0 PFCPWM ICR1 BOTTOM BOTTOM
9 1 0 0 1 PFCPWM OCR1A BOTTOM BOTTOM
10 1 0 1 0 PCPWM ICR1 TOP BOTTOM
11 1 0 1 1 PCPWM OCR1A TOP BOTTOM
12 1 1 0 0 CTC ICR1 segera MAX
13 1 1 0 1 Dilarang - - -
14 1 1 1 0 FPWM ICR1 TOP TOP
15 1 1 1 1 FPWM OCR1A TOP TOP
c. menentukan sumber dan frekuensi clock yang digunakan Timer/Counter1
Frekuensi getar Timer/Counter1 dapat diperoleh dari osilator yang
digunakan mikrokontroler, dengan faktor pembagi. Tersedia juga pin T1 untuk
sumber clock eksternal. Sumber dan frekuensi clock ini ditentukan oleh bit-bit
CS12:0 (Clock Select ) pada register TCCR1B. Tabel 1.24 menunjukkan pilihan
frekuensi yang tersedia dan bit-bit yang menentukannya.
Tabel 1.24. Konfigurasi Bit-bit CS12:0
CS12 CS11 CS10 Penjelasan
0 0 0 Tanpa sumber clock (Timer/Counter1 berhenti)
0 0 1 clkI/O/1 (tanpa prescale)
0 1 0 clkI/O/8
0 1 1 clkI/O/64
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 39/40
1 0 0 clkI/O/256
1 0 1 clkI/O/1024
1 1 0 Sumber clock eksternal di pin T1, saat transisi turun(falling edge)
1 1 1 Sumber clock eksternal di pin T1, saat transisi naik
(rising edge)
d. menentukan nilai OCR1A/B sebagai pemodulasi
Untuk memperoleh duty cycle yang diinginkan, pengguna harus
menentukan nilai OCR1A/B. Dalam mode non-inverting, semakin besar nilai
OCR1A/B, semakin lebar waktu nyala (tON), sehingga semakin besar duty cycle.
Dan sebaliknya. Sebagai contoh, untuk memperoleh duty cycle sebesar 50 %,
maka OCR1A/B harus diisi dengan nilai setengah dari nilai maksimum
Timer/Counter1.
Pengguna dapat menentukan nilai OCR1A/B dengan memasukkan
langsung nilai yang diinginkan ke dalam register tersebut, karena register
OCR1A/B mempunyai kemampuan operasi tulis (write).
e. menentukan nilai prescaler
Nilai prescaler merupakan pembagi langsung frekuensi sistem, yang
bersama-sama dengan nilai TOP akan menentukan frekuensi PWM. Persamaan
(2.3) menunjukkan perhitungan untuk menentukan frekuensi PWM pada mode
FPWM.
5/13/2018 At Mega 8535 - slidepdf.com
http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 40/40
( )( )TOP N
f f
XTAL
FPWM +
=
1(2.3)