Jumat, 27 Desember 2013

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

Skema Rangkaian 


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
$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


LATIHAN:

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.

 

 

sumber : http://guru.technosains.com

Tidak ada komentar:

Posting Komentar