praktikum dasar mikrokontroler top view sim

(1)

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.


(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


(3)

Gambar 1.5. Tampilan program compiler ASM51 pada command promt

6. Selanjutnya buka program TopViewSimualator dan pilih menu

FileLoad 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.


(4)

8. Pilih menu FileExternal Modules SettingLed 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 ViewExternal ModulesLed dan muncul form seperti gambar 1.9

Gambar 1.9. Form Led Modules Yang Belum Dijalankan

10.Selanjutnya pilih menu RunGo untuk menjalankan program dan tampilan hasil eksekusi seperti pada gambar 1.10.


(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 FileExternal Modules SettingLed, 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 FileExternal Modules SettingKeyBoard,perhatikan gambar 2.3. Pilihlah port yang


(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 ViewExsternal ModulesLed, dan untuk menampilkan modul Tombol, Pilih menu ViewExsternal ModulesKeyBoard 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.


(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.

start Baca Tombol P3

y t

P3.0=1

P1.0=1

P3.1=1 t P1.0=0

y


(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:

MOVA,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)?

TUNGGU:

MOVR0,#1 MOV P1,#0 MOVA,P3

; Tidak! loncat ke proses mematikan lampu LED (TERUS) ; Ya! ubah status R0=1 (lampu menyala)

; dan hidupkan lampu LED di port 1 ; Untuk menghindari bouncing ; Tunggu hingga tombol P3.0 dilepas CJNE A,#0FFH,TUNGGU ;

TERUS: ; SJMP MULAI MOVR0,#0 MOVP1,#0FFH SJMP TUNGGU END

; Ulangi lagi dari awal

; Ubah status R0=0 (lampu mati) ; dan matikan lampu LED di port 1


(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.


(10)

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 menuFileExsternal Module SettingsLed, 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.


(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.


(12)

Penulis : Ibnu Budi R. Agustus 2006

start

DPTR=alamat data numeric R0=10

A=data pada alamat DPTR

P1A 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 :


(13)

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 FileExternal Modules SettingKeyBoard, 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.


(14)

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 kolom2 kolom3 baris1 baris2 baris3 baris4 bit bit bit bit bit bit bit

p3.0 ; kiri (1,4,7,redial) p3.1

p3.2

p3.3 ; atas (1,2,3) p3.4 p3.5 p3.6 keyport keydata keybounc equ P3 equ 50h equ 51H org 0h

ulang: call Keypad3x4 mov A,keydata cjne A,#0FFH,ditekan jmp ulang ditekan: cpl A mov P1,A


(15)

; output pd keydata(0-9,E=redial,F=#) ;==================================== Keypad3x4: mov keybounc,#50 mov keyport,#0FFh clr ul1: jb kolom1 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 jb kolom2 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


(16)

Penulis : Ibnu Budi R. Agustus 2006 key8: setb kolom2

clr jb

kolom3 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


(17)

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


(18)

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.


(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 FileExternal Modul SettingsLCD. 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.


(20)

Penulis : Ibnu Budi R. Agustus 2006

Gambar 5.7. Pengaturan Modul LCD

Dibawah ini adalah algoritma pemrograman interface LCD menggunakan mikrokontroler.


(21)

Operasi Interface lebar data 4 bit :

;---;Program Demo untuk menjalankan LCD 16 x 2 ;OPERASI 8 BIT

org nop

0h 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


(22)

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 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: clrA 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: clrA movc A,@A+DPTR mov R1,A Inc DPTR acall write_data djnz R3,Tulis2 acall Ldelay djnz R4,barisa ret


(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 acal tulis sjmp mulai Huruf: DB

DB

'SELAMAT DATANG ' ‘ibnu budi r. '

DB'di. Smkn 1glagah' DB ‘banyuwangi’

DB'jawa – timur’ DB

End

‘elektronika’

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 StepStep Over.


(24)

Penulis : Ibnu Budi R. Agustus 2006

Dibawah ini contoh program untuk penulisan kakrakter menggunakan Keypad matrik. LCD_RS LCD_CS bit bit P1.0 P1.1 kolom1 kolom2 kolom3 baris1 bit bit bit bit

p2.4 ; kiri (1,4,7,redial) p2.5 ; atas (1,2,3) p2.6

p2.0 ; 1 2 3

baris2 baris3

bit bit

p2.1 ; ABC DEF

p2.2 ;

baris4 bit p2.3 ; 4 5 6

keyport equ P2 ;GHI JKL MNO old_key

count_key

equ 40h ;

equ 41h ; 7 8 9

keydata alphacode n

lama

equ 42h ;PQR STU VWX equ 43h ;

equ 44h ; REDIAL0 # equ 45h ;YZ[ ;<= space]-

;---; scanning tombol untuk alpha numerik

;---org 0h ;================== ; Inisialisasi LCD ;================== call Ldelay mov A,#03Fh callwrite_inst callwrite_inst mov A,#0Dh callwrite_inst mov A,#06h callwrite_inst mov A,#01h callwrite_inst


(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 anl count_key A,#0Fh mov B,#3 mul AB add 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 ;


(26)

Penulis : Ibnu Budi R. Agustus 2006 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


(27)

; routine u/ baca keypad 3x4 ; output pd keydata(0-9,E=redial,F=#)

;==================================== Keypad3x4: mov keyport,#0FFh clr ul1: jb kolom1 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 jb kolom2 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 jb kolom3 baris1,key9 mov keydata,#3 ret

key9: jb baris2,key10 mov keydata,#6


(28)

Penulis : Ibnu Budi R. Agustus 2006 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 setbLCD_CS

mov P0,A ;intruksi ke LCD clr LCD_CS;module setbLCD_CS calldelay ret

;======================================== ; Routine untuk menulis data ke LCD

;======================================== write_data:

setbLCD_RS setbLCD_CS

mov P0,A ;data ke LCD clr LCD_CS;module setbLCD_CS calldelay ret

;========================= ; Routine penghasil delay ;========================= delay: mov R0,#50

delay1: mov R5,#0 djnzR5,$ djnzR0,delay1


(29)

djnzR2,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


(30)

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 Input Analog

ADC Mikrokontroler

Digital

FFh

00h 5 v

0

Gambar 6.1.Blok diagram ADC

Tegangan masukan Analog

Data keluaran berupa Digital

Dalam pemrograman mikrokontroler AT89XX untuk interface dengan ADC dalam hal buku ini digunakan IC ADC0808, karena IC tersebut


(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.


(32)

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 ADC_B ADC_C ADC_OE

bit bit bit bit

P2.7 P2.6 P2.5 P2.4

ADC_START bit P2.3;pin start dan ALE dihubungkan ADC_EOC

;

bit org 0h

P2.2

; ADC channel 0 clr ADC_A clr ADC_B clr ADC_C ; kondisi awal


(33)

nop not_EOC: delay:

clr jnb djnz djnz setb djnz mov clr cpl mov sjmp end

ADC_START ADC_EOC,not_EOC

R2,$ R3,delay

ADC_OE ; Baca Data melalui P3 R3,$

A,P3 ;pin untuk pembacaan data digital ADC_OE

A P1,A


(1)

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 setbLCD_CS

mov P0,A ;intruksi ke LCD clr LCD_CS;module setbLCD_CS calldelay ret

;======================================== ; Routine untuk menulis data ke LCD

;========================================

write_data:

setbLCD_RS setbLCD_CS

mov P0,A ;data ke LCD clr LCD_CS;module setbLCD_CS calldelay ret

;=========================

; Routine penghasil delay

;=========================

delay: mov R0,#50 delay1: mov R5,#0

djnzR5,$ djnzR0,delay1 ret


(2)

djnzR2,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


(3)

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 Input Analog

ADC Mikrokontroler

Digital

FFh

00h 5 v

0

Gambar 6.1.Blok diagram ADC

Tegangan masukan Analog

Data keluaran berupa Digital

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


(4)

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.


(5)

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

ADC_B

ADC_C ADC_OE

bit bit bit

bit

P2.7 P2.6 P2.5 P2.4

ADC_START bit P2.3;pin start dan ALE dihubungkan ADC_EOC

;

bit org 0h

P2.2

; ADC channel 0 clr ADC_A

clr ADC_B clr ADC_C

; kondisi awal

clr ADC_OE clr ADC_START


(6)

nop not_EOC: delay:

clr jnb djnz djnz setb djnz mov clr cpl mov sjmp end

ADC_START ADC_EOC,not_EOC

R2,$ R3,delay

ADC_OE ; Baca Data melalui P3

R3,$

A,P3 ;pin untuk pembacaan data digital

ADC_OE A

P1,A