Monday, January 28, 2013

[Review] Rangkaian Payung Otomatis Berbasis AT89S51

         28 - 01 - 2013
         10 : 24 PM




         Ok, kali ini saya akan kembali mereview sebuah rangkaian yang pernah saya buat. Alat ini adalah alat yang digunakan sebagai Penulisan Ilmiah (PI) dari teman saya bernama eko. Judul alat ini adalah 'Payung Otomatis'. Alat ini terdiri dari input berupa : Cahaya, Air, dan beberapa switch sebagai pengontrol. Lalu prosesnya berupa : Mikrokontroller AT89S51, Driver Motor DC L293D, dan IC komparator LM339. Dan terakhir output berupa : Tampilan LCD 16x2, dan Perputaran Motor DC.
         Baik, mari saya jelaskan sedikit kinerja alat ini. Karena saya sedang tidak begitu mood mereview listing program secara perbaris seperti sebelumnya. Toh tidak ada yang minat juga sepertinya untuk mengerti alurnya program dari rangkaian. Kalian hanya tinggal menyamakan jalur / rangkaian seperti yang di gambar, lalu mengcopy-paste program yang akan saya berikan di bawah postan ini. Dan selesai, alat bekerja. Benar kan, itu yang kalian inginkan? Baiklah baik.
         Alat ini bekerja dengan memproses input dari LDR maupun dari sensor air. Jadi kondisinya, ketika ada cahaya yang banyak (kondisi panas terik). Maka payung akan terbuka, payung terbuka disini di ibaratkan berputar searah jarum jam (Clock Wise). Lalu apabila sensor air terkena air (kondisi hujan), maka payung akan terbuka juga. Kondisi lainnya, maka payung akan menutup atau berputar berlawanan arah jarum jam (Counter Clock Wise). Lalu bagaimana payung akan berhenti berputar? Nah, karena itulah kita pergunakan switch. Switch disini berfungsi sebagai pemberhenti perputaran motor. Jadi ketika payung sudah terbuka maximal ataupun menutup maximal, maka kita buat switch menjadi tertekan. Contoh dengan meletakkan switch pada kedua ujung saat payung terbuka maximal maupun menutup maximal. Lalu LCD disini akan menampilkan tulisan "Terbuka" apabila payung sedang dalam keadaan terbuka. Dan "Tertutup" apabila payung sedang dalam keadaan tertutup.
         Yah kurang lebih seperti itulah cara kerjanya. Sedikit simple yah kedengarannya. Baiklah saya langsung saja bagikan gambar dan listing programnya. Selamat menikmati, hope you enjoy !!!





org 00h
DB0 EQU P3.0
DB1 EQU P3.1
DB2 EQU P3.2
DB3 EQU P3.3
DB4 EQU P3.4
DB5 EQU P3.5
DB6 EQU P3.6
DB7 EQU P3.7
EN EQU P2.7
RS EQU P2.5
RW EQU P2.6
DATA_LCD EQU P3

mov p0,#0feh
mov p1,#0ffh
mov p2,#0ffh
mov p3,#0ffh
lcall lcd_tertutup
start:
mov p1,#0ffh
jnb p0.1,buka
jb p0.0,buka2
sjmp start

buka:
mov p1,#0efh
lcall lcd_terbuka
kondisi1:
jnb p0.2,berhenti
sjmp kondisi1

buka2:
mov p1,#0efh
lcall lcd_terbuka
kondisi5:
jnb p0.2,berhenti2
sjmp kondisi5

tutup:
mov p1,#0dfh
lcall lcd_tertutup
kondisi2:
jnb p0.3,start
sjmp kondisi2

berhenti2:
mov p1,#0ffh
kondisi3:
jnb p0.0,tutup
sjmp kondisi3

berhenti:
mov p1,#0ffh
kondisi4:
jb p0.1,tutup
sjmp kondisi4

lcd_terbuka:
LCALL INIT_LCD
LCALL CLEAR_LCD
MOV A,#'T'
LCALL WRITE_TEXT
MOV A,#'E'
LCALL WRITE_TEXT
MOV A,#'R'
LCALL WRITE_TEXT
MOV A,#'B'
LCALL WRITE_TEXT
MOV A,#'U'
LCALL WRITE_TEXT
MOV A,#'K'
LCALL WRITE_TEXT
MOV A,#'A'
LCALL WRITE_TEXT
ret
lcd_tertutup:
LCALL INIT_LCD
LCALL CLEAR_LCD
MOV A,#'T'
LCALL WRITE_TEXT
MOV A,#'E'
LCALL WRITE_TEXT
MOV A,#'R'
LCALL WRITE_TEXT
MOV A,#'T'
LCALL WRITE_TEXT
MOV A,#'U'
LCALL WRITE_TEXT
MOV A,#'T'
LCALL WRITE_TEXT
MOV A,#'U'
LCALL WRITE_TEXT
MOV A,#'P'
LCALL WRITE_TEXT
ret

WAIT_LCD:
CLR EN ;Start LCD command
CLR RS ;It's a command
SETB RW ;It's a read command
MOV DATA_LCD,#0FFh ;Set all pins to FF initially
SETB EN ;Clock out command to LCD
MOV A,DATA_LCD ;Read the return value
JB p3.7,WAIT_LCD ;If bit 7 high, LCD still busy
CLR EN ;Finish the command
CLR RW ;Turn off RW for future commands
RET

INIT_LCD:
CLR RS
MOV DATA_LCD,#38h
SETB EN
CLR EN
LCALL WAIT_LCD
CLR RS
MOV DATA_LCD,#0Eh
SETB EN
CLR EN
LCALL WAIT_LCD
CLR RS
MOV DATA_LCD,#06h
SETB EN
CLR EN
LCALL WAIT_LCD
RET

CLEAR_LCD:
CLR RS
MOV DATA_LCD,#01h
SETB EN
CLR EN
LCALL WAIT_LCD
RET

WRITE_TEXT:
SETB RS
MOV DATA_LCD,A
SETB EN
CLR EN
LCALL WAIT_LCD
RET

delay: mov r0,#00fh
waktu :
       djnz r2,waktu
       djnz r1,waktu
       djnz r0,waktu
       ret
end

0 comments:

Post a Comment

 
Free Website TemplatesFreethemes4all.comFree CSS TemplatesFree Joomla TemplatesFree Blogger TemplatesFree Wordpress ThemesFree Wordpress Themes TemplatesFree CSS Templates dreamweaverSEO Design