• Tidak ada hasil yang ditemukan

MENAMPILKAN 1000 KARAKTER PESAN PADA MODUL M1632 LCD OLEH MODUL DST-51

N/A
N/A
Protected

Academic year: 2021

Membagikan "MENAMPILKAN 1000 KARAKTER PESAN PADA MODUL M1632 LCD OLEH MODUL DST-51"

Copied!
8
0
0

Teks penuh

(1)

MENAMPILKAN 1000 KARAKTER PESAN PADA MODUL

M1632 LCD OLEH MODUL DST-51

Aplikasi ini akan membahas bagaimana proses penampilan pesan sebanyak 1000

karakter pada layar M1632 LCD. Untuk menampilkan pesan sebanyak 1000 karakter

pada layar LCD yang hanya menampung 32 karakter harus dilakukan dengan

menggunakan proses pergeseran.

Pada aplikasi ini, proses pergeseran dilakukan ke arah kiri maupun kanan di mana

kendali dari proses ini dilakukan dengan menggunakan perintah-perintah yang dikirim

oleh port serial ke Modul DST-51.

Modul DST-51 PC Modul M1632 LCD

Gambar 1 Blok Diagram

PC melalui port serial akan mengirimkan perintah-perintah yang akan

mengendalikan proses pergeseran tampilan di mana perintah-perintah tersebut adalah

sebagai berikut:

>

: Geser display ke kanan

<

: Geser display ke kiri

Data lain

: Berhenti

1000 karakter pesan Lokasi awal tabel pesan Lokasi akhir tabel pesan Temporary 32 karakter yang ditampilkan di layar LCD Gambar 2

(2)

1000 karakter pesan Lokasi awal tabel pesan Lokasi akhir tabel pesan Temporary 32 karakter yang ditampilkan di layar LCD Gambar 3

Pergeseran memori ke kiri

Layar LCD selalu menampilkan 32 byte karakter yang pertama, oleh karena itu

agar tampilan pada layar LCD dapat terlihat bergeser ke kanan, maka memori yang

digunakan penyimpanan 1000 karakter tersebut harus digeser ke kanan. Proses dimulai

dengan menggeser bagian paling kanan (lokasi akhir table pesan) ke tempat

penampungan sementara (temporary) terlebih dahulu dan dilanjutkan dengan menggeser

999 karakter berikutnya ke kanan. Sedangkan karakter yang tersimpan di temporary akan

dipindah ke lokasi awal table pesan. Demikian pula sebaliknya, untuk pergeseran ke kiri

dilakukan dengan memindah karakter paling awal ke temporary dan dilanjutkan dengan

menggeser 999 karakter berikutnya ke kiri. Proses ini diakhiri dengan memindah nilai

temporary ke lokasi akhir dari table pesan.

VCC P0.7 P0.6 P0.5 P0.4 P3.2 P2.1/A9 10K U? LCD MATRIX 2X16 8 12 11 10 9 6 5 4 7 1 2 3 13 14 D1 D5 D4 D3 D2 E R/W RS D0 GND VCC VLCD D6 D7 Gambar 4

Antar Muka M1632 LCD dengan Modul DST-51

Gambar 5 menunjukkan bagaimana proses yang terjadi pada bagian program

utama. Proses diawali dengan inisialisasi LCD dan dilanjutkan dengan mengaktifkan

interupsi serial. Hal ini dilakukan agar sistem ini dapat menerima perintah dari PC

melalui port serial setiap saat. Perintah-perintah tersebut adalah perintah yang mengatur

tampilan pada layar LCD dan akan tersimpan di variabel arah.

Setiap kali satu proses pergeseran dilakukan, program akan selalu memeriksa data

pada variabel arah. Apabila data pada variabel arah mengindikasi arah kiri, maka proses

pergeseran ke kiri dilakukan dan bila data tersebut mengindikasikan arah kanan, maka

proses pergeseran ke kanan dilakukan.

(3)

Inisial LCD

Aktifkan Interupsi Serial

Tampilkan 2 baris pesan

Arah Kanan? Arah Kiri?

Geser Kanan Geser Kiri

Ya Ya

Gambar 5

Diagram Alir Program Utama

Gambar 6 menunjukkan diagram alir dari proses pergeseran data ke arah kiri.

Proses ini diawali dengan memindah data di lokasi awal ke temporary. Kemudian

Register DPTR akan menunjuk ke lokasi pesan selanjutnya. Isi dari lokasi tersebut

dipindah ke lokasi DPTR sebelumnya (DPTR-1) sehingga data tersebut tergeser ke kiri.

Hal ini dilakukan sebanyak 999 kali sehingga 1000 karakter telah tergeser ke kiri.

Kemudian proses diakhiri dengan memindah isi temporary ke bagian akhir dari data.

Demikian seterusnya sehingga data tersebut tampak berputar ke kiri.

Data awal disimpan ke temporary DPTR+1 Isi DPTR dipindah ke DPTR-1 999x? Temporary ke data akhir Gambar 6

Diagram Alir Pergeseran ke kiri

(4)

Sebaliknya untuk pergeseran ke arah kanan, diawali dengan memindah data

terakhir ke temporary dan Register DPTR menunjuk ke lokasi sebelumnya (DPTR-1). Isi

dari lokasi yang ditunjuk oleh DPTR tersebut dipindah ke lokasi yang ditunjuk oleh

DPTR + 1 sehingga data bergeser ke arah kanan. Dengan dilakukannya proses ini

sebanyak 999 kali, maka 1000 karakter telah bergeser 1 kali ke kanan. Proses ini diakhiri

dengan memindah data pada temporary ke bagian awal dari pesan sehingga tampak data

berputar ke arah kanan.

Data akhir simpan ke temporary DPTR-1 Isi DPTR dipindah ke DPTR+1 999x? Tidak Temporary ke data awal

Gambar 7

Diagram alir pergeseran ke kanan Listing 1 $MOD51 DSEG Org 50H

PTR: Ds 2 ;Variabel penyimpan DPTR sementara

JumlahData: Ds 2 ;Variabel jumlah data

Arah: Ds 1

CSEG

;*********************

; RUTIN SIAP PAKAI MODUL DST-51 ;********************* ROM EQU 2000H Kirim_Perintah EQU 0276H Kirim_Karakter EQU 0295H PosisiAwal_LCD EQU 0216H Init_LCD EQU 0237H Baris2_LCD EQU 029FH Delay_100mS EQU 016EH Writeext_Memory EQU 0157H Dec_DPTR EQU 0130H

(5)

Ajmp Start ;

Org ROM+3H ;External Interrupt 0 Vector

Reti ;

Org ROM+0BH ;Timer 0 Interrupt Vector

Reti ;

Org ROM+13H ;External Interrupt 1 Vector

Reti ;

Org ROM+1BH ;Timer 1 Interrupt Vector

Reti ;

Org ROM+23H ;Serial Interrupt Vector Ajmp InterupsiSerial

Start:

Lcall Init_LCD ;Inisial LCD

Clr RI ;Matikan Flag Interupsi

Clr TI ;

Setb EA ;Aktifkan interupsi serial

Setb ES ;

Loop:

Lcall PosisiAwal_LCD ;LCD ke posisi awal

Mov DPTR,#PesanLCD ;Tampilkan 2 baris pesan

Lcall Kirim2barisLCD ;

Mov A,Arah ;Periksa arah

pergeseran Cjne A,#'>',BukanKanan ; Acall GeserMemoriKanan ; Ajmp Loop BukanKanan: Cjne A,#'<',Loop ; Acall GeserMemoriKiri ; Ajmp Loop ; GeserMemoriKanan: Mov JumlahData+1,#04 ; Mov JumlahData,#0E7H

Push DPH ;Data terakhir (temporary-1) dipindah ke Push DPL ;temporary Mov DPTR,#Temporary ; Mov PTR+1,DPH ; Mov PTR,DPL ; Pop DPL ; Pop DPH ; Mov DPTR,#Temporary-1 ; Acall Pindahkan ; Lcall Dec_DPTR ;DPTR - 1 LoopGeserKanan:

Movx A,@DPTR ;Data di DPTR dipindah

ke DPTR + 1

Push DPH ;

(6)

Inc DPTR ; Mov PTR+1,DPH ; Mov PTR,DPL ; Pop DPL ; Pop DPH ; Acall Pindahkan ; Lcall Dec_DPTR ;DPTR - 1

Djnz JumlahData,LoopGeserKanan ;Looping 999 kali

Djnz JumlahData+1,LoopGeserKanan ;

Mov DPTR,#PesanLCD ;Data di temporary dipindah

ke data awal Mov PTR+1,DPH ; Mov PTR,DPL ; Mov DPTR,#Temporary ; Acall Pindahkan ; Ret GeserMemoriKiri: Mov JumlahData+1,#04 Mov JumlahData,#0E7H

Push DPH ;Data Awal dipindah ke temporary Push DPL ; Mov DPTR,#Temporary ; Mov PTR+1,DPH ; Mov PTR,DPL ; Pop DPL ; Pop DPH ; Mov DPTR,#PesanLCD ; Acall Pindahkan ; Inc DPTR ;DPTR + 1 LoopGeserKiri:

Movx A,@DPTR ;Isi DPTR dipindah ke

DPTR - 1 Push DPH ; Push DPL ; Lcall Dec_DPTR ; Mov PTR+1,DPH ; Mov PTR,DPL ; Pop DPL ; Pop DPH ; Acall Pindahkan ; Inc DPTR ;DPTR + 1

Djnz JumlahData,LoopGeserKiri ;lakukan 999 kali

Djnz JumlahData+1,LoopGeserKiri ;

Push DPH ;Isi Temporary dipindah

ke data terakhir Push DPL ; Mov DPTR,#Temporary-1 ; Mov PTR+1,DPH ; Mov PTR,DPL ; Pop DPL ; Pop DPH ;

(7)

Acall Pindahkan ; Ret

Pindahkan:

Movx A,@DPTR ;Ambil data di DPTR

Push DPH ;Simpan di alamat yang

ditunjuk oleh variabel PTR

Push DPL ; Mov DPH,PTR+1 ; Mov DPL,PTR ; Lcall Writeext_memory ; Mov PTR+1,DPH ; Mov PTR,DPL ; Pop DPL ; Pop DPH ; Ret ;***********

; Mengirim 32 byte pesan dengan 16 byte di baris 1 dan 16 byte berikutnya di baris 2

; LCD

;*********** Kirim2BarisLCD:

Mov R6,#2 ;Jumlah baris = 2

LoopBaris:

Mov R7,#16 ;Jumlah kolom karakter = 16

LoopKolom:

Movx A,@DPTR ;Ambil data di lokasi yang

ditunjuk DPTR

Lcall Kirim_Karakter ;Tampilkan di LCD

Inc DPTR ;

Djnz R7,LoopKolom ;Lakukan hingga 16 kali

Lcall Baris2_LCD ;Pindah ke baris 2

Djnz R6,LoopBaris ;Kembali tampilkan baris berikutnya

Ret

PesanLCD:

DB 'Program ini berfungsi untuk menampilkan 1000 karak' DB 'ter pada layar LCD M1632 dengan metode pergeseran' DB 'memori eksternal Modul DST-51 di mana arah perge' DB 'seran dapat diatur oleh PC melalui Port Serial.' DB 'di mana tanda > akan mengatur pergeseran ke arah' DB 'kanan tanda < akan mengatur pergeseran ke arah ki' DB 'ri dan sembrg tombol akan menghentikan pergeseran' DB 'Media penyimpanan data untuk 1000 pesan ini menggu' DB 'nakan memori eksternal Parallel EEPROM AT28C64' DB 'sebesar delapan kilo byte. Listing program ini dia' DB 'ssembly dengan menggunakan software ASM51.exe yang' DB 'dapat didownload secara gratis di www.delta-electr' DB 'onic.com bagians software. Proses pergeseran dilak' DB 'ukan dengan menggeser 1000 pesan yang tersimpan pa' DB 'da memori eksternal tersebut sedangkan proses scan' DB 'ning tetap pada tiga puluh dua byte data pertama' DB 'dari tabel pesan setiap periode tertentu di mana'

(8)

DB 'pengaturan periode dilakukan dengan mengatur delay' DB 'yang diberikan setiap kali looping pergeseran dari' DB '1000 pesan tersebut dilakukan ********************' Temporary: DB 00 InterupsiSerial:

Clr ES ;Matikan interupsi serial

Mov Arah,SBUF ;Variabel arah diisi data input serial

Clr TI ;Hapus Flag serial

Clr RI ;

Setb ES ;Aktifkan interupsi serial

Reti ;

END

Gambar

Gambar 5 menunjukkan bagaimana proses yang terjadi pada bagian program  utama. Proses diawali dengan inisialisasi LCD dan dilanjutkan dengan mengaktifkan  interupsi serial
Diagram alir pergeseran ke kanan        Listing 1  $MOD51      DSEG      Org 50H

Referensi

Dokumen terkait

Anemia dalam kehamilan adalah kondisi ibu dengan kadar hemoglobin di bawah 11 gr% pada trimester I dan III atau kadar hemoglobin &lt; 10,5 gr% pada trimester II,

Dewan Pengawas Syariah (DPS) merupakan dewan yang dibentuk untuk mengawasi jalannya operasional Bank Islam agar berjalan sesuai dengan ketentuan-ketentuan Syariah

Namun demikian, berbagai pihak tersebut harus dipastikan untuk melaksanakan kewajiban yang melengkapi kewajiban negara dengan berupaya untuk menghonati, melindungi, dan

Laporan tersebut memberikan gambaran penilaian tingkat pecapaian target masing-masing indikator sasaran srategis yang ditetapkan dalam dokumen Renstra Tahun 2017-2022 maupun

Kelebihan cairan yang terjadi di dalam tubuh kemudian dapat menyebabkan tekanan darah menjadi lebih meningkat, sehingga keadaan ini membentuk suatu siklus yang berbahaya

Judul Skripsi : Pengaruh Latihan Aerobik Terhadap Peningkatan Volume Oksigen Maksimal (V Maks) Pada Remaja Usia 18-20 Tahun.. Menyatakan bahwa Skripsi tersebut adalah

Dan hanya dengan segala ridho dari Allah SWT penulis mampu menyelesaikan Karya Tulis Ilmiah ini yang berjudul “PENATALAKSANAAN FISIOTERAPI TERAPI LATIHAN PADA KONDISI GUILLAIN

Puji syukur, Hormat dan Kemuliaan hanya bagi Tuhan Yesus Kristus, yang telah memberikan Kasih Karunia, Hikmat serta AnugrahNya, sehingga penulis dapat menyusun dan