Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
BAB 1 PRAKTIKUM DASAR MIKROKONTROLER MENGGUNAKAN TOP VIEW SIMULATOR DAN MODUL LAROS-ELECTOR V2.1
1. Pada awalnya buka program TopViewSimulator dan akan muncul form seperti pada gambar 1.1, disini pilih pada menu dropdown ”Select Device”, pilih AT89C51.
Gambar 1.1 Tampilan Top View Simulator Select Device
2. Langkah berikutnya klik data memory pada form yang sama dan pilihlah besar memory sesuai dengan Device misalnya 4 Kbyte, seperti pada gambar 1.2, dan klik OK.
Gambar 1.2. Data memory Setting
3. Buka program notepad / tex teditor dan ketik listing program kemudian simpan dalam satu folder dengan program ASM51, pada gambar 1.3. merupakan contoh program untuk menghidupkan Led di port 1. 1
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 1.3. Contoh Penulisan Program Dalam Text Editor
Penulisan program harus sesuai dengan port yang ditunjuk pada mikrokontroler seperti pada gambar 1.4.
Gambar 1.4. Gambar Rangkaian Flash Point LED
4. Buka command prompt dan masuk direktori folder asm 51 misal pada contoh di folder àD: \Praktikum\asm51\asm51 5. Langkah selanjutnya ketik nama file yang sudah berisi program assesmbler misal Job.asm. perhatikan pada gambar 1.5. bila tidak ada kesalahan maka muncul ASSEMBLY COMPLETE, 0 ERROR FOUND
2
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 1.5. Tampilan program compiler ASM51 pada command promt
6. Selanjutnya
buka
program
TopViewSimualator
dan
pilih
menu
FileàLoad Program, tampilan seperti pada gambar 1.6. dan pilihlah file hexa yaitu file assembler yang sudah ter-compile.
Gambar 1.6. Tampilan Load Program File
7. Kemudian muncul form bentang alamat memori seperti pada gambar 1.7. kemudian klik OK.
Gambar 1.7. Tampilan Bentang Alamat Memory
3
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
8. Pilih menu FileàExternal Modules SettingàLed dan akan muncul form seperti pada gambar 1.8. pilih port yang akan diaktifkan misal port 1, centanglah masing-masing bit pada port1. selnjutnya klik OK.
Gambar 1.8. Form Pengaturan Module Led
9. Langkah berikutnya pilih menu ViewàExternal ModulesàLed dan muncul form seperti gambar 1.9
Gambar 1.9. Form Led Modules Yang Belum Dijalankan
10. Selanjutnya pilih menu RunàGo untuk menjalankan program dan tampilan hasil eksekusi seperti pada gambar 1.10.
Gambar 1.10. Form Led Module Yang Sudah Dijalankan
***SELAMAT BELAJAR***
4
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
BAB 2 PENGGUNAAN TOMBOL Penggunaan tombol pada port parallel mikrokontroler umumnya difungsikan seolah-olah sebuah sensor yang akan dikondisikan sebagai sinyal masukan mikrokontroler. Perhatikan gambar 2.1.
Gambar 2.1. Rangkaian Penggunaan Tombol pada Mikrokontroler
Dalam program TopView Simulator Anda harus mengatur konfigurasi port untuk tombol dan port untuk Led, berikut langkah-langkahnya: 1. Pilih Menu FileàExternal Modules SettingàLed, dan centanglah port yang anda gunakan untuk Led, perhatikan gambar 2.2.
Gambar 2.2. Form Pengaturan Module Led
2. Dan untuk konfigurasi Tombol Tekan Pilih Menu Fileà External Modules SettingàKeyBoard, perhatikan gambar 2.3. Pilihlah port yang
5
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
digunakan untuk tombol dan pada Kotak Matrix KeyPad pilihàNone, bila sudah sesuai tekan tombol OK.
Gambar 2.3. Form Pengaturan Pemilihan Tombol
3. Untuk menampilkan led, Pilih menu ViewàExsternal ModulesàLed, dan untuk menampilkan modul Tombol, Pilih menu ViewàExsternal ModulesàKeyBoard perhatikan gambar 2.4.
Gambar 2.4. Tampilan modul Led dan Tombol
4. Cobalah menuliskan listing program seperti pada gambar 2.5 dibawah ini dan amati hasilnya.
6
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 2.5. Contoh Listing Program Pembacaan Tombol Pada Port 3
5. Bila dijalankan akan tampak seperti gambar 2.6. penekanan tombol pada port 3 akan diterjemahkan dengan tampilan perbit pada port 1.
Gambar 2.6. Tampilan simulasi Pembacaan Tombol
6. Untuk pengembangan tombol tekan dapat digunakan sebagai tombol SET dan RESET, yaitu menghidupkan led pada P1.0 dengan menekan tombol P3.0, dan untuk memadamkan nyala led P1.0 dengan menekan tombol P3.1. Perhatikan algoritma pada gambar 2.7. start
Baca Tombol P3
y P3.0=1
t
y P3.1=1
t P1.0=1
P1.0=0
Gambar 2.7. Algoritma tombol SET RESET
7
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Berikut contoh programnya : $mod51 org 0h ;set reset dua tombol ;ibnu budi rahardjo padam: jb p3.0,nyala setb p1.0 nyala: jb p3.1,padam clr p1.0 sjmp padam end
contoh program dengan satu tombol SET RESET pada P3.0 dengan nyala led pada port 1. $MOD51 ORG 0H MULAI: MOV A,P3
; Baca tombol P3 dan simpan di akumulator
CJNE A,#0FEH,MULAI
; Apakah tombol P3.0 ditekan? (=11111110)
; Tidak! Ulangi lagi dari awal CJNE R0,#0,TERUS
; Ya! Apakah R0=0 (artinya lampu sedang mati)?
; Tidak! loncat ke proses mematikan lampu LED (TERUS) MOV R0,#1 MOV P1,#0 TUNGGU:
; Ya! ubah status R0=1 (lampu menyala) ;
dan hidupkan lampu LED di port 1
; Untuk menghindari bouncing MOV A,P3
; Tunggu hingga tombol P3.0 dilepas
CJNE A,#0FFH,TUNGGU
;
SJMP MULAI
; Ulangi lagi dari awal
MOV R0,#0
; Ubah status R0=0 (lampu mati)
MOV P1,#0FFH
; dan matikan lampu LED di port 1
SJMP TUNGGU
; untuk menghindari bouncing, lompat ke TUNGGU
TERUS:
; END
8
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
BAB 3. PENGGAKSESAN SEVEN SEGMENT
Seven segment merupakan komponen elektronika yang dapat digunakan untuk menampilkan karakter angka, didesain dari 7 led dan 1 dot point dengan ukuran bermacam-macam. Perhatikan gambar 3.1. Merupakan konfigurasi pin seven segment (Common Anoda).
Gambar3.1. Konfigurasi Seven Segment
Dari gambar 3.1. Tampak 7 pin yang digunakan untuk membentuk karakter angkadan Anda harus membuatkan tabel pengaksesan pin seven segment tersebut. Sebagai contoh seven segment dihubungkan dengan port 1 seperti terlihat pada gambar 3.2.
Gambar 3.2 Hubungan Port Mikrokontroler dengan pin 7 Segment
9
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Tabel 3.1. Konfigurasi Data Karakter 7 Segment
Setelah ditabelkan konfigurasi data karakter 7 segment maka didapatkan data hexa dari masing-masing karakter angka 0-9, seperti pada tabel 3.1. Sebagai contoh untuk menampilkan karakter 4 maka dikirim data 71h. Bila Anda ingin mencoba pada program top View Simulator lakukan pengaturan port
seven
segment
dengan
memilih
menu
FileàExsternal
Module
SettingsàLed, aturlah pada frame Interface Selection pilih Non-Multiflexed serta pilihlah Selection of Port Lines Number of Digits , setelah itu tampil konfigurasi port terhadap pin seven segment tampak seperti pada gambar 3.4.
Gambar 3.3. Pengaturan Modul Led dan 7 Segmen
10
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 3.4. Form Port Line Selection
Lakukan pengaturannya sesuai rangkaian yang anda buat dan sesuaikan juga dengan tabel 3.1, setelah seluruh bit diatur klik OK. Selanjutnya lakukan penulisan listing program sebagai contoh program pada gambar 3.5. dibawah ini adalah pengaksesan seven segment dengan pengiriman data secara langsung.
Gambar 3.5. Program Pengaksesan 7 Segmen dengan Perieriman data Secara Langsung
Anda dapat mencoba dengan teknik menggunakan Data Pointer agar listing program lebih pendek algoritma penggunaan data pointer tampak pada gambar 3.6.
Lakukan eksekusi dan Load-lah hasilnya dengan TopView
Simulator, bila belum paham diskusikan dengan Instruktur Anda.
11
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
start DPTR=alamat data numeric R0=10 A=data pada alamat DPTR
P1ßA
DPTR=DPTR+1 R0=R0-1
tdk R0=0 ? ya Gambar 3.6. Algoritma Pengaksesan 7 Segmen mengunakan Data Pointer (Non-MultiPlexer)
Dibawah ini listing program pengaksesan seven segment menggunakan Data pointer :
12
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
BAB 4 PEMBACAAN TOMBOL KEYPAD MATRIK
Didalam program salah satu lajur difungsikan sebagai input (masukan) dan lainnya sebagai output (keluaran). Lajur yang berfungsi sebagai output, dalam satu waktu yang sama hanya terdapat satu lajur saja yang berlogika nol ‘0’ dan sisanya berlogika satu ‘1’. Perhatikan gambar 4.1
Gambar 4.1. Rangkaian Tombol KeyPad Matrik
Seperti pada gambar 4.1. tombol keypad matrik sebagai contoh dipasang pada port 2, untuk konfigurasi baris P2.0, P2.1,P2.2,P2.3 dan untuk kolom P2.4,P2.5,P2.6. Pola pembacaannya adalah jika tombol nol ‘0’ ditekan maka bit P2.0 dan P2.4 terhubung, tombol empat ‘4’ ditekan maka P2.1 dan P2.5 terhubung. Pengaturan konfigurasi keypad matrik pada Program TopView Simulator dapat dipilih menu FileàExternal Modules SettingàKeyBoard, kemudian pilih frame ‘Matrik KeyPad’ dan pilih ‘3x4’ (sesuaikan dengan perangkat yang akan digunakan), selanjutnya aturlah konfigurasi keypad matrik sesuai dengan skema tombol keypad matrik, perhatikan gambar 4.2.
13
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 4.2. Pemilihan KeyPad Matrik
Contoh program pembacaan Keypad Matrik ;======================================= ; Program demo keypad 3x4 dipasang ; pada port 3, output pada port 1 ;======================================= kolom1
bit
p3.0
kolom2
bit
p3.1
kolom3
bit
p3.2
baris1
bit
p3.3
baris2
bit
p3.4
baris3
bit
p3.5
baris4
bit
p3.6
keyport
equ
P3
keydata
equ
50h
keybounc
equ
51H
org ulang: call
; kiri (1,4,7,redial)
; atas (1,2,3)
0h Keypad3x4
mov
A,keydata
cjne
A,#0FFH,ditekan
jmp
ulang
cpl
A
mov
P1,A
jmp
ulang
ditekan:
;==================================== ; routine u/ baca keypad 3x4
14
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 ; output pd keydata(0-9,E=redial,F=#) ;==================================== Keypad3x4:
ul1:
mov
keybounc,#50
mov
keyport,#0FFh
clr
kolom1
jb
baris1,key1
djnz
keybounc,ul1
mov
keydata,#1
ret key1:
jb
baris2,key2
djnz
keybounc,key1
mov
keydata,#4
ret key2:
jb
baris3,key3
djnz
keybounc,key2
mov
keydata,#7
ret key3:
jb
baris4,key4
djnz
keybounc,key3
mov
keydata,#0Eh
ret key4:
setb
kolom1
clr
kolom2
jb
baris1,key5
djnz
keybounc,key4
mov
keydata,#2
ret key5:
jb
baris2,key6
djnz
keybounc,key5
mov
keydata,#5
ret key6:
jb
baris3,key7
djnz
keybounc,key6
mov
keydata,#8
ret key7:
jb
baris4,key8
djnz
keybounc,key7
mov
keydata,#0
ret
15
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 key8:
setb
kolom2
clr
kolom3
jb
baris1,key9
djnz
keybounc,key8
mov
keydata,#3
ret key9:
jb
baris2,key10
djnz
keybounc,key9
mov
keydata,#6
ret key10: jb
baris3,key11
djnz
keybounc,key10
mov
keydata,#9
ret key11: jb
baris4,key12
djnz
keybounc,key11
mov
keydata,#0Fh
ret key12: mov
keydata,#0FFh
ret end
16
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
BAB 5 INTERFACE LCD Dalam memprogram pengaksesan LCD harus diperhatikan konfigurasi dari LCD tersebut, berbagai merek LCD yang ada dipasaran namun semuanya hampir sama, hanya saja jumlah kolom dan barisnya yang membedakan. Dalam
artikel
ini
dibahas
tehnik
pemrograman
LCD
menggunakan
mikrokontroler seri ATMEL AT89Sxx. Perhatikan gambar 5.2. Blok rangkaian internal LCD 16x2.
Gambar 5.1.
Gambar 5.2. Blok Diagram LCD
Pada gambar 5.3. Konfigurasi pin LCD double pin, dan gambar 5.4. Konfigurasi single pin. Interface LCD menggunakan mikrokontroler dapat
17
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
dilakukan dengan lebar data 8 bit dan 4 bit. Untuk pengaksesan lebar data 4 bit digunakan untuk efisiensi pemakaian port (sisa port dipakai keperluan yang lain).
Gambar 5.3
Gambar 5.4
Untuk menuliskan karakter ke layar LCD, harus memenuhi aturan yang telah ditetapkan oleh pabrikan modul LCD. Hampir semua modul LCD mempunyai konfigurasi yang sama yaitu setiap baris dan kolom karakter pada LCD memupnyai alamat sendiri-sendiri, seperti pada gambar 5.5. Merupakan pengalamatan karakter pada layer LCD.
Gambar 5.5.
Pengiriman data ke LCD ada dua macam yaitu data sebagai instruksi dan data sebagai karakter yang akan kita tampilkan dilayar. Keduanya dibedakan oleh sebuah kaki yang diberi nama RS (Register Select). Bila pin RS
18
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
(Register Select) berlogika satu “1” (high) maka data yang diterima LCD adalah data karakter. Bila pin RS (Register Select) berlogika nol “0” (low) maka data yang diterima LCD adalah data instruksi bagi LCD tersebut. Instruksi diperlukan antara lain untuk inisialisasi LCD, meletakkan kursor pada baris dan kolom tertentu, hapus layar dan lainnya (dapat dilihat pada datasheet LCD).
Gambar 5.6. Contoh Rangkaian Interface LCD 8 bit
Untuk konfigurasi
menggunakan layar
LCD
software
dengan
TopView
memilih
menu
Simulator
dapat
FileàExternal
diatur Modul
SettingsàLCD. Pilih banyak baris LCD misalnya 2x16, sperti terlihat pada gambar 5.7, lebar databus 8 bit. Selanjutnya pilih tombol “Port Line Selection” untuk mengatur konfigurasi pin mikrokontroler dengan pin LCD, dalam hal ini harus disesuaikan dengan konfigurasi dalam listing program.
19
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 5.7. Pengaturan Modul LCD
Dibawah ini adalah algoritma pemrograman interface LCD menggunakan mikrokontroler.
Operasi Interface lebar data 8 bit :
20
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Operasi Interface lebar data 4 bit :
;----------------------------------------;Program Demo untuk menjalankan LCD 16 x 2 ;OPERASI 8 BIT org
0h
nop ljmp
mulai
write_inst: mov
P1,#0h ;untuk memuliskan
mov
P0,R1
;intruksi ke LCD
setb
P1.1
;module
clr
P1.1
acall
delay
ret
21
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 ; write_data: mov
P1,#01 ;untuk menuliskan
mov
P0,R1
;data ke LCD
setb
P1.1
;module
clr
P1.1
acall
delay
ret delay:
mov
delay1: mov
R0,#0 R5,#50h
djnz
R5,$
djnz
R0,delay1
ret Ldelay: mov
R2,#030h
Ld1:
acall
delay
djnz
R2,Ld1
ret tulis:
mov mov
barisa: mov
R4,#3 DPTR,#Huruf R3,#16
;jumlah kolom baris atas
mov
R1,#80h
;karakter pertama di alamat 80
acall
write_inst
tulis1: clr A movc
A,@A+DPTR
mov
R1,A
Inc
DPTR
acall
write_data
djnz
R3,Tulis1
; barisb: mov
R3,#16
mov
R1,#0C0h
acall
write_inst
tulis2: clr A movc
A,@A+DPTR
mov
R1,A
Inc
DPTR
acall
write_data
djnz
R3,Tulis2
acall
Ldelay
djnz
R4,barisa
ret mulai: mov
R1,#03Fh
acall
write_inst
acall
write_inst
22
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Huruf:
mov
R1,#0Dh
acall
write_inst
mov
R1,#06h
acall
write_inst
mov
R1,#01h
acall
write_inst
mov
R1,#0Ch
acall
write_inst
acall
tulis
sjmp
mulai
DB
'SELAMAT DATANG '
DB
‘ibnu budi r. '
DB
'di. Smkn 1glagah'
DB
‘banyuwangi’
DB DB
'jawa – timur’ ‘elektronika’
End
Untuk mengetahui proses penulisan data dan pengiriman instruksi ke layar LCD dapat dilihat menggunakan Software TopView Simulator dengan memilih menu ViewàSFR Bit Status Window, perhatikan 5.8. “Kondisi bit SFR (Special Function Register)” , setelah Anda load programnya dan cobalah untuk menganalisa proses penulisan karakter dan pengiriman instruksi dengan menekan tombol keyboard “F8” atau pilih menu Singgle StepàStep Over.
Gambar 5.8. Peta Special Function Register
23
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Dibawah ini contoh program untuk penulisan kakrakter menggunakan Keypad matrik. LCD_RS
bit
P1.0
LCD_CS
bit
P1.1
kolom1
bit
p2.4
; kiri (1,4,7,redial)
kolom2
bit
p2.5
; atas (1,2,3)
kolom3
bit
p2.6
baris1
bit
p2.0
;
baris2
bit
p2.1
;
baris3
bit
p2.2
;
baris4
bit
p2.3
;
keyport
equ
P2
;
old_key
equ
40h
;
count_key
equ
41h
;
7
8
9
keydata
equ
42h
;
PQR
STU
VWX
alphacode
equ
43h
;
n
equ
44h
;
REDIAL
lama
equ
45h
;
YZ[
1
2 ABC
4 GHI
3 DEF
5 JKL
6 MNO
0#
;<= space]-
;-------------------------------------; scanning tombol untuk alpha numerik ;-------------------------------------org
0h
;================== ; Inisialisasi LCD ;================== call
Ldelay
mov
A,#03Fh
call
write_inst
call
write_inst
mov
A,#0Dh
call
write_inst
mov
A,#06h
call
write_inst
mov
A,#01h
call
write_inst
mov
A,#0Fh
call
write_inst
mov
n,#07FH
alphanum:
24
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 mov
old_key,#0
mov
count_key,#0
scan_alpha_numerik: call
keypad3x4
mov
A,keydata
cjne
A,#0FFh,key_pressed_1
sjmp
scan_alpha_numerik
key_pressed_1: orl
A,#30h
cjne
A,Old_key,new_char
mov
Old_key,A
inc
count_key
anl
A,#0Fh
mov
B,#3
mul
AB
add
A,#3Ah
add
A,count_key
cjne
A,#5Eh,space
mov
A,#2Dh
space: cjne mov
A,#5Ch,not_space A,#20h
not_space: mov
alphacode,A
call
tampil
mov
lama,keydata
call
tunggu_tombol_dilepas
mov
A,count_key
cjne
A,#3,scan_alpha_numerik
mov
old_key,#0
mov
count_key,#0
jmp
scan_alpha_numerik
new_char: mov
Old_key,A
mov
alphacode,A
mov
count_key,#0
call
tampil
mov
lama,keydata
call
tunggu_tombol_dilepas
jmp
scan_alpha_numerik
;
25
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 tunggu_tombol_dilepas: jnb
baris1,$
jnb
baris2,$
jnb
baris3,$
jnb
baris4,$
ret ;================================= tampil: mov cjne tterus: mov
A,keydata A,lama,naik A,ALPHACODE
call
write_data
mov
A,n
call
write_inst
ret naik:
cjne
A,#0Fh,cek_BS
mov
ALPHACODE,#20H
mov
old_key,#0
mov
lama,#0
mov
keydata,#0FFh
mov
count_key,#0
naik1: inc
n
mov
A,n
call
write_inst
sjmp
tterus
cek_BS:
cjne
A,#0Eh,naik1
mov
A,#20H
call
write_data
dec
n
mov
A,n
cjne
A,#80h,cekbkb
cekbkb: jnc
terus9
mov
A,#80h
mov
n,#7Fh
terus9: call
write_inst
mov
old_key,#3Eh
mov
count_key,#0
mov
keydata,#0FFh
mov
lama,#0
ret ;====================================
26
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 ; routine u/ baca keypad 3x4 ; output pd keydata(0-9,E=redial,F=#) ;==================================== Keypad3x4:
ul1:
mov
keyport,#0FFh
clr
kolom1
jb
baris1,key1
mov
keydata,#1
ret key1:
jb
baris2,key2
mov
keydata,#4
ret key2:
jb
baris3,key3
mov
keydata,#7
ret key3:
jb
baris4,key4
mov
keydata,#0Eh
ret key4:
setb
kolom1
clr
kolom2
jb
baris1,key5
mov
keydata,#2
ret key5:
jb
baris2,key6
mov
keydata,#5
ret key6:
jb
baris3,key7
mov
keydata,#8
ret key7:
jb
baris4,key8
mov
keydata,#0
ret key8:
setb
kolom2
clr
kolom3
jb
baris1,key9
mov
keydata,#3
ret key9:
jb
baris2,key10
mov
keydata,#6
ret
27
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 key10: jb mov
baris3,key11 keydata,#9
ret key11: jb mov
baris4,key12 keydata,#0Fh
ret key12: mov
keydata,#0FFh
ret ;======================================== ; Routine untuk menulis instruksi ke LCD ;======================================== write_inst: clr
LCD_RS
setb
LCD_CS
mov
P0,A
clr setb call
;intruksi ke LCD
LCD_CS
;module
LCD_CS delay
ret ;======================================== ; Routine untuk menulis data ke LCD ;======================================== write_data: setb
LCD_RS
setb
LCD_CS
mov
P0,A
clr setb call
;data ke LCD
LCD_CS
;module
LCD_CS delay
ret ;========================= ; Routine penghasil delay ;========================= delay: mov
R0,#50
delay1: mov
R5,#0
djnz
R5,$
djnz
R0,delay1
ret Ldelay: mov Ld1:
call
R2,#010h delay
28
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 djnz
R2,Ld1
ret end
latihan : a. Cobalah untuk mengembangkan program password menggunakan Keypad Matrik dan LCD dengan ketentuan bila passwordnya cocok led pada port yang ditunjuk aktif dan pada LCD tampil tulisan “Password Cocok”. b. Kembangkan program interface LCD dengan model pengiriman lebar databus 4 bit, dengan konfigurasi sebagai berikut: •
Databus (4) dihubungkan dengan P1.4
•
Databus (5) dihubungkan dengan P1.
•
Databus (6) dihubungkan dengan P1.
•
Databus (7) dihubungkan dengan P1.
•
Enable dihubungkan dengan P1.2
•
RS dihubungkan dengan P1.3
29
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
BAB 6 INTERFACE ADC (Analog to Digital Converter)
Pengkonversi
tegangan
Analog
menjadi
data
Digital
banyak
digunakan diberbagai peralatan misalnya : spedometer (rpm) pada mobil, spedometer untuk digital feul system pada mobil, rpm meter/ tacho meter digital dan lainnya. Data Digital
Input Analog ADC
Mikrokontroler
Gambar 6.1.Blok diagram ADC
5v
Tegangan masukan Analog 0 FFh Data keluaran berupa Digital
00h
Dalam pemrograman mikrokontroler AT89XX untuk interface dengan ADC dalam hal buku ini digunakan IC ADC0808, karena IC tersebut mempunyai 8 buah masukan dengan 3 buah address / pengalamatan data yaitu A0,A1,A2. perhatikan gambar 6.2. konfigurasi IC ADC0808, IC ini dengan 28 pin dan masing-masing pin / kaki IC mempunyai fungsi.
30
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Gambar 6.2. Konfigurasi IC ADC0808
Pada gambar 6.2. dilihat pada pin 23,24,25 merupakan pin Address A0,A1,A2 pin ini merupakan pin pemilihan input tegangan analog, perhatikan tabel 6.1. Tabel 6.1. Pemilihan Chanel Input
Untuk menggunakan pin input chnael 0 mmaka Address A0 diberi logika ’0’, A1 diberi logika ’0’, dan A2 diberi logika ’0’. Begitu juga bila ingin memberikan masukan tegangan analog pada Input 1 maka A0=1,A1=0,A2=0. pemberian
logika ini diatur pada mikrokontroler agar pin penghubung pada
masing-masing Address berlogika sesuai dengan tabel pengalamatannya.
31
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006
Urutan pengiriman datanya harus sesuai dengan Timing Diagram seperti pada datasheet IC0808, perhatikan gambar 6.3. dibawah ini.
Gambar 6.3. Timing Diagram Pengiriman Data ADC 0808
Contoh program interface mikrokontroler dengan ADC 08008 ADC_A
bit
P2.7
ADC_B
bit
P2.6
ADC_C
bit
P2.5
ADC_OE
bit
P2.4
ADC_START
bit
P2.3 ;pin start dan ALE dihubungkan
ADC_EOC
bit
P2.2
; org 0h ; ADC channel 0
ABC = 000 / input 1
clr ADC_A clr ADC_B clr ADC_C ; kondisi awal clr ADC_OE clr ADC_START next_sampling: setb
ADC_START
; start of conversion
32
Modul Praktikum 1. Mikrokontroler 8051 Penulis : Ibnu Budi R. Agustus 2006 nop clr
ADC_START
jnb
ADC_EOC,not_EOC
djnz
R2,$
djnz
R3,delay
setb
ADC_OE
djnz
R3,$
mov
A,P3
clr
ADC_OE
cpl
A
mov
P1,A
sjmp
next_sampling
not_EOC:
delay:
; Baca Data melalui P3
;pin untuk pembacaan data digital
end
33