BAB II LANDASAN TEORI
2.1 Perangkat Keras
2.1.1 Mikrokontroler ATMega8535
Mikrokontroler merupakan alat pengolah data digital dan analog fitur ADC pada seri AVR dari tegangan maksimum 5 Volt. Keunggulan mikrokontroller di banding
mikroprosessor yaitu lebih murah dan didukung dengan software compiler yang sangat beragam seperti software yang sangat beragam compiler CC++, Basic, bahkan assembler
sekalipun sehingga pengguna dapat memilih program yang sesuai dengan kemampuannya. Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam
pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah
mikrokontroler AVR Alf and Vegard’s Risc processor ATmega8535 yang menggunakan
teknologi RISC Reduce Instruction Set Computing dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program.
Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-
masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
Mikrokontroler AVR memiliki arsitektur RISC 8-bit, dimana semua intruksi dikemas dalam kode 16-bit dan sebagian besar intruksi dalam 1 siklus clock, berbeda dengan intruksi
MCS51 yang membutuhkan 12 siklus clock. Hal ini terjadi karena kedua mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC, sedangkan seri MCS51
berteknologi CICS Complex Intruction Set Computing. Mikrokontroler AVR ATmega8535 memiliki fitur yang cukup lengkap. Mikrokontroler AVR ATmega8535 telah dilengkapi
dengan ADC internal, EEPROM internal, TimerCounter, PWM, analog comparator, dll. Sehingga dengan fasilitas yang lengkap ini memungkinkan kita belajar mikrokontroler
Universitas Sumatera Utara
keluarga AVR dengan lebih mudah dan efisien, serta dapat mengembangkan kreativitas penggunaan mikrokontroler ATmega8535.
Beragam jenis mikrokontroller seperti AVR jenis ATtiny, ATmega dan AT90 dibedakan dari segi jumlah pin dan memori, dapat kita lihat perbedaan jenis mikrokontroller
seperti table di bawah ini.
Mikrokontroler Memori
Tipe Jumlah Pin
Flash EEPROM
SRAM
TinyAVR 8
– 32 1
– 2k 64
– 128 – 128
AT90Sxx 20
– 44 1
– 8k 128
– 512 – 1k
ATMega 32
– 64 8
– 128k 512
– 4k 512
– 4k
Tabel 2.1 Jenis-jenis AVR
Pemograman AVR dengan bahasa C lebih baik dari bahasa pemograman lainnya. Karena bahasa pemograman independen terhadap hardware C. keunggulan lainnya
penyusunan program besar dapat dilakukan dengan mudah dan program yang telah jadi dapat digunakan ke jenis AVR lainnya dengan hanya mengubah fungsi
– fungsi port dan registernya.
Beberapa faktor pertimbangan penting untuk memilih mikrokontroler jenis AVR antara lain:
- Harga mikrokontroller yang lebih murah dibanding mikroprosesor;
- Ukuran memori mikrokontroller yang cukup besar dan untuk menambah
memorinya dapat digunakan memori eksternal; -
Fitur ADC, Timer, PWM, USART, dan fasilitas lainnya yang memudahkan Designer dalam merancang sistem;
- Kecepatan eksekusi program dimana instruksi dieksekusi dalam 1 clock sementara
mikrokontroller jenis MCS51 atau mengeksekusi instruksi dalam 12 clock; -
Adanya clock internal sehingga mikrokontroller dapat digunakan tanpa menggunakan crystal.
Universitas Sumatera Utara
Software pendukung yang sangat beragam dan penggunaannya jauh lebih mudah karena software menyediakan fitur yang memudahkan dalam memprogramnya seperti Code
Vision AVR dan BASCOM AVR yang menyediakan fitur desain LCD pada BASCOM AVR dan fitur penghasil program pada Code Vision AVR.
Mikrokontroller ATmega8535 adalah mikrokontroller 8bit CMOS dengan menggunakan daya rendah dan menjalankan semua instruksi dalam satu siklus clock.
Mikrokontroller ATmega8535 dikombinasikan dengan 16 buah register. Semua register terhubung langsung ke Aritmetical Logical Unit, membiarkan 2 register untuk diakses di
dalam satu instruksi dieksekusi dalam satu clock.
Gambar 2.1 Arsitektur ATmega8535
Universitas Sumatera Utara
Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai berikut: 1. Saluran IO sebanyak 32 buah, yaitu port A, port B, port C, dan port D.
2. ADC internal sebanyak 8 saluran. 3. Tiga buah TimerCounter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register. 5. SRAM sebesar 512 byte.
6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 7. Port antarmuka SPI
8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 9. Antarmuka komparator analog.
10. Port USART untuk komunikasi serial. 11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
12. Dan lain-lainnya.
Read Only Memory ROM yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS51 memori penyimpanan program ini
dinamakan sebagai memori program. Random Acces Memori RAM isinya akan sirna begitu IC kehilangan catu daya,
dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data disebut sebagai memori data. Atmega8535 memiliki On-Chip In-System
Reprogrammable Flash Memory untuk menyimpan program. Untuk keamanan, memori
program 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 pertama kali 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.
Universitas Sumatera Utara
2.1.1.1 Spesifikasi ATmega8535
a. High-performance, Low-power AVR® 8-bit Microcontroller
b. Advanced RISC Architecture
– 130 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers
– Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz
– On-chip 2-cycle Multiplier
c. Nonvolatile Program and Data Memories
– 8K Bytes of In-System Self-Programmable Flash Endurance: 10,000 WriteErase Cycles
– Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program
True Read-While-Write Operation – 512 Bytes EEPROM
Endurance: 100,000 WriteErase Cycles – 512 Bytes Internal SRAM
– Programming Lock for Software Security
d. Peripheral Features
– Two 8-bit TimerCounters with Separate Prescalers and Compare Modes – One 16-bit TimerCounter with Separate Prescaler, Compare Mode, and
Capture Mode – Real Time Counter with Separate Oscillator
– Four PWM Channels – 8-channel, 10-bit ADC
8 Single-ended Channels 7 Differential Channels for TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP Package Only
– Byte-oriented Two-wire Serial Interface – Programmable Serial USART
– MasterSlave SPI Serial Interface
Universitas Sumatera Utara
– Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator
e. Special Microcontroller Features
– Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator
– External and Internal Interrupt Sources – Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down,
Standby and Extended Standby f.
IO and Packages – 32 Programmable IO Lines
– 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF
g. Operating Voltages
– 2.7 - 5.5V for ATmega8535L – 4.5 - 5.5V for ATmega8535
h. Speed Grades
– 0 - 8 MHz for ATmega8535L – 0 - 16 MHz for ATmega8535
2.1.1.2 Konfigurasi Pin AVR ATmega8535
Konfigurasi pin-pin Atmega8535 dapat kita lihat pada gambar di bawah ini : Mikrokontroler ATMega8535 memiliki 40 pin untuk model PDIP, dan 44 pin untuk
model TQFP dan PLCC. Nama-nama pin pada mikrokontroler ini adalah 1.
VCC untuk tegangan pencatu daya positif. 2.
GND untuk tegangan pencatu daya negatif. 3.
PortA PA0 - PA7 sebagai port InputOutput dan memiliki kemampuan lain yaitu sebagai input untuk ADC
4. PortB PB0 – PB7 sebagai port InputOutput dan juga memiliki kemampuan yang
lain. 5.
PortC PC0 – PC7 sebagai port InputOutput untuk ATMega8535. 6.
PortD PD0 – PD7 sebagai port InputOutput dan juga memiliki kemampuan yang lain.
Universitas Sumatera Utara
7. RESET untuk melakukan reset program dalam mikrokontroler.
8. XTAL1 dan XTAL2 untuk input pembangkit sinyal clock.
9. AVCC untuk pin masukan tegangan pencatu daya untuk ADC.
10. AREF untuk pin tegangan referensi ADC
.
Gambar 2.2 Pin-pin ATmega8535
2.1.1.3 Alternatif PORT A
PORT A memiliki fungsi input output dan juga sebagai input analog yang akan dikonversi menjadi data
–data digital ADC, seperti yang ditunjukkan pada tabel di bawah. Jika salah satu PORT A dikonfigurasi kan sebagai output ketika PORT A difungsikan sebagai
ADC maka hasil pengkonversian analog ke digital akan menghasilkan data error. Untuk mengaktifkan fungsi ADC pada PORT A dengan Code Vision AVR akan dibahas di
bab selanjutnya tentang teknik pemrogram C pada ATmega8535 dengan menggunakan software yang telah disebutkan di atas.
Fungsi PORT A dapat kita lihat pada tabel di bawah ini:
Universitas Sumatera Utara
Port Fungsi Alternatif
PA7 ADC7 ADC input channel 7 PA6 ADC6 ADC input channel 6
PA5 ADC5 ADC input channel 5 PA4 ADC4 ADC input channel 4
PA3 ADC3 ADC input channel 3 PA2 ADC2 ADC input channel 2
PA1 ADC1 ADC input channel 1 PA0 ADC0 ADC input channel 0
Tabel 2.2 PORT A
2.1.1.4 Alternatif PORT B
Fungsi PORT B dapat dilihat di tabel di bawah ini:
PORT Fungsi Alternatif
PB7 SCKSPI Bus Serial Clock
PB6 MISOSPI bus master inputslave output
PB5 MOSISPI Bus Master Output Slave Input
PB4 SS SPI Slave Select Input
PB3 AIN1Analog Comparator Negative Input OCO TIMER COUNTER
OUTPUT COMPARATOR MATCH OUTPUT PB2
AIN0 Analog Comparator Positive Input INT2 External Interrupt 2 Input
PB1 T1 TimerCounter External Counter Input
PB0 T0T1 TimerCounter External Counter Input XCX
USART EXTERNAL CLOCK INPUTOUTPUT
Tabel 2.3 PORT B
Universitas Sumatera Utara
2.1.1.5 Alternatif PORT C
Fungsi PORT C dapat dilihat pada tabel di bawah ini:
PORTC FUNGSI KHUSUS PC7
TOSC2TIMER OSCILATOR PIN2 PC6
TOSC1TIMER OSCILATOR PIN1 PC5
TDIJTAG TEST DATA IN PC4
TDOJTAG TEST DATA OUT PC3
TMSJTAG TEST MODE SELECT PC2
TCKJTAG TEST CLOCK PC1
SDATWO WIRE SERIAL BUS DATA INOUT LINE PC0
SCLTWO WIRE SERIAL BUS CLOCK LINE
Tabel 2.4 Fungsi PORT C
2.1.1.6 Alternatif PORT D
Fungsi PORT D dapat dilihat pada tabel di bawah ini :
PIN FUNGSI KHUSUS
7 OC2 TIMER COUNTER2 COMPARE MATCH OUTPUT
6 ICP TIMERCOUNTER1 INPUT COMPARE CAPTURE PIN
5 OC1A TIMERCOUNTER1 OUTPUT COMPARE A MATCH OUT
4 OC1B TIMERCOUNTER OUTPUT COMPARE B MATCH OUTPUT
3 INT1 EXTERNAL INTERRUPT 1 INPUT
2 INT0 EXTERNAL INTERRUPT 0 INPUT
1 TXD USART OUTPUT PIN
RXD USART INPUT PIN
Tabel 2.5 Fungsi PORT D
Universitas Sumatera Utara
2.1.1.7 Konstruksi ATmega8535
Mikrokontroler ATmega8535 memiliki 3 jenis memori, yaitu memori program, memori data dan memori EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.
a. Memori program ATmega8535 memiliki kapasitas memori progam sebesar 8 Kbyte yang terpetakan
dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data 16 bit.
Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi.
b. Memori data ATmega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi
3 bagian yaitu register serba guna, register IO dan SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register IO yang dapat diakses sebagai bagian dari
memori RAM menggunakan instuksi LD atau ST atau dapat juga diakses sebagai IO menggunakan instruksi IN atau OUT, dan 512 byte digunakan untuk memori
data SRAM. c. Memori EEPROM
ATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses
dengan menggunakan register-register IO yaitu register EEPROM Address, register EEPROM Data, dan register EEPROM Control. Untuk mengakses memori EEPROM
ini diperlakukan seperti mengakses data eksternal, sehingga waktu eksekusinya relatif lebih lama bila dibandingkan dengan mengakses data dari SRAM.
ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATmega8535 dapat
dikonfigurasi, baik secara single ended input maupun differential input. Selain itu, ADC ATmega8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan
kemampuan filter derau yang amat fleksibel, sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri.
ATmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timercounter 8 bit dan 1 buah timercounter 16 bit. Ketiga modul timercounter ini dapat diatur dalam mode yang
berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu, semua
Universitas Sumatera Utara
timercounter juga dapat difungsikan sebagai sumber interupsi. Masing-masing timercounter ini memiliki register tertentu yang digunakan untuk mengatur mode dan cara kerjanya.
Serial Peripheral Interface SPI merupakan salah satu mode komunikasi serial
syncrhronous kecepatan tinggi yang dimiliki oleh ATmega8535. Universal Syncrhronous and
Asyncrhronous Serial Receiver and Transmitter USART juga merupakan salah satu mode
komunikasi serial yang dimiliki oleh ATmega8535. USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar
mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART.
USART memungkinkan transmisi data baik secara syncrhronous maupun asyncrhronous,
sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada ATmega8535, secara umum pengaturan mode syncrhronous maupun asyncrhronous adalah
sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada mode asyncrhronous masing-masing peripheral memiliki sumber clock sendiri,
maka pada mode syncrhronous hanya ada satu sumber clock yang digunakan secara bersama- sama. Dengan demikian, secara hardware untuk mode asyncrhronous hanya membutuhkan 2
pin yaitu TXD dan RXD, sedangkan untuk mode syncrhronous harus 3 pin yaitu TXD, RXD dan XCK.
2.1.2 LED Light Emitting Dioda