Senin, 09 November 2009

Operasi Pergeseran Data Pada Register

I. Judul: Operasi pergeeran data pada register
II. Alat dan bahan
- Seperangkat komputer
III. Tujuan
- Dapat menggunakan pergeseran data pada register 1 bit pada suatu register
- Dapat membuat program dan simulasi pada port mikrokontroler at8952/51

IV. Dasar teori
Operasi pergeseran data pada register hanya dapat dilakukan pada register A sehingga untuk menampilkan di hardware dari mikkrokontroler AT8952/51 harus dapat memindahkan data dari register A ke suatu port.
Operasi ragister dibawah ini, adalah suatu contoh bagaimana pross terjadi pergeseran data pada register A. misalnya: register A= 1111 1110(2) maka setelah melakukan pergeseran data 1 bit ke kiri akan dihasilkan data pada register A =1111 1110(2).
sebelum digeser seperti gambar 1 dibawah ini

Gambar1. register A= 1111 110(2) sebelum digeser

Gambar 2. register A=1111 1101(2) sesudah digeser 1 bit kekiri
V. Percobaan
a. Latihan 1 membuat program pergeseran data 1 bit kekiri diport 0
Program
org 0h
mulai: mov p0,#11111110B
acall delay
mov A,P0
geser: RL A
acall delay
mov p0,A
cjne A,#7eh,geser
acall delay
mov p0,A
sjmp mulai
delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2
cjne r2,#30h,delay3
inc r1
cjne r1,#30h,delay2
inc r0
cjne r0,#30h,delay1
ret
end
b. latihan 2 membuat program pergeseran data 1 bit kekanan diport 1 lalu port 1 (ffh) berhenti (stop)
program
org 0h
mulai: mov p1,#01111111B
acall delay
mov A,P1
geser: RR A
acall delay
mov p1,A
cjne A,#0FEh,geser
acall delay
stop: mov p1,#0ffh
sjmp stop
delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2
cjne r2,#30h,delay3
inc r1
cjne r1,#30h,delay2
inc r0
cjne r0,#30h,delay1
ret
end
c. latihan 3 membuat program pergeseran data 1 bit kekanan diport 1 lalu pergeseran data 1 bit kekiri diport 1
program
org 0h
mulai: mov p1,#01111111B
acall delay
mov a,p1
geser: RR A
acall delay
mov p1,A
cjne A,#0FEh,geser
acall delay
geser1:RL A
acall delay
mov p1,b
cjne a,#0ffh,geser1
acall delay
sjmp geser

delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2
cjne r2,#30h,delay3
inc r1
cjne r1,#30h,delay2
inc r0
cjne r0,#30h,delay1
ret

end
d. latihan 3 membuat program pergeseran data 1 bit kekanan diport 1 lalu pergeseran data 1 bit kekiri diport 2
program
org 0h
mulai: mov p1,#01111111B
acall delay
mov A,P1
geser: RR A
acall delay
mov p1,a
cjne A,#0FEh,geser
acall delay
mov p2,A
geser1:RL A
acall delay
mov p2,A
cjne A,#7fh,geser1
acall delay
mov p2,#0ffh
sjmp mulai

delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2
cjne r2,#30h,delay3
inc r1
cjne r1,#30h,delay2
inc r0
cjne r0,#30h,delay1
ret
end





e. latihan 5 membuat program counter up di port 0
program

org 0h
mulai: mov p0,#00h
acall delay
mov a,p0
up: add a,#01h
mov p0,a
acall delay
sjmp up
acall delay
delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2
cjne r2,#30h,delay3
inc r1
cjne r1,#30h,delay2
inc r0
cjne r0,#30h,delay1
ret
end

f. latihan 6 membuat program counter up di port 3 lalu counter down port 3 dan simulasikan
program
org 0h
mulai: mov p3,#00h
acall delay
mov a,p3
up: add a,#01h
mov p3,a
acall delay
sjmp up
acall delay
mov p3,a
down: subb a,#01h
mov p3,a
mov a,#01h
acall delay
sjmp down
acall delay
sjmp mulai
delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2
cjne r2,#20h,delay3
inc r1
cjne r1,#20h,delay2
inc r0
cjne r0,#25h,delay1
ret








Simulasi program a

Simulasi program b




Simulasi program c


Simulasi program d




Simulasi e

Simulasi program f






Tugas 1
Buat program counter up pada port 2 lalu down port 1 dan simulasikan
Program

org 0h
mulai: mov p2,#00h
acall delay
mov a,p2
up: add a,#01h
mov p2,a
acall delay
sjmp up
acall delay
mov p1,a
down: subb a,#01h
mov p1,a
mov a,#01h
acall delay
sjmp down
acall delay
sjmp mulai
delay: mov r0,#00h
delay1: mov r1,#00h
delay2: mov r2,#00h
delay3: inc r2

cjne r2,#20h,delay3
inc r1
cjne r1,#20h,delay2
inc r0
cjne r0,#25h,delay1
ret
end

Tidak ada komentar: