Jumat, 11 September 2015

PORT PARALEL UNTUK MASUKAN AT89S51

Port-port mikrokontroler dilengkapi pull up internal, sehingga kondisi default-nya adalah high. Untuk menjadikan Port ini sebagai input, kita tinggal memberikan logika high atau membiarkannya dalam kondisi default. Jika kita menginginkan sebuah masukan terbaca kita sebaiknya menggunakan masukan berup sinyal Low.



Gambar Antarmuka dengan keypad
Prinsip kerja hardware,
Saat kita menekan tombol keypad maka signal reendah akan dikrim ke port 3 pada mikrokontroler, Dengan demikian port ini akan mempunyai logika sesuai dengan penekanan tombol

Hardware Conection

Pasang Modul Mikrokontroler, sambungkan modul Keypad 8 tombol ke port 3



;---------------------------------------------------------------------
; Simulasi penekanan tombol pd P3.0 untuk menghidupkan
; dan P3.1 untuk mematikan LED pada Port 1
;----------------------------------------------------------------------
ORG 0H
MULAI:
MOV A,P3 ; Baca port 3 dan simpan isinya
; ke akumulator
CJNE A,#0FEH,TERUS ; Apakah isi akumulator = 11111110B
; (P3.0 ditekan)?
; Tidak! lompat ke TERUS
MOV P1,#0 ; Ya! Hidupkan lampu LED di port 1
SJMP MULAI ; Ulangi lagi dari awal (label MULAI)
TERUS:
CJNE A,#0FDH,MULAI ; Apakah isi akumulator = 11111101B
; (P3.1 ditekan)?
; Tidak! lompat ke awal (label MULAI)
MOV P1,#0FFH ; Ya! Matikan lampu LED di port 1
SJMP MULAI ; Ulangi lagi dari awal...
END

Penjelasan
Saat keypad yang terhubung P3.0 di tekan maka data pada port 3 adalah 11111110 Biner atau0FE Hexa, program akan mengetahuai dengan menengok isi port 3 jika datanya sama (0FE H)maka Led pada port 1 dinyalakan, jika terjadi penekanan P3.1 maka data pada port 3 11111101Biner atau 0FD Hexa, Program akan mengecek isi port 3 jika data tersebut di temukan maka Ledpada port 1 akan dimatikan
;----------------------------------------------------------------------
; Simulasi penekanan tombol pd P3.0 sebagai toggle switch
; untuk menghidupkan/mematikan lampu pada Port 1
;----------------------------------------------------------------------
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

Tidak ada komentar:

Posting Komentar