bab i pembelajaran microcontroller

196

Click here to load reader

Upload: ari-wibowo

Post on 31-Dec-2015

228 views

Category:

Documents


24 download

TRANSCRIPT

Page 1: Bab i Pembelajaran Microcontroller

1

A. DESKRIPSI MODUL

Modul ini berjudul “Mikrokontroller AVR”, berisi pembelajaran

tentang standar kompetensi/ kompetensi dasar “Memprogram peralatan

sistem pengendali elektronik yang berkaitan akses I/O berbantuan

mikroprosesor dan mikrokontroller”. Modul bahan ajar ini berisi kajian

teori dan materi latihan praktik, oleh karena sifat bahan kajian teori

merupakan keterampilan tahap kognitif, maka materi tersebut harus sudah

dimengerti, dipahami dan dikuasai oleh siswa/peserta diklat sebelum

melaksanakan kegiatan praktik.

Hasil yang diharapkan setelah pembelajaran pada modul ini peserta

diklat harus dapat Menerapkan Sistem Mikrokontroller dengan baik dan

benar sesuai SOP.

B. PRASYARAT

- PENDIDIKAN FORMAL

Telah menyelesaikan pendidikan setara Sekolah Menengah Pertama

(SMP) atau sederajat.

- KAITAN DENGAN MODUL/KEMAMPUAN LAIN

Modul ini berkaitan dengan Modul: Modul ini berkaitan dengan Standar

Kompetensi “Menerapkan Dasar-Dasar Kelistrikan”, “Menerapkan Dasar-

Dasar Elektronika”, “Menerapkan Dasar-Dasar Teknik Digital”,

“Menerapkan Keselamatan Dan Kesehatan Kerja (K3)”, “Menerapkan

konsep elektronika digital dan rangkaian elektronika computer”

“Menggunakan Sensor” ,“Menerapkan sistem Menerapkan sistem

mikrokontroller”, “Menerapkan Sistem Microprosesor”. “Merakit peralatan

dan perangkat elektronik sistem pengendali elektronika”, “Merakit

peralatan dan perangkat elektronik sistem otomasi elektronika”

C. PETUNJUK PENGGUNAAN MODUL

1. Petunjuk untuk siswa/ peserta diklat

Langkah-langkah belajar yang ditempuh :

I. PENDAHULUAN

Page 2: Bab i Pembelajaran Microcontroller

2

a. Bacalah modul ini sampai anda betul-betul mengerti.

b. Kerjakan tugas-tugas yang ada pada modul ini pada lembaran yang

sudah disediakan.

c. Hasil pekerjaan anda merupakan data fisik untuk menentukan

keberhasilan.

2. Petunjuk untuk guru/ fasilitator

a. Mengarahkan/ membimbing, menjelaskan serta memotivasi peserta

diklat mengenai teknis pengerjaannya.

b. Mengawasi dan memandu siswa apabila ada yang masih kurang jelas.

c. Menjelaskan materi-materi pembelajaran yang ditanyakan oleh siswa

yang masih kurang dimengerti.

d. Membuat pertanyaan dan memberikan penilaian kepada setiap siswa.

D. TUJUAN AKHIR

Setelah mengikuti/ menyelesaikan kegian-kegiatan belajar dari modul ini ,

diharapkan siswa/ peserta diklat memiliki spesifikasi kinerja sebagai

berikut:

a. Memahami konsep dan pengertian algoritma pemrograman.

b. Mengetahui teknologi yang digunakan mikrokontroler seri AVR.

c. Mengenal Bahasa C untuk pemrograman mikrokontroler.

d. Memahami pemrograman I/O mikrokontroler AVR secara byte dan bit.

e. Membuat program sederhana dalam bahasa C untuk mikrokontroler

AVR.

f. Mengetahui cara kerja seven segment.

g. Memprogram system mikrokontroler untuk menampilkan karkter pada

LCD karakter.

h. Mengetahui istilah-istilah yang digunakan pemrograman Analog to

Digital Converter pada mikrokontoler.

i. Memprogram mikrontrol untuk aplikasi timer/ counter.

j. Memahami konsep dasar cara kerja Pulse Witdh Modulation.

k. Memprogram mikrokontrol untuk aplikasi kontrol temperatur.

l. Mengetahui konsep pembacaan pulsa.

Page 3: Bab i Pembelajaran Microcontroller

3

E. STANDAR KOMPETENSI

Kode Kompetensi : KK.065.12

Standar Kompetensi : Menerapkan sistem mikrokontroller

Ruang Lingkup : Modul ini berkaitan dengan Standar Kompetensi

“Menerapkan Dasar-Dasar Kelistrikan”,

“Menerapkan Dasar-Dasar Elektronika”,

“Menerapkan Dasar-Dasar Teknik Digital”,

“Menerapkan Keselamatan Dan Kesehatan Kerja

(K3)”, “Menerapkan konsep elektronika digital

dan rangkaian elektronika computer”

,“Menerapkan sistem Menerapkan sistem

mikrokontroller”, “Menerapkan Sistem

Microprosesor”. “Merakit peralatan dan perangkat

elektronik sistem pengendali elektronika”,

“Merakit peralatan dan perangkat elektronik

sistem otomasi elektronika”

F. CEK KEMAMPUAN

DAFTAR PERTANYAANTINGKAT

PENGUASAAN(SCORE : 0 – 100 )

1. Apakah siswa dapat memahami konsep danpengertian algoritma pemrograman ?

2. Apakah siswa dapat mengetahui teknologi yangdigunakan mikrokontroler seri AVR ?

3. Apakah siswa dapat mengenal Bahasa C untukpemrograman mikrokontroler ?

4. Apakah siswa dapat memahami pemrogramanI/O mikrokontroler AVR secara byte dan bit ?

5. Apakah siswa dapat membuat programsederhana dalam bahasa C untuk mikrokontrolerAVR ?

6. Apakah siswa dapat mengetahui cara kerja sevensegment ?

Page 4: Bab i Pembelajaran Microcontroller

4

7. Apakah siswa dapat memprogram systemmikrokontroler untuk menampilkan karkter padaLCD karakter ?

8. Apakah siswa dapat mengetahui istilah-istilahyang digunakan pemrograman Analog to DigitalConverter pada mikrokontoler ?

9. Apakah siswa dapat memprogram mikrontroluntuk aplikasi timer/ counter ?

10. Apakah siswa dapat memahami konsep dasarcara kerja Pulse Witdh Modulation ?

11. Apakah siswa dapat memprogram mikrokontrol-ler untuk aplikasi kontrol temperatur ?

12. Apakah siswa dapat mengetahui konseppembacaan pulsa ?

A. RENCANA BELAJAR SISWA

Jenis Kegiatan Tanggal WaktuTempatBelajar

TandaTanganGuru

Kegiatan Belajar 1:Algoritma pemrograman: Memahami konsep dan

pengertian algoritmapemrograman.

Memahami fungsi algoritmapemrograman.

Mengetahui ciri-cirialgoritma.

Memahami alur penyusunanalgoritma.

Membuat algoritma dalambentuk deskriptiif, diagramalir, dan pseudo-code.

Menyusun algoritmapemrograman sesuai kaidahbaku penyusunan algoritma.

Menguji algoritmapemrograman berdasarkanstudi kasus.

II. PEMBELAJARAN

Page 5: Bab i Pembelajaran Microcontroller

5

Jenis Kegiatan Tanggal WaktuTempatBelajar

TandaTanganGuru

Kegiatan Belajar 2 :Arsitektur mikrokontroller: Mengetahui teknologi yang

digunakan mikrokontrolerseri AVR.

Mengetahui feature yangdimiliki oleh ATMega8535berdasarkan diagram blokfungsional.

Mengetahui kelebihan yangdimiliki mikrokontrol AVR.

Mengetahui fungsi dankonfigurasi pin yangdimiliki oleh ATMega8535.

Mengetahui jenis dankegunaan memori yangterdapat dalamATMega8535.

Mengetahui sistemminimum untuk sistemmikrokontrol ATMega8535.

Kegiatan Belajar 3 :Bahaca C untuk pemrogramanmikrokontroller: Mengenal Bahasa C untuk

pemrogramanmikrokontroler.

Mengetahui kelebihan dankekurangan bahasa C untukpemrogramanmikrokontroler.

Mengenal struktur dasarbahasa C.

Mengetahui perintah dasarbahasa C untukpemrogramanmikrokontroler.

Mengetahui fungsi-fungsidasar dalam bahasa C.

Menggunakan bahasa Cuntuk pemrogramanmikrokontroler AVR.

Page 6: Bab i Pembelajaran Microcontroller

6

Jenis Kegiatan Tanggal WaktuTempatBelajar

TandaTanganGuru

Kegiatan Belajar 4 :Dasar input output: Mengetahui pengaturan

register input dan outputpada mikrokontrol AVR.

Memahami perintah dasarInput dan Output.

Memahami pemrogramanI/O mikrokontroler AVRsecara byte dan bit

Menggunakan pustakadelay.

Menggunakan programkompilator bahasa C.

Membuat programsederhana dalam bahasa Cuntuk mikrokontroler AVR.

Melakukan pemrogramanmikrokontroler AVR.

Kegiatan Belajar 5 :Pemrograman seven segment: Mengetahui Seven Segment. Mengetahui cara kerja seven

segment. Memahami cara penggunaan

seven segment. Memprogram mikrokontrol

untuk aplikasi sevensegment.

Kegiatan Belajar 6 :Pemrograman menggunakanLCD karakter: Mengenal LCD karakter. Mengetahui cara Inisialisasi

LCD karakter. Mengetahui cara

menampilkan karakter padaLCD karakter berdasarkantitik koordinat.

Memprogram systemmikrokontroler untukmenampilkan karkter padaLCD karakter.

Page 7: Bab i Pembelajaran Microcontroller

7

Jenis Kegiatan Tanggal WaktuTempatBelajar

TandaTanganGuru

Kegiatan Belajar 7 :Analog to digital converter(ADC): Mengetahui konsep ADC

secara umum. Mengetahui istilah-istilah

yang digunakanpemrograman ADC padamikrokontoler.

Mengetahui fitur ADC yangterintergrasi denganmikrokontrol ATMega8535.

Melakukan pengaturanregister mikrokontroleruntuk mengaktifkan fiturADC.

Memprogram mikrokontroluntuk pembacaan data ADC.

Memprogram mikrokontroluntuk aplikasi pembacaantegangan.

Kegiatan Belajar 8 :Timer/ Counter: Mengetahui timer/counter

yang terdapat padamikrokontrol ATMega8535.

Mengetahui cara kera danfeature timer/counter padamikrokontrol ATMega8535.

Mengetahui caraperhitungan waktu timer.

Melakukan penghitunganwaktu timer.

Memprogram mikrontroluntuk aplikasi pewaktu.

Memprogram mikrontroluntuk aplikasi jam digital,menggunakan fungsiinterupsi timer.

Kegiatan Belajar 9 :Pulse With Modulation(PWM):

Page 8: Bab i Pembelajaran Microcontroller

8

Jenis Kegiatan Tanggal WaktuTempatBelajar

TandaTanganGuru

Mengetahui pengerttianPWM.

Mengetahui fungsi danaplikasi PWM.

Memahami konsep dasarcara kerja PWM.

Mengatur registermikrokontrol untuk untukaplikasi pemrogramanPWM.

Memprogram mikrokontroluntuk aplikasi pengaturantegangan menggunakanPWM.

Kegiatan Belajar 10 :Aplikasi sensor temperatur: Mengetahui sensor

temperatur LM35. Mengetahui karakter dasar

sensor temperatur LM35. Mengetahui teknik

manipulasi data digital. Memprogram mikrokontrol

untuk aplikasi sensortemperatur LM35.

Memprogram mikrokontroluntuk aplikasi kontroltemperatur.

Kegiatan Belajar 11 :External interupt requets: Mengetahui konsep

pembacaan pulsa Memahami konsep

pembacaan transisirendah/tinggi

Mengetahui interupsieksternal

Mengetahui fungsi interupsieksternal

Memprogrammikrokontroler AVR untukaplikasi interupsi eksternal

Memprogram

Page 9: Bab i Pembelajaran Microcontroller

9

Jenis Kegiatan Tanggal WaktuTempatBelajar

TandaTanganGuru

mikrokontroler AVRsebagai counter denganmemanfaatkan fasilitasinterupsi eksternal.

Evaluasi : Kognitif skill Psikomotorik skill Attitude skill

B. KEGIATAN BELAJAR SISWA

1. Tujuan Kegiatan Belajar 1 :

Setelah mempelajari kegiatan belajar 1, diharapkan anda dapat :

Memahami konsep dan pengertian algoritma pemrograman. Memahami fungsi algoritma pemrograman. Mengetahui ciri-ciri algoritma. Memahami alur penyusunan algoritma. Membuat algoritma dalam bentuk deskriptiif, diagram alir, dan

pseudo-code. Menyusun algoritma pemrograman sesuai kaidah baku penyusunan

algoritma. Menguji algoritma pemrograman berdasarkan studi kasus.

2. Uraian Materi

1) Algoritma

a. Pengertian

Asal kata Algoritma berasal dari nama penulis buku arab yaitu Abu

Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi

KEGIATAN BELAJAR 1

Page 10: Bab i Pembelajaran Microcontroller

10

dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis

buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya

“Buku pemugaran dan pengurangan” (The book of restoration and

reduction). Dari judul buku itu kita juga memperoleh akar kata

“Aljabar” (Algebra).

Algoritma adalah urutan langkah-langkah logis penyelesaian

masalah yang disusun secara sistematis (Rinaldi Munir :2002).

Algoritma berfungsi untuk membantu seseorang dalam

menyelesaikan suatu masalah berdasarkan pada pola pikirnya

masing-masing.

b. Ciri-ciri algoritma

Berikut adalah ciri-ciri dari algoritma secara umum:

Ada input.

Ada proses.

Ada output.

Memiliki instruksi instruksi yang jelas dan tidak ambigu.

Harus mempunyai stopping role.

Selain ciri diatas algoritma juga memiliki sifat khas, yang sekaligus

merupakan keuntungan pembuatan algoritma diantaranya:

Tidak tergantung pada bahasa pemrograman manapun, baik

dalam penulisan maupun dalam penyusunanya

Notasi algoritma dapat diterjemahkan ke dalam berbagai

bahasa pemrograman.

Output yang akan dikeluarkan sama karena algoritmanya

sama, meskipun bahasa pemrogramanya berbeda.

Untuk lebih jelas mengenai algoritma, berikut merupakan contoh-

contoh algoritma dalam kehidupan sehari-hari:

Tabel 1.1. Contoh-Contoh Algoritma dalam Kehidupan Sehari-hari

NO. PROSES ALGORITMACONTOH LANGKAH

DALAM ALGORITMA

Page 11: Bab i Pembelajaran Microcontroller

11

1 Membuat kue Resep kue Masukkan telur kedalam wajan, kocoksampaimengembang

2 Membuat pakaian Pola pakaian Gunting kain daripinggir kiri bawahke arah kanansejauh 5 cm

3 Merakit mobil Panduanmerakit

Sambungkankomponen A dengankomponen B

4 Kegiatan sehari-Hari

Jadwal harian Pukul 06.00:mandi pagi, pukul07.00: berangkatSekolah

5 Mengisi voucerHP

PanduanPengisian

Tekan 888,masukkan nomorvoucer

Algoritma memasak mie instan.

Rebus air hingga mendidih.

Masukkan mie instan ke dalam air mendidih tersebut.

Tunggu beberapa hingga mie terlihat matang.

Jika mie sudah dirasa matang, angkat dan tiriskan.

Campurkan bumbu-bumbu, dan aduk hingga rata

Algoritma menghitung luas persegi panjang.

Masukkan panjang

Masukkan lebar

Nilai luas adalah panjang * lebar

Tampilkan Nilai luas

2) Jenis Struktur data penyusunan Algoritma

a. Sequence Process:

instruksi dikerjakan secara sekuensial, berurutan.

b. Selection Process:

instruksi dikerjakan jika memenuhi criteria tertentu

Page 12: Bab i Pembelajaran Microcontroller

12

c. Iteration Process:

instruksi dikerjakan selama memenuhi suatu kondisi tertentu.

d. Concurrent Process:

beberapa instruksi dikerjakan secara bersama.

3) Penyajian Algoritma

Secara garis besar bisa dalam 2 bentuk penyajian yaitu:

a. Penyajian dengan Tulisan,

Disajikan dengan struktur bahasa tertentu/deskriptif

(misalnya bahasa Indonesia atau bahasa Inggris)

Keuntungan dan kelebihan:

Setiap langkah dijelaskan dengan bahasa yang jelas.

Cocok untuk algoritma yang pendek,

Tidak efektif untuk algoritma kompleks.

Konversi algoritma ke bhasa pemrograman sukar

Pseudocode, yaitu bahasa yang mirip kode pemrograman yang

sebenarnya seperti Pascal, atau C

Keuntungan dan kelebihan:

Translasi atau konversi ke bahasa pemrograman lebih

mudah

Berikut adalah contoh penggunaan algoritma serta

konversinya dalam Pseudo-Code:

Tabel 1.2 Contoh Algoritma dan Pseudo Code Mengitung luas

ALGORITMA PSEUDO-CODE

Masukkan panjang Input panjang

Masukkan lebar Input lebar

Nilai luas adalah panjang x lebar Luas panjang x lebar

Tampilkan Nilai luas Print luas

Tabel 1.3 Contoh Lain Algoritma dan Pseudo Code

ALGORITMA PSEUDO-CODE

Page 13: Bab i Pembelajaran Microcontroller

13

Jika sudah selesai, cetak invoiceIF_ KONDISI_SELESAI =“DONE” THEN PRINTINVOICE

Nilai A dibagi dengan 2 A A / 2

Jika nilai A lebih besar dari 2

maka nilai A dikalikan 3IF A >2 THEN A A x 3

Dari dua bilangan X dan Y, cari

bilangan yang terbesarIF X >Y THEN PRINT XELSE PRINT Y

b. Penyajian dengan gambar, pada umumnya menggunakan

Flowchart yaitu gambar atau bagan yang memperlihatkan

urutan dan hubungan antar proses beserta pernyataannya,

dimana setiap gambar merupakan simbol menggambarkan

proses tertentu.

Keuntungan dan kelebihan:

Memudahkan kita untuk melakukan pengecekan bagian-

bagian yang terlupakan dalam analisis masalah.

Sebagai fasilitas untuk berkomunikasi antara pemrogram

yang bekerja dalam tim suatu proyek.

Cocok untuk algoritma yang pendek,

Tidak efektif untuk algoritma kompleks.

Konversi algoritma ke bhasa pemrograman sukar

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan

flowchart, namun ada beberapa anjuran:

Hindari pengulangan proses yang tidak perlu dan logika

yang berbelit sehingga jalannya proses menjadi singkat.

Jalannya proses digambarkan dari atas ke bawah dan

diberikan tanda panah untuk memperjelas.

Sebuah flowchart diawali dari satu titik START dan diakhiri

dengan END.

Page 14: Bab i Pembelajaran Microcontroller

14

Berikut merupakan beberapa contoh simbol flowchart yang

disepakati oleh dunia pemrograman

Tabel 1.4 Lambang-lambang Flow Chart

KETERANGAN LAMBANG

Mulai / Selesai (Terminator)

Aliran Data

Input / Output

Proses

Percabangan (Decision)

Pemberian nilai awal suatuvariabel (Preparation)

Memangggil prosedur / fungsi(Call)

Connector (di halaman yangsama)

Connector (di halaman lain)

Sequence process

Page 15: Bab i Pembelajaran Microcontroller

15

KETERANGAN LAMBANG

Perulangan

Untuk memahami lebih dalam mengenai flowchart ini, akan

diambil sebuah kasus sederhana.

Kasus :

Buatlah sebuah rancangan program dengan menggunakan

flowchart, mencari luas persegi panjang.

Solusi:

Perumusan untuk mencari luas persegi panjang adalah:

L = p . l

di mana:

L : adalah Luas persegi panjang,

p : adalah panjang persegi, dan

l : adalah lebar persegi.

Page 16: Bab i Pembelajaran Microcontroller

16

Keterangan :

1.Simbol pertama menunjukkan dimulainya sebuah program.

2.Simbol kedua menunjukkan bahwa input data dari p dan l.

3.Data dari p dan l akan diproses pada simbol ketiga

dengan menggunakan perumusan L = p . l

4.Simbol keempat menunjukkan hasil output dari proses dari

simbol ketiga.

5.Simbol kelima atau terakhir menunjukkan berakhirnya

program dengan tanda End.

2) Pemrograman

Berikut adalah Langkah-langkah yang dilakukan dalam

menyelesaikan masalah dalam pemrograman dengan komputer adalah:

a. Definisikan Masalah

Berikut adalah hal-hal yang harus diketahui dalam analisis

masalah supaya kita mengetahui bagaimana permasalahan tersebut:

1. Kondisi awal, yaitu input yang tersedia.

2. Kondisi akhir, yaitu output yang diinginkan.

3. Data lain yang tersedia.

4. Operator yang tersedia.

5. Syarat atau kendala yang harus dipenuhi.

Contoh kasus:

Menghitung biaya percakapan telepon di wartel. Proses yang

perlu diperhatikan adalah:

1. Input yang tersedia adalah jam mulai bicara dan jam selesai

bicara.

2. Output yang diinginkan adalah biaya percakapan.

Page 17: Bab i Pembelajaran Microcontroller

17

3. Data lain yang tersedia adalah besarnya pulsa yang digunakan

dan biaya per pulsa.

4. Operator yang tersedia adalah pengurangan (-), penambahan (+),

dan perkalian (*).

5. Syarat kendala yang harus dipenuhi adalah aturan jarak dan

aturan waktu.

b. Buat Algoritma dan Struktur Cara Penyelesaian

Jika masalahnya kompleks, maka bagi ke dalam modul-modul atau

sub bagian yang lebih rinci, dimana setiap modul atau sub bagian

memiliki algoritma tersendiri sebagai pemecahan masalah, kemudian

gabungkan masing-masing sub tadi dalam sebuah algoritma global

yang utuh.

c. Menulis Program

Algoritma yang telah dibuat, diterjemahkan dalam bahasa

pemograman menjadi sebuah program. Perlu diperhatikan bahwa

pemilihan algoritma yang salah akan menyebabkan program

memiliki untuk kerja yang kurang baik. Program yang baik

memiliki standar penilaian:

1. Standar teknik pemecahan masalah

a. Teknik Top-Down

Teknik pemecahan masalah yang paling umum

digunakan. Prinsipnya adalah suatu masalah yang kompleks

dibagi-bagi ke dalam beberapa kelompok masalah yang

lebih kecil. Dari masalah yang kecil tersebut dilakukan

analisis. Jika dimungkinkan maka masalah tersebut akan

dipilah lagi menjadi subbagian- subbagian dan setelah

itu mulai disusun langkah-langkah penyelesaian yang

lebih detail.

b. Teknik Bottom-Up

Prinsip teknik bottom up adalah pemecahan masalah

yang kompleks dilakukan dengan menggabungkan prosedur-

Page 18: Bab i Pembelajaran Microcontroller

18

prosedur yang ada menjadi satu kesatuan program sebagai

penyelesaian masalah tersebut.

2. Standar penyusunan program

a. Kebenaran logika dan penulisan.

b. Waktu minimum untuk penulisan program.

c. Kecepatan maksimum eksekusi program.

d. Ekspresi penggunaan memori.

e. Kemudahan merawat dan mengembangkan program.

f. User Friendly.

g. Portability.

h. Pemrograman modular.

d. Mencari Kesalahan

1. Kesalahan sintaks (penulisan program).

2. Kesalahan pelaksanaan: semantik, logika, dan ketelitian.

e. Uji dan Verifikasi Program

Uji program apakah program berfungsi dengan baik dan sudah

sesuai keinginan user, jika belum maka perlu dilakukan perbaikan

dari sisi sintaksis, logika, manajemen memory dan dari sisi user

friendly.

f. Dokumentasi Program

Dapat berupa dokumentasi internal yaitu berupa keterangan atau

petunjuk yang disisipkan disetiap baris program atau untuk bagian

tertentu yang dianggap perlu sehingga troubleshooting program

menjadi lebih mudah. Selain itu akan lebih baik jika dilengkapi

dokumentasi external yaitu berupa buku petunjuk penggunaan.

g. Pemeliharaan Program

Page 19: Bab i Pembelajaran Microcontroller

19

1. Memperbaiki kekurangan yang ditemukan kemudian.

2. Memodifikasi, karena perubahan spesifikasi.

3. Rangkuman

1) Algoritma adalah urutan langkah-langkah logis penyelesaian

masalah yang disusun secara sistematis.

2) Fungsi Algoritma untuk membantu seseorang dalam

menyelesaikan suatu masalah berdasarkan pada pola pikirnya

masing-masing.

3) Algoritma memiliki ciri: ada Input, ada proses, ada ouput,memiliki

stoping rule yang jelas, perintahnya jelas.

4) Ada beberapa jenis struktur data algoritma dinataranya: Sequence

Proces, Selection Process; Iteration; Concurrent.

5) Penyajian algoritma dapat berupa tulisan (Mengunakan bahasa

tertentu atau melalui Pseudo-code), dan dapat berupa gambar

(Flowchart).

6) Urutan penyelesaian masalah dalam pemrograman:

a. Definisikan Masalah

b. Buat Algoritma dan Struktur Cara Penyelesaian

c. Menulis Program

d. Mencari Kesalahan

e. Uji dan verifikasi program

f. Dokumentasi Program

g. Pemeliharaan Program

4. Latihan Soal

1) Jelaskan peranan algoritma dalam pemrograman !

2) Buatlah algoritma deskriptif dan flowchart untuk kegiatan

menyeduh kopi instan

3) Buatlah algoritma deskriptif, pseudo code, dan flowchart untuk

menghitung luas lingkaran

Page 20: Bab i Pembelajaran Microcontroller

20

4) Buatlah algoritma deskriptif, pseudo code, dan flowchart untuk

program alat pemanas yang hanya aktif saat suhu ruangan 0-30

derajat celcius.

5) Buatlah algoritma deskriptif, pseudo code, dan flowchart untuk

membedakan bilangan ganjil dan genap dengan input 1 bilangan.

5. Tugas

Buatlah algoritma deskriptif, pseudo code, dan flowchart untuk

menetukan besar discount (dibawah 100 ribu disc 10%; dibawah 50

ribu disc 5%; dibawah 25 ribu disc 0%).

6. Evaluasi

1) Apakah pengertian dan fungsi algoritma?

2) Uraikan cirri-ciri algoritma!

3) Jelaskan arti lambang flowchart berikut!

a. d.

b. e.

c.

4) Uraikan sifat-sifat algoritma!

5) Buatlah sebuah algoritma pemrogrman untuk mengontrol putaran

motor dc dengan ketentuan, jika saklar A ditekan motor berputar

CCW jika saklar B ditekan motor berputar CW jika saklar 3

ditekan motor tidak berputar, lengkap dengan:

a. Algoritma Deskriptif

b. Algoritma pseudo-code

c. Algoritma Flowchart

7. Kriteria Penilaian

KRITERIA SKOR BOBOT NILAI KETERANGAN

Kognitif Soal Nomor 1 5 Nilai >= 75

Page 21: Bab i Pembelajaran Microcontroller

21

KRITERIA SKOR BOBOT NILAI KETERANGAN

Kognitif Soal Nomor 2 5 Lulus

Kognitif Soal Nomor 3 10

Kognitif Soal Nomor 4 10

Kognitif Soal Nomor 5 70

NILAI AKHIR

Page 22: Bab i Pembelajaran Microcontroller

22

1. Tujuan Kegiatan Belajar 2 :

Setelah mempelajari kegiatan belajar 2, diharapkan anda dapat :

Mengetahui teknologi yang digunakan mikrokontroler seri AVR Mengetahui feature yang dimiliki oleh ATMega 8535 berdasarkan

diagram blok fungsional Mengetahui kelebihan yang dimiliki mikrokontrol AVR Mengetahui fungsi dan konfigurasi pin pada ATMega 8535 Mengetahui jenis dan kegunaan memori di dalam ATMega 8535 Mengetahui sistem minimum sistem mikrokontrol ATMega 8535

2. Uraian Materi

1) Mirkrokontroler ATMega8535

Mikrokontroler adalah mikroprosesor plus atau mikrochip

tunggal di dalamnya mengandung unit mikroprosesor, memori, I/O,

ADC, Timer, Clock, dan lain-lain. Fasilitas yang terkandung di dalamnya

akan tergantung pada jenis dan tipe dari mikrokontroler. Contoh,

misalnya mikrokontroler AT 89C51 produk dari ATMEL mempunyai

fitur-fitur : CMOS 8 bit µComputer, 4 K Flash PEROM, 128 byte RAM

internal, 32 Prorammable I/O line, 2 byte timer/counter, 6 sumber

interupsi, programmable serial channel, low power, operasi 0 – 24 Mhz.

Namun secara analogi mikrokontroler merupakan komputer

didalam chip yang digunakan untuk mengontrol peralatan elektronik,

yang ditekankan untuk efisiensi dan efektifitas biaya. Secara harfiahnya

juga dapat disebut "pengendali kecil" dimana sebuah sistem elektronik

yang sebelumnya banyak memerlukan komponen komponen pendukung

seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya

terpusat serta dikendalikan oleh mikrokontroler ini.

Oleh karena itu cukup banyak keuntungan dalam penggunaan

mikrokontroler diantaranya:

a) Harga relatif lebih murah

b) Sistem elektronik akan menjadi lebih ringkas, karena komponen

yang digunakan relative lebih sedikit.

c) Tingkat keamanan dan akurasi yang lebih baik.

KEGIATAN BELAJAR 2

Page 23: Bab i Pembelajaran Microcontroller

23

d) Rancang bangun sistem elektronik akan lebih cepat, karena dapat

dibangun hanya dengan menggunakan satu chip tunggal yang dapat

diprogram.

e) Dapat digunakan dihampir semua aplikasi system elektronika.

f) Trouble shooting relative lebih mudah.

g) Merupakan sebuah embedded system (system tertanam), sehingga

cocok untuk aplikasi portable atau stand alone.

h) Memiliki kecepatan yang cukup tinggi dan mudah digunakan untuk

akuisisi data

i) Kemudahan expansi hardware atau software.

Ada banyak jenis mikrokontroler diantaranya adalah Keluarga

MCS-51 (Intel); Keluarga AT89 (Atmel, arsitektur Intel 8051); Keluarga

AT90, ATtiny, ATMega ( Atmel, arsitektur AVR ); Keluarga

MC68HC11 ( Motorola ); Keluarga PIC 8 ( Microchip ); Keluarga Z80 (

Zilog ). Yang membedakan kemungkinan hanya dalam hal kemasana

fisik misalnya jumlah pin dan fitur-fiturnya seperti ukuran kapasitas

memori program dan memori data, jumlah timer, jumlah interupsi, dan

lain-lain.

Mikrokontroler jenis ATMEL cukup digemari di Indonesia

terutama untuk keluarga MCS-51, karena ditinjau dari segi harga cukup

murah, pemrograman mudah dan arsitektur yang lebih dekat pada

mikroprosesor sehingga cukup banyak diminati untuk dipelajari

dilingkungan pendidikan, terlebih setelah munculnya keluarga AVR yang

menawarkan fitur dan kecepatan lebih tinggi dengan harga yang relative

murah, ditambah lagi dengan semakin banyaknya kompailer bahasa

tingkat tinggi seperti bahasa C dan Basic untuk pemrograman

mikrokontroler, menambah minat para hobiis elektronika untuk semakin

menggemari mikrokontroler terutama seri AVR yang cukup banyak

diminati oleh para penggemar baru mikrokontroler.

Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana

semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian

besar instruksi dieksekusi dalam 1 (satu) siklus clock , berbeda dengan

instruksi MCS51 yang membutuhkan 12 Siklus clock untuk menjalankan

1 perintah. Atau dengan kata lain sistem AT89S51/52 memiliki frekuensi

Page 24: Bab i Pembelajaran Microcontroller

24

kerja seperduabelas kali frekuensi oscilator, sedangkan frekuensi kerja

mikrokontroller AVR ini pada dasarnya sama dengan frekuensi oscilator,

sehingga hal tersebut menyebabkan kecepatan kerja AVR dibandingkan

MCS51 untuk frekuensi oscilator yang sama, akan dua belas kali lebih

cepat dibandingkan. Tentu saja itu terjadi karena kedua jenis

mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR

Menggunakan RISC (reduced instruction set computing), sedangkan

MCS51 berteknologi CISC (complex instruction set computing). Secara

umum, AVR dapat dikelompokkan dalam 7 kelas, yaitu keluarga

ATTiny, keluarga AT90Sxx, keluarga ATMega, keluarga ATXMega,

keluarga ATUSBxx, keluarga ATPWMxx dan AT86RFxx.

Pada dasarnya yang membedakan masing-masing kelas adalah

memori, peripheral dan fungsinya. Salah satu mikrokontroler AVR yang

memiliki bentuk dan susunan pin yang sama persis namun memiliki

perbedaan memory adalah tipe ATMega8535 (8 KB), ATMega16

(16KB), dan ATMega32 (32 KB), sehingga dengan mempelajari salah

satunya secara tidak langsung mempelajari ketiga tipe mikrokontrol

tersebut dan semua jenis mikrokontrol AVR secara umum.

Dari gambar diagram blok fungsional mikrokontroler AVR-

ATMega8535 berikut ini dapat dilihat bahwa ATMega8535 memiliki

feature sebagai berikut :

a) Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D.

b) ADC 10 Bit sebanyak 8 saluran

c) Tiga buah Timer/counter dengan kemampuan pembanding

d) CPU yang terdiri atas 32 register

e) Wtachdog Timer dengan osilator internal

f) SRAM sebesar 512 Bytes

g) Memori flash sebesar 8 KB dengan kemampuan Read While Write

h) Unit interupsi internal dan eksternal

i) Port antarmuka SPI

j) EEPROM sebeasar 512 Bytes yang dapat diperogram saat operasi

k) Antarmuka komparator analaog

l) Port USART untuk komunikasi serial dengan kecepatan maksimal

2,5 Mbps

Page 25: Bab i Pembelajaran Microcontroller

25

Gambar diagram blok fungsional mikrokontroler AVR - ATMega8535

Gambar 2.1 Diagram Blok Fungsional ATmega8535

a. Konfigurasi pin ATMega8535

Konfigurasi pin ATMega8535 dapat dilihat pada gambar 2.3, dari gambar

tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMega8535

sebagai berikut :

Page 26: Bab i Pembelajaran Microcontroller

26

Gambar 2.2 Konfigurasi Pin ATMega8535

Tabel 2.1 Konfigurasi PIN ATMega8535

PIN KETERANGAN

1 - 8

Port B, merupakan Port I/O 8-bit dua arah (bi-directional) denganresistor pull-up internal, selain sebagai Port I/O 8-bit Port B jugadapat difungsikan secara individu sebagai berikut : PB7 : SCK ( SPI Bus Serial Clock ) PB6 : MISO (SPI Bus Master Input/Slave Output) PB5 : MOSI ( SPI Bus Master Output/Slave Input ) PB4 : SS ( SPI slave Select Input ) PB3 : AIN 1 ( Analog Comparator Negatif Input ) OC0 ( Output Compare Timer/Counter 0 ) PB2 : AIN 0 ( Analog Comparator Positif Input ) INT2 ( External Interupt 2 Input ) PB1 : T1 ( timer / Counter 1 External Counter Input ) PB0 : To ( Timer/Counter 0 External Counter Input ) XCK ( USART External Clock Input/Output )

9 RESET, merupakan pin reset yang akan bekerja bila pulsa rendah(aktif low ) selama minimal 1,5 us

10 VCC, Catu daya digital

11 GND, Ground untuk catu daya digital

12 XTAL2, merupakan output dari penguat osilator pembalik

13 XTAL1, merupakan input ke penguat osilator pembalik dan inputke internal clock

14-21 Port D, merupakan port I/O 8-bit dua arah ( bi-directional ) denganresistor pull-up internal, selain sebagai Port I/O 8-bit Port D juga

Page 27: Bab i Pembelajaran Microcontroller

27

PIN KETERANGANdapat difungsikan secara individu sebagai berikut : PD7 : OC2 ( Output Compare Timer/Counter 2 ) PD6 : ICP ( Timer/Counter 1 Input Capture ) PD5 : OC1A ( Output Compare A Timer/Compare A

Timer/Counter 1 ) PD4 : OC1B ( Output Compare B Timer/Compare A

Timer/Counter 1 ) PD3 : INT1 ( External Interupt 1 Input ) PD2 : INT0 ( External Interupt 0 Input ) PD1 : TXD( USART transmit ) PD0 : RXD ( USART receive )

22-29

Port C, merupakan port I/O 8-bit dua arah ( bi-directional ) denganresistor pull-up internal, selain sebagai Port I/O 8-bit Port C jugadapat difungsikan secara individu sebagai berikut : PC7 : TOSC2 ( Timer Oscilator 2 ) PC6 : TOSC1 ( Timer Oscialtor 1 ) PC1 : SDA ( Serial Data Input/Output, PC ) PC0 : SCL ( Serial Clock, PC )

30 AVCC, merupakan catu daya yang digunakan untuk memasukananalog ADC yang terhubung ke Port A

31 GND, Ground untuk catu daya analog

32 AREF, merupakan tegangan referensi analog untuk ADC

33 – 40Port A, merupakan port I/O 8-bit dua arah dengan resistor pull-upinternal, selain sebagai Port I/O 8-bit Port B juga dapat berfungsisebagai masukan 8 channel ADC

b. Karakteristik Keslistrikan ATMega8535

Dengan melihat karakteristik kelistrikan yang dimiliki oleh komponen maka

akan dapat diketahui berapa arus dan tegangan serta parameter kelistrikan

lainya seperti daya yang diizinkan, sehingga dapat mencegah kerusakan

komponen akibat kelebihan beban arus atau tegangan.

Page 28: Bab i Pembelajaran Microcontroller

28

Tabel 2.2 Karakteristik Kelistrikan ATMega8535

Catatan :

1. “Max” berarti nilai paling tinggi dimana pin dijamin untuk dibaca sebagai

rendah.

2. “Min” berarti nilai paling rendah dimana pin dijamin untuk dibaca

sebagai tinggi.

Page 29: Bab i Pembelajaran Microcontroller

29

3. Meskipun masing-masing I/O Port dapat menjadi sink lebih dari kondisi

test (20mA pada VCC = 5V, 10mA pada VCC = 3V) di bawah keadaan

stabil (non-transient), Tetapi harus diperhatikan :

a) penjumlahan semua IOL, bagi seluruh Port, tidak boleh melebihi

200mA.

b) penjumlahan semua IOL, untuk A0 A7 Port, tidak boleh melebihi

100mA.

c) penjumlahan semua IOL, untuk B0 B7 Port,C0 C7, D0 D7 dan

XTAL2, tidak boleh melebihi 100 mA.

4. Walau masing-masing I/O Port dapat menjadi sumber lebih dari kondisi

test (20mA pada VCC = 5V, 10mA pada VCC = 3V) di bawah keadaan

stabil (non-transient),

Tetapi harus diperhatikan:

a) penjumlahan dari semua IOH, bagi seluruh Port, tidak boleh

melebihi 200mA.

b) penjumlahan dari semua IOH, untuk A0 A7 Port, tidak boleh

melebihi 100mA.

c) penjumlahan dari semua IOH, untuk B0 B7 Port,C0 C7, D0 D7 dan

XTAL2, tidak boleh melebihi 100mA.

5. Minimum VCC untuk Power-down adalah 2.5V.

c. Organisasi Memori

Mikrokontroler ATMega8535 memiliki 3 jenis memori yaitu Memori

Program, Memori Data dan Memori EEPROM.

1) Memori Program (Memory ISP)

ATMega8535 memiliki kapasitas memori program sebesar 8 Kbyte

kapasitas memori flash yang dimiliki bervariasi dari 1K sampai 128

KB. Secara teknis, memori jenis ini dapat diprogram melalui saluran

antarmuka yang dikenal dengan nama Serial Peripheral Interface (SPI)

yang terdapat pada setiap seri AVR tersebut. Dengan menggunakan

perangkat lunak programmer (downloader) yang tepat, pengisian

memori Flash dengan menggunakan saluran SPI ini dapat dilakukan

bahkan ketika chip AVR telah terpasang pada sistem akhir (end

system), sehingga dengan demikian pemrogramannya sangat fleksibel

Page 30: Bab i Pembelajaran Microcontroller

30

Boot Flash Section

Aplication Flash Section

$FFF

$000

dan tidak merepotkan pengguna (Secara praktis metoda ini dikenal

dengan istilah ISP-In System Programming – sedangkan perangkat

lunaknya dinamakan In System Programmer).

Gambar 2.3 memori program

2) Memori Data

Gambar 2.4 SRAM (Static Random Access memory).

AVR ATmega 8535 memiliki memori data yang terbagi menjadi 3

bagian, yaitu 3 register umum, 64 buah register I/O, dan 512 SRAM

internal

a) RAM

RAM dalam hal ini berperan untuk menyimpan data yang sifatnya

sementara, yang biasanya diperlukan pada saat proses manimpulasi data

(penjumlahan, pengurangan, perkalian, pembagian, dan transfer data).

32 Registe rs

64 I/O Re gisters

Interna l SRAM512 x 8

$000 - $001F

$020 - $005F

$0060

$025F

Page 31: Bab i Pembelajaran Microcontroller

31

b) SRAM

SRAM digunakan untuk menyimpan data variabel yang dimungkinkan

berubah setiap saatnya

ATMega8535 memiliki kapasitas memori data sebesar 608 Byte yang

terbagi menjadi 3 bagian yaitu :

Serba guna (32 byte), untuk register serba guna R0 – R31

Register I/O (64 byte), untuk mengatur fasilitas seperti timer/

counter, interupsi, ADC, USART, SPI, EEPROM dan port I/O

seperti Port A, Port B, Port C dan Port D

SRAM (512 ), untuk memori SRAM

3) Memori EEPROM

EEPROM umumnya digunakan untuk menyimpan data-data program

yang bersifat permanen.

ATMega8535 memiliki EEPROM sebesar 512 Byte. Memori EEPROM

ini hanya dapat di akses dengan menggunakan register-register I/O yaitu

register EEPROM address (EEARH-EEARL), register EEPROM Data

(EEDR) dan register EEPROM Control (EECR).

$ 0 2 0 0

$ 0 0 0 0

E E P R O M

Gambar 2.5 EEPROM

(Electrically Erasable Programmable Read Only Memory)

Tabel 2.3 Perbandingan Jumlah Memori

MICROCONTROLLER AVR MEMORI (byte)

JENIS KEMASANPIN

FLASH( Kb )

EEPROM(Kb )

SRAM(Byte )

Tiny AVR 8 - 32 pin 1 - 2K 64 - 128 0 - 128

AVR (classic AVR) 20 - 44 pin 1 - 8K 128 - 512 0 - 1 K

Mega AVR 32 - 64 pin 1 -128 K 512 - 4 K 512 - 4 K

Page 32: Bab i Pembelajaran Microcontroller

32

d. Interupsi Mikrokontrol ATMega8535

Yang dimaksud dengan interupsi disini adalah pada saat system

sedang menjalankan program utama diminta untuk mengeksekusi program

yang lain (menyela program) dengan kondisi atau ketentuan tertentu. Banyak

cara untuk melakukan interupsi sehingga ada kemungkinan terjadinya

permintaan interupsi secara bersama-sama, pada saat terjadi interupsi secara

bersaan maka system akan menyeleksi interupsi berdasarkan prioritas,

dimana interupsi dengan prioritas tertinggi akan dilaksanakan.

Sebagai ilustrasi jika dalam sebuah ruang rapat terdapat 21 peserta

rapat, dan setiap peserta memiliki hak untuk menyela atau menyatakan

interupsi misalkan bertanya, tidak akan semua pertanyaan dari peseta

ditanggapi secara bersaan, namun peserta diminta untuk bertanya satu per

satu berdasarkan prioritas.

Berikut ini adalah macam-macam system interupsi yang ada dalam

mikrokontrol AVR ATMega8535, nomor vector bisa dikatakan sebagai

nomor prioritas dan prioritas tertinggi adalah RESET. Dengan kata lain jika

misalkan terjadi interupsi dari timer dan ADC sedangkan tombol reset

ditekan maka mikrokontrol hanya akan melaksanakan interupsi dari RESET

saja. Program Adress menyatakan alamat interupsi, source menyatakan

sumber interupsi, dan interrupt definition menyatakan maksud atau

keterangan interupsi.

Tabel 2.4 Interupsi Mikrokontrol ATMega8535

Page 33: Bab i Pembelajaran Microcontroller

33

e. Sistem Minimum ATMega8535

Sistem minimum dapat diartikan sebagai sebuah system paling

sederhana yang dalam hal ini dilihat dari sisi penggunaan hardware atau

komponen yang digunakan namun system dapat berjalan sebagaimana

mestinya. Gambar dibawah menunjukan diagram skematik system minimum

ATMega8535, yang dapat dipergunakan pula untuk ATMega16 dan

ATMega32. Terdapat dua rangkaian optional atau pilihan dalam rangkaian

tersebut, yaitu I/O Header untuk mempermudah hubungan input dan output

terhadap mikrokontroler.

Yang kedua adalah optinal untuk soket ISP downloader, dengan

adanya soket ini pada rangkaian, mikrokontroler dapat diprogram tanpa

harus dilepas dari rangkaian, tetapi meskipun demikian system minimum

dapat tetap berfungsi meskipun tanpa menyertakan soket ISP Downloader.

VCC

I/O Header

(Optional)

SISTEM MINIMUM ATMega8535

VI1

GN

D2

VO3

U13LM7805

12

J14

DC6-16V

D41

1N4002

ISP Downloader(Optional)

R9220

12

D42LED

VCC

pa4pa5pa6

12

SW10

13579

246810

ISP1

CONN TRBLK 5x2

LEDLEDLEDLEDLEDLEDLEDLEDPB5

PB6PB7RST

pa7

pb5pb5pb4pb4

pb7pb6pb6

12345678

PORT-B

HEADER 8

pb0pb0

pb3pb3pb2pb2pb1pb1

pc6pc5pc4

pc7

12345678

PORT-C

HEADER 8

pc1pc0

pc3pc2

pd4

pd7pd6pd5

12345678

PORT-D

HEADER 8

pd0

pd2pd1

pd3

R74k7

R8220

12

D40LED

rstrstrstrstrstrstrstrst

12345678

PORT-A

HEADER 8

pa0pa1pa2

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

pb1pb1pb0pb0

pb2pb2

pb4pb3pb3

pb7pb6pb6pb5pb5

gndv ccv ccv ccv cc

pd0

pd3pd2pd1

pd6pd5pd4

pa1pa0

pa2

pa4pa3

pa6pa5

pa7

gndgndaref

pc6pc7av ccav cc

pc4pc5

pc3

pc1pc2

pc0

pa3

X24MHz

C3

33

C4

33

pd7

VCC

VCC

VCC

Gambar 2.6 Rangkaian Sistem Mimum Mikrokontroler ATMega8535

3. Rangkuman

1) Mikrokontroler adalah mikroprosesor plus atau mikrokuputer chip

tunggal di dalamnya mengandung unit mikroprosesor, memori, I/O,

ADC, Timer, Clock, dan lain-lain.

2) Beberapa tipe mikrokontrol antara lain Keluarga MCS-51 (Intel);

Keluarga AT89 (Atmel, arsitektur Intel 8051); Keluarga AT90, ATtiny,

Page 34: Bab i Pembelajaran Microcontroller

34

ATMega ( Atmel, arsitektur AVR ); Keluarga MC68HC11 ( Motorola );

Keluarga PIC 8 ( Microchip ); Keluarga Z80 ( Zilog )

3) Mikrokontroler AVR memiliki arsitektur RISC 8 bit RISC (reduced

instruction set computing), dan sebagian besar instruksi dieksekusi dalam

1 (satu) siklus mesin.

4) MCS51 berteknologi CISC (complex instruction set computing), dimana

untuk melakukan eksekusi 1 perintah setidaknya dibutuhkan 12 siklus

mesin.

5) Tipe ATMega8535 (8 KB), ATMega16 (16KB), dan ATMega32 (32 KB)

memiliki susunan pin yang sama persis, namun memiliki perbedaan

memory.

6) Feature yang dimiliki oleh ATMega8535 antara lain: Saluran I/O

sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D.; ADC 10 Bit

sebanyak 8 saluran; tiga buah Timer/counter dengan kemampuan

pembanding; CPU yang terdiri atas 32 register; wtachdog Timer dengan

osilator internal; sRAM sebesar 512 Bytes; memori flash sebesar 8 KB

dengan kemampuan Read While Write ; unit interupsi internal dan

eksternal; port antarmuka SPI; EEPROM sebeasar 512 Bytes yang dapat

diperogram saat operasi; antarmuka komparator analaog; port USART

untuk komunikasi serial dengan kecepatan maksimal 2,5 Mbps.

7) Tegangan kerja mikrokontrol ATMega8535 adalah max 5V dan minimal

2,5V untuk kondisi Powerdown, dan tiap pin tidak boleh terbebani arus

lebih dari 5mA pada VCC 5V dan 3mA pada VCC 3V.

8) Mikrokontrol ATMega8535 memiliki memory program (Flash Memory),

memory data (RAM & SRAM), dan memory EEPROM.

9) Sistem minimum dapat diartikan sebagai sebuah system paling sederhana

yang dalam hal ini dilihat dari sisi penggunaan hardware atau komponen

yang digunakan namun system dapat berjalan sebagaimana mestinya.

4. Latihan Soal

1) Jelaskan apa yang dimaksud dengan mikrokontrol !

2) Tuliskan keluarga mikrokontrol untuk jenis AVR !

3) Jelaskan perbedaan yang dimiliki oleh mikrokontrol tipe ATTiny,

ATmega16 dan ATMega8535 !

4) Apakah yang dimaksud dengan ISP pada mikrokontrol AVR !

Page 35: Bab i Pembelajaran Microcontroller

35

5) Apakah yang dimaksud dengan memory flash dan berapakah ukuran

memory flash yang dimiliki oleh ATMega8535 ?

5. Tugas

Rancang dan cetak sebuah layout menjadi PCB system minimum

ATMega8535 untuk kemasan DIP, disertai soket ISP dan header untuk

masing-masing port.

6. Evaluasi

1) Uraikan arsitektur/teknologi yang dimiliki oleh mikrokontrol

ATMega8535!

2) Tuliskan feature-feature yang dimiliki oleh mikrokontrol ATMega8535!

3) Tuliskan kebilhan yang dimiliki oleh mikrokontrol ATMega8535

dibandingkan dengan mikrokontrol seri AT89C51/S51!

4) Tuliskan no pin yang dimiliki oleh PORT B dan PORT A pada

mikrokontrol ATMega8535!

5) Tuliskan jenis-jenis memori yang terdapat pada mikrokontrol

ATMega8535!

6) Gambarkan sistem minimum untuk mikrokontrol ATMega8535!

7) Jika terjadi kedaan interupsi bersaaan antara timer 0 & external request 0,

manakah yang akan dilaksanakan terlebih dahulu? jelaskan!

7. Kriteria Penilaian

KRITERIA SKOR BOBOT NILAI KETERANGAN

Kognitif Soal Nomor 1 15

Nilai >= 75Lulus

Kognitif Soal Nomor 2 20

Kognitif Soal Nomor 3 20

Kognitif Soal Nomor 4 5

Kognitif Soal Nomor 5 20

Kognitif Soal Nomor 6 20

NILAI AKHIR

Page 36: Bab i Pembelajaran Microcontroller

36

1. Tujuan Kegiatan Belajar 3 :

Setelah mempelajari kegiatan belajar 3, diharapkan anda dapat :

Mengenal Bahasa C untuk pemrograman mikrokontroler Mengetahui kelebihan dan kekurangan bahasa C untuk pemrograman

mikrokontroler Mengenal struktur dasar bahasa C Mengetahui perintah dasar bahasa C untuk pemrograman mikrokontroler Mengetahui fungsi-fungsi dasar dalam bahasa C Dapat menggunakan bahasa C untuk pemrograman mikrokontroler AVR

2. Uraian Materi

1)Bahasa C untuk Pemrograman AVR

a. Sejarah Bahasa C

Bahasa C merupakan perkembangan dari bahasa BCPL

yang dikembangkan oleh Martin Richards pada tahun 1967. Selanjutnya

bahasa ini memberikan ide kepada Ken Thompson yang kemudian

mengembangkan bahasa yang disebut bahasa B pada tahun 1970.

Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis

Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc.

(sekarang adalah AT&T Bell Laboratories).

Bahasa C pertama kali digunakan di computer Digital

Equipment Corporation PDP-11 yang menggunakan system operasi

UNIX. Hingga saat ini penggunaan bahasa C telah merata di

seluruh dunia. Hampir semua perguruan tinggi di dunia menjadikan

bahasa C sebagai salah satu mata kuliah wajib. Selain itu, banyak

bahasa pemrograman populer seperti PHP dan Java menggunakan

sintaks dasar yang mirip bahasa C. Oleh karena itu, kita juga sangat perlu

mempelajarinya.

b. Kelebihan dan Kekurangan Bahasa C

a) Kelebihan Bahasa C

Bahasa C tersedia hampir di semua jenis computer. Kode bahasa C sifatnya portable dan fleksibel untuk semua jenis PC. Bahasa C hanya menyediakan 32 kata kunci.

KEGIATAN BELAJAR 3

Page 37: Bab i Pembelajaran Microcontroller

37

Proses executable program bahasa C lebih cepat. Dukungan pustaka yang banyak. C adalah bahasa yang terstruktur. Bahasa C termasuk bahasa tingkat menengah

b) Kekurangan Bahasa C

Unuk aplikasi mikrokontroler cukup banyak menghabiskan memory. Tidak mudah menyusun algoritma untuk efisiensi memori dalam

pemrograman mikrokontrol

c. Pengenal dalam bahasa C

Pengenal (identifier) merupakan nama yang didefinisikan oleh

program untuk menunjukan identitas dari sebuah konstanta,variabel,fungsi

dan label atau tipe data khusus.pemberian nama sebuah pengenal dapat

ditentukan bebas sesuai yang diinginkan program tetapi harus memenuhi

aturan berikut :

a) Karakter pertama tidak boleh menggunakan angka.

b) Karakter kedua dapat berupa huruf,angka,atau garis bawah.

c) Tidak boleh menggunakan spasi.

d) Bersifat case sensitif yaitu huruf kecil dan huruf besar dianggap berbeda.

Contoh penamaan yang diperbolehkan :

#define Nama2 PORTB.2

#define nama_saya

#define _saya_ok

Contoh penamaan yang tidak diperbolehkan :

2saya (tidak boleh diawali dengan angka)

Saya+2 (tidak boleh menggunakan operator ”+”)

Nama saya (tidak boleh menggunakan spasi)

d. Tipe Data

Tipe data merupakan bagian program yang paling penting karena

tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh

computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang

berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan

menghasilkan nilai 2, namun jika keduanya bertipe float maka akan

Page 38: Bab i Pembelajaran Microcontroller

38

menghasilkan nilai 2,5000000. Pemilihan tipe data yang tepat akan membuat

proses operasi data menjadi lebih efisien dan efektif.

Dalam bahasa C terdapat lima tipe data dasar, yaitu :

Tabel 3.1 Tipe Data

Jangkauan atau range dari sebuah tipe data akan berbeda jika diberikan

keterangan unsigned namun tetap memiliki jumlah yang sama, karena jika

tipe data tersebut diberikan cirri unsigned maka bilangan pada tipe data

tersebut tidak akan bisa mengeluarkan bilangan bertanda negative (-).

Contoh:

unsigned char memiliki range 0 – 255 (Jumlah bilangan 256)

unsigned int memiliki range 0 – 65535 (Jumlah biulangan 65536)

e. Konstanta Dan Variabel

1. Konstanta

Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses

program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus

didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai

integer, pecahan, karakter dan string.

2. Variable

Variabel adalah suatu pengenal (identifier) yang digunakan untuk

mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan

konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-

ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri

f. Variabel Global Dan Variabel Local

Variabel global adalah variable yang dapat dikenali oleh semua

fungsi yang ada dalam program sadangkan variable local adalah variable

yang hanya dikenali oleh fungsi tertentu saja. Variable local hanya akan

Page 39: Bab i Pembelajaran Microcontroller

39

dibentuk/dialokasikan dalam memori untuk variable tersebut akan

dibebaskan sehingga penggunaan variable tersebut akan dibebaskan

sehingga penggunaan variable local lebih mengguntungkan dari sisi

pemakaian memori.

Contoh deklarasi variable global (dideklarasikan diluar fungsi)

char data_a;

int data_b;

long data_c=13;

Contoh deklarasi variable local (dideklarasikan didalam fungsi)

void main (void){char data_a;int data_b;long data_c=13;}

g. Komentar Program

Komentar program hanya diperlukan untuk memudahkan

pembacaan dan pemahaman suatu program (untuk keperluan dokumentasi

program). Dengan kata lain, komentar program hanya merupakan keterangan

atau penjelasan program. Untuk memberikan komentar atau penjelasan

dalam bahasa C digunakan pembatas” /* dan */ ” atau menggunakan tanda”

// “ untuk komentar yang hanya terdiri dari satu baris. Komentar program

tidak akan ikut diproses dalam program (akan diabaikan).

Contoh :

// program PWM untuk mengatur kecepatan motor/*sedangkan yang ini adalah komentar yangdigunakan lebih dari satu baris*/

h. Pengarah Prosesor

Pengarah prosesor digunakan untuk mendefinisikan prosesor yang

digunakan, dalam hal ini adalah untuk mendefinisikan jenis mikrokontroler

yang digunakan.dengan pengarahan prosesor ini maka pendeklarasian

register-register dan penamaannya dilakukan pada file lain yang disisipkan

dalam program utama dengan sintaks sebagai berikut.

Page 40: Bab i Pembelajaran Microcontroller

40

# include <nama_prosesor>

Contoh :

# include <mega 8535>

i. Pernyataan

Pernyataan adalah satu buah intruksi lengkap yang berdiri sendiri.

Berikut adalah contoh sebuah pernyataan :

PORTC = 0x0F:

Pernyataan diatas merupakan sebuah interuksi untuk mengeluarkan data

0x0F ke Port C

j. Operator Aritmatika

Bahasa C menyediakan lima operator aritmatika, yaitu :

Tabel 3.2 Operator Aritmatika

OPERATOR KETERANGAN* Operator untuk operasi penjumlahan/ Operator untuk operasi pembagian+ Operator untuk operasi penambahan- Operator untuk operasi pengurangan% Operator untuk operasi sisa pembagian (modulus)

Catatan : operator % digunakan untuk mencari sisa pembagian antara duabilangan.Misalnya :9 % 2 = 19 % 3 = 0

k. Operator Pembanding

Operator Hubungan digunakan untuk membandingkan hubungan

antara dua buah operand (sebuah nilai / variable). Operator hubungan dalam

bahasa C

Tabel 3.3 Operator Pembanding

Page 41: Bab i Pembelajaran Microcontroller

41

l. Operator Logika

Jika operator hubungan membandingkan hubungan antara dua buah

operand, maka operator logika digunakan untuk membandingkan logika

hasil dari operator-operator hubungan. Operator logika ada tiga macam,

yaitu :

Tabel 3.4 Operator Logika

OPERATOR KETERANGAN

&& Operator untuk logika AND

|| Operator untuk logika OR

! Operator untuk logika NOT

Contoh.

if (( a == b ) && (c ! = d )) PORTC = 0XFF;

Pernyataan diatas terdiri dari dua kondisi yaitu a==b dan c!=d yang

keduanya dihubungkan dengan logika &&(AND). Jika logika yang

dihasilkan benar maka perintah PORTC = 0xFF akan dikerjakan dan jika

salah maka tidak dikerjakan.

m. Operator Bitwise

Operator bitwise adalah operasi logiika yang berkerja pada level

bit.hal ini berbeda dengan operator logika diatas dimana pada operator

logika menghasilkan benar atau salah (Boolean) sedangkan operator bit

menghasilkan data biner.

Tabel 3.5 Operator Bit wise

OPERATOR KETERANGAN

>> Pergeseran bit kekanan

& Bitwise AND

^ Bitwise XOR (exclusive OR)

| Bitwise OR

~ Bitwise NOT

Page 42: Bab i Pembelajaran Microcontroller

42

n. Operator Penugasan

Operator Penugasan (Assignment operator) dalam bahasa C berupa

tanda sama dengan (“=”).

Contoh :

nilai = 80;

A = x * y;

Artinya :

variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian

antara x dan y.

o. Operator Unary

Operator Unary merupakan operator yang hanya membutuhkan satu

operand saja. Dalam bahasa C terdapat beberapa operator unary, yaitu :

Tabel 3.6 Operator Unary

Catatan Penting ! :

Operator peningkatan ++ dan penurunan -- jika diletakkan sebelum atau

sesudah operand terdapat perbedaan.

p. Fungsi pustaka

Bahasa C mempunyai fungsi pustaka yang berada pada file-file

tertentu dan sengaja disediakan untuk menangani berbagai hal dengan cara

memanggil fungsi-fungsi yang telah dideklarasikan didalam file tersebut.

Dalam banyak hal, pustaka,pustaka yang tersedia tidak berbentuk kode

sumber melainkan dalam bentuk yang telah dikompilasi. Pada saat proses

lingking,ditulis oleh pemrogram. Sintaks untuk menggunakan fungsi pustaka

ini adalah sebagai berikut :

Page 43: Bab i Pembelajaran Microcontroller

43

#include <nama_file_pustaka>

Contoh :

#include <lcd.h>

Beberapa fungsi yang telah disediakan oleh codevisian AVR antara lain

adalah :

• Fungsi tipe karakter (ctype.h)

• Fungsi standar I/O (stdio.h)

• Fungsi matematika (math.h)

• Fungsi string (string.h)

• Fungsi konversi BCD (bcd.h)

• Fungsi konversi akses memori (mem.h)

• Fungsi tunda (delay.h)

• Fungsi LCD (lcd.h)

• Fungsi I2C (I2C.H)

• Fungsi SPI (spi.h)

• Fungsi real time clock (RTC) (ds1302.h,ds1307.h)

• Fungsi sensor suhu LM75,DS1621 dll. (lm75.h, ds1621.h)

q. Struktur kondisi “if….”

Struktur if dibentuk dari pernyataan if dan sering digunakan untuk

menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau

bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan

dikerjakan. Bentuk umum struktur kondisi if adalah :

If (kondisi){// blok pernyataan yang akan dikerjakan// jika kondisi if terpenuhi}

Contoh :

if (PINA>0x80){dataku = PINA;PORTC=0xFF;}

Page 44: Bab i Pembelajaran Microcontroller

44

Pernyataan if diatas akan mengecek apakah data yang terbaca pada port A

(PINA) nilainya lebih besar dari 0x80 atau tidak, jika ya maka variable

dataku diisi dengan nilai PINA dan data 0xFF dikeluarkan ke port C.

Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka

tanda { dan } dapat dihilangkan seperti contoh berikut :

if (PINA>0x80) PORTC=0xFF;

r. struktur kondisi “if......else….”

Dalam struktur kondisi if....else minimal terdapat dua pernyataan.

Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan

pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah

maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah

sebagai berikut :

if(kondisi)pernyataan-1elsepernyataan-2

Contoh Program :if (kondisi){// blok pernyataan yang akan dikerjakan// jika kondisi if terpenuhi}else}// blok pernyataan lain yang akan dikerjakan// jika kondisi if terpenuhi}

Contoh :

if (pina>0x80){dataku = pina;portc = 0xff;}else{dataku = ~pina;portc=0x00;}

Page 45: Bab i Pembelajaran Microcontroller

45

Pernyataan if .. else akan mengecek apakah data yang terbaca pada Port A

(PINA) nilainya lebih dari 0x80 atau tidak, jika ya maka variabel dataku diisi

dengan nilai PINA dan data 0xFF dikeluarkan ke port C tetapi jika tidak

variabel dataku diisi dengan nilai komplemen dari PINA (~PINA) dan data

0x00 dikeluarkan ke port C.

s. Pernyataan If Bersarang

Pernyataan if bersarang (nested if) adalah pernyataan if maupun

if .. else dimana didalam blok pernyataan yang akan dikerjakan terdapat

pernyataan if atau if else lagi.contoh bentuk pernyataan if bersarang 2

tingkat adalah sebagai berikut :

if (kondisi_1){

if (kondisi_2){

// blok pernyataan_1 yang akan dikerjakan// jika kondisi_1 dan kondisi_2 terpenuhi

}}else

{if (kondisi_3)

{// blok pernyataan_2 yang akan dikerjakan// jika kondisi_1 dan kondisi_3 terpenuhi

}}

t. Pernyataan Switch

Pernyatan switch digunakan untuk melakukan pengambilan

keputusan terhadap banyak kemungkinan. Bentuk pernyataan switch adalah

sebagai berikut :

switch (ekspresi){case nilai_1 : pernyataan_1;break;case nilai_2 : pernyataan_2;break;case nilai_3 : pernyataan_3;break;.................default : pernyataan_default;break;}

Pada pernyataan switch, masing-masing pernyataan (pernyataan_1 sampai

dengan pernyataan_default)dapat berupa satu atau beberapa perintah dan

tidak perlu berupa blok pernyataan.pernyataan_1 akan dikerjakan jika

Page 46: Bab i Pembelajaran Microcontroller

46

eksperesi bernilai sama dengan nilai_1. pernyataan_2 akan dikerjakan jika

eksperesi bernilai sama dengan nilai_2. pernyataan_3 akan dikerjakan jika

eksperesi bernilai sama dengan nilai_3 dan seterusnya. Default bersifat

opsional artinya boleh ada boleh tidak.

Contoh :

switch (ekspresi){case 0xFE : PORTD=0x00;break;case 0xFD : PORTC=0xFF;break;

}

Pernyataan diatas berarti membaca port A,kemudian datanya (PINA) akan

dicocokan dengan nilai case. Jika PINA bernilai 0xFE Maka data 0x00 akan

dikeluarkan ke PORTC kemudian program keluar dari blok pernyataan

switch tetapi jika PINA bernilai 0xFD Maka data 0xFF Akan dikeluarkan ke

port C kemudian program keluar dari pernyataan switch.

u. Pernyataan While

Pernyataan while digunakan untuk pengulangan sebuah pernyataan atau blok

pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi.

Bentuk pernyataan while adalah sebagai berikut :

while (kondisi){

//sebuah pernyataan atau blok pernyataan}

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja

maka tanda { dan } bisa dihilangkan.

Contoh :

Unsigned char a=0;................While (a<10){PORTC=a;a++;

}

Pernyataan diatas akan mengeluarkan data a ke port C secara berulang-

ulang. Setiap pengulangan nilai a mencapai 10 maka pengulangan selesai.

Page 47: Bab i Pembelajaran Microcontroller

47

v. Pernyataan For

Pernyataan for digunakan untuk melakukan pengulangan sebuah pernyataan

atau blok pernyataan, tetapi berapa kali jumlah pengulangan dapat

ditentukan secara lebih spesifik. Bentuk pernyataan for adalah sebagai

berikut :

for (nilai_awal ; kondisi ; perubahan){//sebuah blok pernyataan atau blok pernyataan}

Nilai_awal adalah nilai inisialisasi awal sebuah variable yang didefinisikan

terlebih dahulu untuk menentukan niali variable pertama kali sebelum

pengulangan.

Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan,

jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan

diulang terus sampai pernyataan kondisi tidak terpenuhi (salah).

Perubahan adalah pernyataan yang digunakan untuk melekukan perubahan

nilai variable baik naik maupun turun setiap kali pengulangan dilakukan.

Contoh :

unsigned int a;

for (a=1,a<10,a++){PORTC=a;

}

Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke port C.

selanjutnya data a dinaikan (a++) jika kondisi a<10 masih terpenuhi maka

data a akan terus dikeluarkan ke PORTC.

w. Bentuk Dasar Program C

Sebuah program dalam bahasa C seharusnya memiliki sebuah fungsi. Fungsi

dasar ini disebut dengan fungsi utama (fungsi main) dan memiliki kerangka

program sebagai berikut:

void main (void)

{

//pernyataan_pernyataan

}

Page 48: Bab i Pembelajaran Microcontroller

48

Jika kita memiliki beberapa fungsi yang lain maka fungsi utama inilah yang

memiliki kedudukan paling tinggi dibandingkan fungsi-fungsi yang lain

sehingga setiap kali program dijalankan akan selalu dimulai dengan

memanggil fungsi utama terlebih dahulu.fungsi-fungsi yang lain dapat

dipanggil setelah fungsi utama dijalankan melalui pernyataan-pernyataan

yang berada didalam fungsi utama.

Contoh :

//prototype fungsi inisialisasi portvoid inisialisasi_port (char A, char B, char C, char D);//definisi fungsi inisialisasi portvoid inisialisasi_port (char A, char B, char C, char D);{DDRA=A;DDRB=BDDRC=CDDRD=D

}//fungsi utamaVoid main (void)

{inisialisasi_port (0xFF, 0xF0, 0x0F, 0x00);

2)Tool Pendukung

Yang dimaksud dengan tool pendukun adalah tool atau alat yang

diperlukan/ digunakan dalam proses merancang sistem mikrokontroler,

khususnya yang berupa software yaitu software kompiler dan software

downloader/ programer. Sebenarnya penggunaan software kompiler dan

downloader ini terdapat banyak macam dan variasinya sehingga tidak mutlak

harus sama dengan yang ada dalam modul ini, namun untuk memudahkan anda

dalam belajar dan memahami pembahasan-pembahasan dalam buku ini maka

penulis menyarankan agar anda menggunakan tool yang sama seperti yang

penulis gunakan.

a. CodevisionAVR

CodeVisionAVR merupakan salah satu software kompiler yang

khusus digunaan untuk mikrokontroler keluarga AVR. Salah satu

kelebihan dari software CodeVisionAVR adalah tersedianya fasilitas

untuk mendownload program ke mikrokontroler yang telah terintegrasi

sehingga dengan demikian CodeVisionAVR ini selain dapat berfungsi

sebagai software kompiler juga dapat berfungsi sebagai software

Page 49: Bab i Pembelajaran Microcontroller

49

programer/downloader. Adapun menu-menu dalam Code Vision AVR

adalah sebagai berikut:

1. Menu File

Gambar 3.1 Menu File

Keterangan:

a) New, untuk memulai program barub) Open, untuk mengambil atau membuka programc) Save, untuk menyimpan file/programd) Save as, untuk menyimpan file/programe) Save all, untuk menyimpan seluruh file/program yang berada dalam

project sekaligusf) Close, untuk menutup programg) Close Project, untuk menutup prject beserta seluruh file-filre

program di dalamnyah) Convert to library, mengkonversi file program (*.c) menjadi sebuah

file pustaka/library (*.lib)i) Print, untuk mencetak programj) Page Setup, untuk mengatur settinga halaman dan printerk) Exit, untuk keluar dari Code Vision AVR

2. Menu Edit

Gambar 3.2 Menu Edit

Page 50: Bab i Pembelajaran Microcontroller

50

Keterangan:

a) Undo, untuk membatalkan pengeditan terakhirb) Redo, untuk kembali ke pengeditan terakhir yang telah di undoc) Cut, untuk memotong bagian tertentu dari programd) Copy, untuk menduplikasi bagian programe) Paste, menampilkan file yang telah di copyf) Delete, untuk menghapus bagian tertentu dari programg) Select All , digunakan untuk me milih se mua teksh) Print Selection , digunakan untuk mengatur print eri) Indent Block , digunakan untuk membuat satu blok teks geser ke

kanan (masuk ke dalam)j) Unindent Block , digunakan untuk membuat satu blok teks geser ke

kirik) Find, Find Next dan Find In Files , merupakan fasilitas untuk

mencari kata atau filel) Replace , digunakan untuk menukar sebuah kata dengan kata lain

3. Menu Project

Gambar 3.3 Menu Project

Keterangan:

a) Check Syntax, digunakan untuk melakukan pengecekan adatidaknya kesalahan program

b) Compile, digunaan untuk mengkompile program. Proseskompile ini hanya menghasilkan file asembler saja (*.asm)

c) Make, digunakan untuk mengkompile sekaligus menghasilkan kodemesin program. Proses make ini menghasilkan beberapa file antaralain file *.asm, *.list, *.obj, *.hex, *.rom dan *.eep.

d) Stop Compilation, digunakan untuk menghentikan proses kompilee) Notes, digunakan untuk memberikan catatan pada projectf) Configures, digunakan untuk mengatur projectg) Files, untuk menambahkan file-file program ke dalam project atau

menghapus file-file program dari projectC Compiler, digunakanuntuk mengatur kompiler

h) Code Generation, digunakan untuk menentukan spesifikasidan fitur yang dimiliki oleh mikrokontroler

Page 51: Bab i Pembelajaran Microcontroller

51

i) Messages, digunakan untuk mengatur tampil tidaknya beberapapesan peringatan

j) Globally #define, digunakan untuk mendeklarasikan pengenal globalk) Paths, digunakan untuk menentukan direktori-direktori file

program (*.c), file header (*.h) dan file pustaka (*.lib) yangdibutukan dalam project

l) After Make, digunakan untuk mengatur proses yang akandilakukan setelah make

4. Menu Tools

Gambar 3.4 Menu Tools

Keterangan:

a) Code Wizard AVR, digunakan untuk membangkitkan kode programsecara otomatis

b) Debbuger , digunakan untuk pengecekan listing program dalamassembler. Program ini hanya bisa dijalankan jika kita sudahmendefinisikan terlebih dahulu program debbuger besertaletak direktorinya melalui menu setting debbuger

c) Chip Programer, digunakan untuk mendownload programyang telah dikompile ke dalam mikrokontroler denganmenggunakan hardware tertentu yang telah didefinisikan olehCde Vision AVR

d) Terminal, digunakan untuk membuka terminal komunikasi serialUSART

e) Configure, digunakan untuk menambahkan atau menghapusprogram aplikasi lain kedalam menu tools. Contoh Andamenambahkan menu notpad dengan cara : tools → configure→ add → [direktori notpad]

5. Menu Setting

Gambar 3.5 Menu Setting

Page 52: Bab i Pembelajaran Microcontroller

52

Keterangan:

a) General, digunakan untuk pengaturan secara umum. Melalui menuini Anda dapat memilih tampil atau tidaknya toolbar, navigator,pesan dan informasi

b) Editor, digunakan untuk pengaturan editor program. Kita dapatmenentukan warna-warna text yang berbeda untuk membantumempermudah dalam mengecek kesalahan penulisan program

c) Assembler, digunakan untuk menentukan apakah file *.asm atau*.lst yang akan terbuka secara otomatis pada saat terjadi error padasaat kompile

d) Debbuger, untuk mengecek kesalahan-kesalahan program dalamassembler dengan menggunakan software kompiler lain sepertimisalnya AVRStudio

e) Programmer, digunakan untuk menentukan jenis hardwareyang digunakan apabila proses download program kemikrokontroler dilakukan oleh CVAVR

f) Terminal, digunakan untuk mengstur mode format data terminalkomunikasi serail UART pada CVAVR antara lain port yangdigunakan, lebar data, bit stop, paritas dan lain-lain.

b. Codevision AVR Chip Programer

Salah satu kelebihan dari codevision AVR adalah tersedianya fasilitas

untuk mendownload program ke mikrokontroler yang telah terintegrasi

sehingga dengan demikian codevision AVR ini selain dapat berfungsi

sebagai software kompiler juga dapat berfungsi sebagai software programer /

downloader. Jadi kita dapat melakukan proses download program yang telah

di kompile dengan menggunakan software code vision AVR juga.

3. Rangkuman

1) Pogram yang dimasukan kedalam mikrokontroler adalah merupakan bahasa

mesin (hexa).

2) Bahasa terdekat dari bahasa mesin adalah assembler.

3) Digit 0 berarti tidak ada tegangan (sebenarnya ada, namun kecil, berkisar antara 0

– 0,7 Volt), sedangkan digit 1 berarti ada tegangan (3,5 Volt – 5 Volt untuk

level tegangan TTL dan 3,5 Volt – 15 Volt untuk level tegangn CMOS).

4) Pemrograman dalam bahasa assembler untuk seri MCS dapat dikelompokan

menjadi lima, yaitu: operasi aritmatika; operasi logical; operasi transfer data;

operasai manipulasi Boolean variable; operasi percabangan (program

branching).

Page 53: Bab i Pembelajaran Microcontroller

53

5) Jika mikrokontroler seri MCS menggunakan kristal 12MHz, maka waktu yang

diperlukan untuk satu siklus mesin adalah 1/12MHz = 1 mikro detik.

6) Bahasa C merupakn bahasa pemrograman tingkat menengah.

7) Dalam bahasa C selalu terdapat fungsi utama, setiap fungsi selalu diawali dengan

tanda { dan diakhiri dengan tanda }.

8) Setiap akhir perintah dalam bahasa C selalu diakhiri dengan tanda titik koma (;).

9) Untuk deklarasi penamaan sebuah variable dalam bahasa C tidak boleh

menggunakan spasi dan angka, serta dianjurkan menggunakan huruf kecil.

10)Tipe data char dan integer digunakan untuk bilangan bulat, sementara float dan

double untuk bilangan pecahan.

11)Unsigned digunakn untuk range bilangan tanpa tanda negative ( - ).

12)Variable dapat brubah selama program berlangsung dan konstanta tidak.

13)Variable global dideklarasikan diawal program dan dapat digunakan pada seluruh

fungsi, variable lokal dideklarasikan didalam fungsi dan hanya dapat digunakan

untuk fungsi itu saja.

14)Tanda // digunakan untuk komentar atau mematikan program sebanyak satu

baris.

15)Tanda /*…………………..*/ digunakan untuk komentar atau mematikan

program lebih dari satu baris.

16)Pustaka merupakan kerangka, program atau fungsi tertentu yang telah dibuat

sebelumnya atau sudah ada dan dapat langsung digunakan, tinggal disertakan

saja file nya dalam deklarasi #include <nama pustaka>.

17)Fungsi IF dan IF…ELSE…. dapat digunakan untuk mengeksekusi perintah atau

program dengan satu hingga tiga kemungkina (syarat atau ketentuan tertentu).

18)Fungsi Switch case dapat digunakan untuk melakukan pengambilan keputusan

terhadap banyak kemungkinan (lebih dari tiga kemungkinan atau ketentuan).

19)Pernyataan while digunakan untuk pengulangan sebuah pernyataan atau blok

pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi.

20)Pernyataan for digunakan untuk melakukan pengulangan sebuah pernyataan atau

blok pernyataan, tetapi berapa kali jumlah pengulangan dapat ditentukan secara

lebih spesifik.

Page 54: Bab i Pembelajaran Microcontroller

54

4. Latihan Soal

1) Uraikan kelebihan dan kekurangan assembler untuk aplikasi pemrograman

mikrokontroler!

2) Uraikan kelebihan dan kekurangan bahasa C untuk aplikasi pemrograman

mikrokontroler!

3) Tuliskan 10 perintah dalam bahasa assembler dan uraikan maksudnya!

4) Tuliskan 4 keyword dalam bahasa C dan uraikan maksudnya!

5) Uraikan macam-macam sistem operator !

5. Tugas

Buatlah resume berdasarkan artikel yang anda peroleh dari media online atau buku

teks tentang pemrograman mikrokontrol menggunakan bahasa basic/assembler !

6. Evaluasi

1) Jelaskan:

a. Perintah/keyword operasi percabangan dalam bahasa C!

b. Minimal 3 operator untuk aritmatika, logika & pembanding dalam bahasa C!

2) Tuliskan range untuk tipe data char, unsigned char dan integer!

3) Uraikan minimal 3 macam interupsi yang anda ketahui dalam sistem

mikrokontrol ATMega8535

Page 55: Bab i Pembelajaran Microcontroller

55

1. Tujuan Kegiatan Belajar 4 :

Setelah mempelajari kegiatan belajar 4, diharapkan anda dapat :

Mengetahui pengaturan register input dan output pada mikrokontrol AVR Memahami perintah dasar Input dan Output Memahami pemrograman I/O mikrokontroler AVR secara byte Memahami pemrograman I/O mikrokontroler AVR secara bit Dapat menggunakan pustaka delay Dapat menggunakan program kompilator bahasa C Membuat program sederhana dalam bahasa C untuk mikrokontroler AVR Melakukan pemrograman mikrokontroler AVR

2. Uraian Materi

1)Dasar Input Dan Output

Mikrokontroler ATmega8535 mempunyai susunan kaki standard 40 pin DIP

dengan spesifikasi seperti gambar dibawah ini :

Gambar 4.1 Susunan Kaki IC ATmega 8535

Terlihat pada gambar diatas tedapat empat buah PORT yaitu PORTA (PA),

PORTB (PB), PORTC (PC), dan PORTD (PD). Keempat PORT tersebut

merupakan jalur Bidirectional yang semuanya dapat diprogram sebagai input

maupun output dengan pilihan internal Pull-up.

Tiap PORT mempunyai tiga buah register bit, yaitu DDxn, PORTxn dan PINxn.

Huruf x mewakili nama bit. Bit DDxn terdapat pada I/O addres DDRx, bit

PORTxn terdapat pada I/O addres PORTxn dan bit PINxn terdapat pada I/O

addres PINx.

KEGIATAN BELAJAR 4

Page 56: Bab i Pembelajaran Microcontroller

56

PORT I/O mikrokontroler dapat dikonfigurasikan sebagai input maupun output,

dengan mengubah isi I/O Register Data Directional. Bit DDxn dalam register

DDRX (Data Direction Register) menentukan arah PIN.

Tabel 4.1 setting DDR dan PORT

DDR jika bit = 1 DDR jika bit = 0

PORT jika bit = 1 Output ; High Input ; R pull-up

PORT jika bit = 0 Output ; low Input ; Floating

Misalkan, jika ingin Port C dikonfigurasi sebagai Output, maka Data Direction

Register port C (DDRC) harus diset sebagai 0XFFh (atau sama dengan 255

desimal atau 11111111 biner). Jika sebagai Input maka 0x00h (sama dengan 0).

Tegangan keluaran pada PIN I/O mikrokontroler ketika logika “1” besarnya

sekitar 4,2 dan arusnya sebesar 20 mA. Port I/O sebagai output hanya

memberikan arus (sourching) sebesar 20 mA, keluaran dari satu PORT

mikrokontroler hanya dapat mengemudikan perangkat output dengan arus kecil,

sehingga untuk peralatan elektronik yang membutuhkan arus yang besar

misalnya untuk menggerakan motor perlu ditambahkan driver tambahan oleh

karena itu perlu ditambahkan rangkaian penguat atau transistor.

a. Perintah Input dan Output secara Byte

Terdapat dua perintah dasar yang harus dapat dibedakan dalam menentukan

sebuah PORT berlaku sebagai input atau output dalam mikrokontroler AVR

yaitu:

a) OUTPUT

PORTX=data;

Yaitu untuk mengirim data secara byte ke portX (X= A,B,C,D).perintah

ini sama dengan out dalam bahasa assembly ATmega 8535.

b) INPUT

data_in=PINX;

yaitu mengambil data Byte dari PINX(X= A,B,C,D).yang kemudian

disimpan ke variabel data_in. Perintah ini sama dengan in dalam bahasa

assembly ATmega 8535.

Page 57: Bab i Pembelajaran Microcontroller

57

b. Perintah Input dan Output secara Bit

Perintah input dan output pada AT mega 8535 juga bisa dilakukan per bit

dengan cara :

a) Output

PORTX.bitn=data;

Yaitu untuk mengirim data bit (0 atau 1) ke portX (X=A,B,C,D) Bit ke n.

Perintah ini setara dengan sbi dalam bahasa assembly.

Contoh:

..........PORTB.3=1;..........Artinya adalah bit 3 PORTB diberi nilai 1.

b) Input

data_in=PINX.bitn;

Yaitu mengambil data bit dari PINX(X=A,B,C,D) bit ke n yang

kemudian disimpan ke variable data_in. Perintah ini setara dengan cbi

dalam bahasa assembly.

Contoh

............data_n=PORTB.3;............Artinya adalah ATmega 8535 mengambil data bit ke 3. Nilai dari

perintah ini hanya 0 atau 1.

2)Penggunaan Pustaka Delay (Tunda)

Tunda atau delay akan sering kita gunakan. contoh saat memutar

motor stepper, pemberian bit ke motor stepper harus di tunda karena bila tidak

diberi waktu tunda maka motor tidak akan dapat berputar. Ada dua cara

memberikan penundaan, yaitu tunda yang kita buat sendiri dengan

menggunakan timer atau program tertentu dan penundaan yang disediakan oleh

code vision AVR melalui pustaka delay. namun untuk memudahkan dalam

pembelajaran hanya pustaka delay yang dipelajari dalam modul ini.

Jika kita menggunkan program tunda atau fungsi pustaka delay

bawaan, maka pada deklarasi awal pustaka delay harus disertakan dengan cara

menuliskan #include <delay.h> pada awal menulis proram sebelum fungsi

utama. Berikut adalah perintah-perintah yang ada dan dapat digunakan pada

pustaka delay.

Page 58: Bab i Pembelajaran Microcontroller

58

Instruksi-Instruksi Dipustaka delay

Instruksi tunda bisa dijelaskan sebagai berikut :

delay_us (unsigned int n)

menghasilkan tundaan selama n mikrodetik, n harus merupakan suatu konstanta.

Contoh:

delay_us(100) //memberikan delay 100 mikro detik

delay_ms (unsigned int n)

menghasilkan tundaan selama milidetik.

Contoh:

delay_ms(100) //memberikan delay 100 mili detik

Dengan menggunakan fungsi ini secara otomatis akan mereset kondisi timer

wachdog setiap 1 mili second dengan membangkitkan instruksi wdr.

Catatan penting :

Ada dua instruksi tambahan yang harus disertakan pada saat memanggil fungsi

tunda, yaitu :

#asm {”cli”)#asm (”sei”)

Instruksi pertama berfungsi untuk menonaktifkan semua interupsi dan interuksi

kedua untuk mengaktifkan semua interupsi. Jika hal ini tidak dilakukan maka

penundaan akan menjadi lebih lama dari yang diharapkan.

Lembar Kerja I

Alat dan Bahan

1. ................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32 ........................................ 1 Unit

2. ................................................................................... ISP

Downloader ...................................................................................... 1 Unit

3. ................................................................................... Kompute

r.......................................................................................................... 1 Unit

4. ................................................................................... Software

pendukung (Codevision AVR & Proteus)......................................... 1 Lot

Keselamatan Kerja

Page 59: Bab i Pembelajaran Microcontroller

59

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan I

Judul : Dasar Input Output dan Penggunaan Kompilator

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini

(skema sama seperti pada trainer)

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 4.2 Diagram skematik Percobaan I

2. Buka program CodevisionAVR, klik menu FILE NEW Project

YES hingga muncul tampilan berikut

Page 60: Bab i Pembelajaran Microcontroller

60

Gambar 4.3 Pengaturan Chip

3. Pilih ATmega 8535 (atau sesuai tipe yang digunakan) untuk chipnya dan

setting cloknya 11.059200 (atau sesuai dengan X-tall yang digunakan)

Gambar 4.2 Pengaturan register Input dan output

4. Atur untuk bagian PORT, pilih PORT A, Atur atur sebagai INPUT dan

rubah Value menjadi P (Pullup)

5. Atur Port B dan setting sebagai output dan value low (lihat gambar)

6. Klik File Generate,Save and Exit

7. Ikuti petunjuk penyimpanan file. Bila perlu ganti folder penyimpanannya.

8. Simpan dengan nama project_pertama.c, project_pertama.prj dan

project_pertama.cwp. pada folder kelas dan nama anda masing-masing

9. Selanjutnya akan tampak layar dengan kerangka program, seperti terlihat

pada gambar halaman berikut ini:

Page 61: Bab i Pembelajaran Microcontroller

61

Keterangan versiprogram danidentitas

Fungsi Pustaka

Awal Fungsi Utama

InisialisasiInput danOutput

Page 62: Bab i Pembelajaran Microcontroller

62

Gambar 4.3 Bagan Program

InisialisasiTimer

InisialisasiTimer

InisialisasiInterupt

InisialisasiAnalogKomparator

Fungsi pengulangantak berhingga

Page 63: Bab i Pembelajaran Microcontroller

63

10. Proses seting selesai dan setting I/O untuk PORT A sebagi Input terpullup

dan PORT B adalah sebagai output dengan kondisi Low.

11. Tambah kode berikut:

Void main (void){//declare your local variabel hereUnsigned char data; // lokal variabel..........Tambahkan intruksi sehingga tampak seperti berikut :

............while (1)

{// Place your code heredata = PINA; //tambahkan interuksi iniPORTB = data;};}

12. Untuk proses mendownload bisa langsung kita lakukan dengan memilih

menu project make atau dengan mengklik icon namun sebelum itu

kita harus menyettingnya terlebih dahulu dengan memilih menu Project

Configure Aftermake Kemudian Klik Program The Chip OK, jika

trainer sudah aktif, downloader terpasang dengan benar, maka akan muncul

tampilan seperti berikut:

Gambar 4.4 Proses Download

13. Jika terjadi error, tuliskan maksud dari pesan error tersebut dan sertakan

solusinya

14. Tekan Tombol secara perlahan dan acak satu persatu, perhatikan LED dan

amati catat apa yang terjadi, pada Tabel berikut.

NO SAKLAR LED REAKSI LED1 PINA.0 PORTB.02 PINA.1 PORTB.13 PINA.2 PORTB.24 PINA.3 PORTB.35 PINA.4 PORTB.46 PINA.5 PORTB.57 PINA.6 PORTB.68 PINA.7 PORTB.7

15. Tuliskan Analisa program, Analisa error dan kesimpulan percobaan I pada

kolom berikut:

Page 64: Bab i Pembelajaran Microcontroller

64

Analisa:

Kesimpulan:

Page 65: Bab i Pembelajaran Microcontroller

65

Percobaan 2

Judul: Pemrograman PORT Secara byte dan bit

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini (skema sama seperti pada

trainer)

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 4.5 Diagram skematik latihan I

2. Buka program CodevisionAVR, klik menu FILE NEW Project YES

hingga muncul tampilan berikut

Gambar 4.6 Pengaturan Chip

3. Pilih ATmega 8535 (atau sesuai tipe yang digunakan) untuk chipnya dan setting

cloknya 11.059200 (atau sesuai dengan X-tall yang digunakan)

Gambar 4.7 Pengaturan Register Input dan Output

Page 66: Bab i Pembelajaran Microcontroller

66

4. Atur untuk bagian PORT, pilih PORT A, Atur atur sebagai INPUT dan rubah

Value menjadi P (Pullup)

5. Atur Port B dan setting sebagai output dan value low (lihat gambar)

6. Klik File Generate,Save and Exit

7. Ikuti petunjuk penyimpanan file. Bila perlu ganti folder penyimpanannya.

8. Simpan dengan nama project_2.c, project_2.prj dan project_2.cwp. pada folder

kelas dan nama anda masing-masing

9. Tambahkan pustaka tunda dibagian header:

#include <mega8535.h> // blok header#include <delay.h> // tambahkan library delaydisini....................................Tambahkan interuksi berikut :void main(void){..........// Place your code here#asm {”cli”)

PORTB=0xFF;delay_ms(500); // memanggil delay dari librari

delay.PORTB=0XF0;delay_ms(500);

#asm(”sei”)};

}

10. Amati dan tuliskan apa yang terjadi pada led, pada kolom berikut

11. Buat project baru dengan nama project_3, dengan rangkaian, langkah kerja dan

inisialisasi sama seperti pada langkah 1-8.

Reaksi LED langkah 9:

Page 67: Bab i Pembelajaran Microcontroller

67

12. Tambahkah kode berikut, kemudian kompilasi dan download

#include <mega8535.h>#include <delay.h>....................while (1)

{// Place your code herePORTB=0b01111111;delay_ms(200);PORTB=0b10111111;delay_ms(200);PORTB=0b11011111;delay_ms(200);PORTB=0b11101111;delay_ms(200);PORTB=0b11110111;delay_ms(200);PORTB=0b11111011;delay_ms(200);PORTB=0b11111101;delay_ms(200);PORTB=0b11111110;delay_ms(200);};

}13. Amati dan tuliskan apa yang terjadi pada led, pada kolom berikut

14. Buat project baru dengan nama project_4, dengan rangkaian, langkah kerja dan

inisialisasi sama seperti pada langkah 1-8.

15. Tambahkah kode berikut, kemudian kompilasi dan download

while (1){// Place your code herePORTB=0x7f;delay_ms(200);PORTB=0xbf;delay_ms(200);PORTB=0xdf;delay_ms(200);PORTB=0xef;delay_ms(200);PORTB=0xf7;delay_ms(200);PORTB=0xfb;delay_ms(200);PORTB=0xfd;delay_ms(200);PORTB=0xfe;delay_ms(200);};

}

16. Amati dan tuliskan reaksi LED pada kolom berikut

Reaksi LED langkah 12:

Reaksi LED langkah 15:

Page 68: Bab i Pembelajaran Microcontroller

68

17. Matikan program pada langkah 15 tanpa menghapusnya, dan tambahkan kode

berikut:

while (1){// Place your code here/*PORTB=0x7f;delay_ms(200); blok program ini telah

mati danPORTB=0xbf;delay_ms(200); dianggap komentarPORTB=0xdf;delay_ms(200);PORTB=0xef;delay_ms(200);PORTB=0xf7;delay_ms(200);PORTB=0xfb;delay_ms(200);PORTB=0xfd;delay_ms(200);PORTB=0xfe;delay_ms(200);*/

PORTB=1;delay_ms(200); //blok program ini yangaktif

PORTB=2;delay_ms(200);PORTB=4;delay_ms(200);PORTB=8;delay_ms(200);PORTB=16;delay_ms(200);PORTB=32;delay_ms(200);PORTB=64;delay_ms(200);PORTB=128;delay_ms(200);

}

}

18. Amati dan tuliskan apa yang terjadi pada led, pada kolom berikut

Reaksi LED langkah 17:

Page 69: Bab i Pembelajaran Microcontroller

69

19. Buat project baru dengan nama project_5, dengan rangkaian, langkah kerja dan

inisialisasi sama seperti pada langkah 1-8.

20. Tambahkah kode berikut, kemudian kompilasi dan download

#include <mega8535.h>#include <delay.h>

#define led0 PORTB.0#define led1 PORTB.3#define led2 PORTB.7

.............

.............

.............

.............

.............while (1)

{// Place your code hereled0=0;delay_ms(200);led0=1;delay_ms(200);led1=0;delay_ms(200);led1=1;delay_ms(200);led2=1;delay_ms(200);led2=0;delay_ms(200);};

}21. Rubah secara acak inisialisasi nomor bit pada PORTB, amati dan tuliskan reaksi

led pada kolom berikut:

22. Buat analisa, dan simpulkan maksud serta tujuan masing-masing program diatas

NOMOR PROGAM ANALISA KESIMPULAN

Langkah-9Project_2

Reaksi LED langkah 20:

Page 70: Bab i Pembelajaran Microcontroller

70

NOMOR PROGAM ANALISA KESIMPULAN

Langkah-12Project_3

Langkah-15Project_4

Langkah-17Project_5

Langkah-20Project_5

Page 71: Bab i Pembelajaran Microcontroller

71

Analisa Secara Umum/Keseluruhan:

Kesimpulan Secara Umum/Keseluruhan:

Page 72: Bab i Pembelajaran Microcontroller

72

Percobaan 3

Judul : Intertfacing Saklar dan Pengenalan Looping

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini

(skema sama seperti pada trainer)

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 4.8 Diagram Skematik percobaan 3

2. Buka program CodevisionAVR, klik menu FILE NEW Project YES

hingga muncul tampilan berikut

Gambar 4.9 Pengaturan Chip

3. Pilih ATmega 8535 (atau sesuai tipe yang digunakan) untuk chipnya dan setting

cloknya 11.059200 (atau sesuai dengan X-tall yang digunakan)

Gambar 4.10 Pengaturan Register Input dan Output

Page 73: Bab i Pembelajaran Microcontroller

73

4. Atur untuk bagian PORT, pilih PORT A, Atur atur sebagai INPUT dan rubah

Value menjadi P (Pullup)

5. Atur Port B dan setting sebagai output dan value low (lihat gambar)

6. Klik File Generate,Save and Exit

7. Ikuti petunjuk penyimpanan file. Bila perlu ganti folder penyimpanannya.

8. Simpan dengan nama project_6.c, project_6.prj dan project_6.cwp. pada folder

kelas dan nama anda masing-masing

9. Tambahkan pustaka tunda dibagian header dan satu buah variable bertipe integer

#include <mega8535.h>#include <delay.h>unsigned char hit;#define led0 PORTB.0#define led1 PORTB.1#define led2 PORTB.2

#define sw1 PINA.1#define sw2 PINA.2#define sw3 PINA.3#define sw4 PINA.4#define sw5 PINA.7.................................................................

while (1){

// Place your code hereawal:if (sw1==0) //jika saklar 1 ditekan

{PORTB=0x00;delay_ms(300); // 8 led led

dimatikanPORTB=0xFF;delay_ms(300); // 8 led led dinyalakan

}

if (sw2==0) //jika saklar 2 ditekan{PORTB=0x0F;delay_ms(300); //maka led plip-

plopPORTB=0xF0;delay_ms(300);

}if (sw3==0) //jika saklar 7 ditekan

{PORTB=0xAA;delay_ms(300); //maka LED blink-

blinkPORTB=0x55;delay_ms(300);}

if (sw4==0) //jika sw4 ditekan{

while(1) //pengulangan talberhingga

Page 74: Bab i Pembelajaran Microcontroller

74

{for(hit=0;hit<10;hit++) // ulang

sebanyak 10x{

led0=0;delay_ms(200);led0=1;delay_ms(200);if(sw5==0) //jika sw 5 ditekan

{goto awal; //loncat ke

label awal}

}

for(hit=0;hit<10;hit++) // ulangsebanyak 10x

{

led1=0;delay_ms(200);led1=1;delay_ms(200);if(sw5==0){goto awal;}

}

}

}PORTB=0x00; //jika tidak maka

led mati

};

10. Lengkapi, kompilasi dan download program diatas

11. Tekan saklar sw1-sw5 secara bergantian, perhatiakn apa yang terjadi, dan

lenglapi tabel berikut

No No Sw Reaksi LED

1 Sw1

2 Sw2

3 Sw3

4 Sw4

Page 75: Bab i Pembelajaran Microcontroller

75

5 Sw5

12. Tandai baris program mana saja yang menunjukan looping !

13. Jelaskan perbedaan reaksi LED jika ditekan sw4 dengan jika ditekan sw1-3!

14. Tulisakan error yang terjadi pada saat kompilasi jelaskan maksud error tersebut

beserta solusinya, buat analisa dari program diatas, dan simpulkan

Analisa Secara Umum/Keseluruhan:

Kesimpulan Secara Umum/Keseluruhan:

Page 76: Bab i Pembelajaran Microcontroller

76

3. Rangkuman

1) Perintah PORTX digunakan untuk mengirim data secara byte ke portX

(X= A,B,C,D)

2) Perintah PINX digunakan untuk menerima data secara byte dari portX (X=

A,B,C,D)

3) Perintah PORTX.n digunakan untuk mengirim data secara bit ke portX

(X= A,B,C,D), dimana n adalah nomor bit yang dituju.

4) Perintah PINX.n digunakan untuk menerima data secara bit dari portX (X=

A,B,C,D), dimana n adalah nomor bit dari port.

5) Perintah DDRX (X= A,B,C,D), dan PORTX (X= A,B,C,D), sebagai

inisialisasi register dimana DDRX menentukan PORT yang dimasksud

sebagai input atau output dan PORTX menentukan keadaan awal PORT

yang dimasksud apakah berlogika 1 atau 0 jika sebagai output, atau

memiliki pullup atau tidak jika sebagai input.

6) Perintah delay_ms (unsigned int n) untuk fungsi tunda dalam mili detik

(n lama nya waktu)

7) Perintah delay_us (unsigned int n) untuk fungsi tunda dalam mikro detik

(n lama nya waktu)

8) Perintah #asm (“cli”) untuk mematikan semua interupsi

9) Perintah #asm (“sei”) untuk mengaktifkan semua interupsi

4. Latihan soal

1) Buat algoritma dalam flowchart beserta programnya, downloadkan ke

system mikrokontroler. Dengan kerja program sebagai berikut:

LED pada PORTB.5 berkedip tanpa henti, dengan jeda waktu kedipan 1

detik.

2) Buat algoritma dalam flowchart beserta programnya, downloadkan ke

system mikrokontroler. Dengan kerja program sebagai berikut:

LED pada PORTB paling ujung kanan bergantian menyala dengan 3 LED

pada PORTB paling ujung kiri dan terus berulang, dengan jeda waktu 0,5

detik.

Page 77: Bab i Pembelajaran Microcontroller

77

3) Buat algoritma dalam flowchart beserta programnya, downloadkan ke

system mikrokontroler. Dengan kerja program sebagai berikut:

Semua LED bernomor ganjil pada PORTB bergantian menyala dengan

semua LED bernomor genap pada PORTB terus berulang, dengan jeda

waktu 0,15 detik.

4) Buat algoritma dalam flowchart beserta programnya, downloadkan ke

system mikrokontroler. Dengan kerja program sebagai berikut:

LED pada PORTB menyala satu persatu berjalan dari kiri ke kanan,

kemudian kembali lagi berjalan satu persatu dari kanan ke kiri dan terus

berulang, dengan jeda waktu led berjalan 100 mili detik.

5) Buat algoritma dalam flowchart beserta programnya, downloadkan ke

system mikrokontroler. Dengan kerja program sebagai berikut:

Jika ditekan saklar 1 program dari saol no 1 terus berjalan tanpa henti

Jika ditekan saklar 2 program dari saol no 2 terus berjalan tanpa henti

Jika ditekan saklar 3 program dari saol no 3 terus berjalan tanpa henti

Jika ditekan saklar 4 program dari saol no 4 terus berjalan tanpa henti

Jika ditekan saklar 5 semua LED padam.

Jika ditekan belum ada saklar yang ditekan LED mati

Jika sistem sedang menjalankan salah satu dari program no 1-4, kemudian

ditekan salah satu tombol no 1-5, maka LED langsung bereaksi sesuai

nomor saklar.

5. Evalusi

Diketahui sebuah system mikrokontroler memiliki rangkaian seprti pada

gambar dibawah:

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Page 78: Bab i Pembelajaran Microcontroller

78

Sistem diatas memiliki cara kerja sebagai berikut:

• Jika ditekan saklar 1, semua LED menyala dan padam secara bergiliran dengan

jeda waktu 1 detik dan terus berulang sampai ditekan tombol lain,

• jika saklar 2 ditekan LED menyala bergantian dan berjalan satu persatu dengan

jeda waktu 0,2 detik dan terus berulang sampai ditekan tombol lain

• Jika saklar 3 ditekan semua LED padam, dan terus berulang sampai ditekan

tombol lain

• Awal dinyalakan semua LED padam

6. Tugas:

1. Tentukan mana yang menjadi saklar 1,2 dan3

2. Susun dan tuliskan algoritma dalam bentuk Flowchart untuk program diatas

3. Susun program untuk system diatas

Page 79: Bab i Pembelajaran Microcontroller

79

1. Tujuan Kegiatan Belajar 5 :

Setelah mempelajari kegiatan belajar 5, diharapkan anda dapat :

Mengetahui Seven Segment Mengetahui cara kerja seven segment Memahami cara penggunaan seven segment Memprogram mikrokontrol untuk aplikasi seven segment

2. Uraian Materi

1)SEVEN SEGMENT

Seven segment atau tujuh bagian, karena komponen ini memiliki tujuh

bagian untuk membentuk karakter angka yang pada umumnya menyatakan

simbol bilangan nol hingga sembilan, meskipun pada kenyataannya ditambah 1

buah LED untuk titik atau Dot Point.

Seven segment pada dasarnya adalah tujuh buah LED yang disusun

membentuk seprti angka delapan , namun salah satu kakinya

digabungkan/disatukan sehingga menjadi sebuah common atau hubungan

bersama, dan kaki lainya sebagai data. Pada umumnya dipasaran beredar dua

buah jenis seven segment, yaitu seven Segment Common Anoda (CA) dan

Segment Common Catodhe (CC), gambar 5.1 menjelaskan salah satu jenis

seven segment common cathode beserta hubungan pengawatan LED didalam

seven segment tersebut.

Gambar 5.1 Seven segment common Cathode (CC)

Dengan melihat gambar 5.1 terlihat bahwa setiap segment memiliki notasi yang

dinyatakan dalam A, B, C, D, E, F, G dan DP. Common dari seven segment

KEGIATAN BELAJAR 5

Page 80: Bab i Pembelajaran Microcontroller

80

common cathode harus dihubungkan ke ground dan kaki lainya diberikan

positif, sedangkan untuk membentuk angka cukup diaktifkan beberapa segment

saja sesuai kebutuhan. Sedangkan untuk Common dari seven segment common

Anode harus dihubungkan ke positif dan kaki lainya diberikan ground .

Misalkan untuk membentuk angka 8 tanpa titik, maka semua segment kecuali

DP dinyalakan, dan untuk membentuk angka 9 tanpa titik maka semua segment

kecuali DP dan segment E dinyalakan, tabel dibawah ini memperlihatkan

hubunga segment dengan kaki PIN sevensegment untuk jenis CA dan CC.

Tabel 5.1 Hubungan kaki seven segment

SEGMENT KAKI SEVEN SEGMENT

A 7B 6C 4D 2E 1F 9G 10

DP 5COM 8 dan 5

2)Menggunakan SEVEN SEGMENT

Jika seven segment common Anode dihubungkan dengan

mikrokontoler biasanya minimal akan menghabiskan 8 saluran (1 PORT), untuk

mengaktifkan 1 buah 7segment dengan asumsi commnon dihubungkan

langsung dengan power supply, seperti terlihat pada gambar dibawah.

A

CB

FED

DPG

VCC

COM

PA1

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PA3

PA0PA0

PA6PA7

PA2

PA4PA5

PC5

PC0PC1PC2PC3PC4

PC6PC7

PB5

PB1PB0PB0

PB3PB4

PB6PB7

PB2

PD3

rstrst

PD0PD1PD2

GND

PD7

PD4

VCC

VCC

PD6PD6

GNDVCC

PD5PD5

X211.0592MHz

C3

22p

C4

22p

VCC

R2R

PB1PB0

PB4PB3PB2

PB6PB5

PB7

Gambar 5.2

Contoh Koneksi seven segment common Cathode (CC) dengan mikrokontrol

Page 81: Bab i Pembelajaran Microcontroller

81

Untuk lebih memahami seven segment lakukanlah percobaan I.

Lembar Kerja I

Alat dan Bahan

1. ............................................................................................ Trainer

Mirkorontroler AVR ATMega8535/16/32................................................... 1 Unit

2. ............................................................................................ ISP

Downloader.................................................................................................. 1 Unit

3. ............................................................................................ Kompu

ter ................................................................................................................. 1 Unit

4. ............................................................................................ Softwar

e pendukung (Codevision AVR & Proteus)................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan I

Judul : Menggunakan 7segment

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini

(skema sama seperti pada trainer)

Page 82: Bab i Pembelajaran Microcontroller

82

VCC

R2R

R3R

R4R

BA

R5R

CDEFGDP

COM

PD

4

PD

5

PD

6

PD

7

BA

EDC

DPGF

COM PB0

PB2PB2PB1PB1

PB5PB5PB4PB3

PB7PB6

CBA

FED

DPG

COM

CBA

ED

DPGF

COM PB0PB1PB1

PB3PB2PB2

PB6PB6PB5PB5PB5PB5PB4

PB7

PB0

PB2PB2PB1PB1

PB5PB5PB4PB3

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PA0PA0PA1PA2PA3

PA5PA6PA7

PC0PC1

PA4

PC4PC5

PC7

PC2PC3

PB1PB0PB0

PC6

PB4PB5

PB7

PB2PB3

rstrst

PB6

PD1PD2PD3

PD7

PD4

PD0

VCCGND

GNDVCC

VCC

PD5PD5PD6PD6

X111.0592MHz

C1

22p

C2

22p

R1R

VCC

PB0PB1PB1PB2PB2PB3

PB5PB5PB4

PB7PB6

Q1PNP

Q2PNP

Q3PNP

Q4PNP

2. Buat data tampilan angka dengan melengkapi tabel berikut, untuk seven segment

common Anode. (Aktif LOW/Menyala jika data “0” (LOW) dengan common

Positif.

DISPLAYANGKA

DP G F E D C B ADATA DALAM

BINERDATA DALAM

HEX

0 1 1 0 0 0 0 0 0 0b1100 0000 0xC01 1 1 1 1 1 0 0 1 0b111110012 1 0 1 0 0 1 0 0 0b101001003456789

. (titik)

3. Buat data tampilan angka dengan melengkapi tabel berikut, untuk seven segment

common cathode. (Aktif High/Menyala jika data “1” (HIGH) dengan common

nol.

DISPLAYANGKA

DP G F E D C B ADATA DALAM

BINERDATA DALAM

HEX

01

Page 83: Bab i Pembelajaran Microcontroller

83

23456789

. (titik)

4. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

5. Kemudian pillih File |New |pilih File Type

→project

6. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

7. Atur setting chip pada ATMega8535 atau sesuai dengan chip yang digunakan,

dengan clock 11.059200MHz dengan PORTD dan PORTB sebagi output, dengan

keadaan awal nol.

8. Jika sudah menkonfigurasi project,pilih File |

Generate Save and Exit, sehingga akan tampil source code dalam bahasa C

9. setelah itu, kita tinggal menambahkan instruksi-

instruksi tambahan kedalam program yang sudah ada.

10. Lengkapi dengan listring dibawah ini.

..........#include <mega8535.h>#include <delay.h>..........while (1)

{PORTD=0;PORTB= 0b11000000; //menampilkan angka 0;Delay_ms(500);PORTB= 0b11111001; //menampilkan angka 1;Delay_ms(500);PORTB= 0b10100100; //menampilkan angka 2;Delay_ms(500);

}11. Kemudian kompilasi, download dan perhatikan

hasilnya.

Analisa:

Page 84: Bab i Pembelajaran Microcontroller

84

12. Lengkapi data diatas sehingga bisa berhitung naik

dari 0 ke 9 secara berulang!

13. Apa yang terjadi jika data pada PORTB dibalikan

nilai logikanya, data “0”menjadi “1” dan data “1” menjadi “0”!

14. Apa yang terjadi jika data pada PORTB diganti

dengan hasil bilangan hexadesimal, hasil dari konversi bilangan biner dari data

diatas!

15. Bagaimanakah data yang harus dikirim ke PORTB,

sehingga bisa menampilkan karakter “Y” “A” “M” “M” “Y” , secara

berurutan pada 1 seven segment? Apakah seven segment hanya terbatas untuk

menampilkan angka? Jelaskan!

3. Latihan :

1. Buat program untuk berhitung turun dari 9 ke 0

2. Buat program agar keempat seven segment dapat menampilakan angka secara

bergantian (1 menyala yang lain pada, secara bergilir)!

3. Buat program untuk berhitung naik dari 0 ke 99, secara berulang dengan jeda

waktu 300 ms!

4. Buat program untuk berhitung turun dari 99 ke 9, , secara berulang dengan jeda

waktu 300 ms!

5. Buat program untuk berhitung turun dari 99 ke 0, , secara berulang dengan jeda

waktu 300 ms, setelah tombol PA.7 (SW8) ditekan, jika belum ditekan hitungan

belum dimulai!

6. Buat program, sehingga setiap ditekan tombol PA.7 (SW8), angka pada 7

segment bertambah 1, hingga max 99

4. Rangkuman

1. Seven segment terdiri dari 7 buah LED yang pada umumnya digunakan untuk

menampilkan angka desimal

2. Seven segment terdiri dari dua macam common

yaitu common anode dan cathode

3. common anode, aktif jika data data LOW dan

common HIGH

4. common Cathode, aktif jika data data HIGH dan

common LOW

Page 85: Bab i Pembelajaran Microcontroller

85

5. Seven segment memiliki banyak ukuran yang

umumnya dalam satuan inch.

6. Untuk memudahkan pemrograman kaki segment A

dihubungkan dengan kaki PIN 0 mikrokontrol dan terus berurut hingga segment

G terhubung dnegan PIN 6 dan kaki DP dengan PIN 7 pada mikrokontrol

1. Tujuan Kegiatan Belajar 6 :

Setelah mempelajari kegiatan belajar 6, diharapkan anda dapat :

Mengenal LCD karakter Mengetahui cara Inisialisasi LCD karakter Mengetahui cara menampilkan karakter pada LCD karakter berdasarkan titik

koordinat Memprogram system mikrokontroler untuk menampilkan karkter pada LCD

karakter

KEGIATAN BELAJAR 6

Page 86: Bab i Pembelajaran Microcontroller

86

2. Uraian Materi

1)LCD Karakter

LCD adalah suatu display dari bahan cairan kristal yang

pengoprasiannya menggunakan dot matriks.LCD banyak digunakan sebagai

display dari alat-alat elektronika seperti kalkulator,multitester digital,jam digital

dan sebagainya.

Gambar 5.1 LCD 2x16 karakter

Ada beberapa macam LCD karakter diantaranya adalah 2x8, 2x12,

2x16, 2x20, 2x24, 2x40, dan 4x40, dimana pada dua digit pertama menunjukan

jumlah baris yang dapat ditampilkan, dan digit kedua menunjukan jumlah

karakter yang bisa ditampilkan pada tiap baris, seperti contoh LCD karakter

2x16 berarti LCD tersebut mampu menunjukan 2 baris karakter dengan setiap

baris mampu menampilkan 16 karakter. Dengan mode pengoperasian pada

umumnya adalah 4 bit dan 8 bit, perbedanya adalah dalam teknik pengiriman

data dan jumlah pin yang digunakan, jika menggunakan mode 8 bit maka untuk

saluran data diperlukan 8 pin, dan 3pin control, sehingga setidaknya akan

diperlukan 2 PORT mikrokontroler, namun dalam teknik pengiriman data

relatif lebih ringkas, tetapi jika menggunakan mode 4 bit maka untuk saluran

data diperlukan 4 pin, dan 3pin control, sehingga hanya akan diperlukan 1

PORT mikrokontroler, namun dalam teknik pengiriman data ke LCD relatif

lebih rumit. LCD karakter 2x16 pada umumnya banyak menjadi pilihan karena

dengan selain harga nya terjangkau, 2x16 maka artinya LCD tersebut mampu

menampilkan 2 baris karakter dengan tiap baris menampung 16 karakter.

Karakter yang muncul dalam LCD sebernarnya sudah terdapat pada ROM LCD

tersebut, sehingga pengguna LCD tinggal memberikan alamat sesuai karakter

yang diinginkan dan koordinat dimana karakter tersebut dimunculkan.

Gambar berikut memperlihatkan tataletak koordinat pada LCD karakter 2x16

Page 87: Bab i Pembelajaran Microcontroller

87

Gambar 5.2 Koordinat pada LCD 2x16 karakter

Dengan melihat gambar diatas jika kita memprogram koordinat pada

X=0 dan Y=0, maka karakter akan muncul pada titik pojok kiri paling atas, dan

jika kita memprogram koordinat pada X=15 dan Y=1, maka karakter akan

muncul pada titik pojok kanan paling bawah.

Untuk lebih memahi cara pemrograman dari LCD karakter maka coba

lalukan percobaan i dan II pada lembar kerja berikut,

Lembar Kerja I

Alat dan Bahan

1. .......................................................................................... T

rainer Mirkorontroler AVR ATMega8535/16/32 ..................................... 1 Unit

2. .......................................................................................... I

SP Downloader ......................................................................................... 1 Unit

3. .......................................................................................... K

omputer ..................................................................................................... 1 Unit

4. .......................................................................................... S

oftware pendukung (Codevision AVR & Proteus) ................................... 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan 1

Page 88: Bab i Pembelajaran Microcontroller

88

Judul: Pemrograman LCD Koordinat Satis

Langkah Kerja:

1. Gambar rangkaian program yang akan dibuat

sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PC7PC6PC5PC4PC3PC2PC1PC0

VCC

1 2S1

R110k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J1LCD 16x2 Char

R2

POT

PC0PC1PC2

PC6PC7

PC5PC4

VCC

X111.0592MHz

22

22

Gambar 5.3 Diagram Skematik percobaan I

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Untuk setting IC(Chip yang digunakan) pilih Chip,

isi informasi sebagai berikut:

Gambar 5.4 asetting chip ATmega 8535

clock 11.059200

Gambar 5.4 bsetting PORTC sebagai output

LCD6. Jika sudah menkonfigurasi project,pilih File |

Generate Save and Exit, sehingga akan tampil source code dalam bahasa C

Page 89: Bab i Pembelajaran Microcontroller

89

7. setelah itu, kita tinggal menambahkan instruksi-

instruksi tambahan kedalam program yang sudah ada

8. Perhatikan kode-kode berikut

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>..........

Blok ini harus disertakan (jika dengan cara generate file…akan otomatis

dibuatkan).arti dari blok diatas adalah setting LCD di PORTC kemudian akan

me_link ke pustaka lcd.h yang didalamnya terdapat instruksi-instruksi untuk

akses LCD secara langsung.

..........

.equ __lcd_port=0x15 ;PORTC

...........

Menggunakan PORTC(0x15) untuk LCD (lihat tentang register I/O di datasheet

ATmega 8535). Untuk inisialisasi cukup dengan instruksi berikut:

..........// LCD module initialization

lcd_init(16); //inisialisasi LCD 16x2

Contoh program LCD :

Tambahkan kode program sehingga listingnya seperti berikut :

..........#include <mega8535.h>#include <delay.h>..........while (1)

{// Place your code herelcd_clear();lcd_gotoxy(0,0);lcd_putsf("*SELAMAT DATANG*");lcd_gotoxy(0,1);lcd_putsf("SISWA");delay_ms(5000);lcd_clear();lcd_gotoxy(0,0);lcd_putsf("**SMK Negeri 2**");lcd_gotoxy(0,1);lcd_putsf(" Kota Cimahi ”);delay_ms(5000);

};}

9. Kemudian kompilasi, download dan perhatikan

hasilnya.

Page 90: Bab i Pembelajaran Microcontroller

90

10. Coba dengan string atau kata dan posisi baris yang

berbeda.

11. Coba hilangkan baris perintah lcd_clear(), kompilasi

dan download, adakah perbedaan hasil?

12. Apa yang terjadi jika nilai koordinat X dan Y di

rubah?

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

13. Apa yang terjadi jika perintah lcd_putsf("SISWA")

diganti dengan spasi sebanyak 16 kali, sehingga program menajdi lcd_putsf("

"); ?

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

Kesimpulan Secara Umum dari percobaan 1 LCD:

Page 91: Bab i Pembelajaran Microcontroller

91

Percobaan 2

Judul: Pemrograman LCD Koordinat Dinamis

Langkah Kerja:

1. Gambar rangkaian program yang akan dibuat

sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PC7PC6PC5PC4PC3PC2PC1PC0

VCC

1 2S1

R110k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J1LCD 16x2 Char

R2

POT

PC0PC1PC2

PC6PC7PC5PC4

VCC

X111.0592MHz

22

22

Gambar 5.5 Diagram Skematik percobaan I I

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Untuk setting IC(Chip yang digunakan) pilih Chip,

isi informasi sebagai berikut :

Page 92: Bab i Pembelajaran Microcontroller

92

Gambar 5.6 a setting chip

ATmega 8535 clock 11.059200

Gambar 5.6 b setting PORTC

sebagai output LCD

6. Jika sudah menkonfigurasi project,pilih File |

Generate Save and Exit, sehingga akan tampil source code dalam bahasa C

7. setelah itu, kita tinggal menambahkan instruksi-

instruksi tambahan kedalam program yang sudah ada

8. Perhatikan kode-kode berikut dan Tambahkan kode

program sehingga listingnya seperti berikut :

..........#include <mega8535.h>#include <delay.h>#include <stdio.h> //library standar input dan output

Unsigned char a, buf[16];

Blok diatas mendeklarasikan tipe data “a” sebagai unsigned char yang digunakan

untuk penghitung dengan kapasitias 256 bilangan atau dengan range 0-255,

variabel buf[16] maksudnya adalah tipe data buf adalah sebagai larik/array

dengan kapasitas 16 yang nantinya akan digunakan sebagai penampung data

karakter LCD yang berjumlah max16.

..........while (1)

{// Place your code herefor(a=0;a<16;a++){

lcd_gotoxy(a,0);lcd_putsf(“H”);sprintf(buf,”Nilai a: %d”,a); //fungsi utk

menampilkan isi alcd_gotoxy(0,1);lcd_puts(buf);delay_ms(300);

}}

9. Kemudian kompilasi, download dan perhatikan

hasilnya.

10. Perhatikan listing code dan tampilan pada LCD, apa

yang terjadi ketika nilai “a” berubah dan apa pengaruhnya nilai “a” pada posisi

karakter “H” , mengapa demikian?

Page 93: Bab i Pembelajaran Microcontroller

93

11. Ganti %d dengan %i, kompilasi dan download, lihat

adakah perbedaan hasil? Mengapa?

12. Ganti %d dengan %x, kompilasi dan download, lihat

adakah perbedaan hasil? Mengapa?

3. Rangkuman

1) LCD karakter adalah LCD yang hanya dapat menampilkan karakter

2) LCD karakter dapat menampilkan 2x8 karakter, 2x12 karakter, 2x16

karakter, 2x24 karakter, 2x40 karakter, dan 4x40 karakter.

3) LCD karakter dapat dioperasikan secara 4 bit ataw 8 bit

4) Perbedaan mode pengoperasian hanya pada jumlah pin yang digunakan

dan teknik pengiriman datanya

5) Koordinat x=0 dan y=0 berada pada pojok kanan atas, Koordinat x=0 dan

y=1 berada pada pojok kanan bawah.

6) Untuk mencetak karakter secara langsung/statis digunakan perintah

lcd_putsf(“ Karakter”);

Kesimpulan Secara Umum dari percobaan 1 LCD:

Page 94: Bab i Pembelajaran Microcontroller

94

7) Untuk mencetak karakter yang berasal dari isi memory/variabel tertentu

harus mengunakan fungsi sprintf (variabel_penampung,”Karakter yang

akan ditampilkan”,Variabel_sumber);

8) Fungsi sprintf ada dalam pustaka stdio.h

9) Dalam menampilakan isi memory, bentuk data akan tampil tergantung dari

modulus yang digunakan.

10) fungsi lcd_clear(), lcd_gotoxy(); lcd_putsf() adalah beberapa fungsi yang

terdapat dalam pustaka lcd.h

1. Tujuan Kegiatan Belajar 7 :

Setelah mempelajari kegiatan belajar 7, diharapkan anda dapat :

Mengetahui konsep ADC secara umum Mengetahui istilah-istilah yang digunakan pemrograman ADC pada

mikrokontoler Mengetahui fitur ADC yang terintergrasi dengan mikrokontrol ATMega8535 Melakukan pengaturan register mikrokontroler untuk mengaktifkan fitur ADC Memprogram mikrokontrol untuk pembacaan data ADC Memprogram mikrokontrol untuk aplikasi pembacaan tegangan

2. Uraian Materi

1)Konsep ADC

ADC (Analog to Digital Converter) adalah salah satu fasilitas

mikrokontroller ATMEGA 8535 yang berfungsi untuk mengubah data

analog menjadi data digital. ADC memiliki 2 karakter prinsip, yaitu kecepatan

sampling dan resolusi. Kecepatan sampling suatu ADC menyatakan seberapa

sering sinyal analog dikonversikan ke bentuk sinyal digital pada selang waktu

tertentu. Kecepatan sampling biasanya dinyatakan dalam sample per second

(SPS).

KEGIATAN BELAJAR 7

Page 95: Bab i Pembelajaran Microcontroller

95

Gambar 6.1

ADC dengan kecepatan sampling rendah dan kecepatan sampling tinggi

Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai

contoh: ADC 8 bit akan memiliki output 8 bit data digital, ini berarti sinyal

input dapat dinyatakan dalam 0-255 nilai diskrit dengan jumlah data 256 nilai

diskrit didapat dari 28 (2n) dimana n adalah jumlah bit ADC. ADC 10 bit

memiliki 10 bit output data digital, ini berarti sinyal input dapat dinyatakan

dalam 1024 nilai diskrit. Dari contoh diatas ADC 10 bit akan memberikan

ketelitian nilai hasil konversi yang jauh lebih baik daripada ADC 8 bit. Prinsip

kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk besaran yang

merupakan rasio perbandingan sinyal input dan tegangan referensi. Sebagai

contoh, bila tegangan referensi 5 volt, tegangan sinyal input 3 volt, rasio input

terhadap referensi adalah 3/5 atau 60% dari tegangan referensi. Jadi, jika

menggunakan ADC 8 bit dengan skala maksimum 255, akan didapatkan nilai

diskrit sebesar 60% x 255 = 153 (bentuk decimal) atau 10011001 (bentuk

biner). Jika nilai data diskrit telah diketahui dan akan dijadikan nilai tegangan,

maka dapat menggunakan rumus berikut,

Tegangan = (Data Terbaca / Nilai Max Data) * Tegangan reverensi= (153 / 255)* 5V= 3V

Resolusi ADC pada ATMEGA8535 dapat digunakan pada resolusi 8 bit dan 10

bit. Pada trainer mikrokontroler tegangan referensi dibuat fix tidak dapat

diubah yaitu 5 volt yang diambil dari tegangan sumber (Vcc), dengan referensi

ADC adalah kaki AVCC. Dan register-register yang harus di setting adalah

ADMUX, ADCSRA, dan SFIOR agar ADC dapat difungsikan.

Penggunaan ADC sangat banyak,terutama dalam bidang pengukuran atau

pengumpulan data. Banyak keluaran sensor yang masih berupa analog yang

harus dikonversi kedigital agar dapat diolah ke mikrokontroler.

Fitur dari ADC ATmega 8535 adalah sebagai berikut :

• Resolusi maks 10 Bit,• Waktu konversi 65-260 us,• 8 ch input,• 0-Vcc input ADC,• 3 mode pemilihan tegangan referensi.

Page 96: Bab i Pembelajaran Microcontroller

96

Untuk mempelajari ADC pada ATmega 8535, kita cukup membuat rangkaian

sederhana dari potensio meter.

R1

R2

VCC

POT

VCC

ADC PINADC PIN

Gambar 6.2rangkaian pembagi tegangan dengan resistor seri dan potensio meter.

Potensio pada dasarnya adalah sebagai pembagi tegangan, dimana potensio ini

akan kompatibel dengan dua buah resistor yang dirangkai seri, seperti terlihat

pada gambar diatas. Dengan rangkaian pembagi tegangan kita dapat memberi

tegangan yang bervariasi ke ADC, tegangan yang didapat dari pembagi

tegangandapat dihitung menggunakan persamaan sebagai berikut,

Vout = ( R1/( R1+R2) ) x Vcc

Dari gambar rangkaian diatas, keluarannya dihubungkan ke input ADC, yaitu

misal ke PORTA.0 (ADC ch.0). untuk melihat hasil ADC, kita dapat memasang

rangkaian LED atau LCD, dalam contoh ini langsung kita tampilkan pada

LCD.

2)Pemrograman ADC

Register-register yang kita bahas diatas dalam pengelementsialnya akan diset

pada saat kita membuat proyek baru dengan wizard code vision. Untuk lebih

jelasnya, lakukan percobaan dibawah ini:

Lembar Kerja I

Alat dan Bahan

1...................................................................................................... T

rainer Mirkorontroler AVR ATMega8535/16/32 .................................................... 1 Unit

2...................................................................................................... I

SP Downloader ........................................................................................................ 1 Unit

Page 97: Bab i Pembelajaran Microcontroller

97

3...................................................................................................... K

omputer .................................................................................................................... 1 Unit

4...................................................................................................... S

oftware pendukung (Codevision AVR & Proteus) .................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan 1

Judul: Pemrograman ADC

Langkah Kerja:

1. Gambar rangkaian yang akan dibuat programnya

sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PC6PC7

PC2PC3PC4PC5

PC0PC1

VCC

POT

1 2S1

VCC

R110k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J1LCD 16x2 Char

R2

POT

PC

0P

C1

PC

2

PC

7P

C6

PC

4P

C5

VCCVCC

X111.0592MHz

22

22

Gambar 6.3 Diagram Skematik percobaan I.

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

Page 98: Bab i Pembelajaran Microcontroller

98

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Ikuti langkah pengaturan berikut, isi informasi

sebagai berikut :

Gambar 6.4 Setting ADC 8bit, referensi ADC pin AVCC, dengan clock

691.200KHz, PORTB output,PORTC LCD

6. Hubungkan rangkaian pembagi tegangan kesalah

satu pin pada PORTA, yang untuk contoh ini dihubungkan ke PINA.0 untuk

setting LCD, yaitu LCD ke PORTC. Generate file, save and exit. Simpan dengan

nama file adc.c, adc.prj, adc.cwp.

7. Tambahkan interuksi listing program berikut ini :

.........................................#include <mega8535.h>#include <delay.h>#include <stdio.h>

unsigned int adc;unsigned char nilai[16];

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>

#define ADC_VREF_TYPE 0x60// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){ADMUX=adc_input|ADC_VREF_TYPE;// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((ADCSRA & 0x10)==0);ADCSRA|=0x10;

Page 99: Bab i Pembelajaran Microcontroller

99

return ADCH;}// Declare your global variables here

void main(void){..................................................................................

.........................................

.........................................lcd_init(16);lcd_clear();lcd_gotoxy(0,0);lcd_putsf("Latihan Prgm ADC");delay_ms(50);while (1)

{// Place your code hereadc=read_adc(0);lcd_clear();sprintf(nilai,"nilai ADC=%d",adc);lcd_gotoxy(0,1);lcd_puts(nilai);delay_ms(300);};}

8. Kompilasi download dan perhatikan hasilnya pada

LCD dengan memutar potensiometer.

9. Perhatikan bagian program berikut ini :

#define ADC_VREF_TYPE 0x60// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){ADMUX=adc_input|ADC_VREF_TYPE;// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((ADCSRA & 0x10)==0);ADCSRA|=0x10;return ADCH;}

Blok-blok diatas adalah inisialisasi dan prosedur baca ADC yang dibentuk oleh

codevision. Untuk membaca ADC channel yang lain cukup dengan mengubah

instruksi menjadi seperti berikut :

data_adc=read_adc(1) ; //membaca ADC dichanel 1

Page 100: Bab i Pembelajaran Microcontroller

100

10. Ukur

menggunakan volt meter nilai tegangan pada kaki no dua potensio terhadap

ground, ambil 5 angka pengukuran, lengkapi tabel berikut:

NO TEGANGAN KAKI 2POTENSIO (VOLT)

NILAI YANGTAMPIL PADA LCD

KETERANGAN

1 123 2,545

Analisa

1. Bagaima

nakah hubungan antara nilai tegangan potensio dengan data yang tampil pada

LCD?

2. Berapaka

h tegangan maksimal dan nilai maksimal yang muncul pada LCD? Mengapa

demikian?

3. Ulangi

langkah 2 -8, hanya untuk langkah no 5 jangan memberikan tanda centang

pada opsi Use 8 bits, perhatikan data yang muncul pada LCD, adakah

perbedaan? Mengapa demikian?

4. Setelah

melalukan langkah 13, Berapakah tegangan maksimal dan nilai maksimal

yang muncul pada LCD? Mengapa demikian?

5. Manakah

yang lebih presisi, pada saat memberikan tanda centang pada opsi Use 8 bits

atau tidak memberikan tanda centang pada opsi Use 8 bits ? mengapa

demikian?

Latihan

1. Perhatika

n gambar rangkaian berikut

Page 101: Bab i Pembelajaran Microcontroller

101

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

2. Buat

program mikrokontroler supaya dapat menampilkan data ADC dan nilai

tegangan pada LCD.

3. Berdasar

kan gambar rangkaian diatas, dengan menggunakan fungsi if rancang dan

buatlah program, agar jika nilai ADC lebih dari 128 LED PB4-PB7 menyala

dan LED pada PB0-PB3 padam, dan jika nilai ADC kurang dari 128 LED

PB0-PB3 menyala dan LED pada PB4-PB7 padam.

4. Berdasar

kan gambar rangkaian diatas, tampilkan nilai data ADC pada baris ke 1 LCD

dan Tampilkan nilai tegangan potensio (pelajari kembali konsep ADC) pada

baris LCD ke 2, yang kedunya harus berubah secara otomatis saat potensio

diputar-putar.

5. Tambahk

an program no 3, sehingga jika nilai tegangan potensio

Kurang dari 1V, lampu pada PB0 menyala, sisanya padam

Kurang dari 2V, lampu pada PB0 dan PB1 menyala, sisanya padam

Kurang dari 3V, lampu pada PB0 –PB2 menyala, sisanya padam

Kurang dari 4V, lampu pada PB0 –PB3 menyala, sisanya padam

Kurang dari 5V, lampu pada PB0 –PB4 menyala, sisanya padam

Page 102: Bab i Pembelajaran Microcontroller

102

3. Rangkuman

1)ADC kependekan dari Analog to Digital Converter

2)Sinyal analog memiliki keadaan yang tak terbatas, sedangkan sinyal digital

hanya memiliki dua keadaan yaitu high dan low.

3)ADC berfungsi merubah sinyal analog menjadi data digital

4)Semakin tinggi resolusi ADC, semakin sensitif ADC tersebut terhadap

perubahan tegangan input yang sangat kecil/sedikit.

5)Semakin tinggi frekuensi sampling/clock ADC, semakin akurat konversi

data ADC.

6)Resulusi ADC ATMega 8535 adalah 8 bit dan maksimal 10bit.

7)Ukuran bit ADC menentukan nilai maksimal data ADC

8)Angka maksimal data ADC adalah 2n dengan n adalah ukuran bit

ADC,data maksimal ADC 8 bit adalah 28 (256),.

9)Register ADMUX, ADCSRA, dan SFIOR pada Atmega8335 harus diatur

sedemikian rupa agar ADC dapat difungsikan

10) Maksimal tegangan input ADC = tegangan referensi ADC

11) Data digital hasil konversi akan mencapaui saturasi (jenuh/ tidak bisa

naik lagi) terjadi saat tegangan input ADC = tegangan referensi yang

diberikan.

12) Tegangan referensi ADC pada mikrokontrol Atmega8535 adalah PIN

AVCC atau PIN AREF

13) Agar ADC berfungsi dengan baik ADC harus memiliki tegangan

referensi.

14) Persamaan konversi data ADC dapat dituliskan sebagai Tegangan =

(Data Terbaca / Nilai Max Data) * Tegangan referensi

Page 103: Bab i Pembelajaran Microcontroller

103

4. Evalusi

Diketahui sebuah system mikrokontroler memiliki rangkaian seprti pada

gambar dibawah:

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

5. Tugas:

Berdasarkan rangkaian diatas, buat program agar :

1. Pada baris LCD 1, tampil karakter “Pembacaan Data”, yang harus tampil secara

posisi center

2. Pada baris LCD 2, tampil data nilai data ADC

3. Keadaan awal semua LED padam, Jika nilai data ADC lebih dari 128, semua

LED menyala jika tidak semua LED padam

Page 104: Bab i Pembelajaran Microcontroller

104

1. Tujuan Kegiatan Belajar 8 :

Setelah mempelajari kegiatan belajar 8, diharapkan anda dapat :

Mengetahui timer/counter yang terdapat pada mikrokontrol ATMega8535 Mengetahui cara kera dan feature timer/counter pada mikrokontrol ATMega8535 Mengetahui cara perhitungan waktu timer Melakukan penghitungan waktu timer Memprogram mikrontrol untuk aplikasi pewaktu Memprogram mikrontrol untuk aplikasi jam digital, menggunakan fungsi

interupsi timer

2. Uraian Materi

1)Timer/Counter

Timer/Counter pada mikrokontroler merupakan hal yang hampir sama,

dan pada dasarnya bekerja dengan cara yang sama yaitu menghitung, yang

membedakan antar keduanya adalah apa yang dihitungnya, jika berfungsi sebagi

timer maka yang dihitung adalah pulsa internal yang berasal dari internal

mikrokontroler itu sendiri atau denyut jantung mikrokontrol tersebut, dan jika

berfungsi sebagi counter maka yang dihitung adalah pulsa yang bersal dari luar

atau pada umumnya adalah membaca dan menghitung jumlah perubahan logika

dari tinggi ke rendah atau rendah ke tinggi pada PIN tertentu.

Pada mikrokontrol ATmega8535 atau Atmega16 ataupun Atmega32

terdapat 3 buah timer, yaitu Timer/Counter 0 (8 bit), Timer/Counter 1 (16 bit)

dan Timer/Counter 2 (8 bit).

Maksud dari jumlah bit pada timer/counter adalah maksimal jumlah

bilangan yang dapat dihitung, misalkan jika timer/counter 8 bit maka nilai

maksimal penghitungan adalah 28 = 256 bilangan dan jika timer/counter 16 bit

maka nilai maksimal penghitungan adalah 216 = 65536 bilangan.

Timer/counter ATmega 8535 ada 3, yaitu :

(1) Timer/counter 0

Timer/counter 0 adalah 8 bit timer/counter dengan fitur sebagai berikut :

a.8 bit Timer/Counter 1 kanal.

b. Auto reload, yaitu timer akan dinolkan saat match compare.

KEGIATAN BELAJAR 8

Page 105: Bab i Pembelajaran Microcontroller

105

c.Dapat menghasilkan pulsa PWM dengan glich free

d. Frequence generator.

e.Prescaler 10 bit untuk timer

f. Membangkitkan interupsi saat timer overflow dan atau match compare.

(2) Timer/counter 1

Timer/counter 1 adalah 16 bit timer/counter dengan fitur sebagai berikut :

a.16 bit Timer atau counter

b. Memiliki 2 compare unit

c.Memiliki 2 register pembanding

d. Memiliki 1 input capture unit

e.Auto reload,timer akan dinolkan saat match compare

f. Dapat menghasilkan pulsa PWM dengan glich free dan periode yang

bisa dirubah-ubah

g. Frequence generator

h. Memiliki 4 buah sumber interupsi, yaitu TOV1,OCF1A,OCF1B dan

ICF1.

(3) Timer/counter 2

Timer/counter 0 adalah 8 bit timer/counter dengan fitur sebagai berikut :

a. 8 bit

Timer/Counter 1 kanal.

b. Auto

reload, yaitu timer akan dinolkan saat match compare.

c. Dapat

menghasilkan pulsa PWM dengan glich free

d. Frequenc

e generator.

e. Prescaler

10 bit untuk timer

f. Memban

gkitkan interupsi saat timer overflow dan atau match compare.

Setting register tidak kita lakukan saat penulisan program.kita

dapat langsung menyesetnya saat melakukannya dengan wizard new

Page 106: Bab i Pembelajaran Microcontroller

106

project. Jadi untuk register-register yang berkenaan dengan timer/counter

tidak kita bahas.agar lebih jelas tentang register pada timer/counter,anda

dapat melihat data sheet ATmega 8535.

Cara menggunakan ketiga timer diatas adalah dengan menyetting

register dari masing-masing timer/counter yang bersangkutan.namun

karena kita menggunakan codevisian AVR. Setting timer atau counter

dilakukan saat pembuatan proyek baru dimulai.

2)PERHITUNGAN WAKTU TIMER

(1) Perhitungan untuk timer 8bit

TCNT = (1+FFh) - ( )

Di mana :

TCNT : Nilai timer (Hex)

fCLK : Frekuensi clock (crystal) yang digunakan (HZ)

TTimer : Waktu timer yang diinginkan (detik)

N : Presecaler (1,8,64,256,1024)

Jika digunakan frekuensi clock sebesar 11,059200, dan dipilih clock value

sebesar 43,200 KHz, maka preskalernya adalah 256, karena

11,059200/256 = 43,200

1+FFh : Nilai maksimum timer adalah FFh dan overflow saat FFh keooh

Contoh :

Sebuah Timer 8 bit ingin menghasilkan frekuensi 40KHz setiap kali

interupsi, dengan frekuensi clock sebesar 11,059200MHz Presecaler

yang dipilih adalah 8 (Freq 1382,400 KHz), maka perhitungannya adalah:

Frekuensi 40KHz, maka periodanya adalah

t = 1/f,

sehingga t = 1/40000

t = 0,000025 detik

TCNT = (1+FFh) - ( )

Page 107: Bab i Pembelajaran Microcontroller

107

TCNT = (1+FFH) - ( )

TCNT = 100H – 35d

TCNT = 100H – 23H = DDH

Dengan demikian Nilai TCNT0 adalah DDH

(2) Perhitungan untuk Timer 16bit

TCNT = (1+FFFFh) - ( )

Di mana :

TCNT : Nilai timer (Hex)

fCLK : Frekuensi clock (crystal) yang digunakan (HZ)

TTimer : Waktu timer yang diinginkan (detik)

N : Presecaler (1,8,64,256,1024)

1+FFFFh : Nilai maksimum timer adalah FFFFh dan overflow saat FFFFhke ooooh

Contoh :

Diinginkan sebuah timer 16 bit berkerja selama 1 detik, dengan frekuensi

clock sebesar 11,059200 MHz dan presecaller 1024 maka diperoler nilai

TCNT sebesar :

TCNT = (1+FFFFh) - ( )

TCNT = 10000h – 10800d

TCNT = 10000h – 2A30h

TCNT = D5D0h

Dengan demikian, nilai TCNT1H = D5h dan TCNT1L = Doh

Maksimum waktu timer

Timer 16 bit AVR ATMega 16 dapat menghasilkan waktu tunda

maksimum sebesar 6,068055555 detik pada frekuensi 11,059200 MHz.

Dengan nilai maksimum FFFFh maka akan dihasilkan waktu timer selama:

Page 108: Bab i Pembelajaran Microcontroller

108

FFFFh = ( )

6535 = (Ttimer x 10800)

Ttimer = 6,06805555555 s

3. Lembar Kerja

Percobaan I

Membuat program nyala dan padam led selama delay waktu 1s menggunakan 1

Timer (Timer 16 bit). PORTB sebagai output dihubungkan dengan LED.

Alat dan Bahan

1. Trainer Mirkorontroler AVR ATMega8535/16/32

1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4.......................................................................................... Software

pendukung (Codevision AVR & Proteus)................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

Page 109: Bab i Pembelajaran Microcontroller

109

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 7.1 Digaram skematik percobaan 1

2. Buat project baru ,pilih Chip sesuai dengan tipe chip pada trainer, atur frekuensi

clock pada 11,0592MHz, atur PORTB sebagai output dengan keadaan awal nol,

pindahkan ke TAB timer1 dan lakukan konfigurasi seperti pada gambar dibawah

ini

Gambar 7.2 Konfigurasi Timer 1

3. Generate dan save, simpan dengan nama percobaan timer

4. Lengkapi program seperti pada listing berikut

#include <mega8535.h>

Page 110: Bab i Pembelajaran Microcontroller

110

bit ciri; // variabel global untuk flag timer

// Timer 1 overflow interrupt service routineinterrupt [TIM1_OVF] void timer1_ovf_isr(void){// Reinitialize Timer 1 valueTCNT1H=0xD5;TCNT1L=0xD0;// Place your code here

if(ciri==1) // periksa ciri{PORTB=0xff; // jika ciri = 1 (led Menyala)ciri =0; // clear ciri}else{PORTB=0x00; // jika ciri = 0 (led Padam)ciri =1; // set ciri}

}// Declare your global variables here

void main(void)............................................................................// Global enable interrupts#asm (“sei”)ciri =0; // kondisi awal ciri berlogika 0while (1){//place your code here

};}

5. Kompilasi dan download, perhatikan hasilnya,

Analisa

6. Hilangkan perintah TCNT1H=0xD5 dan TCNT1H=0xD0, kompilasi dan

download apa yang terjadi? Adakah pengaruhnya?

7. Kembalikan program seperti semula, pindahkan perintah TCNT1H=0xD5 dan

TCNT1H=0xD0, kedalam fungsi wahile(1), kompilasi dan download apa yang

terjadi? Adakah pengaruhnya?

8. Kembalikan program seperti semula, dan hilangkan perintah #asm (“sei”)

kompilasi dan download apa yang terjadi? Adakah pengaruhnya?

9. Kembalikan program seperti semula, rubah kondisi awal ciri menjadi logika 1

kompilasi dan download apa yang terjadi? Adakah pengaruhnya?

Kesimpulan Secara Umum :

Page 111: Bab i Pembelajaran Microcontroller

111

Percobaan II

Membuat tampilan program untuk menampilkan jam : menit : detik pada LCD 2X16,

LCD dihubungkan ke PORT C. Gunakan Compare Match Interrupt, kristal

11.059200 MHz/8 = 1382.400 kHz. Register OCR=0x96, sehingga periodenya

96h = ( )

6535 = (Ttimer x 1382400)

Ttimer = 1,0850694.10-4 = 108,50694.10-6 s = 100 us

Periodenya sekitar 100 us, jadi agar setara 1 detik harus dikali 10000.

Alat dan Bahan

1.......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

Page 112: Bab i Pembelajaran Microcontroller

112

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

Gambar 7.3 Konfigurasi Timer 2

2. Buat project baru ,pilih Chip sesuai dengan tipe chip pada trainer, atur frekuensi

clock pada 11,0592MHz, atur PORTB sebagai output dengan keadaan awal nol,

pindahkan ke TAB timer2 dan lakukan konfigurasi seperti pada gambar halaman

berikut ini:

Gambar 7.4 konfigurasi timer 2 pada CodeWizard

3. Generate dan save, simpan dengan nama percobaan timer

4. Lengkapi program seperti pada listing berikut

#include <mega8535.h>#include <stdlib.h>

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC

Page 113: Bab i Pembelajaran Microcontroller

113

#endasm#include <lcd.h>unsigned int kali=0,detik=0,menit=0,jam=0;unsigned char cdetik[10],cmenit[10],cjam[10];

// Timer 2 output compare interrupt service routineinterrupt [TIM2_COMP] void timer2_comp_isr(void){// Place your code hereTCNT2=0;//Jika sudah compare match, set awal lagiif(++kali==10000)//periksa apakah sudah mencapai 10.000 kaliinterupsi timer2{if (++detik==60)

{detik=0;lcd_clear();if (++menit==60)

{menit=0;lcd_clear();

if (++jam==24){jam==0;lcd_clear();

}}

}

kali=0;itoa(detik,cdetik);// mengubah integer detik jadi karakterpd string cdetik

itoa(menit,cmenit);itoa(jam,cjam);lcd_gotoxy(0,0);lcd_putsf("*Jam Digital Ku*");lcd_gotoxy(9,1);lcd_putsf(":");lcd_gotoxy(10,1);lcd_puts(cdetik);lcd_gotoxy(6,1);lcd_putsf(":");lcd_gotoxy(7,1);lcd_puts(cmenit);lcd_gotoxy(4,1);lcd_puts(cjam);}

}// Declare your global variables here

void main(void){............................................While(1)

{//Place your code here

}}

5. Kompilasi dan download, perhatikan hasilnya,

Page 114: Bab i Pembelajaran Microcontroller

114

Analisa

6. Hilangkan perintah #include<stdlib.h>, kompilasi dan download apa yang

terjadi? Adakah pengaruhnya?

7. Kembalikan program seperti semula, dan hilangkan perintah kali=0 kompilasi

dan download apa yang terjadi? Adakah pengaruhnya?

8. Kembalikan program seperti semula, dan hilangkan semua perintah yang

mengandung itoa kompilasi dan download apa yang terjadi? Adakah

pengaruhnya?

9. Berapakah seharusnya nilai perioda timer yang didapat jika nilai clocknya adalah

11.0592/1024?

10.Tambahkan 4 buah fungsi tombol untuk pengaturan kalibrasi jam dan menit,

bagaimanakah programnya?

Latihan

Modifikasi program jam diatas sehingga memiliki tombol UP, DOWN, SET, MENU

untuk kalibrasi/pengaturan jam

Rangkuman

1. Terdapat tiga buah timer/counter pada mikrokontrol ATMega8535, yaitu Timer 0,

Timer 1, Timer 2

2. Timer 0 kapasitas 8 bit, Timer 1 kapasitas 16 bit, Timer 2 kapasitas 8 bit

3. Cara kerja timer adalah menghitung clock dari mikrokontrol, sedangkan counter

menghitung clock/pulsa yang berasal dari luar mikrokontrol.

4. Lama pewaktuan mengguanakanTimer sangat dipengaruhi oleh nilai clock dari

mikrokontrol ATMega8535

5. Overflow akan terjadi jika timer menghitung melebihi kapasitas kemampuan

timer, jika timer 8 bit maka maksimal akan menghitung sebanyak 28 atau 256 kali

atau dalam range 0 -255

6. Jika terjadi overflow nilai timer akan kembali menjadi nol, dan mulai mnghitung

lagi dari nol

Kesimpulan Secara Umum :

Page 115: Bab i Pembelajaran Microcontroller

115

7. Overflow interupt yaitu interupsi yang dilaksanakan jika terjadi overflow

8. Compare match interupt yaitu interupsi yang dilaksanakan jika nilai perhitungan

timer sama dengan nilai compare

9. Itoa digunakan untuk mengubah bilangan bentuk integermenjadi bentuk char

1. Tujuan Kegiatan Belajar 9 :

Setelah mempelajari kegiatan belajar 9, diharapkan anda dapat :

Mengetahui pengerttian Pulse Witdh Modulation (PWM)

Mengetahui fungsi dan aplikasi Pulse Witdh Modulation (PWM)

Memahami konsep dasar cara kerja Pulse Witdh Modulation (PWM)

Mengatur register mikrokontrol untuk untuk aplikasi pemrograman PulseWitdh Modulation (PWM)

Memprogram mikrokontrol untuk aplikasi pengaturan tegangan menggunakan(PWM)

2. Uraian Materi

1) Pengertian Pulse Witdh Modulation (PWM)

Pulse width modulation menggunakan gelombang kotak dengan duty circle

tertentu menghasilkan berbagai nilai rata-rata tegangan dari gelombang tersebut.

Pada umumnya PWM digunakan pada aplikasi pengaturan tegangan dengan

KEGIATAN BELAJAR 9

Page 116: Bab i Pembelajaran Microcontroller

116

tujuan efektifitas daya. Jika kita menganggap bentuk gelombang kotak f(t)

dengan nilai batas bawah ymin,batas atas ymax dan duty circle D, seperti dapat

dilihat pada gambar dibawah ini.

Gambar 8.1 Gelombang kotak yang memiliki y max,ymin dan D

Nilai rata-rata dari bentuk gelombang diatas adalah :

Jika f(t) adalah gelombang kotak, maka nilai ymax adalah dari 0 < t < D.T dan nilai

ymin dari D.T < t < T.dari pernyataan diatas didapat :

Persamaan diatas dapat disederhankan dalam berbagai kasus dimana ymin=0

sehingga kita mendapatkan bentuk persamaan akhir y= D. ymax dari persamaan

ini jelas bahwa nilai rata-rata dari sinyal (y) secara langsung bergantung pada

duty circle D.

Gambar 8.2 Duty Circle PWM

2) Hubungan antara duty circle dengan nilai rata-rata tegangan

Duty circle menyatakan presentase keadaan logika high (pulse) dalam satu

periode sinyal.satu siklus diawali oleh transisi low to high dari sinyal dan berakhir

pada transisi berikutnya. Selama satu siklus, jika waktu sinyal pada keadaan high

sama dengan low maka dikatakan sinyal mempunyai dutycircle 50%.

Page 117: Bab i Pembelajaran Microcontroller

117

Gambar 8.3 duty circle VS Register OCR pada past PWM

Semakin besar nilai data pada register OCR ,maka semakin tinggi juga nilai rata-

rata tegangan DC, contoh semakin besar dutycircle semakin terang nyala LED.

Contoh program pengaturan tegangan LED menggunakan PWM :

PORTB sebagai output,PORTA sebagai input,gunakan Timer 0 sebagai

pembangkit pulsa PWM.

LEMBAR KERJA

Percobaan I Aplikasi PWM pada LED

Memprogram mikrokontrol untuk mengatur terang redup nyala lampu LED

Alat dan Bahan

1. ...................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32........................................... 1 Unit

2. ...................................................................................... ISP

Downloader.......................................................................................... 1 Unit

3. ...................................................................................... Komputer

1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

Page 118: Bab i Pembelajaran Microcontroller

118

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

Gambar 8.4 Gambar percobaan PWM

2. Buat

program menggunakan baru, dengan clock sebesar 11.059200MHz, Chip

menggunakan ATMega8535 atau sesuai dengan mikrokontrol yang digunakan,

dan atur PORTB.3 sebagai output.

3. Atur

timer 0 dengan clock value 11.059200, mode Fast PWM top = FFh, out put

Non-Inverted PWM, sehingga seperti tampilan pada gambar dibawah ini

Page 119: Bab i Pembelajaran Microcontroller

119

Gambar 8.4 pengaturan PWM melalui Code Wizard

4. Lengkapi

listing program sehingga seperti berikut :

.................

.................

#include <mega8535.h>#include <delay.h>Unsigned char a;......................Void main (void){................................................While (1){OCR0=a;delay_ms(100);a=a+5;}

}

5. Kompilas

i dan perhatikan nyala LED.

Page 120: Bab i Pembelajaran Microcontroller

120

Analisa

1. Ganti

perintah a=a+5; dengan a=a+10; atau coba dengan angka lain, kompilasi dan

perhatikan reaksi pada LED

2. Ganti

perintah OCR0=a; dengan OCR0=10 , OCR0=90, OCR0=200, atau coba

dengan angka lain, kompilasi dan perhatikan reaksi pada LED

3. Apa yang

terjadi jika perintah OCR0=a; dimatikan?

4. Jelaskan

fungsi dari register OCR0 !

Percobaan II Aplikasi PWM menggunakan interupsi Timer

Memprogram mikrokontrol untuk mengatur terang redup nyala lampu LED

Alat dan Bahan

1. ....................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32 ............................................. 1 Unit

2. ....................................................................................... ISP

Downloader ............................................................................................ 1 Unit

3. ....................................................................................... Kompute

r............................................................................................................... 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

Page 121: Bab i Pembelajaran Microcontroller

121

1. Gambar rangkaian yang akan dibuat programnya sama seperti percobaan

sebelumnya (gambar 8.4).

2. Buat

program menggunakan baru, dengan clock sebesar 11.059200MHz, Chip

menggunakan ATMega8535 atau sesuai dengan mikrokontrol yang digunakan,

dan atur semua PORTB sebagai output dengan keadaan awal nol.

3. Atur

timer 0 dengan clock value 11.059200, mode Normal top = FFh, dengan

overflow interupt dicentang, sehingga seperti tampilan pada gambar halaman

berikut ini:

Gambar 8.5 pengaturan interupt timer 0

4. Lengkapi

listing program sehingga seperti berikut :

.................

.................

#include <mega8535.h>#include <delay.h>Unsigned char a,x,nilai;

// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Place your code here

Page 122: Bab i Pembelajaran Microcontroller

122

x++;if(x<nilai) {PORTB.0=1} else {PORTB.0=0;}

}

............

..........Void main (void){................................................

While (1){nilai=a;delay_ms(100);a=a+5;

}}

5. Kompilas

i dan perhatikan nyala LED.

6. Tambahk

an perintah pada interupsi timer0 overflow sehingga menjadi.

// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Place your code herex++;if(x<nilai) {PORTB.0=1} else {PORTB.0=0;}if(x<nilai-30) {PORTB.1=1} else {PORTB.1=0;}if(x<nilai-60) {PORTB.2=1} else {PORTB.2=0;}

}

7. Kompilas

i dan perhatikan nyala LED.

Page 123: Bab i Pembelajaran Microcontroller

123

1. Tujuan Kegiatan Belajar 10 :

Setelah mempelajari kegiatan belajar 10, diharapkan anda dapat :

Mengetahui sensor temperatur LM35 Mengetahui karakter dasar sensor temperatur LM35 Mengetahui teknik manipulasi data digital Memprogram mikrokontrol untuk aplikasi sensor temperatur LM35 Memprogram mikrokontrol untuk aplikasi kontrol temperatur

2. Uraian Materi

1)Sensor Temperatur LM 35

Sensor suhu LM35 merupakan komponen elektronika yang berfungsi

untuk mengubah besaran fisis yang berupa suhu menjadi besaran listrik berupa

tegangan. Sensor suhu LM35 memiliki parameter bahwa setiap kenaikan 1ºC

tegangan keluarannya naik sebesar 10mV dengan batas maksimal keluaran

sensor adalah 1,5 V pada suhu 150°C. Misalnya pada perancangan

menggunakan sensor suhu LM35 kita tentukan keluaran ADC mencapai full

KEGIATAN BELAJAR 10

Page 124: Bab i Pembelajaran Microcontroller

124

scale pada saat suhu 100°C, sehingga saat suhu 100°C, nilai tegangan keluaran

sensor suhu lm35 adalah 1 V.

Tegangan keluaran transduser (10mV/°C x 100°C) = 1V.

Gambar 9.1 Bentuk Fisik LM 35

Pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah

digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0

Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat

digunakan antar 4 Volt sampai 30 Volt.

2)karakteristik dari sensor suhu LM35.

Berikut adalah karakteristik dari sensor temperatur LM35

• Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan

suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.

• Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC

• Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.

• Bekerja pada tegangan 4 sampai 30 volt.

• Memiliki arus rendah yaitu kurang dari 60 µA.

• Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1

ºC pada udara diam.

• Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.

• Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.

3)Deskripsi kerja

Prinsip kerja sistem pengukuran suhu menggunakan LM35 dapat di lihat dari

diagram box dibawah ini :

LM35Sistem

MikrokontolerDisplay/Aktuator

Page 125: Bab i Pembelajaran Microcontroller

125

Gambar 9.2

diagram BOX Sistem pengukur suhu menggunakan Sensor LM35

Selama prosesnya, pengukuran suhu melakukan tiga operasi utama diantaranya:

1. Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa

suhu menjadi besaran elektris tegangan. Sensor suhu LM35 memiliki

parameter bahwa setiap kenaikan 1ºC tegangan keluarannya naik sebesar

10mV.

2. Data sensor suhu berupa sinyal analog kemudian di konversi menjadi data

digital melalui Analog to Digital Converter (ADC) pada mikrokontroler.

Data digital diolah oleh mikrokontroler sebagai pusat pengendali, dan

menjalankan perintah sesuai dengan program yang diberikan

3. Hasil pengelolaan informasi tersebut kemudian ditampilkan menggunakan

display LCD.

Untuk memperoleh persamaan/rumus konversi dari data ke temperatur maka

dapat diperoleh dengan cara sebagai berikut:

• ADC yang digunakan 8 bit, sehingga akan diperoleh range 0 – 255 (256

bilangan) dari 28

• Resolusi LM35 adalah 10mV/0C

• Sehingga besar tegangan yang diperlukan untuk setiap perubahan nilai data

sebanyak 1 angka adalah : 5V/255 = 0,0196 V

• Dengan demikian data akan berubah sebanyak satu angka jika terjadi

perubahan tegangan sebesar 0,0196V pada input ADC, misal dari 1 ke 2 atau

4 ke 5 atau dari 100 ke 99 memerlukan perubahan tegangan sebesar 0,0196V

Untuk mempermudah konversi maka data yang ada perlu dikonversi menjadi

nilai tegangan, dengan persamaan:

Tegangan = Data_terbaca x 0,0196

Dimana :

Tegangan dalam satuan volt

Data_terbaca adalah nilai data ADC

0,0196 konstanta yang diperoleh dari 5/255, karena ADC nya 8 bit

Page 126: Bab i Pembelajaran Microcontroller

126

Karena sensor LM35 resolusinya dalam mili volt, sehingga persamaan diatas

perlu dirubah menjadi milivolt, sehingga:

Tegangan = Data_terbaca x 0,0196 x 1000 (dalam milivolt)

Sehingga menjadi

Tegangan = Data_terbaca x 19,6 (dalam milivolt)

Karena untuk menjadi 1 derajat perlu 10mV sehingga konversi dalam derajat

adalah:0C = Data_terbaca x 19,6 /10

Sehingga

Derajat Celcius = data_terbaca x 1,96

Untuk lebih memahami maka coba lakukan percobaan berikut

Lembar Kerja I

Alat dan Bahan

1. Trainer Mirkorontroler AVR ATMega8535/16/32

1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Page 127: Bab i Pembelajaran Microcontroller

127

Percobaan 1

Judul: Pemrograman ADC

Langkah Kerja:

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

PB0PB1PB2PB3PB4PB5PB6PB7

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC7PC6PC5PC4PC3PC2PC1PC0

PB0PB1PB2PB3PB4PB5PB6PB7

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

0P

C1

PC

2

PC

6P

C7

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Untuk setting IC(Chip yang digunakan) pilih Chip,

isi informasi sebagai berikut:

Setting clock pada 11.059200,chip ATmega 8535 atau disesuaikan dengan chip

yang digunakan dan PORTB sebagai output, LCD pada PORT C, Aktifkan ADC

8bit, referensi ADC AVCC Pin, Auto triger source NONE dan clock maksimal

Page 128: Bab i Pembelajaran Microcontroller

128

(a) (b) (c)

Gambar 9.3(a) Inisialisasi PORTA sebagai Input(b) Inisialisasi PORTC sebagai Output LCD(c) Pengaktifan Fungsi ADC

6. Tambahkan interuksi listing program berikut ini :

#include <mega8535.h>unsigned char adc,bar[16];int suhu1,suhu;unsigned char x=0;

Void main(void){............................................while (1)

{// Place your code herelcd_clear();adc=read_adc(1);suhu1=adc;suhu=1.92*suhu1; // rumus sensor suhu

LM35sprintf(bar,"Data ADC:%d",adc);lcd_gotoxy(0,0);lcd_puts(bar);

sprintf(bar,"Temperatur:%dβC ",suhu);lcd_gotoxy(0,1);lcd_puts(bar);delay_ms(300);}

}

7. Kompilasi dan download, amati hasilnya

8. Atur PORTB sebagai output dengan keadaan awal padam, Rubah program

menjadi seperti berikut,

#include <mega8535.h>unsigned char adc,bar[16];int refernsi,suhu1,suhu;unsigned char x=0;

Void main(void){............................................referensi=25;while (1)

{// Place your code herelcd_clear();adc=read_adc(1);

Page 129: Bab i Pembelajaran Microcontroller

129

suhu1=adc;suhu=1.92*suhu1; // rumus sensor suhu

LM35sprintf(bar,"Data ADC:%d",adc);lcd_gotoxy(0,0);lcd_puts(bar);

sprintf(bar,"Temperatur:%d βC",suhu);lcd_gotoxy(0,1);lcd_puts(bar);

if(suhu>referensi) {PORTB = 0xff;}else {PORTB = 0x00;}

}

}

9. Kompilasi dan download, beri stimulasi panas pada sensor LM35 amati

bagaimana perubahan data dan temperatur, serta pengaruhnya terhadap nyala

lampu.

Analisa

1. Rubah nilai referensi menjadi 28, beri stimulasi panas pada sensor LM35 amati

bagaimana perubahan data dan temperatur, serta pengaruhnya terhadap nyala

lampu, kompilasi dan download!

2. Rubah nilai referensi menjadi dengan nilai bebas antara 30 - 50, beri stimulasi

panas pada sensor LM35 amati bagaimana perubahan data dan temperatur, serta

pengaruhnya terhadap nyala lampu, kompilasi dan download

3. Apa pengaruh nilai referensi mengapa demikian?

4. Apakah nilai temperatur yang muncul sama dengan hasil nilai suhu=1.92*data

ADC ? jelaskan!

5. Perhatikan nilai temperatur yang muncul pada LCD !, termasuk bilangan

bulatkah? Jika iya bagaimana supaya yang tampil adalah bilangan pecahan?

Kesimpulan Secara Umum :

Page 130: Bab i Pembelajaran Microcontroller

130

Latihan

1. Buat

program untuk mendeteksi temperatur menggunakan sensor temperatur LM35

berbasis mikrikontroler, menggunakan ADC 10bit, temperatur ditampilkan pada

LCD dalam satuan derajat celcius.

2. Buat

program untuk mendeteksi temperatur menggunakan sensor temperatur LM35

berbasis mikrikontroler, menggunakan ADC 10bit, temperatur ditampilkan pada

7 segment (tampilkan 2 digit bilangan tanpa koma).

1. Tujuan Kegiatan Belajar 11 :

Setelah mempelajari kegiatan belajar 11, diharapkan anda dapat :

Mengetahui konsep pembacaan pulsa Memahami konsep pembacaan transisi rendah/tinggi Mengetahui interupsi eksternal Mengetahui fungsi interupsi eksternal Memprogram mikrokontroler AVR untuk aplikasi interupsi eksternal Memprogram mikrokontroler AVR sebagai counter dengan memanfaatkan

fasilitas interupsi eksternal.

KEGIATAN BELAJAR 11

Page 131: Bab i Pembelajaran Microcontroller

131

2. Uraian Materi

1)Konsep pembacaan sinyal

Sebuah counter atau penghitung berbasis elektronik seperti

mikrokontroler atau PLC pada umumnya menggunakan sensor atau sejenis

detektor untuk mengetahui adanya benda yang harus dihitung. Keluaran dari

deterktor atau sensor tersebut biasanya berbentuk besaran listrik yang berupa

arus atau tegangan sehingga lebih mudah jika akan diproses menggunakan

kontroler berbasis elektronik.

Jika kita menggunakan mikrokontrol untuk melakukan proses

penghitung agar lebih mudah adalah dengan mendeteksi kondisi logika dari PIN

mikrokontrol tersebut, dengan ketentuan bahwa PIN yang bersangkutan

terhubung dengan keluaran sensor atau detektor. Misalkan jika PIN berkondisi

logika rendah maka nilai variabel penghitung ditambah 1, dan jika PIN

berkondisi logika tingi maka nilai variabel penghitung tidak ditambah atau

dikurangi. Namun jika menggunakan cara tersebut sebagai penghitung masih

terdapat kelemahan, yaitu kondisi logika PIN secara terus menerus berlogika

rendah dikarenakan benda yang dihitung berhenti tepat didepan sensor, maka

secara otomatis proses penghitungan akan berlangsung terus menerus padahal

benda yang dihitung masih benda yang sama.

Sehingga untuk menghindari hal seperti diatas, pembacaan kondisi

logika PIN digantikan dengan pembacaan transisi perubahan logika, sehingga

dikenal istilah Falling edge (keadaan jatuh/ transisi tinggi ke rendah), atau

Rissing edge (keadaan naik/transisi rendah ke tinggi), falling edge adalah

keadaan dimana PIN berlogika tinggi tiba-tiba berlogika rendah (jatuh) dan

counter hanya akan menghitung 1 meskipun logikanya terus menerus dalam

keadaan rendah karena hanya membaca 1 perubahan tinggi ke rendah.

Sedangkan untuk rissing edge adalah keadaan dimana PIN berlogika i

rendah tiba-tiba berlogika tingg (naik) dan counter hanya akan menghitung 1

meskipun logikanya terus menerus dalam keadaan tinggi karena hanya

membaca 1 perubahan rendah ke tinggi, atau ada juga yang mendeteksi setiap

transisi perubahan baik itu naik atau turun, sehingga jika pada suatu PIN terjadi

perubahan dari tinggi ke rendah dan rendah ke tinggi secara berurutan maka

counter akan menghitung 2, karena terdapat dua perubahan kondidi pada PIN.

Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini,

Page 132: Bab i Pembelajaran Microcontroller

132

Gambar 10.1 Pembacaan kondisi Falling Edge

Gambar 10.2 Pembacaan kondisi Rissing Edge

Gambar 10.3 Pembacaan kondisi Setiap perubahan (Any Change)

2)Aplikasi External Interupt Request

Sebagaimana telah dibahas sebelumnya bahwa dalam mikrokontrol

terdapat fasilitas interupt yang bisa digunakan untuk menyela program utama

untuk mengerjakan program lain atau bahkan untuk menghentikan program

utama untuk sesaat. Terdapat 21 fasilitas interupsi pada mikrokontrol AVR

ATMega8535, namun jika semua sumber inetrupsi muncul secara bersamaan

maka akan dilakukan prioritas pelayanan, dengan reset adalah prioritas tertinggi

dan disusul kemudian oleh INT0 (Exteranal Request Interupt 0) dan INT1

(Exteranal Request Interupt 1) baru kemudian timer dan seterusnya.

INT0 (Exteranal Request Interupt 0), INT1 (Exteranal Request

Interupt 1) dan INT2 (Exteranal Request Interupt 2) merupakan salah satu

interupsi yang bersumber dari luar sistem mikrokontroler, tetapi yang memiliki

V

t

Perubahan yang terbaca/pulsa yang dihitung

High

Low

V

t

Perubahan yang terbaca/pulsa yang dihitung

High

Low

V

t

Perubahan yang terbaca/pulsa yang dihitung

High

Low

Page 133: Bab i Pembelajaran Microcontroller

133

prioritas cukup tinggi adalah INT0 dan INT1 tabel berikut menunjukan kaki

atau pin yang dapat digunakan untuk eksternal interupt request.

Tabel 10.1 PIN interrupt

JENIS INTERUP PIN

INT0 PIND.2

INT1 PIND.3

INT2 PINB.2

Dengan melihat tabel 10.1 jika kita akan menggunakan sensor atau

saklar sebagai sumber interusi maka, kita hanya tinggal menghubungkan saja ke

salah satu dari tiga PIN diatas, Register register yang perlu disetting untuk

menggunakan fasilitas interrupt adalah MCUCR, MCUSR, GICR, dan GIFR.

Untuk lebih memahami fungsi dari intersupsi eksternal lakukan percobaan berikut,

Lembar Kerja

Percobaan I Aplikasi Eksternal interupt

Counter menggunakan interupsi eksternal

Alat dan Bahan

1. .......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2. .......................................................................................... ISP

Downloader............................................................................................... 1 Unit

Page 134: Bab i Pembelajaran Microcontroller

134

3. .......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

gndgndgndgndgnd

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

pb2pb1pb0

pb4pb3

PB7PB6PB5

gndv ccrst

pd0

pd3pd2pd1

pd5pd4

pa1pa0

pd6

pa4pa3pa2

pa6pa5

gndarefpa7

pc6pc7

v cc

pc4pc5

pc1pc2pc3

pc0

X2

11.0592MHzC3

22p

C4

22p

pd7

gnd

12345678910111213141516

LCD116 CHAR

vcc

pc1pc0

pc2

pc5pc4

pc7pc6

v cc gnd

gnd

v cc1 3

2

R16VR 20K

1 23456789

C

R17

pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5

pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2

pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3

pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6

pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb012

D38

12

D40

12

D41

12

D42

12

D43

12

D44

12

D45

12

D46

21

54

VCC

Gambar 10.4 Rangakaian Percobaan I

2. Buat program menggunakan baru, dengan clock sebesar 11.059200MHz, Chip

menggunakan ATMega8535 atau sesuai dengan mikrokontrol yang digunakan, dan

atur semua PORTB sebagai output dengan keadaan awal nol, PORTD.2 input

dengan pullup internal aktif dan LCD pada PORTC

3. Hubungkan modul H-brigde motor driver ke PORTD trainer mikrokontroler.

4. Atur tab External IRQ dan berikan tanda centang pada INT0 Enabled dengan

mode Falling Edge

Page 135: Bab i Pembelajaran Microcontroller

135

Gambar 10.5 interup pada codewizard

5. Generate save and exit. Simpan dengan nama file int_1.c, int_1.prj, int_1.cwp,

6. Lengkapi listing program seperti berikut

#include <mega16.h>#include <stdio.h>#include <delay.h>

unsigned char a, buf[16];

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>

// External Interrupt 0 service routineinterrupt [EXT_INT0] void ext_int0_isr(void){// Place your code herea++;

}

....................................

....................................

....................................#asm("sei")

while (1){// Place your code heresprintf(buf,"angka:%d",a);lcd_gotoxy(0,0);lcd_puts(buf);

};

7. Kompilasi,download dan perhatikan hasilnya pada LCD, halangi sensor dengan

kertas gelap kemudian lepas dan tutup kembali bagaimana reaksinya.

Analisa

1. Apa yang terjadi jika sensor tiba-tiba dihalangi tanpa dilepas penghalangnya?,

mengapa demikian?

Page 136: Bab i Pembelajaran Microcontroller

136

2. Apa yang terjadi jika sensor sedang terhalangi tiba-tiba dilepas penghalangnya, dan

dibiarkan terbuka tanpa di halangi terus menerus?, mengapa demikian?

3. Berapakah maksimal angka hitungan yang muncul pada LCD? Mengapa demikian?

4. Manakah yang harus di ubah dari listing program diatas jika ingin menghitung

hingga 1023 pulsa?mengapa demikian?

Latihan

1. Buat program dengan memodifikasi program diatas, sehingga mikrokontrol hanya

menghitung 512 pulsa, dan setelah 512 hitungan kembali ke nol!

2. Buat program dengan memodifikasi program diatas, sehingga mikrokontrol hanya

menghitung 12 pulsa untuk varibel a, dan setelah 12 hitungan variabel a kembali ke

nol dan variabel b bertambah 1, maksimal hitungan variabel b adalah 10. Nilai kedua

variabel ditampilkan pada LCD.

Rangkuman

1. Falling edge hanya membaca perubahan pulsa pada transisi tinggi ke rendah

2. Rissing edge hanya membaca perubahan pulsa pada transisi rendah ke tinggi

3. Any change akan membaca setiap perubah transisi logika

4. INT0 dan INT1 adalah interupsi prioritas tertinggi setelah reset

5. Saat interupsi, program utama akan ditinggalkan, dan akan menjalahkan program

yang ditunjukan oleh vektor interupsi, dan akan kembali ke program utama jika

program interupsi selesai

6. INT0 dan INT1 sangat cocok untuk aplikasi counter

7. INT0 dan INT1 sangat cocok untuk mendekti perubahan transisi sinyal digital yang

tiba-tiba dan sangat cepat

Lembar Kerja I : Dasar Input Output

Alat dan Bahan

III. LEMBAR KERJA

Page 137: Bab i Pembelajaran Microcontroller

137

1................................................................................................ Trainer

Mirkorontroler AVR ATMega8535/16/32 ....................................................... 1 Unit

2................................................................................................ ISP

Downloader ...................................................................................................... 1 Unit

3................................................................................................ Kompute

r ......................................................................................................................... 1 Unit

4................................................................................................ Software

pendukung (Codevision AVR & Proteus) ........................................................ 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan

komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah

diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan

kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai

dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan I

Judul : Dasar Input Output dan Penggunaan Kompilator

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini

(skema sama seperti pada trainer)

Page 138: Bab i Pembelajaran Microcontroller

138

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 4.2 Diagram skematik Percobaan I

2. Buka program CodevisionAVR, klik menu FILE NEW Project YES hingga

muncul tampilan berikut

Gambar 4.3 Pengaturan Chip

3. Pilih ATmega 8535 (atau sesuai tipe yang digunakan) untuk chipnya dan setting

cloknya 11.059200 (atau sesuai dengan X-tall yang digunakan)

Page 139: Bab i Pembelajaran Microcontroller

139

Gambar 4.2 Pengaturan register Input dan output

4. Atur untuk bagian PORT, pilih PORT A, Atur atur sebagai INPUT dan rubah Value

menjadi P (Pullup)

5. Atur Port B dan setting sebagai output dan value low (lihat gambar)

6. Klik File Generate,Save and Exit

7. Ikuti petunjuk penyimpanan file. Bila perlu ganti folder penyimpanannya.

8. Simpandengan nama project_pertama.c, project_pertama.prj dan project_pertama.cwp.

pada folder kelas dan nama anda masing-masing

9. Selanjutnya akan tampak layar dengan kerangka program, seperti terlihat pada gambar

halaman berikut ini:

Page 140: Bab i Pembelajaran Microcontroller

140

Keterangan versiprogram danidentitas

Fungsi Pustaka

Awal Fungsi Utama

InisialisasiInput danOutput

Page 141: Bab i Pembelajaran Microcontroller

141

Gambar 4.3 Bagan Program

InisialisasiTimer

InisialisasiTimer

InisialisasiInterupt

InisialisasiAnalogKomparator

Fungsi pengulangantak berhingga

Page 142: Bab i Pembelajaran Microcontroller

142

10.Proses seting selesai dan setting I/O untuk PORT A sebagi Input terpullup dan PORT

B adalah sebagai output dengan kondisi Low.

11.Tambah kode berikut:

Void main (void){//declare your local variabel hereUnsigned char data; // lokal variabel..........

Tambahkan intruksi sehingga tampak seperti berikut :

............while (1)

{// Place your code heredata = PINA; //tambahkan interuksi iniPORTB = data;};}

12.Untuk proses mendownload bisa langsung kita lakukan dengan memilih menu project

make atau dengan mengklik icon namun sebelum itu kita harus

menyettingnya terlebih dahulu dengan memilih menu Project Configure

Aftermake Kemudian Klik Program The Chip OK, jika trainer sudah aktif,

downloader terpasang dengan benar, maka akan muncul tampilan seperti berikut:

Gambar 4.4 Proses Download

13.Jika terjadi error, tuliskan maksud dari pesan error tersebut dan sertakan solusinya

14.Tekan Tombol secara perlahan dan acak satu persatu, perhatikan LED dan amati catat

apa yang terjadi, pada Tabel berikut.

NO SAKLAR LED REAKSI LED1 PINA.0 PORTB.02 PINA.1 PORTB.13 PINA.2 PORTB.24 PINA.3 PORTB.35 PINA.4 PORTB.46 PINA.5 PORTB.57 PINA.6 PORTB.68 PINA.7 PORTB.7

Page 143: Bab i Pembelajaran Microcontroller

143

15.Tuliskan Analisa program, Analisa error dan kesimpulan percobaan I pada kolom

berikut:

Analisa:

Kesimpulan:

Page 144: Bab i Pembelajaran Microcontroller

144

Percobaan 2

Judul: Pemrograman PORT Secara byte dan bit

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini (skema sama seperti pada

trainer)

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 4.5 Diagram skematik latihan I

2. Buka program CodevisionAVR, klik menu FILE NEW Project YES

hingga muncul tampilan berikut

Gambar 4.6 Pengaturan Chip

3. Pilih ATmega 8535 (atau sesuai tipe yang digunakan) untuk chipnya dan setting

cloknya 11.059200 (atau sesuai dengan X-tall yang digunakan)

Gambar 4.7 Pengaturan Register Input dan Output

Page 145: Bab i Pembelajaran Microcontroller

145

4. Atur untuk bagian PORT, pilih PORT A, Atur atur sebagai INPUT dan rubah

Value menjadi P (Pullup)

5. Atur Port B dan setting sebagai output dan value low (lihat gambar)

6. Klik File Generate,Save and Exit

7. Ikuti petunjuk penyimpanan file. Bila perlu ganti folder penyimpanannya.

8. Simpan dengan nama project_2.c, project_2.prj dan project_2.cwp. pada folder

kelas dan nama anda masing-masing

9. Tambahkan pustaka tunda dibagian header:

#include <mega8535.h> // blok header#include <delay.h> // tambahkan library delaydisini....................................Tambahkan interuksi berikut :void main(void){..........// Place your code here#asm {”cli”)

PORTB=0xFF;delay_ms(500); // memanggil delay dari librari

delay.PORTB=0XF0;delay_ms(500);

#asm(”sei”)};

}

10. Amati dan tuliskan apa yang terjadi pada led, pada kolom berikut

11. Buat project baru dengan nama project_3, dengan rangkaian, langkah kerja dan

inisialisasi sama seperti pada langkah 1-8.

Reaksi LED langkah 9:

Page 146: Bab i Pembelajaran Microcontroller

146

12. Tambahkah kode berikut, kemudian kompilasi dan download

#include <mega8535.h>#include <delay.h>....................while (1)

{// Place your code herePORTB=0b01111111;delay_ms(200);PORTB=0b10111111;delay_ms(200);PORTB=0b11011111;delay_ms(200);PORTB=0b11101111;delay_ms(200);PORTB=0b11110111;delay_ms(200);PORTB=0b11111011;delay_ms(200);PORTB=0b11111101;delay_ms(200);PORTB=0b11111110;delay_ms(200);};

}13. Amati dan tuliskan apa yang terjadi pada led, pada kolom berikut

14. Buat project baru dengan nama project_4, dengan rangkaian, langkah kerja dan

inisialisasi sama seperti pada langkah 1-8.

15. Tambahkah kode berikut, kemudian kompilasi dan download

while (1){// Place your code herePORTB=0x7f;delay_ms(200);PORTB=0xbf;delay_ms(200);PORTB=0xdf;delay_ms(200);PORTB=0xef;delay_ms(200);PORTB=0xf7;delay_ms(200);PORTB=0xfb;delay_ms(200);PORTB=0xfd;delay_ms(200);PORTB=0xfe;delay_ms(200);};

}

16. Amati dan tuliskan reaksi LED pada kolom berikut

Reaksi LED langkah 12:

Reaksi LED langkah 15:

Page 147: Bab i Pembelajaran Microcontroller

147

17. Matikan program pada langkah 15 tanpa menghapusnya, dan tambahkan kode

berikut:

while (1){// Place your code here/*PORTB=0x7f;delay_ms(200); blok program ini telah

mati danPORTB=0xbf;delay_ms(200); dianggap komentarPORTB=0xdf;delay_ms(200);PORTB=0xef;delay_ms(200);PORTB=0xf7;delay_ms(200);PORTB=0xfb;delay_ms(200);PORTB=0xfd;delay_ms(200);PORTB=0xfe;delay_ms(200);*/

PORTB=1;delay_ms(200); //blok program ini yangaktif

PORTB=2;delay_ms(200);PORTB=4;delay_ms(200);PORTB=8;delay_ms(200);PORTB=16;delay_ms(200);PORTB=32;delay_ms(200);PORTB=64;delay_ms(200);PORTB=128;delay_ms(200);

}

}

18. Amati dan tuliskan apa yang terjadi pada led, pada kolom berikut

Reaksi LED langkah 17:

Page 148: Bab i Pembelajaran Microcontroller

148

19. Buat project baru dengan nama project_5, dengan rangkaian, langkah kerja dan

inisialisasi sama seperti pada langkah 1-8.

20. Tambahkah kode berikut, kemudian kompilasi dan download

#include <mega8535.h>#include <delay.h>

#define led0 PORTB.0#define led1 PORTB.3#define led2 PORTB.7

.............

.............

.............

.............

.............while (1)

{// Place your code hereled0=0;delay_ms(200);led0=1;delay_ms(200);led1=0;delay_ms(200);led1=1;delay_ms(200);led2=1;delay_ms(200);led2=0;delay_ms(200);};

}21. Rubah secara acak inisialisasi nomor bit pada PORTB, amati dan tuliskan reaksi

led pada kolom berikut:

22. Buat analisa, dan simpulkan maksud serta tujuan masing-masing program diatas

NOMOR PROGAM ANALISA KESIMPULAN

Langkah-9Project_2

Reaksi LED langkah 20:

Page 149: Bab i Pembelajaran Microcontroller

149

NOMOR PROGAM ANALISA KESIMPULAN

Langkah-12Project_3

Langkah-15Project_4

Langkah-17Project_5

Langkah-20Project_5

Page 150: Bab i Pembelajaran Microcontroller

150

Analisa Secara Umum/Keseluruhan:

Kesimpulan Secara Umum/Keseluruhan:

Page 151: Bab i Pembelajaran Microcontroller

151

Percobaan 3

Judul : Intertfacing Saklar dan Pengenalan Looping

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini

(skema sama seperti pada trainer)

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 4.8 Diagram Skematik percobaan 3

2. Buka program CodevisionAVR, klik menu FILE NEW Project YES

hingga muncul tampilan berikut

Gambar 4.9 Pengaturan Chip

3. Pilih ATmega 8535 (atau sesuai tipe yang digunakan) untuk chipnya dan setting

cloknya 11.059200 (atau sesuai dengan X-tall yang digunakan)

Gambar 4.10 Pengaturan Register Input dan Output

Page 152: Bab i Pembelajaran Microcontroller

152

4. Atur untuk bagian PORT, pilih PORT A, Atur atur sebagai INPUT dan rubah

Value menjadi P (Pullup)

5. Atur Port B dan setting sebagai output dan value low (lihat gambar)

6. Klik File Generate,Save and Exit

7. Ikuti petunjuk penyimpanan file. Bila perlu ganti folder penyimpanannya.

8. Simpan dengan nama project_6.c, project_6.prj dan project_6.cwp. pada folder

kelas dan nama anda masing-masing

9. Tambahkan pustaka tunda dibagian header dan satu buah variable bertipe integer

#include <mega8535.h>#include <delay.h>unsigned char hit;#define led0 PORTB.0#define led1 PORTB.1#define led2 PORTB.2

#define sw1 PINA.1#define sw2 PINA.2#define sw3 PINA.3#define sw4 PINA.4#define sw5 PINA.7.................................................................

while (1){

// Place your code hereawal:if (sw1==0) //jika saklar 1 ditekan

{PORTB=0x00;delay_ms(300); // 8 led led dimatikanPORTB=0xFF;delay_ms(300); // 8 led led dinyalakan}

if (sw2==0) //jika saklar 2 ditekan{PORTB=0x0F;delay_ms(300); //maka led plip-plopPORTB=0xF0;delay_ms(300);}

if (sw3==0) //jika saklar 7 ditekan{PORTB=0xAA;delay_ms(300); //maka LED blink-blinkPORTB=0x55;delay_ms(300);}

if (sw4==0) //jika sw4 ditekan{

while(1) //pengulangan talberhingga{for(hit=0;hit<10;hit++) // ulang sebanyak

10x{

led0=0;delay_ms(200);led0=1;delay_ms(200);if(sw5==0) //jika sw 5 ditekan

{

Page 153: Bab i Pembelajaran Microcontroller

153

goto awal; //loncat ke labelawal

}}

for(hit=0;hit<10;hit++) // ulang sebanyak10x

{

led1=0;delay_ms(200);led1=1;delay_ms(200);if(sw5==0){goto awal;}}

}

}PORTB=0x00; //jika tidak maka led mati

};

10. Lengkapi, kompilasi dan download program diatas

11. Tekan saklar sw1-sw5 secara bergantian, perhatiakn apa yang terjadi, dan

lenglapi tabel berikut

No No Sw Reaksi LED

1 Sw1

2 Sw2

3 Sw3

4 Sw4

5 Sw5

12. Tandai baris program mana saja yang menunjukan looping !

13. Jelaskan perbedaan reaksi LED jika ditekan sw4 dengan jika ditekan sw1-3!

Page 154: Bab i Pembelajaran Microcontroller

154

14. Tulisakan error yang terjadi pada saat kompilasi jelaskan maksud error tersebut

beserta solusinya, buat analisa dari program diatas, dan simpulkan

Analisa Secara Umum/Keseluruhan:

Kesimpulan Secara Umum/Keseluruhan:

Page 155: Bab i Pembelajaran Microcontroller

155

Lembar Kerja II : Pemrograman Seven Segment

Alat dan Bahan

1. ............................................................................................ Trainer

Mirkorontroler AVR ATMega8535/16/32................................................... 1 Unit

2. ............................................................................................ ISP

Downloader.................................................................................................. 1 Unit

3. ............................................................................................ Kompu

ter ................................................................................................................. 1 Unit

4. ............................................................................................ Softwar

e pendukung (Codevision AVR & Proteus)................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan I

Judul : Menggunakan 7segment

Langkah Kerja:

1. Rangkaikan LED seperti pada gambar dibawah ini

(skema sama seperti pada trainer)

Page 156: Bab i Pembelajaran Microcontroller

156

VCC

R2R

R3R

R4R

BA

R5R

CDEFGDP

COM

PD

4

PD

5

PD

6

PD

7

BA

EDC

DPGF

COM PB0

PB2PB2PB1PB1

PB5PB5PB4PB3

PB7PB6

CBA

FED

DPG

COM

CBA

ED

DPGF

COM PB0PB1PB1

PB3PB2PB2

PB6PB6PB5PB5PB5PB5PB4

PB7

PB0

PB2PB2PB1PB1

PB5PB5PB4PB3

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PA0PA0PA1PA2PA3

PA5PA6PA7

PC0PC1

PA4

PC4PC5

PC7

PC2PC3

PB1PB0PB0

PC6

PB4PB5

PB7

PB2PB3

rstrst

PB6

PD1PD2PD3

PD7

PD4

PD0

VCCGND

GNDVCC

VCC

PD5PD5PD6PD6

X111.0592MHz

C1

22p

C2

22p

R1R

VCC

PB0PB1PB1PB2PB2PB3

PB5PB5PB4

PB7PB6

Q1PNP

Q2PNP

Q3PNP

Q4PNP

2. Buat data tampilan angka dengan melengkapi tabel berikut, untuk seven segment

common Anode. (Aktif LOW/Menyala jika data “0” (LOW) dengan common

Positif.

DISPLAYANGKA

DP G F E D C B ADATA DALAM

BINERDATA DALAM

HEX

0 1 1 0 0 0 0 0 0 0b1100 0000 0xC01 1 1 1 1 1 0 0 1 0b111110012 1 0 1 0 0 1 0 0 0b101001003456789

. (titik)

3. Buat data tampilan angka dengan melengkapi tabel berikut, untuk seven segment

common cathode. (Aktif High/Menyala jika data “1” (HIGH) dengan common

nol.

DISPLAYANGKA

DP G F E D C B ADATA DALAM

BINERDATA DALAM

HEX

01

Page 157: Bab i Pembelajaran Microcontroller

157

23456789

. (titik)

4. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

5. Kemudian pillih File |New |pilih File Type

→project

6. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

7. Atur setting chip pada ATMega8535 atau sesuai dengan chip yang digunakan,

dengan clock 11.059200MHz dengan PORTD dan PORTB sebagi output, dengan

keadaan awal nol.

8. Jika sudah menkonfigurasi project,pilih File |

Generate Save and Exit, sehingga akan tampil source code dalam bahasa C

9. setelah itu, kita tinggal menambahkan instruksi-

instruksi tambahan kedalam program yang sudah ada.

10. Lengkapi dengan listring dibawah ini.

..........#include <mega8535.h>#include <delay.h>..........while (1)

{PORTD=0;PORTB= 0b11000000; //menampilkan angka 0;Delay_ms(500);PORTB= 0b11111001; //menampilkan angka 1;Delay_ms(500);PORTB= 0b10100100; //menampilkan angka 2;Delay_ms(500);

}11. Kemudian kompilasi, download dan perhatikan

hasilnya.

Analisa:

Page 158: Bab i Pembelajaran Microcontroller

158

1. Lengkapi data diatas sehingga bisa berhitung naik

dari 0 ke 9 secara berulang!

2. Apa yang terjadi jika data pada PORTB dibalikan

nilai logikanya, data “0”menjadi “1” dan data “1” menjadi “0”!

3. Apa yang terjadi jika data pada PORTB diganti

dengan hasil bilangan hexadesimal, hasil dari konversi bilangan biner dari data

diatas!

4. Bagaimanakah data yang harus dikirim ke PORTB,

sehingga bisa menampilkan karakter “Y” “A” “M” “M” “Y” , secara berurutan

pada 1 seven segment? Apakah seven segment hanya terbatas untuk

menampilkan angka? Jelaskan!

Latihan :

1. Buat program untuk berhitung turun dari 9 ke 0

2. Buat program agar keempat seven segment dapat menampilakan angka secara

bergantian (1 menyala yang lain pada, secara bergilir)!

3. Buat program untuk berhitung naik dari 0 ke 99, secara berulang dengan jeda

waktu 300 ms!

4. Buat program untuk berhitung turun dari 99 ke 9, , secara berulang dengan jeda

waktu 300 ms!

5. Buat program untuk berhitung turun dari 99 ke 0, , secara berulang dengan jeda

waktu 300 ms, setelah tombol PA.7 (SW8) ditekan, jika belum ditekan hitungan

belum dimulai!

6. Buat program, sehingga setiap ditekan tombol PA.7 (SW8), angka pada 7

segment bertambah 1, hingga max 99

Page 159: Bab i Pembelajaran Microcontroller

159

Lembar Kerja III : Pemrograman Menggunakan LCD Karakter

Alat dan Bahan

1. .......................................................................................... T

rainer Mirkorontroler AVR ATMega8535/16/32 ..................................... 1 Unit

2. .......................................................................................... I

SP Downloader ......................................................................................... 1 Unit

3. .......................................................................................... K

omputer ..................................................................................................... 1 Unit

4. .......................................................................................... S

oftware pendukung (Codevision AVR & Proteus) ................................... 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

Page 160: Bab i Pembelajaran Microcontroller

160

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan 1

Judul: Pemrograman LCD Koordinat Satis

Langkah Kerja:

1. Gambar rangkaian program yang akan dibuat

sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PC7PC6PC5PC4PC3PC2PC1PC0

VCC

1 2S1

R110k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J1LCD 16x2 Char

R2

POT

PC0PC1PC2

PC6PC7

PC5PC4

VCC

X111.0592MHz

22

22

Gambar 5.3 Diagram Skematik percobaan I

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Untuk setting IC(Chip yang digunakan) pilih Chip,

isi informasi sebagai berikut:

Page 161: Bab i Pembelajaran Microcontroller

161

Gambar 5.4 asetting chip ATmega 8535

clock 11.059200

Gambar 5.4 bsetting PORTC sebagai output

LCD

6. Jika sudah menkonfigurasi project,pilih File |

Generate Save and Exit, sehingga akan tampil source code dalam bahasa C

7. setelah itu, kita tinggal menambahkan instruksi-

instruksi tambahan kedalam program yang sudah ada

8. Perhatikan kode-kode berikut

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>..........

Blok ini harus disertakan (jika dengan cara generate file…akan otomatis

dibuatkan).arti dari blok diatas adalah setting LCD di PORTC kemudian akan

me_link ke pustaka lcd.h yang didalamnya terdapat instruksi-instruksi untuk

akses LCD secara langsung.

..........

.equ __lcd_port=0x15 ;PORTC

...........

Menggunakan PORTC(0x15) untuk LCD (lihat tentang register I/O di datasheet

ATmega 8535). Untuk inisialisasi cukup dengan instruksi berikut:

..........// LCD module initialization

lcd_init(16); //inisialisasi LCD 16x2

Contoh program LCD :

Tambahkan kode program sehingga listingnya seperti berikut :

..........#include <mega8535.h>#include <delay.h>..........while (1)

{// Place your code herelcd_clear();lcd_gotoxy(0,0);lcd_putsf("*SELAMAT DATANG*");lcd_gotoxy(0,1);lcd_putsf("SISWA");delay_ms(5000);lcd_clear();lcd_gotoxy(0,0);lcd_putsf("**SMK Negeri 2**");

Page 162: Bab i Pembelajaran Microcontroller

162

lcd_gotoxy(0,1);lcd_putsf(" Kota Cimahi ”);delay_ms(5000);

};}

9. Kemudian kompilasi, download dan perhatikan

hasilnya.

10. Coba dengan string atau kata dan posisi baris yang

berbeda.

11. Coba hilangkan baris perintah lcd_clear(), kompilasi

dan download, adakah perbedaan hasil?

12. Apa yang terjadi jika nilai koordinat X dan Y di

rubah?

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

13. Apa yang terjadi jika perintah lcd_putsf("SISWA")

diganti dengan spasi sebanyak 16 kali, sehingga program menajdi lcd_putsf("

"); ?

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

Percobaan 2

Judul: Pemrograman LCD Koordinat Dinamis

Langkah Kerja:

Kesimpulan Secara Umum dari percobaan 1 LCD:

Page 163: Bab i Pembelajaran Microcontroller

163

1. Gambar rangkaian program yang akan dibuat

sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PC7PC6PC5PC4PC3PC2PC1PC0

VCC

1 2S1

R110k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J1LCD 16x2 Char

R2

POT

PC0PC1PC2

PC6PC7PC5PC4

VCC

X111.0592MHz

22

22

Gambar 5.5 Diagram Skematik percobaan I I

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Untuk setting IC(Chip yang digunakan) pilih Chip,

isi informasi sebagai berikut :

Gambar 5.6 a setting chip

ATmega 8535 clock 11.059200

Gambar 5.6 b setting PORTC

sebagai output LCD

Page 164: Bab i Pembelajaran Microcontroller

164

6. Jika sudah menkonfigurasi project,pilih File |

Generate Save and Exit, sehingga akan tampil source code dalam bahasa C

7. setelah itu, kita tinggal menambahkan instruksi-

instruksi tambahan kedalam program yang sudah ada

8. Perhatikan kode-kode berikut dan Tambahkan kode

program sehingga listingnya seperti berikut :

..........#include <mega8535.h>#include <delay.h>#include <stdio.h> //library standar input dan output

Unsigned char a, buf[16];

Blok diatas mendeklarasikan tipe data “a” sebagai unsigned char yang digunakan

untuk penghitung dengan kapasitias 256 bilangan atau dengan range 0-255,

variabel buf[16] maksudnya adalah tipe data buf adalah sebagai larik/array

dengan kapasitas 16 yang nantinya akan digunakan sebagai penampung data

karakter LCD yang berjumlah max16.

..........while (1)

{// Place your code herefor(a=0;a<16;a++){

lcd_gotoxy(a,0);lcd_putsf(“H”);sprintf(buf,”Nilai a: %d”,a); //fungsi utk

menampilkan isi alcd_gotoxy(0,1);lcd_puts(buf);delay_ms(300);

}}

9. Kemudian kompilasi, download dan perhatikan

hasilnya.

10. Perhatikan listing code dan tampilan pada LCD, apa

yang terjadi ketika nilai “a” berubah dan apa pengaruhnya nilai “a” pada posisi

karakter “H” , mengapa demikian?

11. Ganti %d dengan %i, kompilasi dan download, lihat

adakah perbedaan hasil? Mengapa?

12. Ganti %d dengan %x, kompilasi dan download, lihat

adakah perbedaan hasil? Mengapa?

Page 165: Bab i Pembelajaran Microcontroller

165

Kesimpulan Secara Umum dari percobaan 1 LCD:

Page 166: Bab i Pembelajaran Microcontroller

166

Lembar Kerja IV : Analog To Digital Converter (ADC)

Alat dan Bahan

1.......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4.......................................................................................... Software

pendukung (Codevision AVR & Proteus)................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan 1

Judul: Pemrograman ADC

Langkah Kerja:

1. Gambar rangkaian yang akan dibuat programnya

sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

PC6PC7

PC2PC3PC4PC5

PC0PC1

VCC

POT

1 2S1

VCC

R110k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J1LCD 16x2 Char

R2

POT

PC

0P

C1

PC

2

PC

7P

C6

PC

4P

C5

VCCVCC

X111.0592MHz

22

22

Gambar 6.3 Diagram Skematik percobaan I.

Page 167: Bab i Pembelajaran Microcontroller

167

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Ikuti langkah pengaturan berikut, isi informasi

sebagai berikut :

Gambar 6.4 Setting ADC 8bit, referensi ADC pin AVCC, dengan clock

691.200KHz, PORTB output,PORTC LCD

6. Hubungkan rangkaian pembagi tegangan kesalah

satu pin pada PORTA, yang untuk contoh ini dihubungkan ke PINA.0 untuk

setting LCD, yaitu LCD ke PORTC. Generate file, save and exit. Simpan dengan

nama file adc.c, adc.prj, adc.cwp.

7. Tambahkan interuksi listing program berikut ini :

.........................................#include <mega8535.h>#include <delay.h>#include <stdio.h>

unsigned int adc;unsigned char nilai[16];

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>

#define ADC_VREF_TYPE 0x60// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){

Page 168: Bab i Pembelajaran Microcontroller

168

ADMUX=adc_input|ADC_VREF_TYPE;// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((ADCSRA & 0x10)==0);ADCSRA|=0x10;return ADCH;}// Declare your global variables here

void main(void){....................................................................................................................................................................lcd_init(16);lcd_clear();lcd_gotoxy(0,0);lcd_putsf("Latihan Prgm ADC");delay_ms(50);while (1)

{// Place your code hereadc=read_adc(0);lcd_clear();sprintf(nilai,"nilai ADC=%d",adc);lcd_gotoxy(0,1);lcd_puts(nilai);delay_ms(300);};}

8. Kompilasi download dan perhatikan hasilnya pada

LCD dengan memutar potensiometer.

9. Perhatikan bagian program berikut ini :

#define ADC_VREF_TYPE 0x60// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){ADMUX=adc_input|ADC_VREF_TYPE;// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((ADCSRA & 0x10)==0);ADCSRA|=0x10;return ADCH;}Blok-blok diatas adalah inisialisasi dan prosedur baca ADC yang dibentuk oleh

codevision. Untuk membaca ADC channel yang lain cukup dengan mengubah

instruksi menjadi seperti berikut :

data_adc=read_adc(1) ; //membaca ADC dichanel 1

Page 169: Bab i Pembelajaran Microcontroller

169

10. Ukur

menggunakan volt meter nilai tegangan pada kaki no dua potensio terhadap

ground, ambil 5 angka pengukuran, lengkapi tabel berikut:

NO TEGANGAN KAKI 2POTENSIO (VOLT)

NILAI YANGTAMPIL PADA LCD

KETERANGAN

1 123 2,545

Analisa

1. Bagaima

nakah hubungan antara nilai tegangan potensio dengan data yang tampil pada

LCD?

2. Berapaka

h tegangan maksimal dan nilai maksimal yang muncul pada LCD? Mengapa

demikian?

3. Ulangi

langkah 2 -8, hanya untuk langkah no 5 jangan memberikan tanda centang

pada opsi Use 8 bits, perhatikan data yang muncul pada LCD, adakah

perbedaan? Mengapa demikian?

4. Setelah

melalukan langkah 13, Berapakah tegangan maksimal dan nilai maksimal

yang muncul pada LCD? Mengapa demikian?

5. Manakah

yang lebih presisi, pada saat memberikan tanda centang pada opsi Use 8 bits

atau tidak memberikan tanda centang pada opsi Use 8 bits ? mengapa

demikian?

Latihan

1. Perhatika

n gambar rangkaian berikut

Page 170: Bab i Pembelajaran Microcontroller

170

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

2. Buat

program mikrokontroler supaya dapat menampilkan data ADC dan nilai

tegangan pada LCD.

3. Berdasar

kan gambar rangkaian diatas, dengan menggunakan fungsi if rancang dan

buatlah program, agar jika nilai ADC lebih dari 128 LED PB4-PB7 menyala

dan LED pada PB0-PB3 padam, dan jika nilai ADC kurang dari 128 LED

PB0-PB3 menyala dan LED pada PB4-PB7 padam.

4. Berdasar

kan gambar rangkaian diatas, tampilkan nilai data ADC pada baris ke 1 LCD

dan Tampilkan nilai tegangan potensio (pelajari kembali konsep ADC) pada

baris LCD ke 2, yang kedunya harus berubah secara otomatis saat potensio

diputar-putar.

5. Tambahk

an program no 3, sehingga jika nilai tegangan potensio

Kurang dari 1V, lampu pada PB0 menyala, sisanya padam

Kurang dari 2V, lampu pada PB0 dan PB1 menyala, sisanya padam

Kurang dari 3V, lampu pada PB0 –PB2 menyala, sisanya padam

Kurang dari 4V, lampu pada PB0 –PB3 menyala, sisanya padam

Kurang dari 5V, lampu pada PB0 –PB4 menyala, sisanya padam

Page 171: Bab i Pembelajaran Microcontroller

171

Lembar Kerja V : Timer/ Counter

Percobaan I

Membuat program nyala dan padam led selama delay waktu 1s menggunakan 1

Timer (Timer 16 bit). PORTB sebagai output dihubungkan dengan LED.

Alat dan Bahan

1.......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

Page 172: Bab i Pembelajaran Microcontroller

172

4.......................................................................................... Software

pendukung (Codevision AVR & Proteus)................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC1

ATMEGA8535-DIL40

X1

C1

C2

R1

VCC

VCC

12

1212

12

1212

1212

1 21 21 21 21 21 21 21 2

Gambar 7.1 Digaram skematik percobaan 1

2. Buat project baru ,pilih Chip sesuai dengan tipe chip pada trainer, atur frekuensi

clock pada 11,0592MHz, atur PORTB sebagai output dengan keadaan awal nol,

pindahkan ke TAB timer1 dan lakukan konfigurasi seperti pada gambar dibawah

ini

Page 173: Bab i Pembelajaran Microcontroller

173

Gambar 7.2 Konfigurasi Timer 1

3. Generate dan save, simpan dengan nama percobaan timer

4. Lengkapi program seperti pada listing berikut

#include <mega8535.h>

bit ciri; // variabel global untuk flag timer

// Timer 1 overflow interrupt service routineinterrupt [TIM1_OVF] void timer1_ovf_isr(void){// Reinitialize Timer 1 valueTCNT1H=0xD5;TCNT1L=0xD0;// Place your code here

if(ciri==1) // periksa ciri{PORTB=0xff; // jika ciri = 1 (led Menyala)ciri =0; // clear ciri}else{PORTB=0x00; // jika ciri = 0 (led Padam)ciri =1; // set ciri}

}// Declare your global variables here

void main(void)............................................................................// Global enable interrupts#asm (“sei”)ciri =0; // kondisi awal ciri berlogika 0while (1)

Page 174: Bab i Pembelajaran Microcontroller

174

{//place your code here

};}

5. Kompilasi dan download, perhatikan hasilnya,

Analisa

1. Hilangkan perintah TCNT1H=0xD5 dan TCNT1H=0xD0, kompilasi dan

download apa yang terjadi? Adakah pengaruhnya?

2. Kembalikan program seperti semula, pindahkan perintah TCNT1H=0xD5 dan

TCNT1H=0xD0, kedalam fungsi wahile(1), kompilasi dan download apa yang

terjadi? Adakah pengaruhnya?

3. Kembalikan program seperti semula, dan hilangkan perintah #asm (“sei”)

kompilasi dan download apa yang terjadi? Adakah pengaruhnya?

4. Kembalikan program seperti semula, rubah kondisi awal ciri menjadi logika 1

kompilasi dan download apa yang terjadi? Adakah pengaruhnya?

Percobaan II

Membuat tampilan program untuk menampilkan jam : menit : detik pada LCD 2X16,

LCD dihubungkan ke PORT C. Gunakan Compare Match Interrupt, kristal

11.059200 MHz/8 = 1382.400 kHz. Register OCR=0x96, sehingga periodenya

96h = ( )

6535 = (Ttimer x 1382400)

Ttimer = 1,0850694.10-4 = 108,50694.10-6 s = 100 us

Periodenya sekitar 100 us, jadi agar setara 1 detik harus dikali 10000.

Alat dan Bahan

1.......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

Kesimpulan Secara Umum :

Page 175: Bab i Pembelajaran Microcontroller

175

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

Gambar 7.3 Konfigurasi Timer 2

2. Buat project baru ,pilih Chip sesuai dengan tipe chip pada trainer, atur frekuensi

clock pada 11,0592MHz, atur PORTB sebagai output dengan keadaan awal nol,

pindahkan ke TAB timer2 dan lakukan konfigurasi seperti pada gambar halaman

berikut ini:

Page 176: Bab i Pembelajaran Microcontroller

176

Gambar 7.4 konfigurasi timer 2 pada CodeWizard

3. Generate dan save, simpan dengan nama percobaan timer

4. Lengkapi program seperti pada listing berikut

#include <mega8535.h>#include <stdlib.h>

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>unsigned int kali=0,detik=0,menit=0,jam=0;unsigned char cdetik[10],cmenit[10],cjam[10];

// Timer 2 output compare interrupt service routineinterrupt [TIM2_COMP] void timer2_comp_isr(void){// Place your code hereTCNT2=0;//Jika sudah compare match, set awal lagiif(++kali==10000)//periksa apakah sudah mencapai 10.000 kaliinterupsi timer2{if (++detik==60){detik=0;lcd_clear();if (++menit==60)

{menit=0;lcd_clear();

if (++jam==24){jam==0;lcd_clear();}

}}

kali=0;itoa(detik,cdetik);// mengubah integer detik jadi karakter pdstring cdetik

itoa(menit,cmenit);

Page 177: Bab i Pembelajaran Microcontroller

177

itoa(jam,cjam);lcd_gotoxy(0,0);lcd_putsf("*Jam Digital Ku*");lcd_gotoxy(9,1);lcd_putsf(":");lcd_gotoxy(10,1);lcd_puts(cdetik);lcd_gotoxy(6,1);lcd_putsf(":");lcd_gotoxy(7,1);lcd_puts(cmenit);lcd_gotoxy(4,1);lcd_puts(cjam);}}// Declare your global variables here

void main(void){............................................While(1){//Place your code here}

}

5. Kompilasi dan download, perhatikan hasilnya,

Analisa

1. Hilangkan perintah #include<stdlib.h>, kompilasi dan download apa yang

terjadi? Adakah pengaruhnya?

2. Kembalikan program seperti semula, dan hilangkan perintah kali=0 kompilasi

dan download apa yang terjadi? Adakah pengaruhnya?

3. Kembalikan program seperti semula, dan hilangkan semua perintah yang

mengandung itoa kompilasi dan download apa yang terjadi? Adakah

pengaruhnya?

4. Berapakah seharusnya nilai perioda timer yang didapat jika nilai clocknya adalah

11.0592/1024?

5. Tambahkan 4 buah fungsi tombol untuk pengaturan kalibrasi jam dan menit,

bagaimanakah programnya?

Latihan

Modifikasi program jam diatas sehingga memiliki tombol UP, DOWN, SET, MENU

untuk kalibrasi/pengaturan jam

Kesimpulan Secara Umum :

Page 178: Bab i Pembelajaran Microcontroller

178

Lembar Kerja VI : Pulse With Modulation (PWM)

Percobaan I

Memprogram mikrokontrol untuk mengatur terang redup nyala lampu LED

Alat dan Bahan

1. ...................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32........................................... 1 Unit

2. ...................................................................................... ISP

Downloader.......................................................................................... 1 Unit

3. ...................................................................................... Komputer

1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

PB0PB1

PB3PB2

PB5PB4

PB7PB6

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC6PC7

PC4PC5

PC1PC2PC3

PB1PB0

PC0

PB5PB4PB3PB2

PB7PB6

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

2P

C1

PC

0

PC

7P

C6

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

Gambar 8.4 Gambar percobaan PWM

Page 179: Bab i Pembelajaran Microcontroller

179

2. Buat program menggunakan baru, dengan clock sebesar 11.059200MHz, Chip

menggunakan ATMega8535 atau sesuai dengan mikrokontrol yang digunakan,

dan atur PORTB.3 sebagai output.

3. Atur timer 0 dengan clock value 11.059200, mode Fast PWM top = FFh, out put

Non-Inverted PWM, sehingga seperti tampilan pada gambar dibawah ini

Gambar 8.4 pengaturan PWM melalui Code Wizard

4. Lengkapi listing program sehingga seperti berikut:

........................

........................

#include <mega8535.h>#include <delay.h>Unsigned char a;................................................Void main (void){................................................While (1){OCR0=a;delay_ms(100);a=a+5;}

}

Page 180: Bab i Pembelajaran Microcontroller

180

5. Kompilasi dan perhatikan nyala LED.

Analisa

1. Ganti

perintah a=a+5; dengan a=a+10; atau coba dengan angka lain, kompilasi dan

perhatikan reaksi pada LED

2. Ganti

perintah OCR0=a; dengan OCR0=10 , OCR0=90, OCR0=200, atau coba

dengan angka lain, kompilasi dan perhatikan reaksi pada LED

3. Apa yang

terjadi jika perintah OCR0=a; dimatikan?

4. Jelaskan

fungsi dari register OCR0 !

Percobaan II

Memprogram mikrokontrol untuk mengatur terang redup nyala lampu LED

Alat dan Bahan

1. ....................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32 ............................................. 1 Unit

2. ....................................................................................... ISP

Downloader ............................................................................................ 1 Unit

3. ....................................................................................... Kompute

r............................................................................................................... 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

Page 181: Bab i Pembelajaran Microcontroller

181

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sama seperti percobaan

sebelumnya (gambar 8.4).

2. Buat

program menggunakan baru, dengan clock sebesar 11.059200MHz, Chip

menggunakan ATMega8535 atau sesuai dengan mikrokontrol yang digunakan,

dan atur semua PORTB sebagai output dengan keadaan awal nol.

3. Atur

timer 0 dengan clock value 11.059200, mode Normal top = FFh, dengan

overflow interupt dicentang, sehingga seperti tampilan pada gambar halaman

berikut ini:

Gambar 8.5 pengaturan interupt timer 0

4. Lengkapi

listing program sehingga seperti berikut :

.................

.................

#include <mega8535.h>#include <delay.h>Unsigned char a,x,nilai;

Page 182: Bab i Pembelajaran Microcontroller

182

// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Place your code herex++;if(x<nilai) {PORTB.0=1} else {PORTB.0=0;}

}

............

..........Void main (void){................................................

While (1){nilai=a;delay_ms(100);a=a+5;

}}

5. Kompilas

i dan perhatikan nyala LED.

6. Tambahk

an perintah pada interupsi timer0 overflow sehingga menjadi.

// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Place your code herex++;if(x<nilai) {PORTB.0=1} else {PORTB.0=0;}if(x<nilai-30) {PORTB.1=1} else {PORTB.1=0;}if(x<nilai-60) {PORTB.2=1} else {PORTB.2=0;}

}

7. Kompilas

i dan perhatikan nyala LED.

Page 183: Bab i Pembelajaran Microcontroller

183

Lembar Kerja VII : Aplikasi Sensor Temperatur

Alat dan Bahan

1.......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2.......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3.......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4.......................................................................................... Software

pendukung (Codevision AVR & Proteus)................................................. 1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

Page 184: Bab i Pembelajaran Microcontroller

184

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Percobaan 1

Judul: Pemrograman ADC

Langkah Kerja:

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

PB0PB1PB2PB3PB4PB5PB6PB7

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

PC7PC6PC5PC4PC3PC2PC1PC0

PB0PB1PB2PB3PB4PB5PB6PB7

VCC

POT

1 2S2

VCC

R310k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

J2LCD 16x2 Char

R4

POT

PC

0P

C1

PC

2

PC

6P

C7

PC

5P

C4

VCCVCC

X211.0592MHz

22

22

123456789

RESISTOR SIP 9

2. Buka program codevision AVR melalui menu Star|All Program || Codevision ||

Code Vision Avr C Compiler atau melalui deskop klik lambang Codevision.

3. Kemudian pillih File |New |pilih File Type

→project

4. Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan

menggunakan codewizard, pilih Yes.

5. Untuk setting IC(Chip yang digunakan) pilih Chip,

isi informasi sebagai berikut:

Setting clock pada 11.059200,chip ATmega 8535 atau disesuaikan dengan chip

yang digunakan dan PORTB sebagai output, LCD pada PORT C, Aktifkan ADC

8bit, referensi ADC AVCC Pin, Auto triger source NONE dan clock maksimal

Page 185: Bab i Pembelajaran Microcontroller

185

(b) (b) (c)

Gambar 9.3(a) Inisialisasi PORTA sebagai Input(b) Inisialisasi PORTC sebagai Output LCD(c) Pengaktifan Fungsi ADC

6. Tambahkan interuksi listing program berikut ini :

#include <mega8535.h>unsigned char adc,bar[16];int suhu1,suhu;unsigned char x=0;

Void main(void){............................................while (1)

{// Place your code herelcd_clear();adc=read_adc(1);suhu1=adc;suhu=1.92*suhu1; // rumus sensor suhu

LM35sprintf(bar,"Data ADC:%d",adc);lcd_gotoxy(0,0);lcd_puts(bar);

sprintf(bar,"Temperatur:%dβC ",suhu);lcd_gotoxy(0,1);lcd_puts(bar);delay_ms(300);}

}

7. Kompilasi dan download, amati hasilnya

8. Atur PORTB sebagai output dengan keadaan awal padam, Rubah program

menjadi seperti berikut,

#include <mega8535.h>unsigned char adc,bar[16];int refernsi,suhu1,suhu;unsigned char x=0;

Page 186: Bab i Pembelajaran Microcontroller

186

Void main(void){............................................referensi=25;while (1)

{// Place your code herelcd_clear();adc=read_adc(1);suhu1=adc;suhu=1.92*suhu1; // rumus sensor suhu

LM35sprintf(bar,"Data ADC:%d",adc);lcd_gotoxy(0,0);lcd_puts(bar);

sprintf(bar,"Temperatur:%d βC",suhu);lcd_gotoxy(0,1);lcd_puts(bar);

if(suhu>referensi) {PORTB = 0xff;}else {PORTB = 0x00;}

}

}

9. Kompilasi dan download, beri stimulasi panas pada sensor LM35 amati

bagaimana perubahan data dan temperatur, serta pengaruhnya terhadap nyala

lampu.

Analisa

1. Rubah nilai referensi menjadi 28, beri stimulasi panas pada sensor LM35 amati

bagaimana perubahan data dan temperatur, serta pengaruhnya terhadap nyala

lampu, kompilasi dan download!

2. Rubah nilai referensi menjadi dengan nilai bebas antara 30 - 50, beri stimulasi

panas pada sensor LM35 amati bagaimana perubahan data dan temperatur, serta

pengaruhnya terhadap nyala lampu, kompilasi dan download

3. Apa pengaruh nilai referensi mengapa demikian?

4. Apakah nilai temperatur yang muncul sama dengan hasil nilai suhu=1.92*data

ADC ? jelaskan!

5. Perhatikan nilai temperatur yang muncul pada LCD !, termasuk bilangan

bulatkah? Jika iya bagaimana supaya yang tampil adalah bilangan pecahan?

Kesimpulan Secara Umum :

Page 187: Bab i Pembelajaran Microcontroller

187

Latihan

1. Buat

program untuk mendeteksi temperatur menggunakan sensor temperatur LM35

berbasis mikrikontroler, menggunakan ADC 10bit, temperatur ditampilkan pada

LCD dalam satuan derajat celcius.

2. Buat

program untuk mendeteksi temperatur menggunakan sensor temperatur LM35

berbasis mikrikontroler, menggunakan ADC 10bit, temperatur ditampilkan pada

7 segment (tampilkan 2 digit bilangan tanpa koma).

Lembar Kerja VIII : External Interupt Request

Percobaan I

Counter menggunakan interupsi eksternal

Alat dan Bahan

Page 188: Bab i Pembelajaran Microcontroller

188

1. .......................................................................................... Trainer

Mirkorontroler AVR ATMega8535/16/32................................................ 1 Unit

2. .......................................................................................... ISP

Downloader............................................................................................... 1 Unit

3. .......................................................................................... Kompute

r ................................................................................................................. 1 Unit

4. Software pendukung (Codevision AVR & Proteus)

1 Lot

Keselamatan Kerja

1. Gunakan alas kaki (sandal karet) saat mengoperasikan komputer

2. Hindari memasang konektor downloader secara terbalik

3. Letakan peralatan ditempat yang aman dan mudah diamati

4. Operasikan Trainer mikrokontroler sesuai tegangan kerjanya

5. Operasikan komputer sesuai peruntukannya sesuai dengan prosedur

6. Matikan komputer sesuai dengan prosedur yang benar

Langkah Kerja

1. Gambar rangkaian yang akan dibuat programnya sebagai berikut

gndgndgndgndgnd

PB2(INT2/AIN0)3

XTAL212

XTAL113

PB1(T1)2

PD2(INT0)16

PD3(INT1)17

PD4(OC1B)18

PD5(OC1A)19

GND11 VCC10

PB7[SCK)8 PB6[MISO)7 PB5(MOSI)6 PA4(ADC4)

36

PA5(ADC5)35

PA6(ADC6)34

PA7(ADC7)33

AREF32

PA3(ADC3)37

PB0(XCK/T0)1

PB3(OC0/AIN1)4

PB4(SS)5

RESET9

PD0(RXD)14

PD1(TXD)15

PD6(ICP)20

PD7(OC2)21

PA0(ADC0)40

PA1(ADC1)39

PA2(ADC2)38

AGND31

AVCC30

PC7(TOSC2)29

PC6(TOSC1)28

PC527

PC426

PC325

PC224

PC1(SDA)23

PC0(SCL)22

IC2

ATMEGA8535-DIL40

pb2pb1pb0

pb4pb3

PB7PB6PB5

gndv ccrst

pd0

pd3pd2pd1

pd5pd4

pa1pa0

pd6

pa4pa3pa2

pa6pa5

gndarefpa7

pc6pc7

v cc

pc4pc5

pc1pc2pc3

pc0

X2

11.0592MHzC3

22p

C4

22p

pd7

gnd

12345678910111213141516

LCD116 CHAR

vcc

pc1pc0

pc2

pc5pc4

pc7pc6

v cc gnd

gnd

v cc1 3

2

R16VR 20K

1 23456789

C

R17

pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5pb5

pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb1pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2pb2

pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb4pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3pb3

pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb7pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6pb6

pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb0pb012

D38

12

D40

12

D41

12

D42

12

D43

12

D44

12

D45

12

D46

21

54

VCC

Gambar 10.4 Rangakaian Percobaan I

2. Buat program menggunakan baru, dengan clock sebesar 11.059200MHz, Chip

menggunakan ATMega8535 atau sesuai dengan mikrokontrol yang digunakan,

Page 189: Bab i Pembelajaran Microcontroller

189

dan atur semua PORTB sebagai output dengan keadaan awal nol, PORTD.2 input

dengan pullup internal aktif dan LCD pada PORTC

3. Hubungkan modul H-brigde motor driver ke PORTD trainer mikrokontroler.

4. Atur tab External IRQ dan berikan tanda centang pada INT0 Enabled dengan

mode Falling Edge

Gambar 10.5 interup pada codewizard

5. Generate save and exit. Simpan dengan nama file int_1.c, int_1.prj, int_1.cwp,

6. Lengkapi listing program seperti berikut

#include <mega16.h>#include <stdio.h>#include <delay.h>

unsigned char a, buf[16];

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>

// External Interrupt 0 service routineinterrupt [EXT_INT0] void ext_int0_isr(void){// Place your code herea++;

}

....................................

....................................

....................................#asm("sei")

while (1){// Place your code heresprintf(buf,"angka:%d",a);lcd_gotoxy(0,0);lcd_puts(buf);

};

7. Kompilasi,download dan perhatikan hasilnya pada LCD, halangi sensor dengan

kertas gelap kemudian lepas dan tutup kembali bagaimana reaksinya.

Page 190: Bab i Pembelajaran Microcontroller

190

Analisa

1. Apa yang terjadi jika sensor tiba-tiba dihalangi tanpa dilepas penghalangnya?,

mengapa demikian?

2. Apa yang terjadi jika sensor sedang terhalangi tiba-tiba dilepas penghalangnya,

dan dibiarkan terbuka tanpa di halangi terus menerus?, mengapa demikian?

3. Berapakah maksimal angka hitungan yang muncul pada LCD? Mengapa

demikian?

4. Manakah yang harus di ubah dari listing program diatas jika ingin menghitung

hingga 1023 pulsa?mengapa demikian?

Latihan

1. Buat program dengan memodifikasi program diatas, sehingga mikrokontrol hanya

menghitung 512 pulsa, dan setelah 512 hitungan kembali ke nol!

2. Buat program dengan memodifikasi program diatas, sehingga mikrokontrol hanya

menghitung 12 pulsa untuk varibel a, dan setelah 12 hitungan variabel a kembali

ke nol dan variabel b bertambah 1, maksimal hitungan variabel b adalah 10. Nilai

kedua variabel ditampilkan pada LCD.

Page 191: Bab i Pembelajaran Microcontroller

191

Nama Siswa :

Nomor Induk Siswa :

Produk/Jasa : Menerapkan Sistem Mikrokontroller

No Kompetensi dasar IndikatorPenilaian

YATIDAK

90 80 751 Menjelaskan prosedur

penyusunan algoritmapemrograman

Mengidentifikasi kaidah-kaidahyang berlaku dalam

penyusunan algoritma danpemrograman dengan benarMenjelaskan kaidah-kaidahyang berlaku dalam

penyusunan algoritma danpemrograman dengan benarMencontohkan Algoritmapemrograman melalui studikasusdengan baik

2Memprogram sistemmikroprosessor dansistem mikrokontroller

Mengetahui organisasimikrokontrolerATMega8535/16/32

Menjelaskan program yangakan dibuat dalam bentukalgoritma/flow chart denganbenar

Menenerapkan algoritma/flowchart kedalam bahasapemrograman dengan benar

Memecahkan permasalahanakibat kesalahan program

Menguji program pada sistemmikrokontroler dengan baik

Menampilkan hasil programpada sistem mikrokontroleryang tekah dibuat

3

Memprogram peralatansistem pengendalielektronik berkaitanakses I/O berbantuanmikroprosessor danmikrokontroller

Mengidentifikasi fungsiperalatan sistem pengendalielektronik dengan benar

Menjelaskan prinsip kerjaperalatan sistem pengendalielektroni dengan benar

Membuat algoritma danprogram untuk peralatan sistempengendali elektronik dengan

IV. LEMBAR PENILAIAN PSIKOMOTORIK

Page 192: Bab i Pembelajaran Microcontroller

192

No Kompetensi dasar IndikatorPenilaian

YATIDAK

90 80 75baik

Memecahkan permasalahanakibat kesalahan program

Menguji program pada sistempengendali elektronik berkaitanakses I/O mikrokontrollerdengan baik

Menampilkan sistem pengendalielektronik berkaitan akses I/Omikrokontroller

4

Membuat dokumentasihasil pemrogramanperalatan sistempengendali elektronikyang berkaitan denganI/O bantuan :mikroprosesor danmikrokontroller.

Mengidentifikasi latar belakangdan tujuan pembuatan alatdengan baik

Merinci alat dan bahan yangdiperlukan dalam pembuatanalat dengan benarMengurutkan langkahpengerjaan dan pengujian alatdengan benarMenganalisa permasalahanyang muncul dalam pengerjaandan pengujian alatMenanggulangi permasalahanyang muncul dalam pengerjaandan pengujian alatMenyimpulkan hasil praktikumdan pengujian alat

Nilai Formatif (NF) diambil dari nilai terendah diantara nilai pencapaian setiap subkompetensi keterampilan/produk/jasa.

Nilai Formatif (NF) =

Penilai 2, Penilai 1,

Page 193: Bab i Pembelajaran Microcontroller

193

Nama Siswa :

Nomor Induk Siswa :

Produk/Jasa : Menerapkan Sistem Mikrokontroller

No. Aspek Non instruksionalSikap (Attitude)

Skor Perolehan

Believe (B)(Preferensi oleh Peuji)

Evaluation (E)(Oleh Guru)

1 2 3 4 5 1 2 3 4 5

1. Sikap kerja

2. Tanggung jawab

3. Ketekunan

4. Kepemimpinan

5. Kecakapan

6. Penggunaan alat

7. Pemecahan masalah

∑ (Bn + En )Nilai Attitude (Nat) = ---------------- x 9

(5+5)7

Nat =

Penilai 2, Penilai 1,

V. LEMBAR PENILAIAN ASPEK SIKAP (ATTITUDE)

Page 194: Bab i Pembelajaran Microcontroller

194

Nama Siswa :

Nomor Induk Siswa :

Produk/Jasa : Menerapkan Sistem Mikrokontroller

No Aspek Indikator Keberhasilan/ DeskripsiPenilaian

YaTidak

90 80 701 Isi

Laporan.1.1 Pendahuluan:

a. Latar belakangb. Tujuan

1.2 Proses Produksi/Jasaa. Proses pelaksanaan pekerjaan;b. Alat & bahan yang

digunakan;c. Gambar Kerja

(bila ada);d. Hasil yang Dicapai.

1.3 Temuan/ Pengembangana. Faktor Pendukung dan

Penghambat;b. Rencana Tindak Lanjut.

1.4 Pengorganisasian Portfolioa. Lengkap;b. Autentik;c. Relevan.

2. TeknikPembuatanDokumen

2.1. Format penulisan laporan:a. Sistematika sesuai dengan

yang ditetapkanb. Sesuai dengan kaidah

bahasa Indonesia yangdisempurnakan;

c. Ditik rapi;d. Dijilid rapi.

Nilai Laporan (Nlp) diambil dari nilai terendah diantara nilai pencapaian setiapindikator keberhasilan.

Nlp =

Penilai 2, Penilai 1,

VI. LEMBAR PENILAIAN LAPORAN

Page 195: Bab i Pembelajaran Microcontroller

195

Modul pembelajaran ini menggunakan sistem pelatihan berbasis

kompetensi. Pelatihan bebasis kompetensi adalah pelatihan yang memperhatikan

pengetahuan, keterampilan dan sikap yang diperlukan di tempat kerja agar dapat

melakukan pekerjaan dengan competen. Penekanan utamanya adalah tentang apa

yang dapat dilakukan seseorang setelah mengikuti pelatihan. Salah satu

karakteristik yang paling penting dari pelatihan berdasarkan kompetensi adalah

penguasaan individu secara nyata di tempat kerja.

Dalam sistem pelatihan berbasis kompetensi, fokusnya tertuju kepada

pencapaian kompetensi dan bukan pada pencapaian atau pemenuhan waktu

tertentu. Dengan demikian maka dimungkinkan setiap peserta pelatihan

memerlukan atau menghabiskan waktu yang berbeda-beda dalam pencapaian

suatu kompetensi tertentu.

Jika siswa/peserta diklat belum mencapai kompetensi pada usaha atau

pada kesempatan pertama, maka guru akan mengatur rencana pelatihan dengan

peserta. Rencana ini memberikan kesempatan kembali kepada peserta untuk

meningkatkan level kompetensinya sesuai dengan level yang diperlukan. Jumlah

usaha atau kesempatan yang disarankan adalah tiga kali.

Untuk mengetahui tingkat keberhasilan peserta dalam mengikuti modul

ini, setiap peserta dievaluasi baik terhadap aspek pengetahuan maupun

ketrampilan. Aspek pengetahuan dilakukan melalui latihan-latihan dan tes tertulis,

sedang aspek keterampilan dilakukan melalui tugas praktek, dengan kriteria

ketuntasan minimal yang harus dicapai adalah 75 (skala 100). Apabila belum lulus

pada kompetensi ini, maka siswa yang bersangkutan harus melalui remedial

terlebih dahulu atau mengulang lagi.

VII. PENUTUP

Page 196: Bab i Pembelajaran Microcontroller

196

Wardhana lingga, belajar sendiri mikrokontroler AVR seri ATMega 8535

simulasi,hardware,dan aplikasi,penerbit andi, yogyakarta,2006.

Heryanto ary,adi wisnu,Ir, pemrograman bahasa C untuk mikrokontroler ATmega

8535,penerbit andi,yogyakarta,2008.

Andrianto heri, pemrograman AVR ATmega 16 menggunakan bahasa C

codevision AVR ,informatika,bandung,2008.

Bejo agus, Rahasia kemudahan bahasa C dalam mikrokontroler ATmega

8535.graha ilmu,yogyakarta,2007.

VIII. DAFTAR PUSTAKA