Penyusun:
DYAH LESTARI
Puji syukur kami panjatkan kepada Allah SWT atas segala limpahan rahmat, taufik,
dan hidayah-Nya, sehingga penyusun dapat menyelesaikan penulisan modul ajar
Mikroprosesor ini dengan baik. Modul ajar ini disusun sebagai salah satu sumber belajar
mahasiswa yang menempuh mata kuliah Mikroprosesor. Modul ajar ini juga merupakan
salah satu kegiatan yang dilakukan oleh para tenaga fungsional akademik di bidang
pengajaran.
Penyusunan buku ajar ini tidak lepas dari kerja yang baik dari berbagai pihak. Oleh
karena itu perkenankan kami sampaikan terima kasih yang sedalam-dalamnya kepada:
1. Para pimpinan dan staf Fakultas Teknik Universitas Negeri Malang yang telah
memberi bantuan dan kemudahan sejak awal penyusunan hingga penyelesaian
modul ajar.
2. Barisan asisten praktikum Mikroprosesor: Daniel, Frebu, Ian, Ganjar, Ginanjar dan
Anto yang membantu dalam proses penyusunan bahan ajar dan pelaksanaan
praktikum di Laboratorium Mikroprosesor.
3. Bapak Teguh Prianto sebagai Laboran Laboratorium Mikroprosesor yang telah
membantu dalam pembuatan modul praktikum dan pelaksanaan praktikum di
Laboratorium Mikroprosesor.
4. Semua pihak yang secara langsung ataupun tidak langsung telah membantu
kelancaran penyusunan modul ajar ini.
Walaupun modul ajar ini telah sesuai dengan yang direncanakan, namun disadari
masih banyak kekurangan-kekurangannya. Oleh karena itu saran dari semua pihak sangat
diharapkan. Akhirnya harapan penyusun, semoga modul ajar ini dapat berguna bagi
kemajuan pengajaran dan pendidikan.
Penyusun
MODUL 1 ............................................................................................................................. 1
MIKROPROSESOR DAN MIKROKONTROLER ............................................................. 1
A. Pengertian Mikroprosesor, Mikrokomputer dan Mikrokontroler ............................... 1
B. Perkembangan Mikroprosesor dan Mikrokontroler ................................................... 3
1. Perkembangan Mikroprosesor ................................................................................ 3
2. Perkembangan Mikrokontroler ............................................................................... 4
C. Persamaan dan Perbedaan Mikroprosesor dan Mikrokontroler ................................. 4
1. Persamaan Mikroprosesor dan Mikrokontroler ...................................................... 4
2. Perbedaan Mikroprosesor dan Mikrokontroler ....................................................... 4
D. Aplikasi Mikrokontroler ............................................................................................. 5
E. Sistem Mikroprosesor ................................................................................................. 5
MODUL 2 ............................................................................................................................. 8
MIKROKONTROLER AVR ................................................................................................ 8
A. Mikrokontroler AVR .................................................................................................. 8
B. Fitur Mikrokontroler ATmega8535 ............................................................................ 9
C. Arsitektur Mikrokontroler AVR ............................................................................... 10
D. Konfigurasi Pin ATmega8535 .................................................................................. 12
E. Register Status .......................................................................................................... 15
F. Memori Mikrokontroler AVR .................................................................................. 16
1. In System Programmable Flash EEPROM ........................................................... 16
2. Static Random Access Memory ............................................................................ 17
3. Byte-Addressable EEPROM................................................................................. 19
G. Rangkaian Sistem Minimum ATmega 8535 ............................................................ 20
MODUL 3 ........................................................................................................................... 23
ANTARMUKA MIKROKONTROLER DENGAN LED DAN TOGGLE SWITCH ....... 23
A. Sistem Port................................................................................................................ 23
B. Antarmuka dengan Piranti LED ............................................................................... 26
1. Rangkaian Antarmuka Mikrokontroler dengan LED ........................................... 26
2. Perintah Dasar Mengeluarkan Data ...................................................................... 28
C. Antarmuka dengan Piranti Switch ............................................................................ 29
Pertemuan ke :1
Topik : 1. Pengertian mikrokontroler dan mikroprosesor.
2. Perkembangan mikroprosesor dan mikrokontroler.
3. Persamaan dan perbedaan antara mikroprosesor dan
mikrokontroler.
4. Bagian-bagian sistem mikroprosesor secara umum serta
fungsinya.
Alokasi Waktu : 2 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan pengertian mikrokontroler dan
mikroprosesor.
2. Mahasiswa mampu menjelaskan perkembangan mikroprosesor
dan mikrokontroler.
3. Mahasiswa mampu menjelaskan persamaan dan perbedaan
antara mikroprosesor dan mikrokontroler.
4. Mahasiswa mampu menjelaskan bagian-bagian sistem
mikroprosesor secara umum serta fungsinya.
Pendahuluan
Dalam bab ini akan dibahas mengenai pengertian mikrokontroler dan
mikroprosesor, perkembangan mikroprosesor dan mikrokontroler mulai dari muncul
pertama kali sampai saat ini, persamaan dan perbedaan antara mikroprosesor dan
mikrokontroler, serta sistem mokroprosesor secara umum.
Pentium III 1999 9.500.000 0,25 450 MHz 32 bit, 64 bit 1.000
bus
Sumber : www.intel.com
Keterangan Tabel :
1. Transistor berbentuk seperti tabung yang sangat kecil, terdapat pada Chip.
2. Micron adalah ukuran dalam Micron (10 pangkat -6), merupakan kabel terkecil dalam Chip
3. Clock Speed = kecepatan maksimal sebuah prosesor
4. Data width = lebar dari Arithmatic Logic Unit (ALU) / Unit pengelola aritmatika, untuk proses
pengurangan, pembagian, perkalian dan sebagainya.
5. MIPS = Millions of Instructions Per Second / Jutaan perintah per detik.
D. Aplikasi Mikrokontroler
Karena kemampuannya yang tinggi, bentuknya yang kecil, konsumsi dayanya yang
rendah, dan harga yang murah maka mikrokontroler begitu banyak digunakan di dunia.
Mikrokontroler digunakan mulai dari mainan anak-anak, perangkat elektronik rumah
tangga, perangkat pendukung otomotif, peralatan industri, peralatan telekomunikasi,
peralatan medis dan kedokteran, sampai dengan pengendali robot serta persenjataan
militer. Terdapat beberapa keunggulan yang diharapkan dari alat-alat yang berbasis
mikrokontroler (microcontroller-based solutions) :
Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen
lain (high degree of integration)
Ukuran yang semakin dapat diperkecil (reduced in size)
Penggunaan komponen dipersedikit (reduced component count) yang juga akan
menyebabkan biaya produksi dapat semakin ditekan (lower manufacturing cost)
Waktu pembuatan lebih singkat (shorter development time) sehingga lebih cepat
pula dijual ke pasar sesuai kebutuhan (shorter time to market)
Konsumsi daya yang rendah (lower power consumption)
E. Sistem Mikroprosesor
Sebuah sistem minimum mikroprosesor memerlukan perangkat-perangkat seperti
mikroprosesor, unit memori, unit masukan dan keluaran, dan rangkaian pendukung lain.
Diagram blok rangkaian sistem minimum mikroprosesor diperlihatkan dalam Gambar 1.1.
Dalam sistem mikroprosesor prinsip kerjanya adalah mengolah suatu data masukan,
yang kemudian hasil olahan tersebut akan menghasilkan keluaran yang dikehendaki.
Proses pengolahan datanya dapat difungsikan sesuai dengan instruksi yang diprogramkan .
Masing-masing mikroprosesor memiliki bahasa pemrograman yang berbeda-beda. Namun
secara prinsip, dasar dari tiap mikroprosesor adalah sama. Tiap mikroprosesor memiliki
satu bus data, satu bus alamat dan satu bus kendali. Dalam mikroprosesor terdapat suatu
unit untuk mengerjakan fungsi fungsi logika dan aritmetika, register register untuk
menyimpan data sementara dan unit pengendalian .
Bus data terdiri biasanya 4, 8, 16 atau 32 jalur (bit), 64 bit, tergantung dari jenis
mikroprosesornya. Bus data berfungsi memuat data dari dan ke mikroprosesor. Arah panah
menunjukkan arah data dikirim/diterima. Bus alamat merupakan bus yang berisi alamat-
alamat yang datanya akan dikirim/diterima oleh mikroprosesor. Bus kendali digunakan
untuk mensinkronkan kerja antara mikroprosesor dengan dunia luar sistem. Pada beberapa
aplikasi ada yang disebut dengan istilah jabat tangan, seperti misalnya pada penerapan
hubungan dengan pencetak (printer).
Dalam sistem kerjanya mikroprosesor didukung oleh unit memori (untuk
menyimpan program tetap/sementara dan menyimpan data), unit masukan dan keluaran yang
berfungsi sebagai antar muka dengan dunia luar. Catu daya, rangkaian pembangkit
detak (clock), rangkaian pengawas sandi (address decoder), penyangga (buffer) dan
Rangkuman
Dalam bab ini telah disampaikan mengenai pengertian mikrokontroler dan
mikroprosesor, perkembangan mikroprosesor dan mikrokontroler mulai dari muncul
pertama kali sampai saat ini, persamaan dan perbedaan antara mikroprosesor dan
mikrokontroler, serta sistem mikroprosesor secara umum. Di bab berikutnya akan dibahas
mengenai mikrokontroler AVR.
Soal Latihan
1. Apakah yang dimaksud dengan mikrokomputer ?
2. Apakah yang dimaksud dengan mikrokontroler?
3. Apakah perbedaan antara mikroprosesor dan mikrokontroler?
4. Fungsi ALU dalam mikrokontroler adalah ...
5. Yang digunakan oleh mikroprosesor untuk mengirim informasi alamat memori atau
port I/O adalah ...
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Heryanto, M.A. dan Adi, W.P. 2008. Pemrograman Bahasa C untuk Mikrokontroler
ATmega8535. Yogyakarta: CV. Andi Offset.
Pertemuan ke : 2-3
Topik : 1. Fitur mikrokontroler AVR.
2. Arsitektur mikrokontroler AVR.
3. Konfigurasi pin mikrokontroler AVR.
4. Memori dalam mikrokontroler AVR.
5. Rangkaian sistem minimum mikrokontroler AVR.
Alokasi Waktu : 4 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan fitur mikrokontroler AVR.
2. Mahasiswa mampu menjelaskan arsitektur mikrokontroler AVR.
3. Mahasiswa mampu menjelaskan konfigurasi pin mikrokontroler
AVR.
4. Mahasiswa mampu menjelaskan memori dalam mikrokontroler
AVR.
4. Mahasiswa mampu menyebutkan komponen dalam rangkaian
sistem minimum mikrokontroler AVR.
Pendahuluan
Dalam bab ini akan dibahas mengenai fitur mikrokontroler AVR, arsitektur
mikrokontroler AVR, konfigurasi pin mikrokontroler AVR, jenis, fungsi, kapasitas, range
alamat memori dalam mikrokontroler AVR, serta rangkaian sistem minimum
mikrokontroler AVR.
A. Mikrokontroler AVR
Mikrokontroler ATmega8535 merupakan salah satu anggota keluarga
mikrokontroler AVR yang arsitekturnya menjadi andalan Atmel. Arsitektur ini dirancang
memiliki berbagai kelebihan dan merupakan penyempurnaan dari arsitektur
mikrokontroler-mikrokontroler yang sudah ada. Berbagai seri mikrokontroler AVR telah
Seri Flash RAM EEPROM Pin Timer Timer USART PWM ADC SPI ISP
(kbytes) (bytes) (kbytes) I/O 16-bit 8-bit 10-bit
ATmega8 8 1024 0.5 23 1 1 1 3 6/8 1 Ya
ATmega8535 8 512 0.5 32 2 2 1 4 8 1 Ya
ATmega16 16 1024 0.5 32 1 2 1 4 8 1 Ya
ATmega162 16 1024 0.5 35 2 2 2 6 8 1 Ya
ATmega32 32 2048 1 32 1 2 1 4 8 1 Ya
ATmega128 128 4096 4 53 2 2 2 8 8 1 Ya
ATtiny12 1 - 0.0625 6 - 1 - - - - Ya
ATtiny2313 2 128 0.125 18 1 1 1 4 - 1 Ya
ATtiny44 4 256 0.25 12 1 1 - 4 8 1 Ya
ATtiny84 8 512 0.5 12 1 1 - 4 8 1 Ya
Keterangan:
Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan
manusia yang harus dijalankan oleh mikrokontroler
RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data
sementara dan pengolahan data ketika program sedang running
EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk
penyimpanan data secara permanen oleh program yang sedang running
Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan
bagi program
Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa
USART (Universal Synchronous Asynchronous Receiver Transmitter) adalah jalur komunikasi data
khusus secara serial asynchronous
PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa
ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal analog dalam
range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu
SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial
synchronous
ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram
langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal
GND Ground
Port A Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat
memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port A (DDRA) harus disetting terlebih
dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1
jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk
masukan sinyal analog bagi A/D converter. Tabel 2.2 memperlihatkan
fungsi alternatif Port A.
masukan low selama minimal 2 machine cycle maka system akan di-reset.
AVCC AVCC adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus
secara eksternal terhubung ke Vcc melalui lowpass filter.
AREF AREF adalah kaki masukan referensi bagi A/D Converter. Untuk
operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus
diberikan ke kaki ini.
E. Register Status
Register status berisi informasi tentang hasil operasi aritmatika yang baru
berlangsung. Informasi tersebut dapat digunakan untuk mengubah alur program untuk
melakukan operasi kondisional.
Kapasitas flash EEPROM ini besarnya 8kbyte dengan 16 bit setiap lokasi memori.
Range alamat dimulai dari 000H FFFH (Gambar 2.3). Flash EEPROM ini merupakan in-
system programmable memory, yang berarti mikrokontroler dapat diprogram ketika berada
dalam rangkaiannya. Mikrokontroler tidak harus dipindahkan dari rangkaiannya ketika
pemrograman memori flash. Sebuah PC dihubungkan dengan mikrokontroler melalui kabel
untuk men-download program ke mikrokontroler. Memori flash mempunyai kemampuan
untuk ditulisi atau dihapus sebanyak 10.000 kali. Untuk keamanan software, memori flash
dibagi menjasi dua bagian, yaitu: bagian Boot Program dan bagian Application Program.
3. Byte-Addressable EEPROM
Soal Latihan
1. Sebutkan 5 fitur dalam mikrokontroler Atmega8535.
2. Apakah yang dimaksud dengan prosesor berarsitektur RISC?
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke :4
Topik : 1. Karakteristik port I/O mikrokontroler AVR.
2. Rangkaian antarmuka mikrokontroler dengan LED.
3. Rangkaian antarmuka mikrokontroler dengan toggle switch.
4. Program untuk mengirim data ke LED dan membaca data dari
toggle switch.
Alokasi Waktu : 2 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan karakteristik port I/O
mikrokontroler AVR.
2. Mahasiswa mampu menjelaskan rangkaian antarmuka
mikrokontroler dengan LED.
3. Mahasiswa mampu menjelaskan rangkaian antarmuka
mikrokontroler dengan toggle switch.
4. Mahasiswa mampu menjelaskan program untuk mengirim data
ke LED dan membaca data dari toggle switch.
Pendahuluan
Dalam bab ini akan dibahas mengenai karakteristik port I/O mikrokontroler AVR,
rangkaian antarmuka mikrokontroler dengan LED, rangkaian antarmuka mikrokontroler
dengan toggle switch, serta bagaimana memrogram mikrokontroler untuk mengirim data
ke LED dan membaca data dari toggle switch.
A. Sistem Port
Mikrokontroler AVR dilengkapi dengan 4 port 8-bit general purpose, yang
digunakan untuk port I/O digital, yaitu PORTA, PORTB, PORTC, dan PORTD. Semua
port ini mempunyai fungsi alternatif. Dalam bagian ini akan dijelaskan tentang fitur port
- Data Direction Register (DDRx) digunakan untuk mengeset pin port sebagai
output (1) atau input (0).
- Input Pin Address (PINx) digunakan untuk membaca data input dari port.
Contoh rangkaian LED dapat dilihat dalam Gambar 3.3. Logika 1 diberikan oleh
mikrokontroler ke masukan inverter. Inverter akan memberikan logika 0 pada output-nya
Penting untuk diingat bahwa IC inverter 7404 harus digunakan karena kemampuannya
untuk memberikan arus 16 mA dengan aman. Sebagai alternatif, dapat digunakan transistor
NPN seperti 2N2222 (PN2222 atau MPQ2222) sebagai pengganti inverter seperti yang
ditunjukkan dalam Gambar 3.3.
Untuk mengirim data byte dalam bentuk bilangan heksadesimal ke PORTX (X=A,
B, C, D) digunakan statement:
PORTX = 0xdata;
Contohnya:
PORTB = 0xaa;
Untuk mengirim data byte dalam bentuk bilangan biner ke PORTX (X=A, B, C, D)
digunakan statement:
PORTX = 0bdata;
Contohnya:
PORTB = 0b10101010;
Untuk mengirim data per bit ke PORTX.Y (X=A, B, C, D, dan Y=0, 1, 2 , 3, 4, 5,
6, 7) digunakan statement:
PORTX.Y = data;
Dimana data bisa berupa 0 atau 1.
Contohnya:
PORTB.1 = 0;
Gambar 3.5 Antarmuka dengan switch (a) Macam-macam switch, (b) Antarmuka dengan
switch, dan (c) Antarmuka dengan switch yang dilengkapi dengan rangkaian debouncing
2. Switch Debouncing
Switch mekanik tidak memberikan transisi yang bagus dari satu posisi (on) ke
posisi yang lain (off). Jika sebuah switch berpindah dari satu posisi ke posisi yang lain, hal
ini membuat kontak menutup dan membuka beberapa kali. Kondisi ini terjadi selama kira-
kira 10 ms. Mikrokontroler bekerja relatif cepat dibandingkan dengan bekerjanya switch
tersebut. Oleh karena itu, mikrokontroler dapat mengenali setiap switch bounce sebagai
transisi terpisah. Untuk memperbaiki fenomena switch bounce tersebut, maka diperlukan
rangkaian tambahan atau teknik pemrograman tertentu untuk mengatasinya. Rangkaian
switch debounce diilustrasikan dalam Gambar 3.5 (c). Titik antara switch dan resistor
Dalam trainer I/O yang dipakai dalam praktikum, saklar toggle yang digunakan
diberi rangkaian tambahan berupa rangkaian LED untuk melihat secara langsung logika
Contoh:
data_in = PINB.1
Rangkuman
Dalam bab ini telah dijelaskan mengenai karakteristik port I/O mikrokontroler
AVR, rangkaian antarmuka mikrokontroler dengan LED, rangkaian antarmuka
mikrokontroler dengan toggle switch, serta bagaimana memrogram mikrokontroler untuk
mengirim data ke LED dan membaca data dari toggle switch. Dalam bab selanjutnya akan
dijelaskan bagaimana mengantarmukakan mikrokontroler dengan seven segmen.
Soal Latihan
1. Dapatkan sebuah LED dengan resistor pembatas arus yang dihubungkan seri secara
langsung dihubungkan dengan mikrokontroler AVR?.
2. Dengan kata-katamu sendiri, jelaskan setiap parameter elektrik mikrokontroler
AVR.
3. Apakah switch bounce itu? Jelaskan 2 teknik yang digunakan untuk
meminimalisisir switch bounce.
4. Berapa syarat arus yang melewati transistor 2N2222 dan 2N2907 yang digunakan
dalam rangkaian LED? Buktikan jawabanmu.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke :5
Topik : 1. Rangkaian antarmuka mikrokontroler AVR dengan seven
segmen.
2. Perintah untuk menampilkan angka ke seven segmen.
Alokasi Waktu : 2 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan rangkaian antarmuka
mikrokontroler AVR dengan seven segmen.
2. Mahasiswa mampu menjelaskan perintah untuk menampilkan
angka ke seven segmen.
Pendahuluan
Dalam bab ini akan dijelaskan tentang karakteristik seven segmen, rangkaian
antarmuka dengan mikrokontroler, serta bagaimana memprogram mikrokontroler supaya
seven segmen bisa mengeluarkan angka tertentu.
Digit Gfedcba g F e d C b A
0 0x3F off on on on on on on
1 0x06 off off off off on on off
2 0x5B on off on on off on on
3 0x4F on off off on on on on
4 0x66 on on off off on on off
5 0x6D on on off on on off on
6 0x7D on on on on on off on
7 0x07 off off off off on on on
8 0x7F on on on on on on on
9 0x6F on on off on on on on
Rangkuman
Dalam bab ini telah dijelaskan mengenai karakteristik seven segmen, rangkaian
antarmuka mikrokontroler dengan seven segmen, serta bagaimana memrogram
mikrokontroler untuk menampilkan karakter angka ke seven segmen. Dalam bab
selanjutnya akan dijelaskan bagaimana mengantarmukakan mikrokontroler dengan keypad.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke :6
Topik : 1. Cara kerja keypad matriks.
2. Cara mengantarmukakan keypad matriks dengan mikrokontroler.
3. Algoritma pembacaan keypad matriks.
4. Program mikrokontroler untuk membaca input dari keypad
matriks.
Alokasi Waktu : 2 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan cara kerja keypad matriks.
2. Mahasiswa mampu menjelaskan cara mengantarmukakan
keypad matriks dengan mikrokontroler.
3. Mahasiswa mampu menjelaskan algoritma pembacaan keypad
matriks.
4. Mahasiswa program mikrokontroler untuk membaca input dari
keypad matriks.
Pendahuluan
Dalam bab ini akan dijelaskan tentang karakteristik keypad matriks, cara kerjanya,
cara mengantarmukakan keypad matriks dengan mikrokontroler, algoritma pembacaan
keypad matriks, serta program mikrokontroler untuk membaca input dari keypad matriks.
Keypad merupakan kumpulan beberapa switch yang disusun dalam bentuk baris
dan kolom. Konfigurasi dan antarmuka keypad secara umum dapat dilihat dalam Gambar
5.2. Dalam Gambar 5.2 terlihat keypad heksadesimal yang diantarmukakan ke
mikrokontroler. Prinsip kerja pembacaan keypad dapat dijelaskan sebagai berikut.
Keempat baris keypad tersebut dihubungkan dengan port output mikrokontroler dan
keempat kolomnya dihubungkan ke port input mikrokontroler. Sebuah baris diberi input
berupa logika 0, kemudian keempat kolomnya dibaca oleh mikrokontroler. Jika sebuah
tombol ditekan, maka logika kolom dimana tombol itu ditekan akan terbaca logika 0 sama
seperti logika barisnya. Kombinasi baris dan kolom yang berlogika 0 akan menentukan
tombol mana yang ditekan, seperti diilustrasikan dalam tabel. Baris keypad secara
kontinyu diberi logika 0 secara berurutan. Oleh karena keypad juga merupakan switch,
maka teknik debouncing juga harus diterapkan. Keypad digunakan untuk memberikan
input ke mikrokontroler. Sebagai contoh, keypad digunakan untuk memberikan kombinasi
PIN (Personal Identification Number) untuk transaksi keuangan.
Rangkuman
Dalam bab ini telah dijelaskan mengenai karakteristik keypad matriks, cara
kerjanya, cara mengantarmukakan keypad matriks dengan mikrokontroler, algoritma
pembacaan keypad matriks, serta program mikrokontroler untuk membaca input dari
keypad matriks. Dalam bab selanjutnya akan dijelaskan bagaimana mengantarmukakan
mikrokontroler dengan display LCD.
Soal Latihan
1. Jelaskan prinsip kerja keypad.
2. Jelaskan algoritma pembacaan keypad oleh mikrokontroler.
3. Jelaskan teknik untuk debouncing keypad.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke :7
Topik : 1. Karakteristik display LCD.
2. Cara mengantarmukakan mikrokontroler dengan display LCD.
3. Program mikrokontroler untuk mengeluarkan karakter ke display
LCD.
Alokasi Waktu : 2 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan karakteristik display LCD.
2. Mahasiswa mampu menjelaskan cara mengantarmukakan
mikrokontroler dengan display LCD.
3. Mahasiswa mampu menjelaskan program mikrokontroler untuk
mengeluarkan karakter ke dislay LCD.
Pendahuluan
Dalam bab ini akan dijelaskan tentang karakteristik display LCD, rangkaian
antarmuka display LCD dengan mikrokontroler, serta bagaimana memprogram
mikrokontroler supaya display LCD bisa mengeluarkan karakter yang diinginkan.
Rangkuman
Dalam bab ini telah dijelaskan karakteristik display LCD, rangkaian antarmuka
display LCD dengan mikrokontroler, serta bagaimana memprogram mikrokontroler supaya
display LCD bisa mengeluarkan karakter yang diinginkan. Dalam bab selanjutnya akan
dijelaskan bagaimana menggunakan fitur interrupt dalam mikrokontroler AVR.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Anonim. 2002. M1632 Liquid Crystal Display Module Users Manual. Seiko Instruments.
Pertemuan ke :8
Topik : 1. Pengenalan interrupt.
2. Respons interrupt dalam mikrokontroler.
3. Cara mengonfigurasi interrupt eksternal.
4. Program interrupt eksternal dalam mikrokontroler AVR.
Alokasi Waktu : 2 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan mengapa mikroprosesor
memerlukan interrupt.
2. Mahasiswa mampu mendeskripsikan prosedur respons interrupt
dalam mikrokontroler.
3. Mahasiswa mampu menjelaskan cara mengonfigurasi interrupt
eksternal.
4. Mahasiswa mampu memrogram interrupt eksternal dalam
mikrokontroler AVR.
Pendahuluan
Dalam bab ini akan dijelaskan tentang mengapa mikroprosesor memerlukan
interrupt, prosedur respons interrupt dalam mikrokontroler, bagaimana cara mengonfigurasi
interrupt eksternal, dan bagaimana memrogram interrupt eksternal dalam mikrokontroler
AVR.
A. Teori Interrupt
Mikrokontroler secara normal mengeksekusi instruksi dalam urutan fetch-decode-
execute seperti dituliskan oleh program yang ditulis oleh pengguna seperti dapat dilihat
dalam Gambar 7.1. Akan tetapi, mikrokontroler harus bisa menangani kejadian yang
mempunyai prioritas lebih tinggi yang mungkin terjadi di dalam atau di luar mikrokontroler.
Bit 3,2 ISC11, ISC10: Interrupt Sense Control 1 Bit 1 dan Bit 0
Bit 1,0 ISC01, ISC00: Interrupt Sense Control 0 Bit 1 dan Bit 0
3. Status Register-SREG
D. Memprogram Interrupt
Untuk memprogram interrupt, pengguna harus melakukan hal-hal berikut:
Meyakinkan bahwa ISR untuk interrupt dialamatkan pada interrupt vector address
yang benar, dimana menunjukkan awal alamat ISR.
Meyakinkan bahwa sistem interrupt sudah secara global diaktifkan. Hal ini
dilakukan dengan memberikan instruksi bahasa assembly SEI.
Meyakinkan bahwa subsistem interrupt secara lokal sudah diaktifkan.
Meyakinkan bahwa register yang berkaitan dengan interrupt tertentu sudah
dikonfigurasi dengan benar.
Rangkuman
Dalam bab ini telah dijelaskan mengenai mengapa mikroprosesor memerlukan
interrupt, prosedur respons interrupt dalam mikrokontroler, bagaimana cara mengonfigurasi
interrupt eksternal, dan bagaimana memrogram interrupt eksternal dalam mikrokontroler
AVR. Dalam bab selanjutnya akan dijelaskan bagaimana menggunakan fitur ADC dalam
mikrokontroler.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke : 9-10
Topik : 1. Perbedaan antara sinyal analog dan digital.
2. Ilustrasi proses ADC.
3. Menilai kualitas ADC menggunakan ukuran sampling rate, level
kuantisasi, jumlah bit yang digunakan untuk enkoding, dan
dynamic range.
4. Register yang digunakan untuk konfigurasi ADC.
5. Langkah-langkah menggunakan ADC dalam mikrokontroler
AVR.
6. Program mikrokontroler untuk fungsi ADC.
Alokasi Waktu : 4 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan perbedaan antara sinyal analog
dan digital.
2. Mahasiswa mampu mengilustrasikan proses ADC.
3. Mahasiswa mampu menilai kualitas ADC menggunakan ukuran
sampling rate, level kuantisasi, jumlah bit yang digunakan untuk
enkoding, dan dynamic range
4. Mahasiswa mampu menjelaskan register yang digunakan untuk
konfigurasi ADC.
5. Mahasiswa mampu mendeskripsikan langkah-langkah
menggunakan ADC dalam mikrokontroler AVR.
6. Mahasiswa mampu memrogram mikrokontroler untuk fungsi
ADC.
Gambar 8.1 Dua penyelam melompat dari platform: (a) gerakan cepat dan (b) gerakan
lambat.
Sampling adalah proses menangkap snapshot sebuah sinyal pada satu waktu. Secara
alami, ketika kita menyampel sebuah sinyal, kita ingin menyampel secara maksimal
supaya kita dapat menangkap sinyal tersebut. Dengan kata lain, kita ingin meminimalisir
Yang terakhir adalah proses encoding yang mengonversi sinyal terkuantisasi menjadi
bilangan biner. Misalkan kita menggunakan 8 bit untuk kuantisasi sinyal analog. Level
kuantisasi ditentukan oleh 8 bit tersebut, sehingga setiap sampel sinyal dikuantisasi sebagai
1. Successive Approximation
Teknik successive approximation menggunakan DAC, kontroler, dan komparator
untuk melakukan proses ADC. Mulai dari MSB ke LSB, kontroler mengubah setiap bit
Gambar 8.5 Empat teknologi yang digunakan untuk mengonversi sinyal analog ke sinyal
digital: (a) successive approximation converter, (b) integration-based converter, (c) counter-
based converter, and (d) parallel
3. Counter-Based Conversion
Teknik ketiga adalah mengonversi sinyal analog menjadi snyal digital berbasis
pada counter-based conversion. Konversi jenis ini dilakukan dengan bantuan counter,
DAC, dan komparator. Counter mulai dari 0 dan menghitung naik. Ketika counter
menghitung naik, nilai yang sesuai dikonversi menjadi nilai analog dan dibandingkan
dengan sinyal analog input. Selama sinyal analog input lebih besar daripada sinyal yang
dibangkitkan oleh DAC, counter terus menghitung dan proses terus berjalan. Ketika
komparator mendeteksi bahwa sinyal dari DAC lebih besar daripada sinyal analog input,
nilai counter akan dikonversi menjadi nilai digital yang merepresentasikan sampel sinyal
analog. Gambar 8.5 (c) menunjukkan arsitektur keseluruhan dari konverter jenis ini. Mirip
dengan konverter yang berbasis prinsip integrasi, kekurangan konverter jenis ini adala
waktu konversi yang bervariasi.
4. Parallel Conversion
Teknik terakhir yang mempunyai waktu konversi paling cepat dibandingkan
dengan teknik yang lain adalah parallel conversion. Konverter paralel menggunakan
sejumlah komparator dan rangkaian untuk secara simultan mengukur sinyal input dan
mengonversinya menjadi nilai digital. Kekurangan teknik ini adalah biaya yang digunakan
untuk membangun rangkaiannya. Gambar 8.5 (d) memperlihatkan arsitektur konverter
jenis ini.
2. Register
Ada beberapa langkah yang harus dilakukan untuk inisialisasi ADC, yaitu penentuan
clock, tegangan referensi, format data output dan mode pembacaan. Inisialisasi ini dilakukan
pada register-register berikut:
Rangkuman
Dalam bab ini telah dijelaskan tentang perbedaan antara sinyal analog dan digital,
proses ADC, menilai kualitas ADC menggunakan ukuran sampling rate, level kuantisasi,
jumlah bit yang digunakan untuk enkoding, dan dynamic range, register yang digunakan
untuk konfigurasi ADC, langkah-langkah menggunakan ADC dalam mikrokontroler AVR,
memrogram mikrokontroler untuk fungsi ADC. Dalam bab selanjutnya akan dijelaskan
bagaimana menggunakan fitur Timer/Counter dalam mikrokontroler AVR.
Soal Latihan
1. Jika sebuah sinusoida dengan frekuensi 500 HZ, berapa frekuensi sampling minimum
untuk ADC supaya dapat merekonstruksi sinyal analog setelah dikonversi?
2. Jika 12 bit digunakan untuk menguantisasi sinyal sapel, berapa junlah level
kuantisasinya? Berapakan resolusinya jika input range ADCnya 10 V.
3. Jika range input ADC 12 V dan resolusi yang diinginkan 0.125 V, berapa jumlah bit
yang digunakan untuk konversi?
4. Jika sinyal analog dikonversi oleh ADC menjadi representasi biner dan kemudian
dikembalikan ke tegangan analog menggunakan DAC, apakah tegangan input analog
yang asli bisa sama dengan tegangan output yang dihasilkan? Jelaskan.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke : 11-13
Topik : 1. Fitur timer/counter mikrokontroler.
2. Fungsi timer/counter untuk delay time.
3. Fungsi timer/counter untuk membuat counter.
4. Fungsi timer/counter untuk membangkitkan sinyal dengan mode
CTC.
5. Fungsi timer/counter untuk membangkitkan sinyal dengan mode
PWM.
Alokasi Waktu : 6 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan fitur timer/counter
mikrokontroler.
2. Mahasiswa mampu menjelaskan fungsi timer/counter untuk
delay time.
3. Mahasiswa mampu menjelaskan fungsi timer/counter untuk
membuat counter.
4. Mahasiswa mampu menjelaskan fungsi timer/counter untuk
membangkitkan sinyal dengan mode CTC.
5. Mahasiswa mampu menjelaskan fungsi timer/counter untuk
membangkitkan sinyal dengan mode PWM.
Pendahuluan
Dalam bab ini akan dijelaskan tentang istilah yang berkaitan dengan timer, keempat
mode timer/counter, komponen mikrokontroler untuk fungsi timer, mendeskripsikan
prosedur untuk menangkap sinyal dari luar, mendeskripsikan prosedur untuk
membangkitkan sinyal, mendeskripsikan register yang digunakan untuk Timer 0, Timer 1,
dan Timer 2, serta memrogram timer dalam mikrokontroler AVR.
2. Periode
Kebalikan frekuensi adalah periode. Jika sebuah kejadian terjadi setiap 1 Hz, maka
peride kejadian itu adalah 1 detik. Untuk memperoleh periode dari nilai frekuensi, atau
sebaliknya, maka digunakan persamaan:
f = 1/T
dimana f dan T melambangkan frekuensi dan periode.
Kedua istilah ini digunakan dalam hal-hal yang berkaitan dengan timing dalam sistem
tertanam.
Gambar 9.1 Dua sinyal dengan periode yang sama tetapi beda siklus kerja: (a) sinyal
periodik dengan siklus kerja 50% dan (b) sinyal periodik dengan siklus kerja 25%
Semua bagian yang berhubungan dengan timer, merujuk pada isi free-running
counter untuk melakukan aktivitas yang terkait dengan I/O: pengukuran periode,
menangkap event timing, dan sinyal yang berhubungan dengan pembangkitan sinyal.
Untuk aktivitas yang berkaitan dengan masukan pewaktu, mikrokontroler pada umunya
mempunyai komponen perangkat keras pewaktu yang mendeteksi perubahan logika sinyal
pada satu atau lebih pin input. Komponen tersebut bergantung pada free-running counter
untuk menangkap kejadian eksternal yang dapat digunakan untuk mengukur periode sinyal
yang masuk, lebar sebuah pulsa, dan kapan logika sebuah sinyal berubah. Untuk fungsi
timer output, mikrokontroler menggunakan komparator, free-running counter, switch
logika, dan special-purpose register untuk membangkitkan sinyal yang berkaitan dengan
Tujuan kedua dari sistem timer adalah untuk membangkitkan sinyal untuk
mengontrol piranti eksternal. Sekali lagi, event, berarti perubahan kondisi logika pada pin
output mikrokontroler pada saat tertentu. Lihat Gambar 9.2. Misalkan piranti eksternal
terhubung dengan mikrokontroler memerlukan sinyal pulsa untuk mengaktifkan piranti
tersebut. Misalkan lebar pulsa yang diperlukan oleh piranti itu adalah 2 ms. Dalam situasi
tersebut, kita dapat menggunakan nilai free-running counter untuk sinkronisasi perubahan
kondisi logika waktu yang diinginkan. Secara alami, dengan menggunakan kemampuan
C. Aplikasi
1. Input Capture---Measuring External Timing Event
Dalam banyak aplikasi, dapat diukur waktu yang diperlukan atau frekuensi sebuah
event eksternal menggunakan mikrokontroler. Dengan menggunakan perangkat keras dan
unit fungsional yang didiskusikan di bagian sebelunya, akan dijelaskan prosedur untuk
mencapa tugas menghitung frekuensi sinyal yang masuk. Gambar 9.3 memperlihatkan
sinyal periodik yang masuk ke mikrokontroler.
Gambar 9.3 Menggunakan sistem timer I/O mikrokontroler. Sinyal sebelah atas dimasukkan
ke timer.
2. Menghitung Event
The same capability of measuring the period of a signal can also be used to simply
count external events. Suppose we want to count the number of logic state changes of an
Gambar 9.4 The figure shows the speed profile of a DC motor over time when a pulse-width
modulated signal is applied to the motor.
Each timing channel has the capability to generate PWM signals, generate a periodic signal
with a specific frequency, count events, and generate a precision signal using the output
compare channels. Additionally, Timer 1 is equipped with the Input Capture feature.
All of the timing channels may be configured to operate in one of four operational modes
designated : Normal (Mode 0), Clear Timer on Compare Match (CTC) (Mode 1), Fast
PWM (mode 2), and Phase Correct PWM (mode 3).
E. Sistem Timer 0
In this section, we discuss the features, overall architecture, modes of operation,
registers, and programming of Timer 0. This information may be readily adapted to Timer
1 and Timer 2. A Timer 0 block diagram is shown in Figure 5.6. The clock source for
Timer 0 is provided via an external clock source at the T0 pin (PB0) of the microcontroller.
Timer 0 may also be clocked internally via the microcontrollers main clock ( fclk I/O).
This clock frequency may be too rapid for many applications. Therefore, the timing system
is equipped with a prescaler to subdivide the main clock frequency down to timer system
frequency (clkTn). The clock source for Timer 0 is selected using the CS0[2:0] bits
contained in the Timer/Control Register (TCCR0). The TCCR0 register also contains the
WGM0[1:0] and the COM0[1:0] bits, which are used to select the mode of
operation for Timer 0 as well as tailor waveformgeneration for a specific application.
The timer clock source (clkTn) is fed to the 8-bit Timer/Counter Register (TCNT0). This
a. Normal Mode.
In the normal mode, the timer will continually count from 0x00 (BOTTOM)
to 0xFF (TOP). When the TCNT0 returns to 0 on each cycle of the counter, the
d. Fast PWM
The fast PWMmode is used to generate a precision PWMsignal of a desired
frequency and duty cycle. It is called the fast PWM because its maximum frequency is
twice that of the Phase Correct PWM mode. When the TCNT0 register value reaches the
value set in the OCR0 register, it will cause a change in the PWM output as prescribed by
the system designer. It continues to count up to the TOP value, at which time the
Timer/Counter 0 Overflow Flag (TOV0) is set.
2. Timer 0 Registers
TCCR0 - Timer/Counter Control Register 0
TCNT0-Timer/Counter Register 0
Isi register ini akan selalu dibandingkan dengan nilai counter TCNT. Nilai yang
sama akan menimbulkan interrupt atau membangkitkan sinyal di pin OC0.
G. Register Timer 2
TCCR2 Timer/Counter Control Register
1. Precision Delay
In this example, we program the ATmega16 to provide a delay of some number of
6.55-ms interrupts. The Timer 0 overflow is configured to occur every 6.55 ms. The
overflow flag is used as a clock tick to generate a precision delay. To create the delay
the microcontroller is placed in a while loop waiting for the prescribed number of Timer 0
overflows to occur.
//Function prototypes
void delay(unsigned int number_of_6_55ms_interrupts);
void init_timer0_ovf_interrupt(void);
void timer0_interrupt_isr(void);
//interrupt handler
//definition
#pragma interrupt_handler timer0_interrupt_isr:10
//door profile data
//****************************************************************
//int_timer0_ovf_interrupt(): The Timer0 overflow interrupt is
//being employed as a time base for a master timer for this
//project. The ceramic resonator operating at 10 MHz is divided
//by 256. The 8-bit Timer0 register (TCNT0) overflows every 256
//counts or every 6.55 ms.
//****************************************************************
void init_timer0_ovf_interrupt(void)
{
Rangkuman
Dalam bab ini telah dijelaskan tentang istilah yang berkaitan dengan timer, keempat
mode timer/counter, komponen mikrokontroler untuk fungsi timer, mendeskripsikan
prosedur untuk menangkap sinyal dari luar, mendeskripsikan prosedur untuk
membangkitkan sinyal, mendeskripsikan register yang digunakan untuk Timer 0, Timer 1,
dan Timer 2, serta memrogram timer dalam mikrokontroler AVR. Dalam bab selanjutnya
akan dijelaskan bagaimana mengantarmukakan mikrokontroler dengan motor DC.
Soal Latihan
1. Given an 8-bit free-running counter and a systemclock rate of 24MHz, find the time
required for the counter to count from 0 to its maximum value.
2. If we desire to generate periodic signals with periods ranging from 125 ns to 500 s,
what is the minimum frequency of the system clock?
3. Describe how you can compute the period of an incoming signal with varying duty
cycles.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.
Pertemuan ke : 14-15
Topik : 1. Prinsip kerja motor DC.
2. Rangkaian antarmuka mikrokontroler dengan motor DC.
3. Pemrograman mikrokontroler untuk mengatur arah putaran
motor DC.
4. Pemrograman mikrokontroler untuk mengatur kecepatan putaran
motor DC dengan PWM (Pulse Width Modulation).
Alokasi Waktu : 4 x 50 menit
Tujuan : 1. Mahasiswa mampu menjelaskan prinsip kerja motor DC.
2. Mahasiswa mampu menjelaskan rangkaian antarmuka
mikrokontroler dengan motor DC.
3. Mahasiswa mampu menjelaskan pemrograman mikrokontroler
untuk mengatur arah putaran motor DC.
4. Mahasiswa mampu menjelaskan pemrograman mikrokontroler
untuk mengatur kecepatan putaran motor DC dengan PWM
(Pulse Width Modulation).
Pendahuluan
Dalam bab ini akan dijelaskan tentang prinsip kerja motor DC, rangkaian antarmuka
motor DC dengan mikrokontroler, serta bagaimana memprogram mikrokontroler untuk
mengatur arah putaran motor DC tanpa PWM dan dengan PWM (Pulse Width Modulation).
Catu tegangan DC dari baterai menuju ke lilitan melalui sikat yang menyentuh
komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada
Gambar 10.1 disebut angker dinamo. Angker dinamo adalah sebutan untuk komponen yang
berputar di antara medan magnet.
Cara kerja motor DC: (1) Arus medan (DC) yang mengalir pada belitan medan akan
menghasilkan medan magnet. Medan magnet ini akan memotong belitan jangkar yang ada
di rotor motor DC; (2) Belitan jangkar dialiri arus listrik. Karena belitan berarus listrik ini
berada dalam pengaruh medan magnet, maka pada belitan akan timbul gaya magnet yang
selanjutnya akan menimbulkan torsi; (3) Jika torsi awal yang dihasilkan lebih besar daripada
torsi beban, maka jangkar akan berputar.
CW CCW
Gambar 10.3 Mengubah Polaritas Mengatur Arah Putaran Motor DC
Jika nilai di PORT D.0 dan PORTD.1 ditukar maka motor akan berputar berlawanan dengan
arah jarum jam.
OCR1A=255; // motor putaran penuh
PORTD.0=0; // motor putar berlawanan dengan arah
// jarum jam
PORTD.1=1;
Untuk mengubah arah putar sekaligus mengubah kecepatan motor DC, maka digunakan fitur
ADC dan PWM dalam Timer/Counter.
OCR1A=read_adc(0); // kecepatan motor bergantung
// pada nilai OCR yang
// dihasilkan dari konversi ADC
PORTD.0=1; // motor putar searah jarum jam
PORTD.1=0;
Soal Latihan
1. Gambarkan rangkaian antarmuka mikrokontroler dengan motor DC dengan rangkaian
H-bridge. Tuliskan semua komponen yang digunakan.
2. Buatlah program untuk memutar motor searah dan berlawanan dengan arah jarum jam.
Daftar Rujukan
Barret, Steven F. dan Pack, Daniel J. 2008. Atmel AVR Microcontroller Primer:
Programming and Interfacing. USA: Morgan and Claypool Publishers.