Langkah untuk praktikum 1 yaitu :
1. Hubungkan PORT DT51 MinSysn dengan PORT OUTPUT DT-51 tariner board.
2. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
3. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
4. Hubungkan Dt-51 MInSys dengansumber tegangan.
Program I Transfer data Output per-bit
$mod51
CSEG
ORG 4000H
LJMP START
START: ORG 4100H
MOV SP, #30H
SETB P1.0
CLR P1.1
SETB P1.2
CLR P1.3
SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
SJMP $
END
Program 2 Transfer data Output per-bit Cara Lain$mod51
CSEG
ORG 4000H
LJMP START
START: ORG 4100H
MOV SP, #30H
SETB C
MOV P1.0,C
MOV P1.1,C
MOV P1.2,C
MOV P1.3,C
CLR C
MOV P1.4,C
MOV P1.5,C
MOV P1.6,C
MOV P1.7,C
SJMP $
END
Program 3 Transfer data Output per-byte$mod51
CSEG
ORG 4000H
LJMP START
START: ORG 4100H
MOV SP, #30H
MOV P1, #0A3H
SJMP $
END
Sumber dari : http://guru.technosains.com/
Senin, 13 Januari 2014
Praktikum 2 Basic Input Output P1 sebagai Input
Langkah praktikumnya yaitu:
1. Hubungkan PORT DT51 MinSysn dengan PORT INPUTDT-51 trainer board.
2. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
3. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
4. Hubungkan Dt-51 MInSys dengansumber tegangan.
Skema Rangkaian
P1 sbg input PA sebagai output.
1. PA (port A) = 2000h
2. PB (port B) = 2001h
3. PC (port C) = 2002h
4. Reg CR = 2003h
PA adalah PORT tambahan (eksternal) diluar mikrokontroler, yang disediakan dari IC PPI 8255. Mikrokontroler dapat menggunakan PA ini dengan cara MEMPROGRAMNYA TERLEBIH DAHULU lewat register internal PPI 8255 yaitu register CW (control word).
Contoh Memprogram semua Port PPI 8255 (PA, PB, PC) sebagai output, maka reg CW harus diberi data 80h (lihat manual PPI 8255).
Code:
Sumber dari : http://guru.technosains.com/
1. Hubungkan PORT DT51 MinSysn dengan PORT INPUTDT-51 trainer board.
2. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
3. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
4. Hubungkan Dt-51 MInSys dengansumber tegangan.
Skema Rangkaian
P1 sbg input PA sebagai output.
1. PA (port A) = 2000h
2. PB (port B) = 2001h
3. PC (port C) = 2002h
4. Reg CR = 2003h
PA adalah PORT tambahan (eksternal) diluar mikrokontroler, yang disediakan dari IC PPI 8255. Mikrokontroler dapat menggunakan PA ini dengan cara MEMPROGRAMNYA TERLEBIH DAHULU lewat register internal PPI 8255 yaitu register CW (control word).
Contoh Memprogram semua Port PPI 8255 (PA, PB, PC) sebagai output, maka reg CW harus diberi data 80h (lihat manual PPI 8255).
Program I Membaca data dari P1
% Membaca data bit p1.4, jika bernilai 1 maka LED
% di PA akan nyala,Jika tidak maka semua LED akan mati
$mod51
CSEG
ORG 4000H
LJMP START
START :ORG 4100H
MOV SP, #30H
INIT : MOV DPTR, #2003H ; proses isi cw dg data 80H
MOV A, #80H
MOVX @DPTR, A
LABEL1 :JB P1.4, DISPLAY ; baca bit p1.4
DISPLAY2: MOV DPTR, #2000H ; jika=0 matikan semua LED
MOV A, #00H
MOVX @DPTR, A
SJMP LABEL1
DISPLAY : MOV DPTR, #2000H ; jika=1 nyalakan semua LED
MOV A, #0FFH
MOVX @DPTR, A
SJMP LABEL1
END
Program 2
$mod51
CSEG
ORG 4000H
LJMP START
START :ORG 4100H
MOV SP, #30H
INIT : MOV DPTR, #2003H
MOV A, #80H
MOVX @DPTR, A
LABEL1 : MOV C, P1.5
JC DISPLAY
MOV C, P1.0
JNC DISPLAY3
DISPLAY2 : MOV DPTR, #2000H
MOV A, #00H
MOVX @DPTR, A
SJMP LABEL1
DISPLAY : MOV DPTR, #2000H
MOV A, #20H
MOVX @DPTR, A
SJMP LABEL1
DISPLAY3 : MOV DPTR, #2000H
MOV A, #01H
MOVX @DPTR, A
SJMP LABEL1
END
Program 3
$mod51
CSEG
ORG 4000H
LJMP START
START:ORG 4100H
MOV SP, #30H
INIT: MOV DPTR, #2003H MOV A, #80H
MOVX @DPTR, A
LABEL1: MOV R1, P1
DISPLAY: MOV DPTR, #2000H MOV A, R1
MOVX @DPTR, A SJMP LABEL1
END
Sumber dari : http://guru.technosains.com/
Praktek 3 Akses Data Secara Look Up Table
Langkah langkahnya adalah sebagai berikut:
1. Hubungkan PORT 1 (P1) DT51 MinSysn dengan PORT OUTPUT DT-51 tariner board.
2. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
3. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
4. Hubungkan Dt-51 MInSys dengansumber tegangan.
Teori
Akses data ke alamat memori dapat dilakukan secara berurutan (indeks) dengan melibatkan register DPTR,A dan register pencacah data misal R0.
Contoh :
MULAI :
MOV DPTR,#DATALED ;isi reg DPTR dengan alamat awal data
MOV R0,#00H ;siapkan R0 sbdg pencacah data
NEXT :
CLR A ;kosongkan isi reg A
MOVC A,@A+DPTR ;copy data dari alamat data yg ditunjuk DPTR ke A
-------
INC DPTR ;naikkan alamat
INC R0 ;naikkan pencacah data
CJNE R0,#08h,NEXT ;apakah cacah data sudah 8, jika belum ke next data
Program I RUNNING LED MANUAL
Program 2 RUNNING LED DENGAN LOOP UP TABLE
PROGRAM AKSES DATA (LOOK UP TABLE)
AKSES DATA BERURUTAN YANG DI SIMPAN DI TABEL DATA
DI AKSESES DGN BANTUAN REG DPTR, REG A dan RO
==============================================
Sumber : http://guru.technosains.com/
1. Hubungkan PORT 1 (P1) DT51 MinSysn dengan PORT OUTPUT DT-51 tariner board.
2. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
3. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
4. Hubungkan Dt-51 MInSys dengansumber tegangan.
Akses data ke alamat memori dapat dilakukan secara berurutan (indeks) dengan melibatkan register DPTR,A dan register pencacah data misal R0.
Contoh :
MULAI :
MOV DPTR,#DATALED ;isi reg DPTR dengan alamat awal data
MOV R0,#00H ;siapkan R0 sbdg pencacah data
NEXT :
CLR A ;kosongkan isi reg A
MOVC A,@A+DPTR ;copy data dari alamat data yg ditunjuk DPTR ke A
-------
INC DPTR ;naikkan alamat
INC R0 ;naikkan pencacah data
CJNE R0,#08h,NEXT ;apakah cacah data sudah 8, jika belum ke next data
Program I RUNNING LED MANUAL
$mod51
CSEG
ORG 4000H
LJMP START
ORG 4100H
START:
MOV P1,#00000001B
ACALL TUNDA
MOV P1,#00000010B
ACALL TUNDA
MOV P1,#00000100B
ACALL TUNDA
MOV P1,#00001000B
ACALL TUNDA
MOV P1,#00010000B
ACALL TUNDA
MOV P1,#00100000B
ACALL TUNDA
MOV P1,#01000000B
ACALL TUNDA
MOV P1,#10000000B
ACALL TUNDA
LJMP START
TUNDA:
MOV R7,#01H
LUP1 : MOV R6,#0FFH
LUP2 : MOV R5,#0FFH
DJNZ R5 , $
DJNZ R6 , LUP2
DJNZ R7, LUP1
RET
END
Program 2 RUNNING LED DENGAN LOOP UP TABLE
PROGRAM AKSES DATA (LOOK UP TABLE)
AKSES DATA BERURUTAN YANG DI SIMPAN DI TABEL DATA
DI AKSESES DGN BANTUAN REG DPTR, REG A dan RO
==============================================
$MOD51
CSEG
ORG 4000h
LJMP MULAI
ORG 4100h
MULAI: MOV DPTR,#DATALED
MOV R0 ,#00H
NEXT :
CLR A
MOVC A,@A+DPTR
CPL A
MOV P1,A
INC DPTR
ACALL TUNDA
INC R0
CJNE R0,#08h,NEXT
SJMP MULAI
=======PROSEDUR TUNDA===
TUNDA:
MOV R7,#01h
LUP1: MOV R6,#0FFh
LUP2: MOV R5,#0FFH
DJNZ R5, $
DJNZ R6,LUP2
DJNZ R7,LUP1
RET
=======PROSEDUR TUNDA==END
DATALED:
DB 00000001b
DB 00000010b
DB 00000100b
DB 00001000b
DB 00010000b
DB 00100000b
DB 01000000b
DB 10000000b
END
Sumber : http://guru.technosains.com/
Praktek 4 Sistem Input Output LED Berpassword
Skema Rangkaian
P1 sbg input PA sebagai output
ALAMAT PORT tambahan pada system DT-51 adalah sbb:
1. PA (port A) = 2000h
2. PB (port B) = 2001h
3. PC (port C) = 2002h
4. Reg CW (Control Word) = 2003h
PA adalah PORT tambahan (eksternal) diluar mikrokontroler, yang
disediakan dari IC PPI 8255. Mikrokontroler dapat menggunakan PA ini
dengan cara MEMPROGRAMNYA TERLEBIH DAHULU lewat register internal PPI
8255 yaitu register CW(control word).
Contoh Memprogram semua Port PPI 8255 (PA, PB, PC)sebagai output, maka reg CW harus diberi data 80h lihat manual PPI 8255).
Code:
Program 1 LED Berpassword
Membaca data password dari P1, jika PWD benar, LED DI PA nyala ==============================================================
$mod51
PWD EQU 22H
CW EQU 2003h
CSEG
ORG 4000H
LJMP START
ORG 4100H
START:
MOV SP, #30H
INIT: MOV DPTR, #CW ; proses isi cw dg data 80H
MOV A, #80H
MOVX @DPTR, A
MOV A, P1
BACA_PWD:
CJNE A,#PWD, MATI
NYALA:
MOV DPTR, #2000H ; jika=1 nyalakan semua LED
MOV A, #0FFH
MOVX @DPTR, A
SJMP BACA_PWD
MATI:
MOV DPTR, #2000H ; jika=0 matikan semua LED
MOV A, #00H
MOVX @DPTR, A
SJMP BACA_PWD
END
Sumber dari : http://guru.technosains.com/
Praktek 5 Seven Segment
Langkah praktikum nya adalah:
1. Hubungkan P1 DT51 MinSysn dengan “DATA 7S” DT-51 trainer board.
2. Hubungkan Port C DT51 MinSysn dengan “I/P S KEY” DT-51 trainer board.
3. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
4. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
5. Hubungkan Dt-51 MInSys dengansumber tegangan.
Teori
Seven segment adalah diode LED sebanyak 7 buah yang disusun dan dikemas membentuk penampil angka, dan biasanya ditambahkan 1 buah LED untuk koma (DotPoint).Karena dibentuk dari kumpulan LED maka ada dua jenis seven segment, yaitu Common Anode (CA) dan Common Catode (CC).
Untuk penyalakan seven segment jenis CC maka masukan segment a s/d Dp harus diberi logika tinggi dan bagian CC dihubungkan dengan Ground. Sedangkan jika ingin menyalakan seven segment jenis CA maka masukan segment a s/d Dp harus diberi logika LOW dan CA harus dihubungkan ke +5 VCC.
1. Hubungkan P1 DT51 MinSysn dengan “DATA 7S” DT-51 trainer board.
2. Hubungkan Port C DT51 MinSysn dengan “I/P S KEY” DT-51 trainer board.
3. Hubungkan CONTROL DT-51 Min Sys dengan CONTROL DT-51 trainer board.
4. Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.
5. Hubungkan Dt-51 MInSys dengansumber tegangan.
Teori
Seven segment adalah diode LED sebanyak 7 buah yang disusun dan dikemas membentuk penampil angka, dan biasanya ditambahkan 1 buah LED untuk koma (DotPoint).Karena dibentuk dari kumpulan LED maka ada dua jenis seven segment, yaitu Common Anode (CA) dan Common Catode (CC).
Untuk penyalakan seven segment jenis CC maka masukan segment a s/d Dp harus diberi logika tinggi dan bagian CC dihubungkan dengan Ground. Sedangkan jika ingin menyalakan seven segment jenis CA maka masukan segment a s/d Dp harus diberi logika LOW dan CA harus dihubungkan ke +5 VCC.
ALAMAT PENTING MODUL DT-51 adalah sbb:
1. PA (port A) = 2000h
2. PB (port B) = 2001h
3. PC (port C) = 2002h
4. Reg CW (Control Word) = 2003h
5. DIGIT1 = 80h
6. DIGIT2 = 40h
Dari gambar rangkaian di atas saluran data tampilan angka menggunakan P1 yang dipakai bersama antara digit1 dan digit 2 sehingga jika ingin menampilkan angka bersama (tampil 2 digit sekaligus) dilakukan secara bergantian secara cepat sehingga tampil seolah-olah berbarengan. Catatan penting untuk tampilan secara bergatian dari digit1 ke digit2 harus diselingi dengan mematikan semua sesaat, karena jika tidak dimatikan sesaat maka tampilan angka akan tumpang tindih.
PROGRAM 1
--------------------------------
contoh scanning seven segment menampilkan angka 51
--------------------------------
$mod51 PORTC EQU 2002H
CW EQU 2003H
CSEG
ORG 4000H
LJMP START
DELAY :
MOV R6, #0FH
LUP :
MOV R7, #0FFH
DJNZ R7, $
DJNZ R6, LUP
RET
START : MOV SP , #30H
MOV DPTR, #CW
MOV A , #80H
MOVX @DPTR, A
LOOP:
;menampilkan angka 5 di seven segment 1
MOV DPTR, #PORTC
MOV A , #80H
MOVX @DPTR, A
MOV P1 , #6DH
LCALL DELAY
MOV P1 ,#00H
;menampilkan angka 7 di seven segment 2
MOV A, #40H
MOVX @DPTR, A
MOV P1, #07H
LCALL DELAY
MOV P1,#00H
SJMP LOOP
END
Sumber dari : http://guru.technosains.com/
LCD 2 X 16 Karakter
Praktikum LCD 2 X 16 Karakter
Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti AT89S51.
LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor, yang didifinisikan sebagai berikut:
Pin dan Fungsinya
Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu ( sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low “0” lagi.
Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagi sebua perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ). Ketika RS berlogika high “1”, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high “1”.
Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ”0”.
Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7
Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character,
Function Set
Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter.
Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya.
Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor.Sebagai contoh, kita ingin menampilkan kata ”World” pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata
”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah
80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.
Set Alamat Memori DDRAM.
Catatan:
A : Alamat RAM yang akan dipilih
Sehingga alamat RAM LCD adalah 000 0000 S/D 111 1111 b atau 00 s/d 7Fh
INISIALISASI
Sebelum kita dapat menggunakan modul LCD, kita harus melakukan inisialisasi dan mengkonfigurasikannya. Hal ini dijalankan dengan mengirimkan sejumlah instruksi ke LCD.
Antara lain: pengaturan lebar data interface 8 bit atau 4 bit data bus, pemilihan ukuran font karakter 5x8 atau 5x7 dan lain-lain, dengan instruksi sebagai berikut.
Pada percobaan ini, karakter „A‟ akan ditampilkan pada 7 Segmen Display 1 Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
6. Simpanlah program yang anda ketik dan beri nama : prog41a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada LED.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:
PERCOBAAN 2. TULIS DELAPAN KARAKTER PADA LCD KARAKTER
Pada percobaan ini, karakter „A‟ akan ditampilkan pada 7 Segmen Display 1
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada LED.
10.Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:
PERCOBAAN 3. TULIS KARAKTER DENGAN LOOK UP TABLE
Pada percobaan ini, karakter „A‟ akan ditampilkan pada 7 Segmen Display 1
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke
*.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk
Penggunaan)
9. Lakukan pengamatan pada LCD.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:
PERCOBAAN 4. PERINTAH GESER SATU KARAKTER
Pada percobaan ini, karakter ”A” akan ditampilkan pada layar LCD Karakter dan dilakukan proses geser
ke kanan.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
PERCOBAAN 5. PERINTAH GESER KALIMAT
Pada percobaan ini, kalimat ”Welcome home” akan ditampilkan pada layar LCD Karakter dengan
menggunakan look up table dan dilakukan proses geser ke kiri.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke
*.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
Sumber dari : http://guru.technosains.com/
Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti AT89S51.
LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor, yang didifinisikan sebagai berikut:
Pin dan Fungsinya
PIN
|
Name
|
Function
|
1
|
VSS
|
Ground voltage
|
2
|
VCC
|
+5V
|
3
|
VEE
|
Contrast voltage
|
4
|
RS
|
Register
Select
0 = Instruction
Register
1 = Data Register
|
5
|
R/W
|
Read/ Write, to choose
write or read
mode
0 = write mode
1 = read mode
|
6
|
E
|
Enable
0 = start to lacht
data to LCD character
1= disable
|
7
|
DB0
|
LSB
|
8
|
DB1
|
-
|
9
|
DB2
|
-
|
10
|
DB3
|
-
|
11
|
DB4
|
-
|
12
|
DB5
|
-
|
13
|
DB6
|
-
|
14
|
DB7
|
MSB
|
15
|
BPL
|
Back
Plane Light
|
16
|
GND
|
Ground voltage
|
Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu ( sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low “0” lagi.
Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagi sebua perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ). Ketika RS berlogika high “1”, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high “1”.
Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ”0”.
Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7
Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character,
Function Set
Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter.
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
1
|
DL
|
N
|
F
|
X
|
X
|
CATATAN:
X : Don‟t care
DL: Mengatur lebar data
DL=1, Lebar data
interface 8 bit ( DB7 s/d DB0)
DL=0, Lebar data
interface 4 bit ( DB7 s/d DB4)
Ketika menggunakan lebar data
4 bit, data harus dikirimkan dua
kali
N: Pengaktivan
baris
N=0, 1 baris
N=1,
2 baris
F: Penentuan
ukuran font karakter
F=0,
5x7
F=1, 5x8
Entry Mode Set
Mengatur
increment/ decrement dan
mode geser.
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
I/D
|
S
|
Catatan:
I/D: Increment/ decrement dari
alamat DDRAM dengan
1 ketika kode karakter dituliskan ke DDRAM.
I/D = “0”, decrement
I/D= “1”, increment
S: Geser
keseluruhan
display kekanan
dan
kekiri S=1, geser
kekiri
atau kekanan bergantung pada I/D
S=0,
display tidak bergeser
Display
On/
Off Cursor
Mengatur status display ON atau OFF, cursor ON/
OFF
dan fungsi Cursor Blink.
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
D
|
C
|
B
|
D : Mengatur display
D = 1, Display is ON
D = 0, Display is OFF
Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan kembali secara langsung dengan mengatur D=1.
C : Menampilkan kursor
C = 1, kursor ditampilkan
C = 0, kursor tidak ditampilkan
B : Karakter ditunjukkan dengan kursor yang berkedip
B=1, kursor blink
Clear Display
Perintah ini hapus layar.
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
Geser Kursor dan
Display
Geser
posisi kursor atau display ke kanan
atau kekiri
tanpa menulis atau baca data
display. Fungsi
ini
digunakan untuk koreksi atau pencarian display
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
1
|
S/C
|
R/L
|
X
|
X
|
Catatan : x =
Dont care
S/C
|
R/L
|
Note
|
0
|
0
|
Shift cursor
position to the left
|
0
|
1
|
Shift cursor
position to the right
|
1
|
0
|
Shift the entire display to the
left
|
1
|
1
|
Shift the entire display to the
right
|
POSISI
KURSOR
Modul LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks yang kita tuliskan
ke modul LCD adalah
disimpan didalam
memory ini,
dan modul LCD secara
berturutan membaca memory ini untuk
menampilkan
teks ke modul LCD itu sendiri.
Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya.
Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor.Sebagai contoh, kita ingin menampilkan kata ”World” pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata
”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah
80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.
Set Alamat Memori DDRAM.
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
1
|
A
|
A
|
A
|
A
|
A
|
A
|
A
|
Catatan:
A : Alamat RAM yang akan dipilih
Sehingga alamat RAM LCD adalah 000 0000 S/D 111 1111 b atau 00 s/d 7Fh
INISIALISASI
Sebelum kita dapat menggunakan modul LCD, kita harus melakukan inisialisasi dan mengkonfigurasikannya. Hal ini dijalankan dengan mengirimkan sejumlah instruksi ke LCD.
Antara lain: pengaturan lebar data interface 8 bit atau 4 bit data bus, pemilihan ukuran font karakter 5x8 atau 5x7 dan lain-lain, dengan instruksi sebagai berikut.
Init_lcd:PERCOBAAN 1. TULIS SEBUAH KARAKTER PADA LCD KARAKTER
mov r1,#00000001b ;Display clear
call write_inst ;EN=pulse dan RS=0
mov r1,#00111000b ;Function set, ;Data 8 bit,2 line font 5x7
call write_inst ;Set bit EN=pulse dan RS=0
mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call write_inst ;EN=pulse dan RS=0
mov r1,#00000110b ;Entry mode, Set increment
call write_inst ret
Pada percobaan ini, karakter „A‟ akan ditampilkan pada 7 Segmen Display 1 Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
org 0h
call init_LCD
start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1 call write_inst
mov R1,#'A' ; Cetak Karakter A
call write_data
stop :
sjmp stop
Init_lcd:
Write_inst:
Write_data:
mov r1,#00000001b ;Display clear call write_inst
mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
call write_inst
mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment call write_inst
ret
;
clr P3.6 ; P3.6 = RS =0
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
setb P3.6 ; P3.6 = RS =1
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret
;
delay : mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
end
6. Simpanlah program yang anda ketik dan beri nama : prog41a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada LED.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:
Nama
Karakter
|
Posisi Display
|
1
|
Row 1, Col 2
|
Z
|
Row 1, Col 8
|
&
|
Row 2, Col 12
|
PERCOBAAN 2. TULIS DELAPAN KARAKTER PADA LCD KARAKTER
Pada percobaan ini, karakter „A‟ akan ditampilkan pada 7 Segmen Display 1
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
6. Simpanlah program yang anda ketik dan beri nama: prog42a.asm
$mod51 org 0h
call init_LCD
start:
mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
call write_inst
mov R1,#'W'
call write_data
mov R1,#'e'
call write_data
mov R1,#'l'
call write_data
mov R1,#'c'
call write_data
mov R1,#'o'
call write_data
mov R1,#'m'
call write_data
mov R1,#'e'
call write_data
stop: sjmp stop
Init_lcd:
Write_inst:
mov r1,#00000001b ;Display clear
call write_inst
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
clr P3.6 ; P3.6 = RS = 0
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 = EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret;
Write_data:
setb P3.6 ; P3.6 = RS = 1
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 = EN = 1
call delay; call delay time
clr p3.7 ; P3.7 = EN = 0
ret;
delay :
mov R0,#0
delay1:
mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
end
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada LED.
10.Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:
Nama
Karakter
|
Start Posisi
Display
|
Selamat Datang
|
Row 1, Col 1
|
Mikrokontroller
|
Row 2, Col 1
|
PERCOBAAN 3. TULIS KARAKTER DENGAN LOOK UP TABLE
Pada percobaan ini, karakter „A‟ akan ditampilkan pada 7 Segmen Display 1
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
6. Simpanlah program yang anda ketik dan beri nama : prog43a.asm
$mod51
org 0h
call init_LCD
start :
call write_char
stop :
sjmp stop
;
write_char :
mov dptr,#word1 ;DPTR = [ address word1 ]
mov r3,#16 ;R3=16,number character to be display
mov r1,#80h ;R1=80h,address DDRAM start position call write_inst
;
write1 :
clr a ; A = 0
movc a,@a+dptr ; A = [A+ DPTR]
mov r1,A ; R1 = A
inc dptr ; DPTR = DPTR +1
call write_data;
djnz r3,write1 ; R3 = R3-1,
ret
;
Init_lcd:
Write_inst:
Write_data:
mov r1,#00000001b ;Display clear
call write_inst ;
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst ;
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
clr P3.6 ; P3.6 = RS = 0
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 = EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 = EN = 0 ret
;
setb P3.6 ; P3.6 = RS =1
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 = EN = 1
call delay ; call delay time
call delay ; call delay time
clr p3.7 ; P3.7= EN = 0
ret
;
delay :
mov R0, #0
delay1:
mov R7, #0fh
djnz R7, $
djnz R0, delay1
ret;
word1:
DB ' Welcome Home '; Karakter yang disimpan di ROM
;
end
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke
*.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk
Penggunaan)
9. Lakukan pengamatan pada LCD.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:
Nama
Karakter
|
Start Posisi
Display
|
Selamat Datang
|
Row 1, Col 1
|
Mikrokontroller
|
Row 2, Col 1
|
PERCOBAAN 4. PERINTAH GESER SATU KARAKTER
Pada percobaan ini, karakter ”A” akan ditampilkan pada layar LCD Karakter dan dilakukan proses geser
ke kanan.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
$mod51
geserL equ 00011011b ; 0 0 0 1 S/C R/L X X
geserR equ 00011111b ; 0 0 0 1 S/C R/L X X
;
org 0h
call init_LCD
start :
mov R1, #80h
call write_inst
mov R1, #'A' ; Karakter yang akan digeser
call write_data
;
mov R3, #40 ; 40x geser ke kanan
Next :
mov R1, #geserR
call write_inst
call ldelay
djnz R3,next
sjmp start
;
Init_lcd:
Write_inst:
mov r1,#00000001b ;Display clear
call write_inst ;
mov r1,#00111000b ;Function set, ;Data 8 bit,2 line font 5x7
call write_inst ;
mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst ret
;
clr P3.6 ; RS = 0, write mode instruction
mov P0,R1 ; D7 s/d D0 = P0 = R1
setb P3.7 ; EN = 1
call delay ; call delay time
clr P3.7 ; EN = 0 ret
;
Write_data:
setb P3.6 ; RS = 1, write mode data
mov P0,R1 ; D7 s/d D0 = P0 = R1
setb P3.7 ; EN =1
call delay ; call delay time
clr p3.7 ; EN = 0 ret
;
Ldelay :
mov R2,#030h
Ld1 :
call delay
djnz R2,Ld1
ret;
delay :
mov R0,#0
delay1 :
mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret;
end
PERCOBAAN 5. PERINTAH GESER KALIMAT
Pada percobaan ini, kalimat ”Welcome home” akan ditampilkan pada layar LCD Karakter dengan
menggunakan look up table dan dilakukan proses geser ke kiri.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:
$mod516. Simpanlah program yang anda ketik dan beri nama : prog44a.asm
geserL equ 00011011b ; 0 0 0 1 S/C R/L X X
geserR equ 00011111b ; 0 0 0 1 S/C R/L X X
org 0h
call init_LCD
start: call write_char
call geser
sjmp start
;
geser :
mov R6, #40 ;R7 = 40; geser sebanyak 40 karakter
lagi:
mov R1, #geserL ;R1 = GeserLeft
call write_inst
call ldelay
djnz R6,lagi ;R7=R7-1, jika R7 ? 0 maka lompat ke lagi
write_char:
mov dptr,#word1 ;DPTR = [ address word1 ]
mov r3,#16 ;R3=16,number character to be display mov r1,#80h;R1=80h,address DDRAM start position call write_inst
;
write1 :
clr a ; A = 0
Init_lcd:
movc a,@a+dptr ; A = [A+ DPTR]
mov r1,A ; R1 = A
inc dptr ; DPTR = DPTR +1
call write_data;
djnz r3,write1 ; R3 = R3-1,
ret;
mov r1,#00000001b ;Display clear call write_inst ;
mov r1,#00111000b ;Function set,
call write_inst;
mov r1,#00001100b ;Display on,
call write_inst;Data 8 bit,2 line font 5x7;
cursor off,cursor blink off
Write_inst:
Write_data:
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret;
clr P3.6 ; RS = P2.0 = 0, write mode instruction
mov P0,R1 ; D7 s/d D0 = P0 = R1
setb P3.7 ; EN = 1 = P2.1 call delay ; call delay time
clr P3.7 ; EN = 0 = P2.1
ret;
setb P3.6 ; RS = P2.0 = 1, write mode data mov P0,R1 ; D7 s/d D0 = P0 = R1
setb P3.7 ; EN = 1 = P2.1
call delay ; call delay time
clr p3.7 ; EN = 0 = P2.1
ret;
Ldelay :
mov R2,#030h
Ld1 :
acall delay
djnz R2,Ld1 ret
delay :
mov R0,#0
delay1:
mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret;
word1: DB ' Welcome Home '; here is the data to be look up;
end
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke
*.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
Langganan:
Postingan (Atom)