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

Saturday, January 26, 2013

[Fakta] Pendapat NU Tentang Nabi Setelah Nabi Muhammad saw

         27 - 01 - 2013
         11 : 16 AM





         Berikut akan saya bagikan lagi, sebuah video berisi tentang sedikit pembahasan dari sebuah buku yang di terbitkan oleh salah satu ormas Islam yang termasuk besar juga di Indonesia, yaitu Nahdatul Ulama (NU). Video singkat ini berinti bahwa ormas Islam Nahdatul Ulama juga meyakini tentang adanya nabi setelah nabi Muhammad saw. Yaitu adalah Imam Mahdi, dan Isa Al-masih yang di janjikan. Ketika mereka turun, maka ke empat mahzab akan terhapus. Tetapi mereka tetap mengikuti syari'at nabi Muhammad saw. Menarik sekali video ini, apalagi jika punya bukunya.







http://www.youtube.com/watch?v=wEzIOjfAH9Q

[Fakta] Persidangan Asep Abdurrachman (FPI Bandung)

         27 - 01 - 2013
         11 : 08 AM




         Berikut akan saya berikan lagi video tentang yang waktu itu sempat saya bahas kalau tidak salah di post sebelumnya, tentang jema'at Ahmadiyah yang ketika di pengadilan ingin bersumpah dengan menggunakan Al-Qur'an tetapi tidak di perbolehkan. Karena di anggap bukan Islam. Berikut adalah video persidangan Asep Abdrurrachman.

----

         Asep Abdrurrachman alias Utep merusak masjid An Nashir, Bandung pada 25 Oktober. Utep dan anggota FPI yang dipimpinnya berniat membatalkan persiapan sholat idul adha esok harinya. Utep mengancam jika Ahmadiyah tidak mengikuti permintaanya "bisi jiga Cikeusik deui" - "seperti Cikeusik lagi"

         Dalam persidangan perdana dan kedua, anggota FPI memenuhi ruang persidangan. Mereka berteriak dan ganggu proses persidangan. Ketika saksi-saksi dari Muslim Ahmadiyah hendak mengucapkan sumpah, pengunjung berteriak "Kafir... bukan Islam.. kitab sucinya tadzkiroh!".

         Hakim tunduk para tekanan pengunjung dan memerintahkan sumpah tanpa menggunakan Alquran. Tindakan ini bertentangan dengan keyakinan Muslim Ahmadiyah dan langgar Kitab Hukum Acara Pidana pasal 170 ayat(3).
----

         Berikut sebagai penutup akan saya kutip lagi salah satu ayat dari kitab suci Al-Qur'an, ayat ini pernah saya kutip juga di post sebelumnya.

         "Dan siapakah yang lebih aniaya daripada orang yang menghalang-halangi menyebut nama Allah dalam masjid-masjid-Nya, dan berusaha untuk merobohkannya? Mereka itu tidak sepatutnya masuk ke dalamnya (masjid Allah), kecuali dengan rasa takut (kepada Allah). Mereka di dunia mendapat kehinaan dan di akhirat mendapat siksa yang berat." (Al-Baqarah : 114)




http://www.youtube.com/watch?v=9_SWrFtRjQY

[Fakta] Syahadat Ahmadiyah

         27 - 01 - 2013
         10 : 56 AM




         Berikut saya akan bagikan video yang menarik. Seorang Ahmadiyah selama 12 tahun mengatakan tentang syahadat Ahmadiyah. Seperti yang telah saya katakan sebelumnya, tidak ada syahadat yang berbeda, syahadat Ahmadiyah itu sama seperti yang di ajarkan Rasulullah Muhammad saw. Asyhaduallaa ilaaha ilallah, wa asyhaduanna muhammadar rasullah. Aku bersaksi tidak ada Tuhan selain Allah, dan aku bersaksi bahwa Muhammad adalah utusan Allah.
         Lalu pertanyaannya, apakah kalian akan tetap menutup mata dan telinga setelah mendengar pengakuan langsung dari anggota jema'at Ahmadiyah ini?
         Singkat saja, terakhir saya ingin mengutip ayat Al-Qur'an di akhir tulisan ini.

Sesungguhnya orang-orang kafir, sama saja bagi mereka, kamu beri peringatan atau tidak kamu beri peringatan, mereka tidak juga akan beriman. (QS. 2:6)

Allah telah mengunci-mati hati dan pendengaran mereka, dan penglihatan mereka ditutup. Dan bagi mereka siksa yang amat berat. (QS. 2:7)






http://www.youtube.com/watch?v=HeIphJunHwg

Sunday, January 20, 2013

[Cover] Sheila On 7 - Yang Terlewatkan


         20 - 01 - 2013
         10 : 46 PM





Dimana kau selama ini
Bidadari yang ku nanti
Kenapa baru sekarang
Kita dipertemukan

Sesal kan tiada arti
Karna semua tlah terjadi
Kini kau tlah menjalani, du du du du du
Sisa hidup dengannya

Reff:
Mungkin salahku melewatkanmu
Tak mencarimu sepenuh hati
Maafkan aku

Kesalahanku melewatkanmu
Hingga kau kini dengan yang lain
Maafkan aku

Tak berulang kembali
Kau tak akan terlewati
Segenap hati ku cari, du du du du du
Dimana kau berada

Repeat reff

Walau ku terlambat
Kau tetap yang terhebat
Melihatmu, mendengarmu
Kau lah yang terhebat




My cover (for She) : http://www.4shared.com/mp3/HIaVhx3a/yang_terlewatkan_mee.html?
Source picture : ketikkan.wordpress.com
Source lyric : http://liriklaguindonesia.net/sheila-on-7-yang-terlewatkan.htm

Fakta Mengenai Jema'at Ahmadiyah

         20 - 01 - 2013
         06 : 06 PM



         Baiklah, kali ini saya akan coba membahas atau memposting sebuah kekeliruan mendasar yang sudah mendarah daging di negara kita tercinta Indonesia ini. Harap di ingat bahwa saya tidak mencoba mengkontaminasi, atau mempengaruhi. Apalagi membenarkan suatu pihak maupun menyalahkan suatu pihak. Saya hanya mencoba menampakkan sebuah kebenaran yang sudah di lencengkan. Soal apakah itu?
                  Baiklah, kita langsung mulai saja. Persoalan ini adalah mengenai sebuah pandangan yang mengarah kepada jema'at Ahmadiyah. Apa saja itu? Banyak. Sekarang saya ceritakan dahulu sedikit latar belakang dari kehidupan saya. Saya adalah orang yang sudah di tinggal pergi (meninggal dunia) oleh Ibu kandung saya sejak saya kecil, kira-kira berumur 2 atau 3 tahun. Yang pasti saya tidak ingat wajah atau kenangan apapun tentang Ibu saya. Tidak lama Ayah ku pindah ke bekasi, dan menikah lagi dengan wanita lain. Sehingga aku besar di bekasi, dan bersama oleh Ayah dan Ibu tiri ku. Di komplek rumah ku yang di bekasi, ada 2 masjid yang jaraknya tidak terlalu jauh dari rumah ku.
         Dan ternyata masjid itu adalah masjid dari ormas Islam Nahdatul Ulama ( NU ) dan satu lagi Muhammadiyah. Sejak beranjak SMA, aku mulai menekuni belajar tentang Islam. Mungkin karena aku baru mulai mendapat hidayah di  masa SMA ini. Aku belajar membaca Al-Qur'an, Al-hadits, dan kitab-kitab lainnya. Aku pun mulai paham perbedaan-perbedaan, mahzab-mahzab, maupun dalil-dalil yang membedakan antara ormas NU dan Muhammadiyah. Aku mengenal ajaran kedua ormas tersebut, bahkan bisa di bilang aku belajar Islam dari mereka karena aku sering mengikuti pengajian-pengajian yang rutin mereka adakan tiap minggunya. Akhirnya aku pun mulai mendengar mengenai Ahmadiyah juga dari mereka. Aku pun dahulu berpikiran bahwa Ahmadiyah itu sesat, kalimat syahadat mereka berbeda, panutan mereka Mirza Ghulam Ahmad, kitab suci mereka bukan Al-Qur'an, pergi haji mereka bukan ke Mekah, dan masih banyak lagi. Tak lama setelah itu, aku mulai mengenal keluarga Ibu kandungnya.
         Awalnya aku tidak begitu dekat dengan keluarga Ibu kandung ku, karena memang mungkin karena Ayah ku juga yang sepertinya agak kurang ingin bersilaturahmi dengan keluarga Ibu kandung ku setelah berpisah dengan Ibu ku karena meninggal dunia. Jadi aku mulai mengenal keluarga Ibu kandung ku, dan ternyata aku baru tahu bahwa keluarga Ibu kandung ku itu rata-rata adalah Ahmadiyah. Mulai dari situ aku mencoba untuk tidak terpengaruh, aku bahkan mencoba untuk meluruskan mereka ke jalan yang benar.
         Tetapi begitu aku mengenal mereka, semua yang dikatakan kebanyakan orang maupun alim ulama kepada mereka ternyata tidak benar. Syahadat mereka masih sama, panutan / junjungan maupun syari'at nya pun adalah syari'at nabi Muhammad saw. Pergi haji nya pun ke mekah, kitab suci nya pun adalah Al-Qur'an. Aku sadar kalau ini adalah sebuah fitnah yang besar, yang kalau tidak ada yang mencoba meluruskannya maka pandangan ini akan terus berlanjut mendarah daging ke anak cucu kita. Karena itu aku mohon, ketika ada seseorang yang mengatakan bahwa Ahmadiyah begini begitu dsb, tanyakan kepada dia. 'Apa kamu sudah melihat sendiri mereka melakukan yang seperti itu?'.
         Allah swt dalam Al-Qur'an surat Al-Hujuraat ; 6 berfirman [Tafsir Ibnu Katsir] : 'Hai orang-orang yang beriman, jika datang kepadamu orang fasik membawa suatu berita, maka periksalah dengan teliti agar kamu tidak menimpakan suatu musibah kepada suatu kaum tanpa mengetahui keadaannya yang menyebabkan kamu menyesal atas perbuatanmu itu.'. Ini merupakan perintah Allah langsung kepada kita, bahwa ketika ada berita datang kepada kita, maka kita harus memerika kebenaran berita tersebut meskipun berita itu datang dari orang yang fasik. Orang yang fasik adalah orang yang melanggar aturan-aturan agama, bahkan dari orang seperti itu pun kita diharuskan untuk memeriksa kebenaran sebuah berita, apalagi jika berita yang datang adalah dari orang yang sama-sama mengucapkan dua kalimat syahadat yang sama, mendirikan shalat, menunaikan zakat, berpuasa, dan sebagainya.
         Selama ini saya sudah menyelidiki, maupun mengkaji ajaran-ajaran Ahmadiyah. Mengenai ayat khaataman nabiyyin, imam mahdi, dan lain-lain. Dan sepanjang ini, menurut saya ajaran mereka tidak ada yang salah yang sampai bisa di sebut bukan Islam. Tapi saya tidak akan bahas mengenai ajaran mereka di postingan yang ini, mungkin di postingan yang lain. Karena jika saya mengatakan itu, maka itu berarti saya bisa di sebut mengkontaminasi maupun mempengaruhi anda kan? Sedang di posting awal saya tujuan postingan saya ini bukan untuk seperti itu, tujuan posting saya yang ini adalah untuk meluruskan pandangan yang selama ini telah keliru kepada jema'at Ahmadiyah.
         Jadi, aku sangat memohon. Jangan katakan Ahmadiyah itu bukan Islam. Kita sama-sama membaca kitab suci yang sama, menjalankan syari'at yang sama yaitu syari'at nabi Muhammad saw, sama-sama mendirikan shalat, menunaikan zakat, berpuasa, dsb. Ahmadiyah itu tidak ada bedanya dengan ormas-ormas lain yang ada di Indonesia seperti NU, Muhammadiyah, dll. Kita sama-sama Islam, jadi aku sangat memohon jangan saling bermusuhan hanya karena beberapa perbedaan pemahaman antara ayat suci Al-Qur'an dan hadist di antara kita.
         Sangat miris sekali ketika beberapa tahun yang lalu, masjid-masjid tempat ibadah Ahmadiyah di rusak, saling terjadi pertumpahan darah, kegiatan-kegiatan pengajian di larang, dsb. Dan juga ketika beberapa waktu lalu, ketika seorang jema'at Ahmadiyah di sebuah persidangan ingin bersumpah dengan kitab suci Al-Qur'an mereka di larang. Karena di anggap bukan Islam, mereka tidak di perbolehkan bersumpah dengan Al-Qur'an, tetapi mereka hanya di sumpah berdasarkan kepercayaan, miris sekali. Kamu tidak pernah tahu kan rasanya ketika sedang ada pengajian di rumahnya, rumahmu di timpuki batu. Dahulu di rumah nenek ku sering di adakan pengajian rutin, tetapi begitu ada kejadian penimpukan batu pengajian pun di hentikan. Sangat menyedihkan sekali rasanya.
         Baiklah, sebagai penutup, aku akan membagikan beberapa hadist dan ayat suci Al-Qur'an. Semoga postingan ini berguna, dan dapat membuka pandangan kita semua yang telah keliru selama ini tentang jema'at Ahmadiyah, aamiin.

         “Akan datang suatu zaman di mana tidak tersisa dari Islam, kecuali tinggal namanya saja, tidak tersisa dari Alquran kecuali tinggal tulisannya saja, masjid-masjid mereka megah dan semarak, tetapi jauh dari petunjuk Allah, ulama- ulama mereka menjadi manusia- manusia paling jahat yang hidup di bawah kolong langit, dari mulut mereka ke luar fitnah dan akan kembali kepada mereka.” (HR Baihaqi, dari Ali r.a)

         "Dan siapakah yang lebih aniaya daripada orang yang menghalang-halangi menyebut nama Allah dalam masjid-masjid-Nya, dan berusaha untuk merobohkannya? Mereka itu tidak sepatutnya masuk ke dalamnya (masjid Allah), kecuali dengan rasa takut (kepada Allah). Mereka di dunia mendapat kehinaan dan di akhirat mendapat siksa yang berat." (Al-Baqarah : 114)
       
         “Apabila seseorang menyeru kepada saudaranya: Wahai kafir, maka sungguh akan kembali sebutan kekafiran tersebut kepada salah seorang dari keduanya. Bila orang yang disebut kafir itu memang kafir adanya maka sebutan itu pantas untuknya, bila tidak maka sebutan kafir itu kembali kepada yang mengucapkan.” (Shahih, HR. Al-Bukhari no. 6104 dan Muslim no.60, dari Umar r.a)



         Terima kasih.

Friday, January 18, 2013

Program LCD Dengan Mikrokontroller ATMEL

         18 - 01 - 2013
         11 : 09 PM



         

         Pada kesempatan kali ini saya akan coba membahas bagaimana cara membuat program tampilan LCD dengan menggunakan bahasa assembler / mikrokontroller keluar ATMEL ( AT89S51 / AT89S52 dsb ). Baiklah pertama yang menjadi referensi saya dalam belajar pemrograman tampilan LCD adalah dari website berikut : http://www.8052.com/tutlcd.phtml . Sekarang saya coba terangkan dalam bahasa Indonesia apa yang saya dapat dari sana.
         Pertama, kita harus tahu dahulu 3 pin kontrol pada LCD. Ketiga pin kontrol tersebut adalah : EN, RS, RW.
                  - EN atau singkatan dari Enable. Pin kontrol ini berfungsi untuk memberitahu LCD bahwa kamu akan mengirim data. Untuk mengirim data ke LCD, kamu harus membuat program di Pin ini berlogika Low (0). Setelah itu set kedua Pin kontrol lainnya untuk mengirim data ke data bus. Saat kedua Pin kontrol tersebut telah selesai mengirimkan datanya. Berikan logika high (1) pada kaki EN. Lalu tunggu sampai waktu yang di perlukan oleh LCD untuk menjalankan perintah selanjutnya, rentang waktu ini bergantung pada LCD nya, setiap LCD memiliki rentang waktu untuk menjalankan instruksi selanjutnya berbeda-beda. Kamu dapat melihat pada datasheet LCD tersebut. Setelah waktu rentang untuk menjalankan instruksi selanjutnya telah siap, berikan logika low (0) lagi pada kaki EN.

                  - RS atau singkatan dari Register Select. Saat RS berlogika Low (0), data siap untuk di perlakukan sebagai perintah atau instruksi special ( Seperti Clear Screen, Screen Position, dsb. ). Saat RS berlogika High (1), data akan siap untuk mengirim text data untuk di tampilkan di LCD. Sebagai contoh, untuk menampilkan huruf 'K' pada layar LCD maka kamu harus memberikan RS logika High (1).

                  - RW atau singkatan dari Read / Write. Saat RW berlogika Low (0), informasi pada data bus akan di tulis ke LCD. Saat RW berlogika High (1), program akan efektif untuk membaca LCD. Hanya terdapat satu instruksi untuk membaca kondisi LCD, yaitu 'Get LCD Status'. Sisanya adalah perintah untuk menulis. Sehingga RW hampir selalu di beri logika Low (0).

         Lalu yang terakhir, data bus terdiri dari 4 atau 8 pin, bergantung pada mode operasi yang di pilih oleh pengguna. Pada kasus penggunaan data bus 8 pin, itu berarti DB0-DB7.

         Sekarang saya beri contoh hardware konfigurasi, atau pemasangan pin-pin LCD ke mikrokontroller. Seperti ini :



         Seperti yang terlihat di atas, kita sudah menyambungkan Pin kontrol dan data buss ke mikrokontroller. Sekarang kita ketikkan programnya dengan perintah equ untuk penamaan variable. Seperti ini :


    DB0 EQU P1.0
    DB1 EQU P1.1
    DB2 EQU P1.2
    DB3 EQU P1.3
    DB4 EQU P1.4
    DB5 EQU P1.5
    DB6 EQU P1.6
    DB7 EQU P1.7
    EN EQU P3.7
    RS EQU P3.6
    RW EQU P3.5
    DATA EQU P1


         Sekarang kita telah memberikan nama pada pin-pin LCD yang terhubung pada mikrokontroller dengan nama pin LCD itu sendiri. Lalu untuk memberikan logika High kepada pin kontrol, dapat di gunakan perintah SETB. Dan untuk memberikan logika Low kepada pin kontrol, dapat di gunakan perintah CLR. Seperti ini :

SETB RW
CLR EN

         Lalu bagaimana untuk mengecek status sibuk LCD? Atau bagaimana kita tahu bahwa LCD sudah siap untuk menjalankan instruksi selanjutnya atau tidak? Ya, benar. Jawabannya kita dapat melihat datasheet delay waktu LCD yang kita gunakan seperti yang di jelaskan di atas tadi. Tetapi ada cara lebih mudah, kita tidak perlu repot-repot melihat datasheet LCD tersebut. Kita hanya perlu membuat program kondisi pada pin DB07. Apabila pin DB07 masih berlogika High (1), itu berarti bahwa LCD masih sibuk dan belum siap untuk menjalankan perintah selanjutnya. Jadi ketika pin DB07 sudah berlogika Low (0), kita baru dapat memberikan instruksi selanjutnya pada LCD. Seperti ini programnya :

WAIT_LCD:
CLR EN ;Start LCD command
CLR RS ;Memberi perintah
SETB RW ;Membaca perintah
MOV DATA,#0FFh ;Set semua pin awal ke FF
SETB EN ;Mengirim perintah clock ke LCD
MOV A,DATA ;Memberikan DATA ke register A
JB DB7,WAIT_LCD ;Apabila bit 7 high, LCD masih sibuk
CLR EN ;Menyelesaikan perintah
CLR RW ;Menyiapkan RW untuk ke perintah selanjutnya
RET ;Kembali ke baris pemanggil subroutine.

         Baiklah, kita sudah mempunyai subroutine delay LCD. Sekarang kita memerlukan subroutine Inisialisasi LCD. Saya tidak menjelaskan kenapa inisialisasinya seperti ini, mungkin untuk LCD yang 4 bit kontrol maupun LCD yang ukuran lain akan berbeda inisialisasinya. Tapi saya mencoba dengan LCD 16x2 dan 8 bit kontrol dengan inisialisasi seperti ini :


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

         Lalu apa lagi yang kita butuhkan, kita memerlukan subroutine untuk membersihkan LCD / LCD CLEAR. Ada baiknya kita membersihkan LCD dahulu sebelum memulai menulis di LCD. Subroutinenya adalah seperti ini :

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

         Lalu yang terakhir yang kita perlukan adalah subroutine untuk menulis data ke LCD. Seperti ini :

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

         Ok, semua sudah komplit. Lalu bagaimana cara membuat tulisan sederhana 'HELLO WORLD' ? Perintahnya adalah seperti ini :

LCALL INIT_LCD
LCALL CLEAR_LCD
MOV A,#'H'
LCALL WRITE_TEXT
MOV A,#'E'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'O'
LCALL WRITE_TEXT
MOV A,#' '
LCALL WRITE_TEXT
MOV A,#'W'
LCALL WRITE_TEXT
MOV A,#'O'
LCALL WRITE_TEXT
MOV A,#'R'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'D'
LCALL WRITE_TEXT

         Lalu bagaimana mengatur posisi teks atau kursor untuk memulai memasukkan data. Lihat gambar berikut :


         Dapat di lihat bahwa line 1 di mulai dari 00h, dan line 2 di mulai dari 40h. Jadi ketika kita memasukkan data melebihi 16 karakter pada LCD 16x2. Data selanjutnya tidak akan otomatis langsung pindah ke line 2. Data tersebut akan masuk ke 10h dst yang mana berarti tidak akan tampil pada LCD 16x2. Sehingga kita harus menset kordinat baru di 40h.

         Ok kita langsung ke contoh, misal kita ingin membuat tampilan 'WORLD' nya berada pada karakter ke 10 line ke 2. Yang mana posisinya adalah 4Ah. Karena posisi awal untuk meletakkan kursor adalah 80h. Maka untuk meletakkannya menjadi seperti ini : 80h + 4Ah = CAh


         Sehingga subroutinenya menjadi seperti ini :

CLR RS
MOV DATA,#0CAh
SETB EN
CLR EN
LCALL WAIT_LCD

         Jadi untuk membuat tulisan 'HELLO WORLD' yang mana kata 'WORLD' nya berada di line ke 2 dan karakter ke 10, programnya seperti ini :

LCALL INIT_LCD
LCALL CLEAR_LCD
MOV A,#'H'
LCALL WRITE_TEXT
MOV A,#'E'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'O'
LCALL WRITE_TEXT
CLR RS
MOV DATA,#0CAh
SETB EN
CLR EN
LCALL WAIT_LCD
MOV A,#'W'
LCALL WRITE_TEXT
MOV A,#'O'
LCALL WRITE_TEXT
MOV A,#'R'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'D'
LCALL WRITE_TEXT


         Kesimpulannya :
         
         Tutorial ini menampilkan konsep pokok dari programming LCD. Tapi ini bukan berarti sudah semuanya kita pelajari, LCD 44780 kontroller memiliki lebih banyak fungsi lainnya untuk mengakses LCD tersebut, yang mana tidak di bahas disini.



----        
        Semoga review saya ini dapat membantu anda dalam memahami rangkaian dan lalu membuat programnya berdasarkan gambar dan kondisi rangkaian. Kurang lebihnya saya minta maaf. By the way, saya membuka jasa pembuatan program, rangkaian, maupun konsultasi ataupun diskusi tentang rangkaian-rangkaian mikrokontroller seperti ini. Jika tertarik, kalian dapat langsung berkomentar saja pada tulisan ini. Nanti kita akan lanjutkan berkomunikasinya di luar komentar ini, entah dengan email, ym, fb, sms, dan sebagainya. Yang pasti kita tidak akan berdiskusi di kolom komentar. Baiklah, terima kasih banyak karena sudah meluangkan waktu untuk membaca tulisan saya.
----

Monday, January 14, 2013

[Review] Tirai dan Lampu Otomatis Berbasis Mikrokontroler AT89S51

         15 - 01 - 2013
         07 : 32 AM



----
         Baiklah, karena sepertinya masih agak banyak yang kesulitan dalam membaca rangkaian dan membuat program pada sebuah rangkaian mikrokontroller. Maka saya memutuskan untuk me-review rangkaian dan program yang pernah saya buat. Terima kasih kepada semuanya yang telah mau berbagi gambar rangkaian dan programnya kepada saya.
----


         Karena ini review pertama saya tentang rangkaian dan program, semoga tidak begitu buruk ya hahaa.
         



         Rangkaian ini adalah Project yang di ajukan oleh teman saya untuk PI (Penulisan Ilmiah) nya. Rangkaian ini berjudul 'Tirai dan Lampu Otomatis Berbasis Mikrokontroler AT89S51'. Kamu dapat mengunjungi blognya jika ingin membaca tulisan-tulisannya di alamat http://raqheelcaze.wordpress.com/

         Baiklah langsung saja ya, dapat kita lihat bahwa alat ini memiliki input berupa 3 switch dan sensor. Switch pada p1.0 dan p1.2 terhubung dengan ground yang berarti akan aktif jika terdapat logika low (aktif low / 0). Maka kedua port ini ketika di inisialisasikan di awal harus di berikan logika high (1). Seperti ini :

mov p1, #0ffh

        Lalu input pada p3.0 yang mana di dapat dari sensor LDR (Light Dependent Resistor), input dari LDR ini akan di dapat dari output pada rangkaian comparator. Yang berarti bahwa apabila LDR terkena cahaya, maka akan menghasilkan output high (1) pada output comparator. Itu berarti bahwa p3.0 ini harus di inisialisasikan awalnya dengan logika low (0). Begitu juga dengan switch pada p3.2 yang terhubung ke vcc, yang berarti aktif high. Maka harus di inisialisasikan di awal dengan logika low (0). Seperti ini :

mov p3, #000h

        Lalu sekarang kita lihat outputnya. Outputnya berupa nyala lampu LED pada port p2.4 yang mana terhubung dengan kaki anoda LED. Ini berarti LED akan aktif jika mendapat logika high (1). Karena LED ini di andaikan adalah sebuah lampu, maka pada inisialisasi awal harus di berikan logika high (1) untuk menyalakan LED, karena kondisi awal LDR nya tadi adalah tidak aktif, yang berarti itu di andaikan kondisi awal adalah malam hari maka lampu harus menyala dan tirai dalam keadaan tertutup. Lalu output lainnya pada kaki p2.0 dan p2.2 yang terhubung ke driver motor DC, yang pada keadaan awal ini motor tidak aktif, maka dapat kita berikan inisialisasi awal berupa logika high (1) maupun logika low (0), tetapi disini kita akan menggunakan logika high agar semua pin pada port p2 berlogika sama, yaitu logika high (1), karena pada pin p2.6 terhubung ke kaki enable juga yang harus di inisialisasikan dengan logika high (1). Seperti ini :

mov p2, #0ffh

        Baiklah, semua port input maupun output telah kita inisialisasikan. Saatnya kita membuat logika pengkondisian programnya. Logikanya adalah seperti ini. Alat Tirai ini aktif dengan dua cara, manual dengan switch pada pin p3.2, lalu auto dengan kondisi LDR. Itu berarti apabila switch di tekan, maka tirai akan tertutup. Lalu apabila switch tidak di tekan, itu berarti akan bergantung pada kondisi LDR, jika LDR nya terkena cahaya (output comparator logika 1) maka tirai akan terbuka, lalu jika LDR tidak terkena cahaya (output comparator logika 0) maka tirai akan tertutup. Pengkondisiannya dapat di lakukan dengan sintaks seperti ini :

jb p3.2, tutup
jnb p3.2, pilih


        Jb p3.2,tutup berarti bahwa jika pin p3.2 mendapat logika high (1), maka akan melompat ke sub-routine tutup. Lalu jnb p3.2,pilih berarti bahwa jika pin p3.2 mendapat logika low (0), maka akan melompat ke sub-routine pilih.
        Baiklah, sekarang saatnya kita membuat outputnya. Apabila tirai terbuka, maka motor akan berputar CW (Clock Wise / Searah Jarum Jam). Lalu apabila tirai tertutup, maka motor akan berputar CCW (Counter Clock Wise / Berlawanan Jarum Jam). Itu berarti kita harus membuat perbedaan pada output pin p2.0 dan p2.2. Seperti ini :

buka :
mov p2, #0eeh
tutup :
mov p2, #0fbh

        Lalu bagaimana perputaran motor ini akan berhenti? Perputaran motor ini akan berhenti di picu oleh penekanan pada switch di p1.0 atau p1.2. Saat tirai di buka, maka motor akan berhenti apabila switch p1.0 di tekan. Lalu apabila tirai tertutup, maka motor akan berhenti apabila switch p1.2 di tekan. Seperti ini :

jnb p1.0, mati1
jnb p1.2, mati2

----        
        Baiklah, sepertinya tugas saya dalam me-review rangkaian dan program hanya sampai disini saja. Sekarang saatnya tugas kalian untuk menyatukan semua puzzle yang terpisah-pisah ini menjadi satu. Saya akan memberikan program lengkapnya di bawah. Semoga review saya ini dapat membantu anda dalam memahami rangkaian dan lalu membuat programnya berdasarkan gambar dan kondisi rangkaian. Kurang lebihnya saya minta maaf. By the way, saya membuka jasa pembuatan program, rangkaian, maupun konsultasi ataupun diskusi tentang rangkaian-rangkaian mikrokontroller seperti ini. Jika tertarik, kalian dapat langsung berkomentar saja pada tulisan ini. Nanti kita akan lanjutkan berkomunikasinya di luar komentar ini, entah dengan email, ym, fb, sms, dan sebagainya. Yang pasti kita tidak akan berdiskusi di kolom komentar. Baiklah, terima kasih banyak karena sudah meluangkan waktu untuk membaca tulisan saya.

----


Compiler : MIDE-51
Language : Assembler
MikroKontroller : AT89S51

$mod51
org 00h
mov p1, #0ffh
mov p2, #0ffh
mov p3, #000h
pil :
mov a,p3
jb p3.2, tutup
jnb p3.2, pilih
pilih :
jnb p3.0, tutup
jb p3.0, buka
buka :
mov p2, #0eeh
jnb p1.0, mati1
cjne a, p3, pil
sjmp buka
tutup :
mov p2, #0fbh
jnb p1.2, mati2
cjne a, p3, pil
sjmp tutup
mati1 :
mov p2, #0eah
cjne a, p3, pil
sjmp mati1
mati2 :
mov p2, #0fah
cjne a, p3, pil
sjmp mati2
end


Wednesday, January 9, 2013

Sad Story

         09 - 01 - 2013
         10 : 10 PM


         Entry baruuuu, yihaaa !!!
         Bingung mau ngepost apa. Karena tugas posting tulisan dalam bahasa inggris sudah selesai. Jadi mari kita posting lagi dalam bahasa kita tercinta, Bahasa Indonesia. Horeeee (prok prok prok).
         Baiklah tema kali ini saya akan memberi judul 'Sad Story'.
       
         - Kenapa 'Sad Story' ?
         + Ya karena 'Sad Story'.
         - Ya kenapa?
         + Ya karena itu.
         - Ya itu kenapa?
       
         Baiklah baiklah, daripada bertengkar karena memikirkan hal itu. Lebih baik langsung saja ke bagian inti tulisan. Tulisan ini saya buka dengan pertanyaan. Menurut kalian, mana di antara kalimat berikut yang lebih tepat? 'Cinta karena percaya', atau 'Percaya karena cinta'?
       
         tik tok
         tik tok
         tik tok
         tik tok
         tik tok
         tik tok
         tik tok

         Sudah selesai memikirkan jawabannnya?
         Baiklah, kalau sudah selesai maka saya akan memberitahukan jawaban saya dan pendapat saya mengenai kedua kalimat tersebut. Saya lebih memilih, 'Percaya karena cinta'. Kenapa?
       
         Karena menurut saya, cinta tidak memerlukan landasan seperti itu. Cinta datang begitu saja, dengan cara yang tidak di duga-duga, dengan tanpa di harapkan. Cinta timbul, dengan seiring kamu mengenal orang itu. Kebiasaannya, cara berpikirnya, tingkahnya, dan lain sebagainya. Cinta timbul, seiring dengan kenangan mu bersamanya. Lalu kenapa saya tidak memilih 'Cinta karena percaya'?
         Ada yang mengatakan, 'Cinta itu buta'. Yah betul, saya setuju. Karena menurut saya, ketika kita mencintai seseorang. Meskipun orang itu telah membohongi kita, menyakiti, membuat kita kesal. Tetapi kita tetap akan percaya padanya, karena kita cinta padanya. Yah itulah cinta, bukan membutakan kepada kenyataan. Tetapi percaya, selalu berpikir yang baik kepada orang yang kita cintai.
       
         Apa jawaban mu 'Cinta karena percaya'?
         Lalu apa arti 'Cinta', dan 'Sayang' menurut mu? Ketika kamu dapati seseorang yang kamu 'Cintai karena percaya' ternyata menyimpan rahasia yang di luar perkiraan, atau di luar kepercayaan kamu. Maka kamu akan tak lagi cinta padanya? Tak mau mendengar penjelasannya? Hanya sebatas itukah 'Cinta' yang selama ini kamu katakan padanya?
       
         Berbeda dengan ketika kita 'Percaya karena cinta'. Kita akan tetap berpikir positif, mencoba membuka diri untuk mendengarkan dahulu penjelasan darinya. Kenapa ia begitu, kenapa ia begini. Tidak malah bersifat arogan, menutup diri, dan tidak mau berurusan dengannya lagi.

         Yahhh cukup sekian 'Sad Story' kali ini, semoga tak ada 'Sad Story' berikutnya, aamiin. See you :D



---- by the way, nyanyi lagu cinta satu malam enak juga lho ----




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