Anda di halaman 1dari 12

LAPORAN PRAKTIKUM X OPERASI ARITMATIKA 2

SISTEM MIKROPROSESOR dan MIKROKONTROLER

Disusun Oleh:
Evaro Janurae Putra
211311044
2B TEL

PRODI D3 TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI BANDUNG
2021
I. Tujuan
Sesudah praktikum diharapkan mahasiswa memahami operasi aritmatik.

II. Petunjuk keselamatan kerja

• Periksa seluruh koneksi sebelum power dinyalakan atau dihubungkan dengan


komputer

III. Landasan Teori


Mikrokontroler menggunakan teknologi RISC dimana set instruksi dikurangi dari segi
ukurannya dan kompleksitas mode pengalamatannya. Dalam AVR dengan arsitekture RISC 8
bit, semua instruksi berukuran 16 bit dan sebagian besar dieksekusi dalam 1 siklus clock.
Berbeda dengan mikrokontroler MSC-51 yang instruksinya bervariasi antara 8 bit sampai 32 bit
dan di eksekusi selama 1 sampai 4 siklus mesin, dimana 1 mesin membutuhkan 12 periode
clock.Dalam perkembangannya, AVR dibagi menjadi beberapa varian yaitu AT90Sxx, ATMega,
AT86RFxx dan ATTiny. Pada dasarnya yang membedakan masing-masing varian adalah
memori dan beberapa fitur tambahan saja.

IV. Alat dan Komponen Yang digunakan


1. Komputer PC/ Laptop
2. Software AVR Studio 4

V. Langkah – langkah percobaan


1. Buat program alir dibawah ini
A. Ilustrasi Kasus
B. Lengkapi Tabel di Bawah ini

C. Gunakan menu trace untuk menganalisa instruksi, dan lengkapi tabel dibawah

2. Buat Program bagan alir di bawah ini


3. Buat program pengali 2 bilangan decimal 1bit
VI. Hasil Pengamatan
1. Hasil Program 1 dan list file

Program No.1
. .dseg
.org 0x60
hasil:
000060 00
000061 00 .db 0,0
.cseg
.org 0
data:
000000 2122
000001 1133 .db 0x22,0x21,0x33,0x11

000002 c000 rjmp reset


reset:
000003 e5af ldi xl,low (ramend)
000004 bfad out spl,xl
000005 e0b2 ldi xh,high (ramend)
000006 bfbe out sph,xh
000007 e0e0 ldi zl,low (data<<1)
000008 e0f0 ldi zh,high(data<<1)
000009 e6a0 ldi xl,low(hasil)
00000a e0b0 ldi xh,high(hasil)
00000b e022 ldi r18,0x2

00000c 9145 lpm r20,z+


00000d 9155 lpm r21,z+
00000e 9165 lpm r22,z+
00000f 9175 lpm r23,z+

000010 2422 clr r2


000011 2433 clr r3
000012 2444 clr r4
000013 2455 clr r5
000014 2466 clr r6
000015 2477 clr r7

mainloop:
000016 9f46 mul r20,r22

000017 3021 cpi r18,0x1


000018 f461 brne loop
000019 e038 ldi r19,0x8
00001a 2422 clr r2
00001b 2433 clr r3

00001c b78f in r24,sreg


00001d 9488 clc
inloop:
00001e 1c00 rol r0
00001f 1c11 rol r1
000020 1c22 rol r2
000021 1c33 rol r3
000022 bf8f out sreg,r24
000023 953a dec r19
000024 f7c9 brne inloop

loop:
000025 b78f in r24,sreg
000026 0c40 add r4,r0
000027 1c51 adc r5,r1
000028 1c62 adc r6,r2
000029 1c73 adc r7,r3
00002a bf8f out sreg,r24

00002b 9f47 mul r20,r23


00002c e038 ldi r19,0x8

00002d 3021 cpi r18,0x1


00002e f409 brne loop2
00002f e130 ldi r19,16

loop2:
000030 2422 clr r2
000031 2433 clr r3

000032 b78f in r24,sreg


000033 9488 clc
inloop2:
000034 1c00 rol r0
000035 1c11 rol r1
000036 1c22 rol r2
000037 1c33 rol r3
000038 bf8f out sreg,r24
000039 953a dec r19
00003a f7c9 brne inloop2
00003b b78f in r24,sreg
00003c 0c40 add r4,r0
00003d 1c51 adc r5,r1
00003e 1c62 adc r6,r2
00003f 1c73 adc r7,r3
000040 bf8f out sreg,r24

000041 2f45 mov r20,r21

000042 952a dec r18

000043 f691 brne mainloop

000044 927d st x+,r7


000045 926d st x+,r6
000046 925d st x+,r5
000047 924d st x+,r4

forever:
000048 cfff rjmp forever

2. Program no.2

Program No.2
.dseg
.org 0x60
hasil:
000060 00
000061 00
000062 00
000063 00 .db 0,0,0,0

.cseg
.org 0
data:
000000 0016
000001 0004 .db 0x16,0,0x4,0
000002 c000 rjmp reset
reset:
000003 e5af ldi xl,low (ramend)
000004 bfad out spl,xl
000005 e0b2 ldi xh,high(ramend)
000006 bfbe out sph,xh
000007 e6a0 ldi xl,low (hasil)
000008 e0b0 ldi xh,high(hasil)
000009 e0e0 ldi zl,low (data)
00000a e0f0 ldi zh,high(data)

00000b 9025 lpm r2,z+


00000c 9035 lpm r3,z+
00000d 9044 lpm r4,z
00000e e008 ldi r16,0x8

loop:
00000f 9488 clc
000010 1c33 rol r3
000011 1c22 rol r2

000012 2c52 mov r5,r2


000013 1854 sub r5,r4

000014 f010 brcs jump

000015 2c25 mov r2,r5


000016 9433 inc r3

jump:

000017 950a dec r16

000018 f7b1 brne

3.loop000019
Program922d
no.3 dan list file
st x+,r2
Program No.3
00001a 923c st x,r3
.dseg
.org 0x60
forever:
hasil:
00001b cfff rjmp forever
000060 00
000061 00
000062 00
000063 00 .db 0,0,0,0

.cseg
.org 0
data1:
000000 0000
000001 0000 .db 0,0,0,0
data2
:
000002 0000
000003 0000 .db 0,0,0,0
000004 c000 rjmp reset
reset:
000005 e5af ldi xl,low (ramend)
000006 bfad out spl,xl
000007 e0b2 ldi xh,high (ramend)
000008 bfbe out sph,xh
000009 e0a0 ldi xl,low(data1)
00000a e0b0 ldi xh,high(data1)
00000b e304 ldi r16,0x34
00000c 930c st x,r16

00000d e0a2 ldi xl,low(data2)


00000e e0b0 ldi xh,high(data2)
00000f e202 ldi r16,0x22
000010 930c st x,r16

000011 2700 clr r16

000012 e0a0 ldi xl,low(data1)


000013 e0b0 ldi xh,high(data1)
000014 e6c0 ldi yl,low(hasil)
000015 e0d0 ldi yh,high(hasil)
000016 e022 ldi r18,0x2

000017 9145 lpm r20,z+


000018 9155 lpm r21,z+
000019 9165 lpm r22,z+
00001a 9175 lpm r23,z+

00001b 2422 clr r2


00001c 2433 clr r3
00001d 2444 clr r4
00001e 2455 clr r5
00001f 2466 clr r6
000020 2477 clr r7

mainloop:
000021 9f46 mul r20,r22
000022 3021 cpi r18,0x1
000023 f461 brne loop
000024 e038 ldi r19,0x8
000025 2422 clr r2
000026 2433 clr r3

000027 b78f in r24,sreg


000028 9488 clc
looping:
000029 1c00 rol r0
00002a 1c11 rol r1
00002b 1c22 rol r2
00002c 1c33 rol r3
00002d bf8f out sreg,r24
00002e 953a dec r19

00002f f7c9 brne looping

loop:
000030 b78f in r24,sreg
000031 0c40 add r4,r0
000032 1c51 adc r5,r1
000033 1c62 adc r6,r2
000034 1c73 adc r7,r3
000035 bf8f out sreg,r24

000036 9f47 mul r20,r23


000037 e038 ldi r19,0x8

000038 3021 cpi r18,0x1


000039 f409 brne loop2
00003a e130 ldi r19,16

loop2:
00003b 2422 clr r2
00003c 2433 clr r3

00003d b78f in r24,sreg


00003e 9488 clc
inloop2:
00003f 1c00 rol r0
000040 1c11 rol r1
000041 1c22 rol r2
000042 1c33 rol r3
000043 bf8f out sreg,r24
000044 953a dec r19
000045 f7c9 brne inloop2

000046 b78f in r24,sreg


000047 0c40 add r4,r0
000048 1c51 adc r5,r1
000049 1c62 adc r6,r2
00004a 1c73 adc r7,r3
00004b bf8f out sreg,r24

00004c 2f45 mov r20,r21

00004d 952a dec r18

00004e f691 brne mainloop

00004f 9279 st y+,r7


000050 9269 st y+,r6
000051 9259 st y+,r5
000052 9249 st y+,r4

forever:
000053 cfff rjmp forever

VII. Kesimpulan
1. Program berjalan dengan benar sesuai dengan kode program lalu nilai dari register padakode
program dikonversi kedalam desimal agar terbaca oleh program

Anda mungkin juga menyukai