PENDAHULUAN
A. DESKRIPSI JUDUL
Modul Pemrograman Mikrokontroler AT Mega 40 Pin dengan BASCOM-AVR
merupakan modul yang memiliki ruang lingkup meliputi berbagai cara-cara
pemrograman dengan menggunakan BASCOM-AVR, Setting Fuses And Lock Bits,
Contoh Program dengan BASCOM-AVR untuk konsep Input dan Output,
Interupsi, LCD, ADC, Komunikasi Serial dan RTC.
Setelah mempelajari modul ini diharapkan peserta didik dapat mengetahui,
mengaplikasikan dan mempergunakan modul ini serta trainer mikrokontroler AT
Mega 40 pin dengan baik.
Komponenkomponen yang digunakan dan dibahas di dalam materi terkait
trainer Mikrokontroler AT Mega 40 Pin ini antara lain:
a. Light Emiting Diode (LED)
Afrie Setiawan (2010:11-12) menyatakan bahwa LED merupakan komponen
yang dapat mengeluarkan emisi cahaya. LED merupakan produk temuan lain
setelah dioda. Strukturnya sama dengan dioda, tetapi belakangan ditemukan
bahwa elektron yang menerjang sambungan p-n juga melepaskan energi panas
dan energi cahaya. Karakteristik LED sama dengan karakteristik dioda penyearah.
Bedanya jika dioda membuang energi dalam bentuk panas, sedangkan LED
membuang energi dalam bentuk cahaya.
Keuntungan menggunakan LED adalah struktur solid, ukurannya kecil, masa
pakai tahan lama dan tidak terpengaruh oleh on atau off pensaklaran, mudah
dipakai dan mudah didapat. Karena tahan lama dan tidak terpengaruh oleh on atau
off pensaklaran, maka LED banyak digunakan sebagai display atau indikator baik
itu pada audio atau mesin-mesin kontrol.
Radiasi cahaya yang dipancarkan LED tergantung dari materi dan susunan
dioda P-N dan bahan semikonduktor penyusun LED itu sendiri. Bahan
semikonduktor yang sering digunakan dalam pembuatan LED adalah:
Galium Arsenide (Ga As) meradiasikan sinar infra merah.
Galium Arsenide Phospide (Ga As P) meradiasikan warna merah dan kuning.
Galium Phospide (Ga P) meradiasikan warna merah dan kuning.
Gambar 2. Transistor
Kondisi tersebut menyebabkan transistor semacam ini disebut juga dengan
transistor pertemuan (Junctions). Dengan adanya 2 kemungkinan untuk
mempertemukan kedua buah dioda tersebut, maka akan terdapat 2 jenis transistor
yang dibentuk, yaitu transistor Negatif Positif Negatif ( NPN ) bila yang
dipertemukan anodanya dan transistor Positif Negatif Positif ( PNP ) bila yang
dipertemukan katodanya.
Relay 12 Volt DC
Relay adalah saklar elektronik yang dapat membuka atau menutup rangkaian
dengan menggunakan kontrol dari rangkaian elektronik lain. Sebuah relay
tersusun atas kumparan, pegas, saklar (terhubung pada pegas) dan 2 kontak
elektronik (normally close dan normally open).
1) Normally Close (NC) : saklar terhubung dengan kontak ini saat relay tidak
aktif atau dapat dikatakan saklar dalam kondisi terbuka.
2) Normally Open (NO) : saklar terhubung dengan kontak ini saat relay aktif
atau dapat dikatakan saklar dalam kondisi tertutup.
Berdasarkan pada prinsip dasar cara kerjanya, relay dapat bekerja karena
adanya medan magnet yang digunakan untuk menggerakkan saklar. Saat
kumparan diberikan tegangan sebesar tegangan kerja relay maka akan timbul
medan magnet pada kumparan karena adanya arus yang mengalir pada lilitan
kawat. Kumparan yang bersifat sebagai elektromagnet ini kemudian akan menarik
saklar dari kontak NC ke kontak NO. Jika tegangan pada kumparan dimatikan
maka medan magnet pada kumparan akan hilang sehingga pegas akan menarik
saklar ke kontak NC.
Relay yang digunakan pada rangkaian ini memiliki spesifikasi FKE HRS 4HS-DC12V. Jumlah pin pada relay ada 5 dan bertegangan kerja 12 VDC.
Kemampuan arus yang dapat dilewatkan kontaktor Normally Close adalah 6A
pada tegangan 250VAC, 10A pada tegangan 24VDC. Sedangkan kontaktor
Normally Open 10A pada tegangan 250VAC maupun pada tegangan 120VAC.
d. Komunikasi Serial
Mikrokontroler AT Mega 40 Pin memiliki 4 buah register I/O yang
berkaitan dengan komunikasi serial memakai UART. Pada komunikasi data
secara serial, data dikirimkan melalui 3 jalur, pin RXD (PD.0), TXD (PD.1) dan
ground. Mode operasi pada komunikasi serial pada AT Mega 40 Pin adalah
sinkron dan asinkron. Komunikasi serial yang akan dibahas dalam modul
pemrograman nantinya hanya komunikasi serial Asinkron. Frame data pada
komunikasi serial AVR AT Mega 40 Pin seperti terlihat pada Gambar dibawah
ini :
Gambar 7. IC DS1307
f.
Gambar 8. LDR
g.
3)
4)
5)
6)
7)
i.
Downloader USBAsp
Downloader USBAsp merupakan in-circuit programmer untuk
Mikrokontroler keluarga AVR maupun MCS. Rangkaian USBasp pada umumnya
menggunakan AT Mega48 atau AT Mega8 yang ditanam sebuah firmware khusus
di dalamnya dan beberapa komponen pasif lainnya. Programmer atau downloader
ini menggunakan sebuah penggerak USB hanya firmware (firmwareonly USB
driver), tidak memerlukan pengontrol USB khusus.
Mikrokontroler
Widodo Budiharto dan Gamayel Rizal (2007:27) menyatakan bahwa
mikrokontroler adalah suatu chip yang dapat digunakan sebagai pengontrol utama
sistem elektronika, misalnya sistem pengukur suhu digital (thermometer digital),
sistem keamanan rumah (Home Remote System), sistem kendali mesin industri,
robot penjinak bom, dan lain-lain
D. STANDAR KOMPETENSI
Tabel 1. Standard Kompetensi
Materi Pokok Pembelajaran
Sub Kompetensi
4.1
.4.1
Menjelaskan Sistem
Mikrokontroler
Modul pemrograman
mikrokontroler
AT Mega 40 pin
4.2
4.2
Menjelaskan
perkembangan
teknologi
mikrokontroler
Modul pemrograman
mikrokontroler
AT Mega 40 pin
4.3
4.3
Membuat program
sistem
mikrokontroler
sederhana
Lingkup Belajar
3
Sikap
Pengetahuan
Keterampilan
Pengenalan
mikrokontroler
Mendengarkan
dan
memperhatikan
Menjelaskan
sistem
mikrokontroler
Perkembangan
teknologi
mikrokontroler
Mendengarkan
dan
memperhatikan
Menjelaskan
perkembangan
teknologi
mikrokontroler
Membuat program
sederhana
mikrokontroler
Melaksanakan
K3 dalam
penggunaan alat
10
Kompetensi
Dasar
Pernyataan
Saya dapat
melakukan
pekerjaan ini
dengan
kompeten
Ya
Bila
jawaban
"Ya"
Kerjakan
Tidak
Latihan
Soal 1
Menjelaskan
perkembangan
teknologi
mikrokontroler
Mengetahui tentang
perkembangan teknologi
mikrokontroler
Latihan
Soal 1
Membuat program
sistem
mikrokontroler
sederhana
Latihan
program
dan evaluasi
Apabila anda menjawab TIDAK pada salah satu pernyataan di atas, maka
pelajarilah modul ini.
11
BAB II
PEMBELAJARAN
A. Kegiatan Belajar 1
1. Kegiatan Belajar 1 : Mengenal Mikrokontroler, Delphi dan Bascom
AVR
Tujuan Pembelajaran 1 :
Setelah mendapatkan materi diharapkan perseta didik dapat :
a) Mengenal tentang mikrokontroler.
b) Memprogram mikrokontroler AT Mega 40 pin dengan bahasa BASIC
c) Menjalankan program secara simulasi dan mendownloadkan program
kedalam IC AT Mega 40 pin dengan software Khazama AVR Programmer.
d) Men-setting Fuses and Lock Bits
2. Uraian Materi 1
a. Apakah mikrokontroler itu?
Seperti halnya sebuah komputer, mikrokontroler merupakan sebuah chip
dengan harga yang murah dan dapat diprogram untuk bekerja sesuai dengan yang
diharapkan programmer. Contohnya tulisan berjalan atau yang sering disebut
"running text" yang sering kita jumpai di toko-toko, penggerak otamatis pada
sistem robotika dan sistem industri.
b. AVR Mikrokontroler
Ada 2 jenis mikrokontroler yang berkembang saat ini, yaitu tipe CISC dan
RISC. Hal ini didasarkan pada arsitektur processor dan set intruksinya. Sebagai
contoh MCS51 (AT89S51/52) merupakan tipe CISC yang memerlukan 12 siklus
clock untuk melaksanakan satu siklus instruksi. Tipe AVR (Alf and Vegard's Risc
processor) yang merupakan jenis RISC, hanya perlu 1 siklus saja, sehingga jelas
lebih cepat waktu eksekusinya.
Mikrokontroler AVR dikelompokkan menjadi 4 group : keluarga AT90SXX,
keluarga ATmega, keluarga ATtiny dan keluarga AT89RFXX. Tidak ada
perbedaan mendasar pada keempatnya, baik arsitektur maupun instruksinya.
Kapasitas memori, peripheral, dan fungsi adalah yang menjadikan masingmasing keluarga AVR memiliki keunikan sendiri.
c. Fitur Dasar Mikrokontroler AT Mega 40 Pin
1. AT Mega 8535
Fitur-fitur AT Mega 8535 sebagai berikut :
Frekuensi clock maksimum 16 MHz
Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
Analog to Digital Converter 10 bit sebanyak 8 input, 4 channel PWM
Timer/Counter sebanyak 3 buah
CPU 8 bit yang terdiri dari 32 register
12
2.
AT Mega 16
Fitur-fitur AT Mega16 sebagai berikiut :
Frekuensi clock maksimum 16 MHz
Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
Analog to Digital Converter 10 bit sebanyak 8 input, 4 channel PWM
Timer/Counter sebanyak 3 buah
CPU 8 bit yang terdiri dari 32 register
Watchdog Timer dengan osilator internal
SRAM sebesar 2K Byte
Memori Flash sebesar 16 K Byte dengan kemampuan read while write.
Interrupt internal maupun eksternal
Port komunikasi SPI
EEPROM sebesar 512 byte yang dapat diprogram saat operasi
Komunikasi serial standar USART dengan kecepatan maksimal 2,5
Mbps.
3.
AT Mega 32
Fitur-fitur AT Mega 32 sebagai berikut :
Frekuensi clock maksimum 16 MHz
Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
Analog to Digital Converter 10 bit sebanyak 8 input, 4 channel PWM
Timer/Counter sebanyak 3 buah
CPU 8 bit yang terdiri dari 32 register
Watchdog Timer dengan osilator internal
SRAM sebesar 2K Byte
Memori Flash sebesar 32 K Byte dengan kemampuan read while write.
Interrupt internal maupun eksternal
Port komunikasi SPI
EEPROM sebesar 512 byte yang dapat diprogram saat operasi
Komunikasi serial standar USART dengan kecepatan maksimal 2,5
Mbps.
13
AT Mega
40 pin
14
Nama
Fungsi
1
2
3
PB0(XCK/T0)
PB1 (T1)
PB2 (INT2/AIN0)
PB3 (0C0/AIN1)
5
6
7
8
9
10
11
12-13
14
15
16
17
18
19
20
21
22
23
24-27
28
29
30
31
32
33-40
PB4 (SS)
PB5 (MOSI)
PB6 (MISO)
PB7 (SCK)
RESET
VCC
GND
XTAL 1-XTAL 2
PD0 (RXD)
PD1 (TXD)
PD2 (INT0)
PD3 (INT1)
PD4 (0C1B)
PD5 (0C1A)
PD6 (ICP1)
PD7 (0C2)
PC0 (SCL)
PC1 (SDA)
PC2-PC5
PC6 (T0SC1)
PC7 (T0SC2)
AVCC
GND
AREFF
PA0(ADC0)PA7(ADC7)
15
e.
lunak (software) yang digunakan untuk membuat aplikasi berbasis antarmuka grafis di
lingkungan sistem operasi Microsoft Windows. Delphi dibuat oleh perusahaan Borland
Software Corporation. Bahasa pemograman yang digunakan Delphi adalah bahasa Pascal
(Handayani S.Winahya, 2011).
1.
IDE Delphi 7
Sebuah menu terdiri dari beberapa daftar perintah (menu command). Bagian sebelah kiri
dari kiri masing masing perintah terdapat sebuah ikon yang menggambarkan fungsinya.
Tool Bar adalah sekumpulan tombol yang dapat digunakan untuk melakukan suatu
perintah. Fungsi Tool Bar sama dengan Menu Bar, namun keunggulannya adalah cepat
diakses untuk menjalankan perintah tertentu.
16
3.
Component Palette
Form Designer
Form Designer , lebih umum disebut dengan Form adalah tempat meletakkan
komponen-komponen yang diambil dari Component Palette saat men-desain antarmuka
atau tampilan aplikasi. Secara umum ketika anda memulai menjalankan Delphi maka
akan tampil form secara otomatis seperti gambar 17.
Code Editor
Code Editor adalah tempat untuk menuliskan Source code aplikasi yang akan
dibuat. Secara default Code Editor membangkitkan beberapa baris yang dibuat Delphi
secara otomatis.
17
Object Inspector
Fungsi atau kegunaan Object Inspector adalah untuk mengubah nilai properti
komponen terpilih yang di dalam Form. Ada dua bagian utama pada Object Inspector,
yaitu properties dan event. Pada setiap bagian tersebut terdapat dua buah kolom. Kolom
di sebelah kiri pada tab properties merupakan nama nama properti dan kolom di
sebelah kanan adalah nilai nilai yang diisikan pada properties. Sedangkan pada tab
event, Kolom di sebelah kiri merupakan nama nama event dan kolom di sebelah kanan
adalah nilai nilai yang diisikan event, umumnya event terkait dengan kondisi dimana
source code harus dijalankan, semisal event Form Create berarti source code dijalankan
ketika form dibuat.
(b)
(a)
Gambar 19. Object Inspector : (a) Tab Properties dan (b) Tab Events
18
7.
Object TreeView
Komponen Delphi
Nama
Frames
Label
Edit
Memo
Button
Listbox
Scrollbar
Radiogroup
9.
Keterangan
Membuka sebuah dialog box yang menampilkan
daftar frames yang disertakan pada proyek.
Menampilkan teks yang tidak dapat diubah oleh
user
Menampilkan sebaris teks yang dapat diisi oleh
user
Menampilkan sebuah area pengeditan dimana
user dapat memasukkan atau memodifikasi
beberapa baris teks didalamnya
Untuk membuat tombol tekan yang akan diisi
dengan suatu aksi tertentu
Menampilkan daftar pilihan yang dapat digulung
(scroll)
Dapat digunakan untuk meluaskan area pandang
di form
Digunakan untuk membuat sekelompok radiobutton
File-file Delphi
Sebuah proyek Delphi akan terdiri dari berberapa file. Beberapa file berfungsi
untuk menyimpan source code program dan ada file lain yang menyimpan kode binari,
19
gambar dan sebagainya. Karena setiap aplikasi terdiri dari beberapa file. Sangat
disarankan agar menyimpan sebuah aplikasi pada sebuah folder agar ketika akan
dilakukan perubahan terhadap aplikasi tersebut di komputer lain, semua file yang ada
tersedia dalam satu buah folder.
Berbagai jenis file yang dibuat saat membangun aplikasi menggunakan Delphi
adalah sebagai berikut :
File-file proyek
File-file form
File-file unit
File-file paket
File-file resource
File-file konfigurasi proyek
File-file pilihan proyek
File unit yang terkompilasi
File yang dapat eksekusi
Pengaturan desktop
File-file cadangan (backup)misal .~pas .~dpr
f.
Pemrograman Mikrokontroler
Proses pemograman mikrokontroler diawali dengan menulis program sumber
(source code) baik dalam bahasa assembly, C maupun basic. Source code
kemudian di compile dan akan menghasilkan kode-kode yang dapat dimengerti
oleh mikrokontroler (format*.hex).
20
1) Tipe Data
Tipe data berhubungan dengan variable atau konstanta yang akan
menunjukkan daya tampung atau jangkauan dari variabel atau konstanta tersebut.
Tipe data pada Bascom dapat dilihat pada Tabel 6 :
Tabel 6. Tipe data dan ukurannya (Afrie Setiawan : 2011)
Tipe Data
Ukuran (Byte)
Jangkauan
Bit
Byte
Integer
Word
Long
Single
Double
String
1/8
1
2
2
4
4
8
254
0 atau 1
0 s/d 255
-32.768 s/d 32.767
0 s/d 65535
-2147483648 s/d 2147483647
1,5 x 10-45 s/d 3,4 x 1038
5 x 10-324 s/d 1,7 x 10308
2) Variabel
Variabel digunakan untuk menyimpan data sementara. Variabel diberi nama
dan dideklarasikan terlebih dahulu sebelum digunakan. Aturan pemberian nama
variabel sebagai berikut :
a. Harus dimulai dengan menggunakan huruf
b. Tidak boleh ada nama variabel yang sama pada lingkup yang sama.
c. Maksimum 32 karakter.
d. Tidak boleh ada spasi.
e. Tidak boleh menggunakan karakter-karakter khusus yang digunakan untuk
operator.
Variable dapat dideklarasikan dengan cara :
Dim <namaVariable> As <TipeData>
Contoh :
Dim angka As Integer angka sebagai variable dengan tipe
integer
Dim bilangan As byte bilangan sebagai variable dengan tipe
byte
Jika bilangan variabel dideklarasikan dalam satu baris, maka dipisah dengan
tanda koma.
Contoh :
Dim angka As integer, bilangan As byte
3)
Konstanta
Berbeda dengan variable, sebuah konstanta akan bernilai tetap. Sebelum
digunakan, konstanta dideklarasikan terlebih dahulu dengan cara sebagai berikut :
21
a.
b.
4)
Penulisan Bilangan
Pada Bascom-AVR, bilangan kita tuliskan dalam 3 bentuk :
a. Desimal ditulis biasa, contoh 16
b. Biner diawali dengan &B, contoh : &B10001111
c. Heksadesimal diawali dengan &H, contoh : &H8F
5)
Alias
Untuk mempermudah pemograman, biasanya nama register dalam
mikrokontroler dibuatkan nama yang identik dengan hardware yang dibuat.
Contoh :
LED_1 alias PORTC.0 nama lain dari PORTC.0 adalah LED
SW_1 alias PINC.1 nama lain dari PINC.1 adalah SW_1
6)
Array
Array atau larik merupakan sekumpulan variabel dengan nama dan tipe yang
sama, yang berbeda indeks keanggotaannya. Cara mendeklarasikan array sebagai
berikut :
Dim nama_array(jumlah-anggota) As tipe_data
Contoh :
Dim Voltage (5) As byte variable voltage dengan tipe data byte
mempunyai anggota 5.
Untuk mengakses Array dengan cara :
Voltage (1) = 25 anggota pertama dari variabel voltage diisi dengan
bilangan 25.
PORTC = voltage(1) PORTC diisi nilai anggota pertama dari variabel
voltage.
7) Operator
Bascom-AVR menyediakan beberapa operator untuk pengolahan data,
diantaranya operator aritmatik, operator relasional dan operator logika.
22
8) Operator Aritmatik
Tabel 7. Operator Aritmatik Bascom AVR(Afrie Setiawan : 2011)
Operator
Keterangan
+
-
Operasi penjumlahan
Operasi pengurangan
*
/
%
Operasi perkalian
Operasi pembagian
Operasi sisa pembagian
9) Operator Relasional
Tabel 8. Operator Relasional Bascom AVR(Afrie Setiawan : 2011)
Operator
Keterangan
Contoh
Sama dengan
A=B
<>
>
A<>B
A>B
<
>=
<=
A<B
A>=B
A<=B
Operasi AND
Operasi OR
Operasi NOT
Operasi XOR
(1 baris perintah)
(lebih dari 1 perintah)
b) If Then Else
Untuk keadaan dimana kedua kondisi (benar maupun salah) tetap dikenai perintah.
Syntax penulisannya sebagai berikut :
If <kondisi> Then
<Perintah 1>
Else
<Perintah 2>
End If
c)
If Then Elseif
Kita gunakan ketika terdapat lebih dari satu pengujian kondisi. Syntax penulisannya
sebagai berikut :
Do
24
<pernyataan>
Loop
Jika perulangan yang dilakukan terbatas, sesuai kondisi yang diinginkan, maka
caranya sebagai berikut :
Do
<pernyataan>
Loop Until
c)
<Kondisi>
While Wend
Bentuk perulangan ini akan melakukan perulangan jika sebuah syarat kondisi
terpenuhi. Syntax penulisannya adalah :
While
<kondisi>
<perintah>
Wend
13) Struktur Lompatan
a) Gosub
Perintah ini akan melakukan lompatan ke label yang ditunjuk, biasanya untuk
mengerjakan sebuah rutin perintah, kemudian kembali lagi setelah rutin perintah tersebut
selesai dikerjakan. Rutin yang dibuat harus dituliskan perintah Return pada akhir
pernyataan.
b) Goto
Perintah ini untuk melakukan lompatan ke label untuk melakukan instruksi tanpa
kembali lagi, sehingga tidak perlu Return.
c)
Exit
25
27
28
30
dengan cara seperti alur gambar dibawah ini. Jalankan aplikasi Khazama AVR
Programmer!
Buka program khazama, seperti tampak pada gambar dibawah ini, Jika
mikrokontroler yang akan dikonfigurasi fuse-bitnya adalah mikrokontroler baru
dari pabrikan, maka pastikan Low SCK pada USBasp diaktifkan:
31
EI
D9
2 MHz (Internal)
E2
D9
4 MHz (Internal)
E3
D9
8 MHz (Internal)
E4
D9
1 2MHz (Eksternal)
FF
C9
Latihan Soal 1
1.
2.
3.
4.
5.
6.
dengan Proteus!
33
B. Kegiatan Belajar 2
1. Kegiatan Belajar 2 : Konsep Input/Output
Tujuan Pembelajaran 2 :
Setelah mendapatkan materi input/output diharapkan perseta didik dapat :
a)
2. Uraian Materi 2
a. Rangkaian LED
Rangkaian ini akan membuat kode sederhana yaitu memberikan nilai logika 1
dan 0 pada port output AT Mega 40 pin. Port I/O akan diset menjadi port output.
Port yang sama dapat dialihkan fungsinya menjadi port input dengan cara
mengatur DDR (Data Direction Register)nya dari tiap-tiap port.
Untuk penyalaan LED membutuhkan cara yaitu aktif High dan Low.
Pemasangan LED mempunyai 2 cara yaitu :
1) Common Catoda
2) Common Anoda
34
35
36
37
portd
portd
portd
portd
4
5
6
7
' pushbuton di
' pushbuton di
Latihan :
1. Buatlah program menyalakan LED berkedip !
2. Buatlah program menyalakan LED dengan penyalaan dari tengah ke tepi!
38
C. Kegiatan Belajar 3
1. Kegiatan Belajar 3 : Konsep Interrupt
Tujuan Pembelajaran 3 :
Setelah mendapatkan materi interrupt diharapkan perseta didik dapat :
a)
Uraian Materi 3
a.
Interrupt Eksternal
Interupsi merupakan sebuah kondisi dimana CPU berhenti dari program yang
39
40
c.
41
'LEDs on portB
'Interrupt 0
'Interrupt 1
'turns ON LEDs
'pola
LATIHAN :
1. Buatlah program apabila Int0/1 ditekan maka akan ditampilkan di LCD
42
D. Kegiatan Belajar 4
1. Kegiatan Belajar 4 : Konsep LCD dan ADC
Tujuan Pembelajaran 4 :
Setelah mendapatkan materi LCD dan ADC diharapkan perseta didik dapat :
a) Mengenal tentang konsep LCD dan ADC pada mikrokontroler
b) Memprogram LCD dan ADC dengan bahasa pemrograman BASIC
c) Menjalankan program secara simulasi dan mendownloadkan program kedalam
IC AT Mega 40 pin dengan USBasp untuk konsep LCD dan ADC.
2. Uraian Materi 4
a.
LCD. LCD 2x16 merupakan LCD yang memiliki 2 baris dan tiap baris memiliki
16 karakter. Untuk membentuk karakter-karakter tersebut maka LCD tersebut
terdiri dari dot atau titik yang dinyalakan.
Gambar 38. Rangkaian antarmuka LCD 2x16 4Bit dan Tampilan LCD
b. Pemrograman LCD :
LCD dapat dihubungkan dengan 2 metode :
1) Langsung menghubungkan dengan PORT mikrokontroler, ini disebut "pin
mode"
2) Menghubungkan LCD dengan bus data, hal ini dilakukan jika rangkaian kita
43
Keterangan
Syntax
Keterangan
Cls
Menghapus tampilan
Cursor on
Shiftlcd left
Shiftlcd right
Menggeser display ke
kanan
Menggeser kursor ke kiri
Cursor
blink
Shiftcursor left
Shiftcursor
right
Lowerline
Upperline
Home =
upper/lower
c.
Menggeser kursor ke
kanan
Mereset cursor LCD ke
baris 2
Mereset cursor LCD ke
baris 1
Meletakkan cursor ke
posisi baris 1 atau 2
Cursor tampil
Cursor berkedip
44
LCD dan ADC terdiri dari beberapa komponen yaitu Sistem Minimum, Sensor
Cahaya (LDR), Multitone (Potensio), Sensor Suhu (LM35) sebagai input ADC dan
LCD 2x16 sebagai tampilan karakter-karakter data. Untuk lebih jelasnya silahkan
lihat rangkaian dibawah ini!
45
e.
f.
g.
46
Mode Konversi
Dalam melakukan konversi, ADC dapat menggunakan 3 cara/mode konversi :
a. Single Conversion
Dalam setiap konversi diperlukan satu kali instruksi.
b. Auto Trigger
Perintah konversi dilakukan secara otomatis oleh sumber pemicu, yang berasal
dari :
Analog comparator
Timer/counter 0
Interups/ eksternal
Timer/counter 1
c. Free Running
Pada mode ini, ADC cukup diberi perintah sekali saja, maka secara otomatis
akan bekerja terus sampai ada perintah yang menghentikannya.
PEMROGRAMAN ADC
Dalam BASCOM - AVR, memprogram ADC tidaklah terlalu rumit. Pertama
kali harus anda konfigurasikan ADC-nya yaitu :
CONFIG ADC = Single/Free, PRESCALER = auto/2/4/8/16/32, REFERENCE =
off/AVCC/internal
Proses pengambilan data oleh ADC dilakukan dengan memanggil fungsi
GETADC(Channel)
47
i.
48
j.
Latihan:
1. Buatlah program untuk menampilkan input tombol yang ditekan pada
LCD!
o
2. Buatlah program sensor suhu jika suhu > 45 C maka buzzer PortA.7 akan
aktif!
3. Buatlah program sensor cahaya (LDR) jika keadaan gelap maka akan
mengaktifkan relay PortA.6 untuk mengaktifkan lampu.
49
E. Kegiatan Belajar 5
1. Kegiatan Belajar 5 : Konsep Komunikasi Serial
Tujuan Pembelajaran 5 :
Setelah mendapatkan materi Komunikasi Serial diharapkan perseta didik dapat:
a) Mengenal tentang konsep Komunikasi Serial pada mikrokontroler
b) Memprogram Komunikasi Serial dengan bahasa pemrograman BASIC
c) Menjalankan program secara simulasi dan mendownloadkan program ke
dalam IC AT Mega 40 pin dengan USBasp untuk konsep Komunikasi Serial.
2. Uraian Materi 5
a.
Komunikasi Serial
Jika pada port pararel data dikirimkan secara pararel, maka pada serial port
data dikirimkan secara serial. Lebih praktis, karena hanya memerlukan 3 jalur, pin
RXD (PD.0), TXD (PD.1) dan ground. Mode operasi pada komunikasi serial pada
AT Mega 40 pin adalah sinkron dan asinkron. Frame data pada komunikasi serial
AVR AT Mega 40 pin seperti terlihat pada gambar dibawah ini :
50
Gambar 41. Sistem Minimum dengan rangkaian RS 232 Converter dan LCD
51
c.
53
54
LATIHAN :
1. Buatlah program komunikasi serial untuk mengaktifkan relay dan buzzer !
55
D. Kegiatan Belajar 6
1. Kegiatan Belajar 6 : Kendali nyala led via komunikasi serial dengan
Delphi
Tujuan Pembelajaran 6 :
Setelah mendapatkan materi Kendali nyala led via komunikasi serial dengan
Delphi diharapkan peserta didik dapat:
a)
Mengenal tentang konsep Kendali nyala led via komunikasi serial dengan
Delphi
b) Memprogram Kendali nyala led via komunikasi serial dengan Delphi dengan
bahasa pemrograman basic pada sisi mikrokontroler.
c)
Membangun Kendali nyala led via komunikasi serial dengan Delphi dengan
bahasa pemrograman pascal pada sisi komputer.
2. Uraian Materi 6
Bagian ini akan membahas bagaimana cara menyalakan dan memadamkan
nyala light emiting dioda (LED) melalui komunikasi serial dengan antarmuka
aplikasi pada komputer yang dibuat dengan menggunakan Delphi 7 . untuk dapat
menyalakan dan memadamkan LED yang terkoneksi dengan pin pin
mikrokontroller maka harus disepakati dulu protokol komunikasi antara sisi
komputer dengan sisi mikrokontroller
Lebih jelas nya adalah sebagai berikut :
Jika komputer mengirim data serial berupa string ON1+ char(13) dan
mikrokontroller menerima karakter tersebut (baca: ON1+ char(13)) maka LED 1
akan di nyalakan, selanjutnya mikrokontroller akan mengirim notifikasi kepada
komputer berupa string ON1-OK lalu kemudia karakter ini akan di oleh oleh
komputer untuk menampilkan keterangan LED1 nyala
Jika komputer mengirim data serial berupa string OFF1+ char(13) dan
mikrokontroller menerima karakter tersebut (baca: OFF1+ char(13)) maka LED 1
akan di padamkan, selanjutnya mikrokontroller akan mengirim notifikasi kepada
komputer berupa string OFF1-OK lalu kemudia karakter ini akan di oleh oleh
komputer untuk menampilkan keterangan LED1 padam
56
OFFALL
OFF-ALL-OK
57
Memadamkan
LED di pin B.0-3
Aksi
pada
komputer
Menampilkan
LED1 nyala
Menampilkan
LED1 padam
Menampilkan
LED2 nyala
Menampilkan
LED2 padam
Menampilkan
LED3 nyala
Menampilkan
LED3 padam
Menampilkan
LED4 nyala
Menampilkan
LED4 padam
Menampilkan
SEMUA LED
nyala
Menampilkan
SEMUA LED
padam
Dari tabel tersebut di atas , pertama kita buat source code pada software
bascom yang akan di download kan ke mikrokontroller
Source code nya adalah sebagai berikut :
$regfile = "m16def.dat"
$baud = 9600
$crystal = 12000000
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 ,
Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
cls
Cursor Off
Config Portb.0 = output
Config Portb.1 = output
Config Portb.2 = output
Config Portb.3 = output
Portb.0 = 1
Portb.1 = 1
Portb.2 = 1
Portb.3 = 1
wait 1
cls
locate 1 , 1
lcd "KONTROL LED"
locate 2 , 1
lcd "SERIAL"
Dim Perintah As String * 6
Print "Ok!";
Do
Input Perintah
Select Case Perintah
Case "ON1" : Portb.0 = 1
print "ON1-OK" ;
cls
locate 1 , 1
lcd perintah
Case "ON2" : Portb.1 = 1
cls
locate 1 , 1
lcd perintah
print "ON2-OK" ;
Case "ON3" : Portb.2 = 1
cls
print "ON3-OK" ;
locate 1 , 1
lcd perintah
Case "ON4" : Portb.3 = 1
cls
print "ON4-OK";
locate 1 , 1
lcd perintah
Case "ON-ALL" : Portb = &B11111111
cls
print "ON-ALL-OK";
locate 1 , 1
lcd perintah
58
= 0
= 0
= 0
= 0
= &B00000000
Simpan source code diatas dengan nama semisal kontrol serial led.bas ,
selanjutnya pada lembar kerja Bascom AVR silakan tekan tombol keyboard F7
atau dapat juga dengan menggunakan menu program compile. Proses compile
ini akan menghasilkan file dengan nama kontrol serial led.hex, kontrol serial
led.bin dan lain lain yang nantinya file dengan ekstensi hex inilah yang akan di
downloadkan ke chip mikrokontroller. (video cara download file dengan extensi
hex dari komputer ke dalam mikrokontroler dapat dilhat pada folder video.)
Selanjutnya kita buat source code pada Delphi untuk mengirim data serial
ke mikrokontroler dan menerima data yang dikirim dari mikrokontroller ke
komputer yang nanti nya akan ditampilkan sebagai status kondisi nyala-padamnya
LED pada display komputer.
59
Shape1
Shape2
Shape3
Shape4
Shape5
Groupbox2
Label1
Shape
Shape
Shape
Shape
Shape
Caption
Caption
Value
| Relay Tester |
ON1
ON2
ON3
ON4
ON SEMUA
stCircle
stCircle
stCircle
stCircle
stCircle
Keterangan
Keterangan
Lampu
14
Memo1
15
Button
Caption
Open
Name
Buttonopen
16
Button
Caption
Close
Name
ButtonClose
17
Button
Caption
Setting
Name
Buttonset
Selanjutnya untuk tampilan desain aplikasi nya adalah sebagai berikut :
60
Kondisi
Source code untuk masing masing komponen dapat dilihat pada Tabel 14
sebagai berikut:
Tabel 14. Source Code kendali via port serial
No Nama
Event
Source
komponen
1
Form
On
begin
create
shape1.Brush.Color:=clblack;
shape2.Brush.Color:=clblack;
shape3.Brush.Color:=clblack;
shape4.Brush.Color:=clblack;
shape5.Brush.Color:=clblack;
end;
2
Button1
Onclick begin
if button1.Caption='ON1' then
begin
comport1.WriteStr('ON'+#13);
shape1.Brush.Color:=clred;
button1.Caption:='OFF1' end
else
if button1.Caption='OFF1'then
begin
comport1.WriteStr('OFF'+#13);
shape1.Brush.Color:=clblack;
61
Button2
Onclick
Button3
Onclick
Button4
Onclick
button1.Caption:='ON1'
end;
end;
begin
if button2.Caption='ON2' then
begin
comport1.WriteStr('ON2'+#13);
shape2.Brush.Color:=clred;
button2.Caption:='OFF2' end
else
if button2.Caption='OFF2'then
begin
comport1.WriteStr('OFF2'+#13);
shape2.Brush.Color:=clblack;
button2.Caption:='ON2'
end;
end;
begin
if button3.Caption='ON3' then
begin
comport1.WriteStr('ON3'+#13);
shape3.Brush.Color:=clred;
button3.Caption:='OFF3' end
else
if button3.Caption='OFF3'then
begin
comport1.WriteStr('OFF3'+#13);
shape3.Brush.Color:=clblack;
button3.Caption:='ON3'
end;
end;
begin
if button4.Caption='ON4' then
begin
comport1.WriteStr('ON4'+#13);
shape4.Brush.Color:=clred;
button4.Caption:='OFF4' end
else
if button4.Caption='OFF4'then
begin
comport1.WriteStr('OFF4'+#13);
shape4.Brush.Color:=clblack;
button4.Caption:='ON4'
end;
end;
62
Button5
Onclick
Buttonset
Onclick
Buttonclose
Onclick
Buttonopen
Onclick
10
Memo1
Onchan
ge
begin
if button5.Caption='ON SEMUA' then
begin
comport1.WriteStr('ON-ALL'+#13);
shape5.Brush.Color:=clred;
button5.Caption:='OFF SEMUA' end
else
if button5.Caption='OFF SEMUA'then
begin
comport1.WriteStr('OFFALL'+#13);
shape5.Brush.Color:=clblack;
button5.Caption:='ON SEMUA'
end;
end;
begin
comport1.ShowSetupDialog;
end;
Begin
Application.Terminate;
End;
begin
if Comport1.Connected then
// jika smalll
port(untuk koneksi dengan port paralel ) sudah
terbuka,
begin Comport1.Connected :=false; //maka
tutup koneksi dengan port paralel
ButtonOpen.Caption:='Open Driver' //maka
caption tombol menjadi Open Driver
end
else Comport1.Connected :=true; // selain itu,
buka smallport (terkoneksi dengan port paralel)
if
Comport1.Connected
then
ButtonOpen.Caption:='Close Driver'; // jika
small port terbuka (terkoneksi dengan port
serial) maka tombol akan bertuliskan Close
Driver
end;
var
on1,on2,on3,on4,onsemua,off1,off2,off3,off4,o
ffsemua:integer;
datamasuk:string;
begin
datamasuk:=memo1.Lines[memo1.Lines.Count
-1];
on1:=pos ('ON1-OK',datamasuk);
on2:=pos ('ON2-OK',datamasuk);
63
on3:=pos ('ON3-OK',datamasuk);
on4:=pos ('ON4-OK',datamasuk);
onsemua:=pos ('ON-ALL-OK',datamasuk);
off1:=pos ('OFF1-OK',datamasuk);
off2:=pos ('OFF2-OK',datamasuk);
off3:=pos ('OFF3-OK',datamasuk);
off4:=pos ('OFF4-OK',datamasuk);
offsemua:=pos ('OFF-ALL-OK',datamasuk);
if on1 <> 0 then
begin
label1.caption:= 'LED1 nyala';
end else
if on2<> 0 then
begin
label1.caption:= 'LED2 nyala';
end else
if on3<> 0 then
begin
label1.caption:= 'LED3 nyala';
end else
if on4<> 0 then
begin
label1.caption:= 'LED4 nyala';
end else
if onsemua<> 0 then
begin
label1.caption:= 'SEMUA LED nyala';
shape1.Brush.Color:=clred;
shape2.Brush.Color:=clred;
shape3.Brush.Color:=clred;
shape4.Brush.Color:=clred;
end else
if off1 <> 0 then
begin
label1.caption:= 'LED1 padam';
end else
if off2<> 0 then
begin
label1.caption:= 'LED2 padam';
end else
if off3<> 0 then
begin
label1.caption:= 'LED3 padam';
end else
64
11
Comport1
Onrxch
ar
if off4<> 0 then
begin
label1.caption:= 'LED4 padam';
end else
if offsemua<> 0 then
begin
label1.caption:= 'SEMUA LED padam';
shape1.Brush.Color:=clblack;
shape2.Brush.Color:=clblack;
shape3.Brush.Color:=clblack;
shape4.Brush.Color:=clblack;
end;
end;
var Str, datamasuk: String;
begin
comport1.ReadStr(str,count);
memo1.Text:=memo1.Text+str;
datamasuk:=memo1.Lines[memo1.Lines.Count
-1];
form1.Caption:=datamasuk;
Keterangan fungsi pos pada bagian memo text adalah sebagai berikut:
Fungsi pos adalah untuk mencari kata tertentu yang sesuai dengan kata
kunci yang telah di set, jika ada maka dia bernilai 1 (bukan 0)
Dalam contoh tersebut , kita ambil on1:=pos ('ON1-OK',datamasuk);
berarti jika ada karakter ON1-OK pada memo1 baris terakhir , maka nilai on 1
adalah 1 (bukan 0), setelah itu aka nada tugas lain yang di lakukan yakni
menampilkan tulisan led 1 nyala pada komponen label1
Sebagai mana source code sebagai berikut :
if on1 <> 0 then
begin
label1.caption:= 'LED1 nyala';
end else
65
66
67
D. Kegiatan Belajar 7
1.
dengan komputer untuk aktivasi lampu dengan tegangan kerja 220 volt AC
Tujuan Pembelajaran 7 :
Setelah mendapatkan materi Mengontrol relay dengan tegangan kerja 12 volt
dengan komputer untuk aktivasi lampu dengan tegangan kerja 220 volt AC
diharapkan peserta didik dapat :
a)
Uraian Materi 7
Bagian adalah kelanjutan dari materi sebelumnya yang berjudul Kendali
nyala led via komunikasi serial dengan Delphi. Hanya saja dalam hal ini
dikembangkan lebih kompleks supaya dapat dipergunakan untuk mengontrol
peralatan listrik dengan tegangan kerja 220volt AC atau biasa disebut tegangan
kerja PLN. bagaimanakah logikanya? Secara sederhana dapat dijelaskan bahwa
logika high atau low pada pin mikrokntroller dapat dipergunakan untuk trigger
pada rangkaian transistor sebagai saklar, dalam hal ini logika High akan dijadikan
bias maju bagi pin basis transistor sehingga transistor dapat aktif ketika kaki
colektor dan emitor dibias maju (sebagai catatan transistor yang dipergunakan
adalah BC 547 yang merupakan transistor NPN).
Skematik transistor sebagai saklarnya adalah sebagai berikut :
RL1
12Vol
2.
R3
1k
L1
D2
D1
220v
LED-BLUE
DIODE
Q1
RL1(COM)
12V
R2
Out1
4k7
BC547
OFFALL
69
PortB.0
PortB.1
PortB.2
PortB.3
=
=
=
=
=
=
=
=
output
output
output
output
0
0
0
0
wait 1
cls
locate 1 , 1
lcd "KONTROL 220 volt"
locate 2 , 1
lcd "SERIAL"
Dim Perintah As String * 6
Print "Ok!";
Do
Input Perintah
Select Case Perintah
Case "ON1" : Portb.0 = 1
print "ON1-OK" ;
cls
locate 1 , 1
lcd perintah
Case "ON2" : Portb.1 = 1
cls
locate 1 , 1
lcd perintah
print "ON2-OK" ;
Case "ON3" : Portb.2 = 1
70
cls
print "ON3-OK" ;
locate 1 , 1
lcd perintah
Case "ON4" : Portb.3 = 1
cls
print "ON4-OK";
locate 1 , 1
lcd perintah
Case "ON-ALL" : Portb = &B00001111
cls
print "ON-ALL-OK";
locate 1 , 1
lcd perintah
Case "OFF1" : Portb.0 = 0
cls
print "OFF1OK" ;
locate 1 , 1
lcd perintah
Case "OFF2" : Portb.1 = 0
cls
print "OFF2OK";
locate 1 , 1
lcd perintah
Case "OFF3" : Portb.2 = 0
cls
print "OFF3OK";
locate 1 , 1
lcd perintah
Case "OFF4" : Portb.3 = 0
cls
print "OFF4-OK";
locate 1 , 1
lcd perintah
Case "OFFALL" : Portb = &B00000000
cls
print "OFF-ALL-OK";
locate 1 , 1
lcd perintah
End Select
Loop
End
71
Keterangan : source code di atas sama persis dengan source code pada
bagian yang berjudul Kendali nyala led via komunikasi serial dengan Delphi,
tapi ada perbedaan pada bagian
locate 1 , 1
lcd "KONTROL 220 volt"
locate 2 , 1
lcd "SERIAL"
72
D. Kegiatan Belajar 8
1. Kegiatan Belajar 8 : Tombol input mikrokontroler ditampilkan pada form
aplikasi yang dibangun dengan Delphi 7
Tujuan Pembelajaran 8 :
Setelah mendapatkan materi Tombol input mikrokontroler ditampilkan pada form
aplikasi yang dibangun dengan Delphi 7diharapkan peserta didik dapat:
a) Mengenal tentang konsep Tombol input mikrokontroler ditampilkan pada
form aplikasi yang dibangun dengan Delphi 7
b) Memprogram Tombol input mikrokontroler ditampilkan pada form aplikasi
yang dibangun dengan Delphi 7 dengan bahasa pemrograman basic pada sisi
mikrokontroler.
c) Membangun aplikasi Tombol input mikrokontroler ditampilkan pada form
aplikasi yang dibangun dengan Delphi 7 dengan bahasa pemrograman pascal
pada sisi komputer.
2. Uraian Materi 8
Pada bagian ini , akan dibahas mengenai tombol pushbutton (push on)
pada pin mikrokontroler yang di fungsikan sebagai inputan bagi aplikasi pada
yang dibangun dengan Delphi 7. Secara sederhana dapat dijelaskan bahwa jika
tombol 1 di tekan, maka pada form Delphi akan di tampilkan keterangan pada
label bahwa tombol 1 ditekan , begitupun saat tombol 2 di tekan maka akan
ditampilkan pada label bahwa tombol 2 ditekan.
Dalam pembahasan kali ini akan di bahas 2 tombol inputan saja sebagai
contoh supaya nantinya pembaca dapat mengembangkan nya menjadi lebih
kompleks lagi, semisal untuk jumlah tombol yang jumlahnya lebih banyak lagi.
Pada contoh aplikasi ini , sekali lagi mikrokontroler akan dibungkan ke
komputer / laptop melalui port serial atau port USB (menggunakan kabel usb to
serial converter). Sedangkan tombol push button sebagai input dipasang pada
PinD3 dan PinD4 mikrokontroler , konfigurasinya sebagai pin input yang bersifat
low aktif dimana ketika tombol push button di tekan, maka secara otomatis akan
menyebabkan pin mikrokontroler terhubung ke jalur ground rangkaian sehingga
berlogika low, nah ketiki logika low inilah kode bahwa tombol di tekan dikirim
ke PC / laptop. Dalam contoh kasus ini, aturan yang dibuat adalah : ketika tombol
1 ditekan maka mikrokontroler akan mengirim karakter angka 1 ke komputer /
laptop melalui komunikasi serial , nah di saat yang lain yaitu saat tombol 2
ditekan maka mikrokontroler akan mengirim karakter angka 2 ke komputer /
laptop.
73
Source code yang ditulis pada software bascom untuk nantinya di-compile
dan kemudian di downloadkan pada mikrokontroler adalah sebagai berikut :
$regfile = "m16def.dat"
' jenis mikro yang digunakan
$crystal = 12000000
' Cristal yang digunakan
$baud = 9600
' baud rate yang digunakan
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 =
Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
cls
Cursor Off
CONFIG PORTD.4 = INPUT
CONFIG PORTD.5 = INPUT
PortD.4 = 1
PortD.5 = 1
Print "Ok!"
wait 1
cls
locate 1 , 1
lcd "INPUT TOMBOL"
locate 2 , 1
lcd "PORT SERIAL"
Do
if PIND.4 = 0 then
WAITms 200
Print "1" ;
WAITms 200
Cls
Locate 1 , 4
Lcd "TOMBOL 1"
elseif PIND.5 = 0 then
WAITms 200
Print "2";
WAITms 200
Cls
Locate 1 , 4
Lcd "TOMBOL 2"
end IF
loop
Sedikit penjelasan pada program utama dari source code di atas adalah bagian
source code sebagai berikut :
if PORTC.0 = 0 then
Print "1";
Adalah bagian perintah jika tombol 1 yang terhubung di portd.3 ditekan maka
akan mengirimkan karakter 1 ke komputer. Begitu pula bagian source code
elseif PORTC.1 = 0 then
Print "2";
74
Adalah bagian perintah jika tombol 2 yang terhubung di portd.4 ditekan maka
akan mengirimkan karakter 1 ke komputer.
Dari penjelasan jalannya program di atas, dapat dijelaskan bahwa bahwa :
ketika tombol 1 ditekan maka mikrokontroler akan mengirim karakter
angka 1 ke komputer / laptop melalui komunikasi serial , nah di saat yang lain
yaitu saat tombol 2 ditekan maka mikrokontroler akan mengirim karakter angka
2 ke komputer / laptop
Maka dapat diambil kesimpulan, nantinya komputer akan menerima
karakter angka 1 saat tombol 1 ditekan , dan angka 2 saat tombol 2 ditekan.
Dari aturan / rule tersebut, nantinya aplikasi yang di buat dengan Delphi akan
menampilkan keterangan pada komponen label bahwa tombol 1 ditekan atau
tombol 2 ditekan ketikan tombol 1 atau tombol 2 pada mikrokontroler di tekan.
Tabel 16 menunjukkan aturan komunikasi penekanan tombol antara
mikrokontroler dengan komputer
Tabel 16. Aturan komunikasi penekanan tombol antara mikrokontroler dengan
komputer
No Tombol ditekan Karakter dikirim Karakter
Keterangan yang
pada
dari
diterima
ditampilkan pada
mikrokontroler
mikrokontroler
oleh
komponen label
komputer aplikasi Delphi
/ laptop
1
Tombol 1
1
1
tombol 1 ditekan
2
Tombol 2
2
2
tombol 1 ditekan
75
76
Nama komponen
Label1
Button1
Button2
Button3
Comport1
Properties
Caption
Caption
Name
Caption
Name
Caption
Name
-
Value
Tombol ditekan
Open Conn uC
Button1
Cek
Button2
Set port
Button3
-
77
Comport1
Onrxchar
Button1
Button3
78
79
80
D. Kegiatan Belajar 9
1.
jumlah
berapa
kali
tombol
pada
81
82
83
Form
On
create
tekan1:=0;
tekan2:=0;
84
Gambar 60. Uji aplikasi penampil tombol ditekan saat penekanan tombol
Test koneksi suksesnya sebagai berikut :
Gambar 61. Uji aplikasi penampil tombol ditekan saat test koneksi
Gambar 62. Uji aplikasi penampil tombol ditekan saat tombol 1 ditekan
85
Gambar 63. Uji aplikasi penampil tombol ditekan saat tombol 2 ditekan
Gambar 64. Uji aplikasi penampil tombol ditekan, saat tombol 2 ditekan 2 kali
86
Kegiatan Belajar 10
1. Kegiatan Belajar 10 : Konsep Real Time Clock
Tujuan Pembelajaran 10 :
Setelah mendapatkan materi Real Time Clock diharapkan perseta didik dapat:
a)
2. Uraian Materi 10
a. Real Time Clock
DS1307 merupakan IC Real Time Clock (RTC) yang dapat diakses dengan
mikrokontroler menggunakan komunikasi serial I2C. Berikut ini saya berikan
contoh untuk menampilkan RTC DS1307 pada LCD dan Hyperterminal
menggunakan BASCOM-AVR. Dengan adanya RTC ini maka kita dapat
menampilkan waktu yang berupa Jam, Menit, Detik serta tanggal yaitu hari, bulan
dan tahun.
87
Gambar 66. Sistem Minimum dengan RTC dan Rangkaian komunikasi serial
88
a.
89
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2crbyte Weekday , Ack
I2crbyte _day , Ack
I2crbyte _month , Ack
I2crbyte _year , Nack
I2cstop
_sec = Makedec(_sec)
_min = Makedec(_min)
_hour = Makedec(_hour)
_day = Makedec(_day)
_month = Makedec(_month)
_year = Makedec(_year)
Return
90
Do
End
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
' _sec sdh otomatis terdefinisi
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2crbyte Weekday , Ack
I2crbyte _day , Ack
I2crbyte _month , Ack
I2crbyte _year , Nack
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return
Setdate:
_day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
I2cstart
' Generate start code
I2cwbyte Ds1307w
' send address
I2cwbyte 4
' starting address in 1307
I2cwbyte _day
' Send Data to SECONDS
I2cwbyte _month
' MINUTES
I2cwbyte _year
' Hours
I2cstop
Return
Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart
' Generate start
code
I2cwbyte Ds1307w
' send address
I2cwbyte 0
' starting
address in 1307
I2cwbyte _sec
' Send Data to
SECONDS
I2cwbyte _min
' MINUTES
I2cwbyte _hour
' Hours
I2cstop
Return
91
BAB III
EVALUASI DAN JAWABAN SOAL
A. Soal Evaluasi
1.
2.
3.
4.
Sebutkan dan jelaskan fungsi dari fitur - fitur yang dimiliki oleh AT Mega 40
pin !
5.
6.
7.
8.
9.
10. Jelaskan mengapa setiap IC perlu di setting fuse and locks bits!
92
93
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output Port B digunanakan sebagai Output
Port_led Alias Portb
Do
Port_led = 255 'atau &B11111111
Wait 1
Port_led = 0 'atau &B00000000
Wait 1
Loop
2.
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
Port_led Alias Portb
Do
Port_led = &B00011000
Waitms 300
Port_led = &B00111100
Waitms 300
Port_led = &B01111110
Waitms 300
Port_led = &B11111111
Loop
Kegiatan Belajar 3
1.
Buatlah program apabila Int0/1 ditekan maka akan ditampilkan di LCD
Jawab :
1.
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
94
Kegiatan Belajar 4
1.
Buatlah program untuk menampilkan input tombol yang ditekan pada
LCD!
2.
Buatlah program sensor suhu jika suhu > 45oC maka buzzer PortA.7 akan
aktif!
3.
Buatlah program sensor cahaya (LDR) jika keadaan gelap maka akan
mengaktifkan relay PortA.6 untuk mengaktifkan lampu.
95
Jawab :
1.
Program untuk menampilkan input tombol yang ditekan pada LCD:
$regfile = "m16def.dat"
$crystal = 12000000
Dim X As Byte
Config Portb = Output
Config Portd = Input
Tombol1 Alias &B11101111
Tombol2 Alias &B11011111
Tombol3 Alias &B10111111
Tombol4 Alias &B01111111
Hasil Alias Portb
Masukan Alias Pind
Portd = 255
' menghidupkan LED berdasar penekanan push button di PORTD
Do
X = Masukan
Select Case X
Case Tombol1 : cls
Locate 1 , 1
Lcd "Tombol 1 ditekan"
Case Tombol2 : cls
Locate 1 , 1
Lcd "Tombol 2 ditekan"
Case Tombol3 : cls
Locate 1 , 1
Lcd "Tombol 3 ditekan"
Case Tombol4 : cls
Locate 1 , 1
Lcd "Tombol 4 ditekan"
End Select
Loop
2.
Program sensor suhu jika suhu > 45C maka buzzer PortA.7 akan aktif :
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 =
Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
Config PortA.7 = Output
Dim Data_adc As Word , Adc_convert As Single , Adc_string As
String * 10
Start Adc
96
Cursor Off
Locate 1 , 2
Lcd "Sensor Suhu :"
Locate 2 , 2
Lcd "Suhu sekarang"
Wait 1
Cls
Do
Data_adc = Getadc(2)
Adc_convert = Data_adc
Adc_convert = Adc_convert / 1024
Adc_convert = Adc_convert * 500
Adc_string = Fusing(adc_convert , "#.##")
Locate 1 , 1
Lcd "Data Suhu:"
Locate 2 , 2
Lcd Adc_string
If Adc_convert > 45 then
PortA.7 = 1
Waitms 200
Loop
3.
Program sensor cahaya (LDR) jika keadaan gelap maka akan
mengaktifkan relay PortA.6
untuk mengaktifkan lampu:
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 =
Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
Config PortA.6 = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Data_adc As Word , Adc_convert As Single , Adc_string As
String * 10
Cursor Off
Cls
Locate 1 , 1
Lcd "Data ADC (volt):"
Do
Data_adc = Getadc(0)
Adc_convert = Data_adc
Adc_string = Fusing(adc_convert , "#.##")
Locate 2 , 6
Lcd Adc_string ; " "
97
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600
Config PortA.6 = Output
Config PortA.7 = Output
Portb = &H00
Dim Tombol As Byte
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 =
Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
Locate 1 , 1
Lcd "Test Serial"
Locate 2 , 1
Lcd "Communication OK"
Print "Tekan sembarang tombol pada keyboard!"
Do
Tombol = Waitkey()
Print "Tombol yang anda tekan :"
Print Chr(tombol)
Select Case Tombol
Case "1" : PortA.6 = 1
Case "2" : PortA.6 = 0
Case "3" : PortA.7 = 1
Case "4" : PortA.7 = 0
End Select
Loop
98
4. Sebutkan dan jelaskan fungsi dari fitur fitur yang dimiliki oleh AT Mega 40
pin !
5. Tuliskanlah nama dari pin AT Mega 40 pin dibawah ini!
AT Mega
40 pin
Jawaban :
1.
Ada 2 jenis mikrokontroler yang berkembang saat ini, yaitu tipe CISC dan
RISC. Hal ini didasarkan pada arsitektur processor dan set intruksinya. Sebagai
contoh MCS51 (AT89S51/52) merupakan tipe CISC yang memerlukan 12 siklus
clock untuk melaksanakan satu siklus instruksi. Tipe AVR (Alf and Vegards Risc
processor) yang merupakan jenis RISC, hanya perlu 1 siklus saja, sehingga jelas
lebih cepat waktu eksekusinya.
99
2.
Mikrokontroler AVR dikelompokkan menjadi 4 group : keluarga
AT90SXX, keluarga ATmega, keluarga ATtiny dan keluarga AT89RFXX. Tidak
ada perbedaan mendasar pada keempatnya, baik arsitektur maupun instruksinya.
Kapasitas memori, peripheral, dan fungsi adalah yang menjadikan masing-masing
keluarga AVR memiliki keunikan sendiri.
3.
AT Mega 8, AT Mega 8535, AT Mega 16, AT Mega 32, AT Mega 328,
AT Mega 128, AT Mega 64 dan sebagainya
4.
Fitur AT Mega 16 :
a.
Port I/O 32 jalur (Port A,B,C,D masing-masing 8 bit)
b.
ADC (Analog Digital Converter)
c.
Timer / counter
d.
Osilator
e.
Flash PEROM
f.
EEPROM
g.
SRAM
h.
Interupsi Eksternal dan Internal
i.
Port USART untuk komunikasi serial
5.
Nama dari pin AT Mega 40 pin :
6.
100
7.
Pemrogramman Mikokontroller dengan bahasa Assembly, Basic dan C,
sebagai tambahan dapat pula dengan bahasa pascal.
8.
Compiler : Program komputer yang menerjemahkan program yang ditulis
dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C, BASIC)
menjadi bahasa mesin, biasanya dengan bahasa Assembly sebagai perantara.
9.
Cara Mensimulasikan Program Di Proteus
1.
Membuat Rangkaian Simulasi
2.
Mendownload Program ke IC AT Mega 40 pin di Proteus
Untuk mendownloadkan program kedalam IC maka hal yang harus dilakukan
adalah double klik IC AT Mega 40 pin , sehingga akan terlihat tampilan pada
gambar
3.
Memilih program File *.HEX
Setelah terlihat jendela seperti gambar diatas maka klik pada gambar folder
yang telah diberikan petunjuk pada gambar diatas maka jendela akan tampil
101
seperti gambar dibawah ini. Pilih dan carilah program yang anda simpan di folder
dengan format File.hex, setelah itu klik Open.
4.
Menjalankan Simulasi di Proteus
Jika pada proses download program secara simulasi selesai maka, langkah
selanjutnya adalah menjalankan program tersebut. Cara untuk menjalankan
program tersebut adalah mengklik tombol dibawah ini yang sudah diberikan
tanda.
10.
Proses setting Fuse Bit pada AT Mega 40 pin bertujuan untuk
menyamakan clock eksternal AT Mega 40 pin dengan menggunakan Crystal, hal
102
B.
1.
2.
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
Port_led Alias Portb
3.
Jelaskan fungsi program dibawah ini!
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 =
Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
4.
Data_adc = Getadc(0)
Adc_convert = Data_adc
Adc_convert = Adc_convert / 1024
Adc_convert = Adc_convert * 5
Adc_string = Fusing(adc_convert , "#.##")
103
5.
$baud = 9600
Print "Tekan sembarang tombol pada keyboard!"
Tombol = Waitkey()
Print "Tombol yang anda tekan :"
Print Chr(tombol)
Jawab
1.
Arti dari gambar tersebut adalah :
Gambar sebelah kiri adalah rangkaian LED yang dirangkai secara Common
Anoda dimana untuk menyalakan / mengaktifkan LED dilakukan dengan
memberikan logika Low pada kaki Katoda , apabila ingin memadamkan /
menonaktifkan LED dilakukan dengan memberikan logika High pada kaki
Katoda.
Gambar sebelah kanan adalah rangkaian LED yang dirangkai secara Common
Katoda dimana untuk menyalakan / mengaktifkan LED dilakukan dengan
memberikan logika High pada kaki Anoda , apabila ingin memadamkan /
menonaktifkan LED dilakukan dengan memberikan logika Low pada kaki Anoda.
2.
Arti dari baris program :
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
Port_led Alias Portb
104
3.
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7
=
Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
Merupakan Konfigurasi Program Untuk Akses LCD 16*2, dimana :
Pin Db4 LCD terkoneksi pada Portc.5
Pin Db5 LCD terkoneksi pada Portc.4
Pin Db6 LCD terkoneksi pada Portc.3
Pin Db7 LCD terkoneksi pada Portc.2
PinE LCD terkoneksi pada Portc.6
Pin Rs LCD terkoneksi pada Portc.7
4.
Fungsi Program
Data_adc = Getadc(0)
Adc_convert = Data_adc
Adc_convert = Adc_convert / 1024
Adc_convert = Adc_convert * 5
Adc_string = Fusing(adc_convert , "#.##")
Adalah untuk membaca data sensor suhu yang terpasang pada ADC channel 0
(Pin A.0)
Rumus :
Adc_convert = Adc_convert / 1024
Adc_convert = Adc_convert * 5
Berfungsi untuk mengubah hasil pembacaan sensor berupa teganan keluaran
sensor suhu menjadi nilai sensor suhu yang tepat ,
Bagian Adc_string = Fusing(adc_convert , "#.##") untuk mengubah data suhu
dalam bentuk data string dengan 2 karakter di belakang koma.
5.
Fungsi Program :
$baud = 9600
Print "Tekan sembarang tombol pada keyboard!"
Tombol = Waitkey()
Print "Tombol yang anda tekan :"
Print Chr(tombol)
105
106
BAB IV
PENUTUP
Demikian modul ini dibuat semoga dapat bermanfaat untuk proses
pembelajaran "Pemrograman Mikrokontroler AT Mega 40 pin dengan Bascom
AVR ". Tak ada gading yang tak retak itulah pepatah yang tepat untuk modul ini
yang masih jauh dari harapan. Penulis menyadari sepenuhnya bahwa tidak ada
karya manusia yang sempurna, untuk itu jika ada kritik, saran, pertanyaan dan
sebagainya mohon dikirimkan ke alamat email : taufiksanjaya@yahoo.com
Sekian dan terimakasih.
Semoga bermanfaat,
107
DAFTAR PUSTAKA
Afrie, Setiawan. (2011). 20 Aplikasi Mikrokontroler ATMEGA8535,ATMEGA16
menggunakan BASCOM-AVR. Yogyakarta: ANDI Offset.
Eko. P ,Agfianto. (2002). Belajar Mikrokontroler AT89C51/52/55 Teori dan
Aplikasi. Yogyakarta : Penerbit Gava Media.
Wardana Lingga (2006). Belajar Sendiri Microcontroller AVR seri AT Mega
8535. Yogyakarta : ANDI Offset.
Widodo Budiharto dan Gamayel Rizal. (2007). 12 Proyek Mikrokontroler
untuk Pemula. Jakarta: Elex Media Komputindo.
108