Minggu, 18 September 2011

Masalah LCD : Solusi Secara Software


.
Setelah Masalah LCD : Solusi Secara Hardware memecahkan solusi yang cukup sederhana, apakah tidak ada solusi secara Software-nya.

Tentu saja ada, silahkan menyimak dan tentukan mana solusi yang lebih baik.
Apakah secara hardware atau software ?

Solusi Secara Software
Yang perlu di ingat pertama kali adalah Busy flag berfungsi sebagai indikator bahwa chip prosesor pada LCD karakter sedang sibuk dan sebaiknya tidak boleh diganggu atau diinterupsi karena tidak akan dihiraukan dan tidak akan diolah oleh chip LCD tersebut.
Maka jalan terbaik yang harus dilakukan adalah menunggu hingga busy flag tidak aktif atau berlogika LOW, akan tetapi hal ini tidak berguna apabila LCD dilepaskan dari mikrokontroller.

Jika anda berniat membuat library untuk mengakses LCD karakter sendiri saya menduga anda menggunakan fungsi delay, looping, atau bahkan tidak melakukan proses tundaan sama sekali.

Saya tidak akan membahas listing program fungsi untuk mengakses LCD karakter karena memang saya belum pernah mencobanya sama sekali.
Jadi teorinya aja ya... T_T"
Mudah-mudahan nanti dicoba deh trus dipostingkan,
terlalu dimanjakan dengan fungsi buatan CvAVR sih ...^o^v...

Delay / Tundaan pengganti Busy Flag
Dibandingkan menggunakan fungsi looping yang sulit untuk diketahui waktu tundaannya sebaiknya menggunakan fungsi delay yang dapat dihitung waktu tundaannya (maksudnya hanya sekedar mempermudah pemahaman dan penjelasan).

Untuk mengetahui besarnya tundaan Busy Flag pada LCD maka harus diketahui chip prosesor yang digunakan oleh LCD karater tersebut dan kemudian mencari datasheet chip prosesor tersebut.

Disini hanya akan saya bahas chip prosesor LCD tipe HD44780U.
Delay Busy Flag terlama yaitu minimal 10 mS yaitu ketika dalam kondisi Power on Reset atau kondisi Vcc setelah mencapai tegangan 4,5 Vdc.
Jika tidak menggunakan proses pengecekan busy flag maka minimal tundaan yang diberikan sebagai pengganti busy flag adalah 10 mS (sebaiknya dilebihkan menjadi 15 mS).

Link codingnya :
http://www.edaboard.com/thread148157.html
http://www.beyondlogic.org/parlcd/parlcd.htm
http://www.picplay.net/Strings%20to%20LCD_asm.shtml

Akibat Tidak Menggunakan Busy Flag
Apabila chip prosesor LCD sedang bekerja yaitu ketika busy flag HIGH dan kemudian diberikan perintah / data tertentu, akan menyebabkan...
Di datasheet HD44780U halaman 24 :
Note: Be sure the HD44780U is not in the busy state (BF = 0) before sending an instruction from the MPU to the HD44780U. If an instruction is sent without checking the busy flag, the time between the first instruction and next instruction will take much longer than the instruction time itself.
Semoga membantu ...^^v...

1 komentar:

Topik yang Populer