NIM : 11.11.2636
Kelas : TI 11 E
PRAKTEK-4 Sistem Input Output (Contoh Led Ber-password)
Langkah:
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
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
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 dapatmenggunakan 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).
KODE :
MOV DPTR,#2003H
MOV A, #80H
MOVX @DPTR,A
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
Latihan:
1. Buatlah program seperti pada contoh program 1, output LED menggunakan PC
2. Buatlah program seperti pada contoh program 1, tetapi proses baca input dari PA sedangkan output LED di P1.
Petunjuk: Jika PA,PB, PC difungsikan sebagai INPUT maka Control Word
(CW) harus diisi 9Bh (lihat tabel 1) Kabel penghubung ke modul
disesuaikan terlebih dahulu
3. Buatlah program spt program 1, untuk password: 55h atau 22h
PRAKTEK-3 AKSES DATA SECARA LOOK UP TABLE
Langkah:
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
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.
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 1 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
Praktikum Mikroprosesor, Arif Johar Taufiq., materi dapat didownload di http://guru.technosains.com hal 3
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
ENDLATIHAN:
1. Buatlah program running LED dengan perintah RR (Rotation Right) dan RL (Ratation Left) agar LED nyala balak-balik kanan-kiri dan kiri-kanan. Kombinasikan perintah RR, RL dan CJNE untuk mengecek posisi data ujung (80h dan 01h)
Petunjuk:
RR A geser/rotasi 1 bit isi register A ke Kanan
RL A geser/rotasi 1 bit isi register A ke Kiri
CJNE A,#80h,TIDAK apakah isi Reg A=80h, jika tidak maka lompat ke TIDAK, jika YA kerjakan Instruksi dibawahnya
2. Buatlah program running LED bolak balik dengan pola nyala LED yang sudah disimpan di alamat data (DATALED) berarti ada 16 data pola nyala LED. Kerjakan dengan model look up table seperti program 2.
; 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
Praktikum Mikroprosesor, Arif Johar Taufiq., materi dapat didownload di http://guru.technosains.com hal 3
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
ENDLATIHAN:
1. Buatlah program running LED dengan perintah RR (Rotation Right) dan RL (Ratation Left) agar LED nyala balak-balik kanan-kiri dan kiri-kanan. Kombinasikan perintah RR, RL dan CJNE untuk mengecek posisi data ujung (80h dan 01h)
Petunjuk:
RR A geser/rotasi 1 bit isi register A ke Kanan
RL A geser/rotasi 1 bit isi register A ke Kiri
CJNE A,#80h,TIDAK apakah isi Reg A=80h, jika tidak maka lompat ke TIDAK, jika YA kerjakan Instruksi dibawahnya
2. Buatlah program running LED bolak balik dengan pola nyala LED yang sudah disimpan di alamat data (DATALED) berarti ada 16 data pola nyala LED. Kerjakan dengan model look up table seperti program 2.
PRAKTEK-2 BASIC I/O P1 SEBAGAI INPUT
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
ALAMAT PORT tambahan pada system DT-51 adalah sbb:
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:
Program 1 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
ORG 4100H
START:
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
ORG 4100H
START:
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
ORG 4100H
START:
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
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 2×16, dengan 16 pin konektor.
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”.
PERCOBAAN 1. TULIS SEBUAH 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:
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:
mov r1,#00000001b ;Display clear
call write_inst
mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5×7
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
;
Write_inst:
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
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
Tidak ada komentar:
Posting Komentar