Bahasa Assembly dan command untuk DT51 trainer board Percobaan 1 Basic Input/Output Program 1.3

Program 1.3
$mod51 ; inisialisasi menggunakan mikrokontroler keluarga 51
PORTA EQU 2000H ; mengaktifkan port A pada alamat 2000H
PORTB EQU 2001H ; mengaktifkan port B pada alamat 2001H
CW   EQU 2003H ; control word mengaktifkan port PPI
CSEG ; code segment
      ORG  4000H ; program dimulai dari alamat 4000H
      LJMP  START ; long jump ke label START
DELAY:;label DELAY
MOV R7,#04H ; memberi nilai 04H ke R7   
LUP1: MOV R6,#0FFH ; memberi nilai FFH ke R6
LUP2: MOV R5,#0FFH ; memberi nilai FFH ke R5
      DJNZ R5,$   ;mengurangi 1 terus menerus hingga isi R5 menjadi 0
      DJNZ R6,LUP2 ;mengurangi R6, jika R6 belum 0 jump ke LUP2
      DJNZ R7,LUP1 ;mengurangi R7, jika R6 belum 0 jump ke LUP1
      RET  ;kembali dari subroutine ke perintah terakhir kali routine dipanggil
 START: ; label START
        MOV SP,#30H ;memberi nilai 30H ke stack pointer
 INIT: MOV DPTR,#CW  ;label INIT ; memasukkan nilai CW ke DPTR
       MOV A,#82H ;memberi nilai 82H ke Acc
       MOVX @DPTR, A ;memasukkan nilai A ke alamat yg ditunjuk DPTR
 LOOP: MOV DPTR,#PORTB ; port B ditunjuk DPTR
       MOVX A,@DPTR ;memindahkan nilai DPTR ke Acc
       MOV DPTR,#PORTA ;memasukkan nilai port A ke alamat yg ditunjuk DPTR
       MOVX @DPTR,A ;memasukkan nilai A ke alamat yg ditunjuk DPTR
       ACALL DELAY ;memanggil label DELAY
       SJMP  LOOP  ;short jump ke label LUP
       END ; mengakhiri program

Analisis Program
Program ini menggunakan port A sebagai port output, port B sebagai input, control dihubungkan dengan control pada trainer board DT51 lalu inisialisasi port A, port B dan CW.
Program diawalai dengan :
>$mod51 ; inisialisasi menggunakan mikrokontroler keluarga 51
>PORTA EQU 2000H ; deklarasi menggunakan port A yang berada pada alamat 2000H
>PORTB EQU 2001H ; deklarasi menggunakan port B yang berada pada alamat 2001H
>CW   EQU 2003H ; control word mengaktifkan port PPI pada alamat 2003H
>CSEG ; code segment
 > ORG  4000H ; program dimulai dari alamat 4000H
 >LJMP  START ; long jump ke label START
>DELAY : MOV R7,#04H ; memberi nilai 04H ke R7   
>LUP1: MOV R6,#0FFH ; memberi nilai FFH ke R6
>LUP2: MOV R5,#0FFH ; memberi nilai FFH ke R5
>DJNZ R5,$   ;mengurangi 1 terus menerus hingga isi R5 menjadi 0
>DJNZ R6,LUP2 ;mengurangi R6, jika R6 belum 0 jump ke LUP2
>DJNZ R7,LUP1 ;mengurangi R7, jika R6 belum 0 jump ke LUP1
 >RET  ;kembali dari subroutine ke perintah terakhir kali routine dipanggil
 >START:  MOV SP,#30H ;memberi nilai 30H ke stack pointer
> INIT: MOV DPTR,#CW  ;label INIT ; data pointer menunjuk CW
>MOV A,#82H ;memberi nilai 82H ke Acc
82H binernya 1000 0010 merupakan nilai CW
MSB (setflag) harus bernilai 1 untuk aktifasi PPI port
D5 dan D6 berarti mode select 0 nilainya 00
D4 diset 0 sebab port A sebagai output
D3 diset 0 sebab port C upper sebagai output
D2 menggunakan mode 0 jadi 0
D1 diset 1 sebab port B sebagai input
D0 diset 0 sebab port C lower sebagai output
>MOVX @DPTR, A ;memasukkan nilai A ke alamat yg ditunjuk DPTR
 >LOOP: MOV DPTR,#PORTB ; port B ditunjuk DPTR
>MOVX A,@DPTR ;Acc diberi nilai dari alamat yang ditunjuk DPTR
>MOV DPTR,#PORTA ; port A ditunjuk DPTR
> MOVX @DPTR,A ;memasukkan nilai A ke alamat yg ditunjuk DPTR
 > ACALL DELAY ;memanggil label DELAY
  >SJMP  LOOP  ;short jump ke label LUP
 >END ; mengakhiri program
Tampilan LED sesuai dengan input yang diberikan pada switch, missal switch bit ke 1 maka LED bit 1 menyala.
Delay :
Delay =2x255+3=513
Lup1=255x513+3=130818
Lup2=4x130818+3=523575 mikrosekon = 0,5 detik
Delay=523575x1,o8 mikrosekon
=565135 mikrosekon=0,5 detik
Dalam perhitungan delay stack pointer digunakan untuk menunjukkan pemanggilan delay karena SP dapat dinaikkan dengan intruksi CALL dan PUSH.
Oferia Fircha Yenis Saputri Nothing special about me .. Just an ordinary man who wants to be better ..:) Born in Padang in West Sumatra and large in Merauke, Papua. Have the best parents in the world .. Ahmad Muzayin and Siti Istikomah.. Love you so much ... About love I always try to give the best ... And hope will be received also the best ..

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel