bab 1 praktikum dasar mikrokontroler · pdf filemodul praktikum 1. mikrokontroler 8051 penulis...
TRANSCRIPT
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
1
BAB 1PRAKTIKUM DASAR MIKROKONTROLER MENGGUNAKANTOP 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.
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
2
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 adakesalahan maka muncul ASSEMBLY COMPLETE, 0 ERROR FOUND
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
3
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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
4
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***
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
5
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à ExternalModules SettingàKeyBoard, perhatikan gambar 2.3. Pilihlah port yang
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
6
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.
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
7
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.
Gambar 2.7. Algoritma tombol SET RESET
y
t
y
t
P3.0=1P3.1=1
start
P1.0=1P1.0=0
Baca Tombol P3
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
8
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 ; Ya! ubah status R0=1 (lampu menyala)
MOV P1,#0 ; dan hidupkan lampu LED di port 1
TUNGGU: ; Untuk menghindari bouncing
MOV A,P3 ; Tunggu hingga tombol P3.0 dilepas
CJNE A,#0FFH,TUNGGU ;
SJMP MULAI ; Ulangi lagi dari awal
TERUS:
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
;
END
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
9
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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
10
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 ModuleSettingsà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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
11
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.
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
12
Gambar 3.6. Algoritma Pengaksesan 7 Segmen mengunakan Data Pointer (Non-MultiPlexer)
Dibawah ini listing program pengaksesan seven segment menggunakan Data
pointer :
DPTR=DPTR+1R0=R0-1
DPTR=alamat datanumeric R0=10
A=data pada alamatDPTR
P1ßA
start
R0=0 ?tdk
ya
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
13
BAB 4PEMBACAAN 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.
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
14
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 ; kiri (1,4,7,redial)
kolom2 bit p3.1
kolom3 bit p3.2
baris1 bit p3.3 ; atas (1,2,3)
baris2 bit p3.4
baris3 bit p3.5
baris4 bit p3.6
keyport equ P3
keydata equ 50h
keybounc equ 51H
org 0h
ulang: call Keypad3x4
mov A,keydata
cjne A,#0FFH,ditekan
jmp ulang
ditekan:
cpl A
mov P1,A
jmp ulang
;====================================
; routine u/ baca keypad 3x4
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
15
; output pd keydata(0-9,E=redial,F=#)
;====================================
Keypad3x4:
mov keybounc,#50
mov keyport,#0FFh
clr kolom1
ul1: 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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
16
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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
17
BAB 5INTERFACE 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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
18
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).
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
Gambar 5.4
Gambar 5.3
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
19
(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 menggunakan software TopView Simulator dapat diatur
konfigurasi layar LCD dengan memilih menu FileàExternal ModulSettingsà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.
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
20
Gambar 5.7. Pengaturan Modul LCD
Dibawah ini adalah algoritma pemrograman interface LCD menggunakan
mikrokontroler.
Operasi Interface lebar data 8 bit :
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
21
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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
22
;
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 R0,#0
delay1: mov R5,#50h
djnz R5,$
djnz R0,delay1
ret
Ldelay: mov R2,#030h
Ld1: acall delay
djnz R2,Ld1
ret
tulis: mov R4,#3
mov DPTR,#Huruf
barisa: mov 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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
23
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
Huruf: DB 'SELAMAT DATANG '
DB ‘ibnu budi r. '
DB 'di. Smkn 1glagah'
DB ‘banyuwangi’
DB 'jawa – timur’
DB ‘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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
24
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 ; 1 2 3
baris2 bit p2.1 ; ABC DEF
baris3 bit p2.2 ;
baris4 bit p2.3 ; 4 5 6
keyport equ P2 ; GHI JKL MNO
old_key equ 40h ;
count_key equ 41h ; 7 8 9
keydata equ 42h ; PQR STU VWX
alphacode equ 43h ;
n equ 44h ; REDIAL 0 #
lama equ 45h ; YZ[ ;<= 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:
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
25
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 A,#5Ch,not_space
mov 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
;
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
26
tunggu_tombol_dilepas:
jnb baris1,$
jnb baris2,$
jnb baris3,$
jnb baris4,$
ret
;=================================
tampil: mov A,keydata
cjne A,lama,naik
tterus: mov 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
;====================================
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
27
; routine u/ baca keypad 3x4
; output pd keydata(0-9,E=redial,F=#)
;====================================
Keypad3x4:
mov keyport,#0FFh
clr kolom1
ul1: 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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
28
key10: jb baris3,key11
mov keydata,#9
ret
key11: jb baris4,key12
mov 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 ;intruksi ke LCD
clr LCD_CS ;module
setb LCD_CS
call delay
ret
;========================================
; Routine untuk menulis data ke LCD
;========================================
write_data:
setb LCD_RS
setb LCD_CS
mov P0,A ;data ke LCD
clr LCD_CS ;module
setb LCD_CS
call delay
ret
;=========================
; Routine penghasil delay
;=========================
delay: mov R0,#50
delay1: mov R5,#0
djnz R5,$
djnz R0,delay1
ret
Ldelay: mov R2,#010h
Ld1: call delay
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
29
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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
30
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.
Gambar 6.1.Blok diagram ADC
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.
ADCInput Analog
Mikrokontroler
DataDigital
0
00h
FFh
5 v
Tegangan masukanAnalog
Data keluaran berupaDigital
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
31
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.
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
32
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
Modul Praktikum 1. Mikrokontroler 8051Penulis : Ibnu Budi R. Agustus 2006
33
nop
clr ADC_START
not_EOC:
jnb ADC_EOC,not_EOC
delay: djnz R2,$
djnz R3,delay
setb ADC_OE ; Baca Data melalui P3
djnz R3,$
mov A,P3 ;pin untuk pembacaan data digital
clr ADC_OE
cpl A
mov P1,A
sjmp next_sampling
end