13 Oktober 2008

Seiko Instrument M1632 LCD Module

‘LCD Display Module M1632’ buatan Seiko Instrument Inc., meskipun harganya sekitar lima kali lipat dibanding dengan LCD Module SED1200 buatan Epson, tapi karena M1632 lebih dulu beredar di Indonesia dan lebih mudah didapat, masih merupakan pilihan banyak penggemar elektronik praktis.

LCD Display Module M1632 buatan Seiko Instrument Inc. terdiri dari dua bagian, yang pertama merupakan panel LCD sebagai media penampil informasi dalam bentuk huruf/angka dua baris, masing-masing baris bisa menampung 16 huruf/angka.

Bagian kedua merupakan sebuah sistem yang dibentuk dengan mikrokontroler yang ditempelkan dibalik pada panel LCD, berfungsi mengatur tampilan informasi serta berfungsi mengatur komunikasi L1632 dengan mikrokontroler yang memakai tampilan LCD itu. Dengan demikian pemakaian M1632 menjadi sederhana, sistem lain yang M1632 cukup mengirimkan kode-kode ASCII dari informasi yang ditampilkan seperti layaknya memakai sebuah printer.

Sinyal interface M1632

Untuk berhubungan dengan mikrokontroler pemakai, M1632 dilengkapi dengan 8 jalur data (DB0..DB7) yang dipakai untuk menyalurkan kode ASCII maupun perintah pengatur kerjanya M1632. Selain itu dilengkapi pula dengan E, R/W* dan RS seperti layaknya komponen yang kompatibel dengan mikroprosesor.

Kombinasi ainyal E dan R/W* merupakan sinyal standar pada komponen buatan Motorola. Sebaliknya sinyal-sinyal dari MCS51 merupakan sinyal khas Intel dengan kombinasi sinyal WR* dan RD*. Perbedaan ini membuat teknik penggabungan M1632 berlainan dengan LCD Module SED1200 buatan Epson yang pernah dibahas.

RS, singkatan dari Register Select, dipakai untuk membedakan jenis data yang dikirim ke M1632, kalau RS=0 data yang dikirim adalah perintah untuk mengatur kerja M1632, sebaliknya kalau RS=1 data yang dikirim adalah kode ASCII yang ditampilkan.

Demikian pula saat pengambilan data, saat RS=0 data yang diambil dari M1632 merupakan data status yang mewakili aktivitas M1632, dan saat RS=1 maka data yang diambil merupakan kode ASCII dari data yang ditampilkan.

Proses mengirim/mengambil data ke/dari M1632 digambarkan dalam Gambar 1 bisa dijabarkan sebagai berikut :

· RS harus dipersiapkan dulu, untuk menentukan jenis data seperti yang telah dibicarakan di atas.

· R/W* di-nol-kan untuk menandakan akan diadakan pengiriman data ke M1632. Data yang akan dikirim disiapkan di DB0..DB7, sesaat kemudian sinyal E di-satu-kan dan di-nol-kan kembali. Sinyal E merupakan sinyal sinkronisasi, saat E berubah dari 1 menjadi 0 data di DB0 .. DB7 diterima oleh M1632.

· Untuk mengambil data dari M1632 sinyal R/W* di-satu-kan, menyusul sinyal E di-satu-kan. Pada saatu E menjadi 1, M1632 akan meletakkan datanya di DB0 .. DB7, data ini harus diambil sebelum sinyal E di-nol-kan kembali.

Gambar 1
Mengirim/mengambil data ke/dari M1632

Interface ke AT89C2051

Sinyal-sinyal M1632 yang mengikuti standar teknik interface Motorola, tidak sesuai dengan sinyal dari MCS51, dengan demikian sinyal-sinyal itu di-sumulasi-kan lewat port MCS51.

Gambar 2 memperlihatkan hubungan AT89C2051 dengan M1632, dalam gambar itu P3.7 dipakai untuk men-simulasi-kan sinyal RS, P3.5 sebagai R/W* dan P3.4 sebagai E. Lewat program dibangkitkan sinyal-sinyal pada ketiga kaki Port 3 ini, sesuai dengan pesyaratan yang dikehendaki M1632.

Gambar 2
Hubungan M1632 ke AT89C2051

Potongan Program 1 merupakan sub-rutin untuk mengendalikan M1632 yang dihubungkan ke AT89C2051 seperti terlihat di Gambar 2, sebelum sub-rutin ini dipakai, tepatnya pada saat setelah reset harus dikirimkan perintah CLR E.

Potongan program 1 terdiri dari dua bagian, yakni bagian mengirim data ke M1632 yang terdiri dari sub-rutin KirimPerintah dan sub-rutin KirimASCII, sedangkan bagian mengambil data dari M1632 terdiri dari sub-rutin AmbilStatus dan sub-rutin AmbilASCII.

Sebelum mengiriman data, Akumulator A sudah terlebih dulu diisi dengan data yang akan dikirim. Data yang dikirim dengan sub-rutin KirimPerintah akan diterima M1632 sebagai perintah untuk mengatur kerja M1632, dan data yang dikirim dengan sub-rutin KirimASCII akan ditampilkan di panel LCD.

Setelah M1632 menerima data, M1632 memerlukan waktu antara 40 sampai 1640 mikro-detik untuk mengolahnya, selama waktu itu M1632 untuk sementara tidak bisa menerima data, hal ini ditandai dengan bit 7 dari Register Status = ‘1’.

Proses pengiriman data ke M1632 dijelaskan sebagai berikut:

· Perbedaan sub-rutin KirimPerintah dan KirimASCII terletak pada nilai RS pada saat sub-rutin itu bekerja. Sub-rutin KirimPerintah bekerja dengan RS=0’ (baris 6), data yang dikirim AT89C2051 diterima M1632 sebagai perintah untuk mengatur kerja M1632. Sub-rutin KirimASCII bekerja dengan RS=1’ (baris 10), data yang dikirim AT89C2051 diterima M1632 sebagai kode ASCII yang akan ditampilkan

· Sinyal RW di-nol-kan agar M1632 siap menerima data (baris 12), setelah itu data di akumulator A diletakkan di D0..D7 (Port 1 dari AT89C2051) di baris 13, baris 14 dan 15 membangkitkan sinyal sinkronisasi E dengan cara membuat P3.4 menjadi ‘1’ dan kemudian kembali menjadi ‘0’. Saat sinyal E kembali menjadi ‘0’ data di Port 1 akan diterima oleh M1632.

· Selesai mengirim data, program harus menunggu sampai M1632 siap menerima data lagi. Hal ini dilakukan dengan cara mengambil Status M1632 (baris 18), dan memeriksa bit 7-nya (baris 19), selama bit 7 bernilai ‘1’ berarti M1632 masih sibuk mengurus diri, dan program menunggunya di TungguDulu.

Proses pengambilan data dari M1632 dijelaskan sebagai berikut :

· Seperti bahasan di atas, RS dipakai untuk memilih Register Perintah/Status, sub-rutin AmbilStatus bekerja dengan RS=0 dan sub-rutin AmbilASCII bekerja dengan RS=’1’.

· Sinyal RW di-satu-kan agar M1632 siap memberi data (baris 29), setelah sinyal E1’ (baris 30) M1632 akan meletakkan data di D0 .. D7, setelah data ini diambil (baris 31) sinyal E dikembalikan menjadi ‘0 menjadi ‘

Potongan Program 1 AT89C2051 dengan M1632

01: E bit P3.4 ; sinyal E di P3.4

02: RW bit P3.5 ; sinyal R/W* di P3.5

03: RS bit P3.7 ; sinyal RS di P3.7

04:

05: KirimPerintah:

06: CLR RS ; RS=0 : register perintah

07: SJMP OutByte

08: ;

09: KirimASCII:

10: SETB RS ; RS=1 : Display Data RAM

11: OutByte:

12: CLR RW ; RW = '0', kirim data

13: MOV P1,A ; siapkan data di D0..D7

14: SETB E ; buat pulsa positip

15: CLR E ; sesaat

16: ;

17: TungguDulu:

18: ACALL AmbilStatus

19: JB A.7,TungguDulu

20: RET

21: ;

22: AmbilStatus:

23: CLR RS ; RS=0 : register status

24: SJMP InByte

25: ;

26: AmbilASCII:

27: SETB RS ; RS=1 : Display Data RAM

28: InByte:

29: SETB RW ; RW = '1', ambil data

30: SETB E ; minta data pada M1632

31: MOV A,P1 ; ambil data

32: CLR E ; kembalikan e ke '0'

33: RET

Mengatur tampilan M1632

M1632 mempunyai seperangkat perintah untuk mengatur tata kerjanya, perangkat perintah tersebut meliputi perintah untuk menghapus tampilan, meletakkan kembali cursor pada barishuruf pertama baris pertama, menghidup/matikan tampilan dan lan sebagainya, semua itu dibahas secara terperinci dalam Lembar Data M1632.

Setelah diberi sumber daya, ada beberapa langkah persiapan yang harus dikerjakan dulu agar M1632 bisa dipakai, langkah-langkah tersebut antara lain adalah:

· Tunggu dulu selama 15 mili-detik atau lebih.

· Kirimkan perintah 30h, artinya trasfer data antar M1632 dan mikrokontroler dilakukan dengan mode 8 bit

· Tunggu selama 4.1 mili-detik

· Kirimkan sekali lagi perintah 30h

· Tunggu lagi selama 100 mikro-detik

Setelah langkah-langkah tersebut di atas M1632 barulah bisa menerima data dan menampilkannya dengan baik. Pada awalnya tampilan akan nampak kacau, dengan demikian perlu segera dikirim perindah menghapus tampilan dan lain sebagainya, sesuai dengan petunjuk yang ada di Lambar Data.

Penutup

Di atas dipakai AT89C2051 sebagai contoh, meskipun demikian semua yang dibahas di atas sepenuhnya bisa dipakai pada mikrokontroler AT89C51. Dalam pemakaiannya karena berbagai macam alasan, bisa saja sinyal E; RW dan RS tidak disimulasikan di P3.4; P3.5 dan P3.7. Hal ini bisa diselesaikan dengan melakukan beberapa penyesesuaian, yakni tentukan dulu perubahan rangkaian sesuai dengan keadaan yang ada, dan perubahan rangkaian itu harus di sesuaikan di baris 1 sampai 3 pada Potongan program di atas.

M1632 mempunyai 8 jalur data dan memerlukan 3 jalur kontrol, dalam suatu rangkaian yang memakai banyak port dari MCS51, bisa terjadi kekurangan port untuk menghubungkan MCS51 ke M1632. Jika sampai terjadi hal semacam ini bisa ditempuh hal hal berikut :

· M1632 dipakai dalam mode data 4 bit, yakni hanya memakai jalur data D0..D3

· Dengan sedikit tambahan rangkaian sinyal WR* dan RD* dirubah menjadi sinyal E dan R/W* gaya Motorola, sehingga tidak perlu menyediakan port untuk men-simulasikan sinyal-sinyal tersebut.

Lihat juga teknik interface LCD Module SED1200 buatan EPSON.

Ikuti Blog ini

Langganan

Mau dapet Update-an Blog ini lewat e-mail? Masukkin aja alamat Email kamu disini:

Dikirim Oleh FeedBurner