Top Banner
Kalkulator Ilmiah Laporan Tugas Besar Untuk Menyelesaikan Tugas Besar Mata Kuliah Microkontloler Teknik Informatika Universitas Muhammadiyah Malang Krisna Ramadhan Budiarto (08560134) Bambang Eko Wahyudi (08560134)
104
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Laporan Tugas Besar

Kalkulator Ilmiah

Laporan Tugas Besar

Untuk Menyelesaikan Tugas Besar Mata Kuliah Microkontloler

Teknik Informatika Universitas Muhammadiyah Malang

Krisna Ramadhan Budiarto (08560134)Bambang Eko Wahyudi (08560134)

JURUSAN TEKNIK INFORMATIKAFAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANGJuni 2011

Page 2: Laporan Tugas Besar

1. Latar belakang

Latar belakang dari tugas besar kami adalah Penyempurnaan atau memaksimalkan jaringan wireless yang kami analisa agar pemanfaatan jaringan wireless lebih maksimal dan tepat sasaran pada SMPN 3 Bnadung, Tulungagung. Karena jaringan yang sebelumnya tidak sempurna atau tidak maksimal pemanfaatannya lalu kami lakukan analisa agar pemanfaatannya bisa lebih maksimal. Adapun anlisa yang kami lakukan adalah berapa jarak sebaran sinyal, apakah makin jauh dari access point masih dapat terkoneksi dengan internet dan kecepatan data masih stabil.

Sebelum kami analisa, pemanfaatan internet dan sebaran sinyal tidak maksimal dimana sebaran sinyal yang terdapat di dalam ruang Lab Komputer tidak tersebar dengan maksimal sehingga sebaran sinyal yang seharusnya terpenuhi untuk semua ruangan justru tersebar keluar ruangan yang tidak ada manfaatnya. Berikut gambarnya:

Dari gambar diatas kami menganalisa bahwa hasil sebaran sinyal tidak maksimal, sehingga kami melakukan pemindahan access point agar sebaran sinyal maksimal ke semua ruangan dan tidak tersebar keluar ruangan seperti gambar diatas. Berikut adalah gambar hasil perbaikan jaringan yang kami lakukan:

Page 3: Laporan Tugas Besar

2. Batasan dan Ruang Lingkup

Dalam analisa yang kami laksanakan kami mepunyai batasan – batasan dan ruang lingkup yang ada pada analisa jaringan wireless di SMPN 3 Bandung Tulungagung yaitu:

Kami hanya membatasi analisa di lingkungan SMPN 3 Bandung Tulungagung Kami hanya menganalisa jaringan wireless yang ada di SMPN 3 Bandung

Tulungagung Dalam analisa kami, kami hanya memberikan saran perbaikan jaringan sesuai

analisa kami.

3. Metodologi penyelesaian masalah

Metodologi yang kami gunakan dalam penelitian kami adalah analisa topologi jaringan wireless pada tempat praktek dengan teknik pengumpulan data mengecek coverage sinyal dan kecepatan transfer data internet seperti download rate dan upload rate sehingga didapatkan hasil bahwa jaringan yang akan diterapkan pada lokasi tempat praktek sehingga didapatkan hasil yang optimal bagi setiap user yang mengakses internet di area tersebut.

4. Hasil dan Pembahasan

a. Rangkaian Proteus

Gambar rankaian Proteus Kalkulator Ilmiah

b. Code Program Kalkulator Imiah

Code program menggunakan asembly

;CodeVisionAVR C Compiler V2.03.9 Standard;(C) Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.

Page 4: Laporan Tugas Besar

;http://www.hpinfotech.com

;Chip type : ATmega16;Program type : Application;Clock frequency : 4.000000 MHz;Memory model : Small;Optimize for : Size;(s)printf features : int, width;(s)scanf features : int, width;External RAM size : 0;Data Stack size : 256 byte(s);Heap size : 0 byte(s);Promote char to int : No;char is unsigned : Yes;global const stored in FLASH : No;8 bit enums : Yes;Enhanced core instructions : On;Smart register allocation : On;Automatic register allocation : On

#pragma AVRPART ADMIN PART_NAME ATmega16#pragma AVRPART MEMORY PROG_FLASH 16384#pragma AVRPART MEMORY EEPROM 512#pragma AVRPART MEMORY INT_SRAM SIZE 1024#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x60

.LISTMAC

.EQU UDRE=0x5

.EQU RXC=0x7

.EQU USR=0xB

.EQU UDR=0xC

.EQU SPSR=0xE

.EQU SPDR=0xF

.EQU EERE=0x0

.EQU EEWE=0x1

.EQU EEMWE=0x2

.EQU EECR=0x1C

.EQU EEDR=0x1D

.EQU EEARL=0x1E

.EQU EEARH=0x1F

.EQU WDTCR=0x21

.EQU MCUCR=0x35

.EQU GICR=0x3B

.EQU SPL=0x3D

.EQU SPH=0x3E

.EQU SREG=0x3F

.DEF R0X0=R0

.DEF R0X1=R1

.DEF R0X2=R2

.DEF R0X3=R3

.DEF R0X4=R4

.DEF R0X5=R5

.DEF R0X6=R6

.DEF R0X7=R7

.DEF R0X8=R8

Page 5: Laporan Tugas Besar

.DEF R0X9=R9

.DEF R0XA=R10

.DEF R0XB=R11

.DEF R0XC=R12

.DEF R0XD=R13

.DEF R0XE=R14

.DEF R0XF=R15

.DEF R0X10=R16

.DEF R0X11=R17

.DEF R0X12=R18

.DEF R0X13=R19

.DEF R0X14=R20

.DEF R0X15=R21

.DEF R0X16=R22

.DEF R0X17=R23

.DEF R0X18=R24

.DEF R0X19=R25

.DEF R0X1A=R26

.DEF R0X1B=R27

.DEF R0X1C=R28

.DEF R0X1D=R29

.DEF R0X1E=R30

.DEF R0X1F=R31

.MACRO __CPD1NCPI R30,LOW(@0)LDI R26,HIGH(@0)CPC R31,R26LDI R26,BYTE3(@0)CPC R22,R26LDI R26,BYTE4(@0)CPC R23,R26.ENDM

.MACRO __CPD2NCPI R26,LOW(@0)LDI R30,HIGH(@0)CPC R27,R30LDI R30,BYTE3(@0)CPC R24,R30LDI R30,BYTE4(@0)CPC R25,R30.ENDM

.MACRO __CPWRRCP R@0,R@2CPC R@1,[email protected]

.MACRO __CPWRNCPI R@0,LOW(@2)LDI R30,HIGH(@2)CPC R@1,R30.ENDM

.MACRO __ADDB1MN

Page 6: Laporan Tugas Besar

SUBI R30,LOW(-@0-(@1)).ENDM

.MACRO __ADDB2MNSUBI R26,LOW(-@0-(@1)).ENDM

.MACRO __ADDW1MNSUBI R30,LOW(-@0-(@1))SBCI R31,HIGH(-@0-(@1)).ENDM

.MACRO __ADDW2MNSUBI R26,LOW(-@0-(@1))SBCI R27,HIGH(-@0-(@1)).ENDM

.MACRO __ADDW1FNSUBI R30,LOW(-2*@0-(@1))SBCI R31,HIGH(-2*@0-(@1)).ENDM

.MACRO __ADDD1FNSUBI R30,LOW(-2*@0-(@1))SBCI R31,HIGH(-2*@0-(@1))SBCI R22,BYTE3(-2*@0-(@1)).ENDM

.MACRO __ADDD1NSUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)SBCI R22,BYTE3(-@0)SBCI R23,BYTE4(-@0).ENDM

.MACRO __ADDD2NSUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)SBCI R24,BYTE3(-@0)SBCI R25,BYTE4(-@0).ENDM

.MACRO __SUBD1NSUBI R30,LOW(@0)SBCI R31,HIGH(@0)SBCI R22,BYTE3(@0)SBCI R23,BYTE4(@0).ENDM

.MACRO __SUBD2NSUBI R26,LOW(@0)SBCI R27,HIGH(@0)SBCI R24,BYTE3(@0)SBCI R25,BYTE4(@0).ENDM

Page 7: Laporan Tugas Besar

.MACRO __ANDBMNNLDS R30,@0+@1ANDI R30,LOW(@2)STS @0+@1,R30.ENDM

.MACRO __ANDWMNNLDS R30,@0+@1ANDI R30,LOW(@2)STS @0+@1,R30LDS R30,@0+@1+1ANDI R30,HIGH(@2)STS @0+@1+1,R30.ENDM

.MACRO __ANDD1NANDI R30,LOW(@0)ANDI R31,HIGH(@0)ANDI R22,BYTE3(@0)ANDI R23,BYTE4(@0).ENDM

.MACRO __ANDD2NANDI R26,LOW(@0)ANDI R27,HIGH(@0)ANDI R24,BYTE3(@0)ANDI R25,BYTE4(@0).ENDM

.MACRO __ORBMNNLDS R30,@0+@1ORI R30,LOW(@2)STS @0+@1,R30.ENDM

.MACRO __ORWMNNLDS R30,@0+@1ORI R30,LOW(@2)STS @0+@1,R30LDS R30,@0+@1+1ORI R30,HIGH(@2)STS @0+@1+1,R30.ENDM

.MACRO __ORD1NORI R30,LOW(@0)ORI R31,HIGH(@0)ORI R22,BYTE3(@0)ORI R23,BYTE4(@0).ENDM

.MACRO __ORD2NORI R26,LOW(@0)ORI R27,HIGH(@0)ORI R24,BYTE3(@0)ORI R25,BYTE4(@0)

Page 8: Laporan Tugas Besar

.ENDM

.MACRO __DELAY_USBLDI R24,LOW(@0)

__DELAY_USB_LOOP:DEC R24BRNE __DELAY_USB_LOOP.ENDM

.MACRO __DELAY_USWLDI R24,LOW(@0)LDI R25,HIGH(@0)

__DELAY_USW_LOOP:SBIW R24,1BRNE __DELAY_USW_LOOP.ENDM

.MACRO __GETD1SLDD R30,Y+@0LDD R31,Y+@0+1LDD R22,Y+@0+2LDD R23,Y+@0+3.ENDM

.MACRO __PUTD1SSTD Y+@0,R30STD Y+@0+1,R31STD Y+@0+2,R22STD Y+@0+3,R23.ENDM

.MACRO __PUTD2SSTD Y+@0,R26STD Y+@0+1,R27STD Y+@0+2,R24STD Y+@0+3,R25.ENDM

.MACRO __POINTB1MNLDI R30,LOW(@0+@1).ENDM

.MACRO __POINTW1MNLDI R30,LOW(@0+@1)LDI R31,HIGH(@0+@1).ENDM

.MACRO __POINTD1MLDI R30,LOW(@0)LDI R31,HIGH(@0)LDI R22,BYTE3(@0)LDI R23,BYTE4(@0).ENDM

.MACRO __POINTW1FNLDI R30,LOW(2*@0+@1)

Page 9: Laporan Tugas Besar

LDI R31,HIGH(2*@0+@1).ENDM

.MACRO __POINTD1FNLDI R30,LOW(2*@0+@1)LDI R31,HIGH(2*@0+@1)LDI R22,BYTE3(2*@0+@1)LDI R23,BYTE4(2*@0+@1).ENDM

.MACRO __POINTB2MNLDI R26,LOW(@0+@1).ENDM

.MACRO __POINTW2MNLDI R26,LOW(@0+@1)LDI R27,HIGH(@0+@1).ENDM

.MACRO __POINTBRMLDI R@0,LOW(@1).ENDM

.MACRO __POINTWRMLDI R@0,LOW(@2)LDI R@1,HIGH(@2).ENDM

.MACRO __POINTBRMNLDI R@0,LOW(@1+@2).ENDM

.MACRO __POINTWRMNLDI R@0,LOW(@2+@3)LDI R@1,HIGH(@2+@3).ENDM

.MACRO __POINTWRFNLDI R@0,LOW(@2*2+@3)LDI R@1,HIGH(@2*2+@3).ENDM

.MACRO __GETD1NLDI R30,LOW(@0)LDI R31,HIGH(@0)LDI R22,BYTE3(@0)LDI R23,BYTE4(@0).ENDM

.MACRO __GETD2NLDI R26,LOW(@0)LDI R27,HIGH(@0)LDI R24,BYTE3(@0)LDI R25,BYTE4(@0).ENDM

Page 10: Laporan Tugas Besar

.MACRO __GETD2SLDD R26,Y+@0LDD R27,Y+@0+1LDD R24,Y+@0+2LDD R25,Y+@0+3.ENDM

.MACRO __GETB1MNLDS R30,@[email protected]

.MACRO __GETB1HMNLDS R31,@[email protected]

.MACRO __GETW1MNLDS R30,@0+@1LDS R31,@0+@1+1.ENDM

.MACRO __GETD1MNLDS R30,@0+@1LDS R31,@0+@1+1LDS R22,@0+@1+2LDS R23,@0+@1+3.ENDM

.MACRO __GETBRMNLDS R@0,@[email protected]

.MACRO __GETWRMNLDS R@0,@2+@3LDS R@1,@2+@3+1.ENDM

.MACRO __GETWRZLDD R@0,Z+@2LDD R@1,Z+@2+1.ENDM

.MACRO __GETD2ZLDD R26,Z+@0LDD R27,Z+@0+1LDD R24,Z+@0+2LDD R25,Z+@0+3.ENDM

.MACRO __GETB2MNLDS R26,@[email protected]

.MACRO __GETW2MNLDS R26,@0+@1LDS R27,@0+@1+1.ENDM

Page 11: Laporan Tugas Besar

.MACRO __GETD2MNLDS R26,@0+@1LDS R27,@0+@1+1LDS R24,@0+@1+2LDS R25,@0+@1+3.ENDM

.MACRO __PUTB1MNSTS @0+@1,R30.ENDM

.MACRO __PUTW1MNSTS @0+@1,R30STS @0+@1+1,R31.ENDM

.MACRO __PUTD1MNSTS @0+@1,R30STS @0+@1+1,R31STS @0+@1+2,R22STS @0+@1+3,R23.ENDM

.MACRO __PUTB1ENLDI R26,LOW(@0+@1)LDI R27,HIGH(@0+@1)CALL __EEPROMWRB.ENDM

.MACRO __PUTW1ENLDI R26,LOW(@0+@1)LDI R27,HIGH(@0+@1)CALL __EEPROMWRW.ENDM

.MACRO __PUTD1ENLDI R26,LOW(@0+@1)LDI R27,HIGH(@0+@1)CALL __EEPROMWRD.ENDM

.MACRO __PUTBR0MNSTS @0+@1,R0.ENDM

.MACRO __PUTDZ2STD Z+@0,R26STD Z+@0+1,R27STD Z+@0+2,R24STD Z+@0+3,R25.ENDM

.MACRO __PUTBMRNSTS @0+@1,[email protected]

Page 12: Laporan Tugas Besar

.MACRO __PUTWMRNSTS @0+@1,R@2STS @0+@1+1,[email protected]

.MACRO __PUTBZRSTD Z+@1,[email protected]

.MACRO __PUTWZRSTD Z+@2,R@0STD Z+@2+1,[email protected]

.MACRO __GETW1RMOV R30,R@0MOV R31,[email protected]

.MACRO __GETW2RMOV R26,R@0MOV R27,[email protected]

.MACRO __GETWRNLDI R@0,LOW(@2)LDI R@1,HIGH(@2).ENDM

.MACRO __PUTW1RMOV R@0,R30MOV R@1,R31.ENDM

.MACRO __PUTW2RMOV R@0,R26MOV R@1,R27.ENDM

.MACRO __ADDWRNSUBI R@0,LOW(-@2)SBCI R@1,HIGH(-@2).ENDM

.MACRO __ADDWRRADD R@0,R@2ADC R@1,[email protected]

.MACRO __SUBWRNSUBI R@0,LOW(@2)SBCI R@1,HIGH(@2).ENDM

.MACRO __SUBWRR

Page 13: Laporan Tugas Besar

SUB R@0,R@2SBC R@1,[email protected]

.MACRO __ANDWRNANDI R@0,LOW(@2)ANDI R@1,HIGH(@2).ENDM

.MACRO __ANDWRRAND R@0,R@2AND R@1,[email protected]

.MACRO __ORWRNORI R@0,LOW(@2)ORI R@1,HIGH(@2).ENDM

.MACRO __ORWRROR R@0,R@2OR R@1,[email protected]

.MACRO __EORWRREOR R@0,R@2EOR R@1,[email protected]

.MACRO __GETWRSLDD R@0,Y+@2LDD R@1,Y+@2+1.ENDM

.MACRO __PUTWSRSTD Y+@2,R@0STD Y+@2+1,[email protected]

.MACRO __MOVEWRRMOV R@0,R@2MOV R@1,[email protected]

.MACRO __INWRIN R@0,@2IN R@1,@2+1.ENDM

.MACRO __OUTWROUT @2+1,R@1OUT @2,[email protected]

.MACRO __CALL1MNLDS R30,@0+@1

Page 14: Laporan Tugas Besar

LDS R31,@0+@1+1ICALL.ENDM

.MACRO __CALL1FNLDI R30,LOW(2*@0+@1)LDI R31,HIGH(2*@0+@1)CALL __GETW1PFICALL.ENDM

.MACRO __CALL2ENLDI R26,LOW(@0+@1)LDI R27,HIGH(@0+@1)CALL __EEPROMRDWICALL.ENDM

.MACRO __GETW1STACKIN R26,SPLIN R27,SPHADIW R26,@0+1LD R30,X+LD R31,X.ENDM

.MACRO __NBSTBST R@0,@1IN R30,SREGLDI R31,0x40EOR R30,R31OUT SREG,R30.ENDM

.MACRO __PUTB1SNLDD R26,Y+@0LDD R27,Y+@0+1SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X,R30.ENDM

.MACRO __PUTW1SNLDD R26,Y+@0LDD R27,Y+@0+1SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1SNLDD R26,Y+@0LDD R27,Y+@0+1SUBI R26,LOW(-@1)

Page 15: Laporan Tugas Besar

SBCI R27,HIGH(-@1)CALL __PUTDP1.ENDM

.MACRO __PUTB1SNSLDD R26,Y+@0LDD R27,Y+@0+1ADIW R26,@1ST X,R30.ENDM

.MACRO __PUTW1SNSLDD R26,Y+@0LDD R27,Y+@0+1ADIW R26,@1ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1SNSLDD R26,Y+@0LDD R27,Y+@0+1ADIW R26,@1CALL __PUTDP1.ENDM

.MACRO __PUTB1PMNLDS R26,@0LDS R27,@0+1SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X,R30.ENDM

.MACRO __PUTW1PMNLDS R26,@0LDS R27,@0+1SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1PMNLDS R26,@0LDS R27,@0+1SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)CALL __PUTDP1.ENDM

.MACRO __PUTB1PMNSLDS R26,@0LDS R27,@0+1ADIW R26,@1ST X,R30

Page 16: Laporan Tugas Besar

.ENDM

.MACRO __PUTW1PMNSLDS R26,@0LDS R27,@0+1ADIW R26,@1ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1PMNSLDS R26,@0LDS R27,@0+1ADIW R26,@1CALL __PUTDP1.ENDM

.MACRO __PUTB1RNMOVW R26,R@0SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X,R30.ENDM

.MACRO __PUTW1RNMOVW R26,R@0SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1RNMOVW R26,R@0SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)CALL __PUTDP1.ENDM

.MACRO __PUTB1RNSMOVW R26,R@0ADIW R26,@1ST X,R30.ENDM

.MACRO __PUTW1RNSMOVW R26,R@0ADIW R26,@1ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1RNSMOVW R26,R@0ADIW R26,@1CALL __PUTDP1

Page 17: Laporan Tugas Besar

.ENDM

.MACRO __PUTB1RONMOV R26,R@0MOV R27,R@1SUBI R26,LOW(-@2)SBCI R27,HIGH(-@2)ST X,R30.ENDM

.MACRO __PUTW1RONMOV R26,R@0MOV R27,R@1SUBI R26,LOW(-@2)SBCI R27,HIGH(-@2)ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1RONMOV R26,R@0MOV R27,R@1SUBI R26,LOW(-@2)SBCI R27,HIGH(-@2)CALL __PUTDP1.ENDM

.MACRO __PUTB1RONSMOV R26,R@0MOV R27,R@1ADIW R26,@2ST X,R30.ENDM

.MACRO __PUTW1RONSMOV R26,R@0MOV R27,R@1ADIW R26,@2ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1RONSMOV R26,R@0MOV R27,R@1ADIW R26,@2CALL __PUTDP1.ENDM

.MACRO __GETB1SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)LD R30,Z.ENDM

Page 18: Laporan Tugas Besar

.MACRO __GETB1HSXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)LD R31,Z.ENDM

.MACRO __GETW1SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)LD R0,Z+LD R31,ZMOV R30,R0.ENDM

.MACRO __GETD1SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)LD R0,Z+LD R1,Z+LD R22,Z+LD R23,ZMOVW R30,R0.ENDM

.MACRO __GETB2SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)LD R26,X.ENDM

.MACRO __GETW2SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)LD R0,X+LD R27,XMOV R26,R0.ENDM

.MACRO __GETD2SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)LD R0,X+LD R1,X+LD R24,X+LD R25,XMOVW R26,R0.ENDM

.MACRO __GETBRSX

Page 19: Laporan Tugas Besar

MOVW R30,R28SUBI R30,LOW(-@1)SBCI R31,HIGH(-@1)LD R@0,Z.ENDM

.MACRO __GETWRSXMOVW R30,R28SUBI R30,LOW(-@2)SBCI R31,HIGH(-@2)LD R@0,Z+LD R@1,Z.ENDM

.MACRO __LSLW8SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)LD R31,ZCLR R30.ENDM

.MACRO __PUTB1SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)ST X,R30.ENDM

.MACRO __PUTW1SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)ST X+,R30ST X+,R31ST X+,R22ST X,R23.ENDM

.MACRO __CLRW1SXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)ST X+,R30ST X,R30.ENDM

.MACRO __CLRD1SX

Page 20: Laporan Tugas Besar

MOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)ST X+,R30ST X+,R30ST X+,R30ST X,R30.ENDM

.MACRO __PUTB2SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)ST Z,R26.ENDM

.MACRO __PUTW2SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)ST Z+,R26ST Z,R27.ENDM

.MACRO __PUTD2SXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)ST Z+,R26ST Z+,R27ST Z+,R24ST Z,R25.ENDM

.MACRO __PUTBSRXMOVW R30,R28SUBI R30,LOW(-@0)SBCI R31,HIGH(-@0)ST Z,[email protected]

.MACRO __PUTWSRXMOVW R30,R28SUBI R30,LOW(-@2)SBCI R31,HIGH(-@2)ST Z+,R@0ST Z,[email protected]

.MACRO __PUTB1SNXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)LD R0,X+LD R27,XMOV R26,R0

Page 21: Laporan Tugas Besar

SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X,R30.ENDM

.MACRO __PUTW1SNXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)LD R0,X+LD R27,XMOV R26,R0SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X+,R30ST X,R31.ENDM

.MACRO __PUTD1SNXMOVW R26,R28SUBI R26,LOW(-@0)SBCI R27,HIGH(-@0)LD R0,X+LD R27,XMOV R26,R0SUBI R26,LOW(-@1)SBCI R27,HIGH(-@1)ST X+,R30ST X+,R31ST X+,R22ST X,R23.ENDM

.MACRO __MULBRRMULS R@0,R@1MOVW R30,R0.ENDM

.MACRO __MULBRRUMUL R@0,R@1MOVW R30,R0.ENDM

.MACRO __MULBRR0MULS R@0,[email protected]

.MACRO __MULBRRU0MUL R@0,[email protected]

.MACRO __MULBNWRULDI R26,@2MUL R26,R@0MOVW R30,R0MUL R26,R@1

Page 22: Laporan Tugas Besar

ADD R31,R0.ENDM

;NAME DEFINITIONS FOR GLOBAL VARIABLES ALLOCATED TO REGISTERS.DEF _i=R4.DEF _y=R7.DEF _z=R6.DEF __lcd_x=R9.DEF __lcd_y=R8.DEF __lcd_maxx=R11

.CSEG

.ORG 0x00

;INTERRUPT VECTORSJMP __RESETJMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00JMP 0x00

_0x89:.DB 0x0

_0x0:.DB 0x53,0x69,0x6E,0x20,0x0,0x43,0x6F,0x73.DB 0x20,0x0,0x54,0x61,0x6E,0x20,0x0,0x43.DB 0x6F,0x74,0x20,0x0,0x61,0x53,0x69,0x6E.DB 0x0,0x61,0x43,0x6F,0x73,0x0,0x4C,0x6F.DB 0x67,0x20,0x0,0x53,0x71,0x72,0x74,0x20.DB 0x0,0x65,0x78,0x70,0x20,0x0

_0x2000003:.DB 0x80,0xC0

_0x202005F:.DB 0x1

_0x2020000:.DB 0x2D,0x4E,0x41,0x4E,0x0

__GLOBAL_INI_TBL:.DW 0x01.DW 0x07

Page 23: Laporan Tugas Besar

.DW _0x89*2

.DW 0x02

.DW __base_y_G100

.DW _0x2000003*2

.DW 0x01

.DW __seed_G101

.DW _0x202005F*2

_0xFFFFFFFF:.DW 0

__RESET:CLICLR R30OUT EECR,R30

;INTERRUPT VECTORS ARE PLACED;AT THE START OF FLASH

LDI R31,1OUT GICR,R31OUT GICR,R30OUT MCUCR,R30

;DISABLE WATCHDOGLDI R31,0x18OUT WDTCR,R31OUT WDTCR,R30

;CLEAR R2-R14LDI R24,(14-2)+1LDI R26,2CLR R27

__CLEAR_REG:ST X+,R30DEC R24BRNE __CLEAR_REG

;CLEAR SRAMLDI R24,LOW(0x400)LDI R25,HIGH(0x400)LDI R26,0x60

__CLEAR_SRAM:ST X+,R30SBIW R24,1BRNE __CLEAR_SRAM

;GLOBAL VARIABLES INITIALIZATIONLDI R30,LOW(__GLOBAL_INI_TBL*2)LDI R31,HIGH(__GLOBAL_INI_TBL*2)

__GLOBAL_INI_NEXT:LPM R24,Z+LPM R25,Z+SBIW R24,0BREQ __GLOBAL_INI_END

Page 24: Laporan Tugas Besar

LPM R26,Z+LPM R27,Z+LPM R0,Z+LPM R1,Z+MOVW R22,R30MOVW R30,R0

__GLOBAL_INI_LOOP:LPM R0,Z+ST X+,R0SBIW R24,1BRNE __GLOBAL_INI_LOOPMOVW R30,R22RJMP __GLOBAL_INI_NEXT

__GLOBAL_INI_END:

;STACK POINTER INITIALIZATIONLDI R30,LOW(0x45F)OUT SPL,R30LDI R30,HIGH(0x45F)OUT SPH,R30

;DATA STACK POINTER INITIALIZATIONLDI R28,LOW(0x160)LDI R29,HIGH(0x160)

JMP _main

.ESEG

.ORG 0

.DSEG

.ORG 0x160

.CSEG;/*;To download other free projects visit www.electrocontrol.wordpress.com;*/;;#include <mega16.h>

#ifndef __SLEEP_DEFINED__#define __SLEEP_DEFINED__.EQU __se_bit=0x40.EQU __sm_mask=0xB0.EQU __sm_powerdown=0x20.EQU __sm_powersave=0x30.EQU __sm_standby=0xA0.EQU __sm_ext_standby=0xB0.EQU __sm_adc_noise_red=0x10.SET power_ctrl_reg=mcucr#endif

;#include <delay.h>;#include <lcd.h>;#include <stdlib.h>;#include <math.h>;

Page 25: Laporan Tugas Besar

;#asm .equ __lcd_port=0x18;___ 0000 000D #endasm;//#############################################;int key(void);;float _Main(void);;void Mohandes(void);;void Mohasebe(void);;void Alamat(int,int);;float Emoji(int);;//#############################################;float a = 0 , b = 0 , c = 0 , q , t;;int i ;;char y=0 , lcd[25] , z ;;//#############################################;void main(void){;___ 0000 001A void main(void){

.CSEG_main:;___ 0000 001B ;___ 0000 001C DDRB=0x0F;

LDI R30,LOW(15)OUT 0x17,R30

;___ 0000 001D DDRC=0x07;LDI R30,LOW(7)OUT 0x14,R30

;___ 0000 001E DDRD=0x0F;LDI R30,LOW(15)OUT 0x11,R30

;___ 0000 001F ;___ 0000 0020 lcd_init(16);

LDI R30,LOW(16)ST -Y,R30CALL _lcd_init

;___ 0000 0021 while (1){_0x3:;___ 0000 0022 _Main();

RCALL __Main;___ 0000 0023 }

RJMP _0x3;___ 0000 0024 }_0x6:

RJMP _0x6;//#############################################################;float _Main(void){;___ 0000 0026 float _Main(void){__Main:;___ 0000 0027 int Loop = 1 ;;___ 0000 0028 y = key();

ST -Y,R17ST -Y,R16

; Loop -> R16,R17__GETWRN 16,17,1CALL SUBOPT_0x0

Page 26: Laporan Tugas Besar

;___ 0000 0029 if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}

BRNE _0x7CALL SUBOPT_0x1RJMP _0x20A000F

;___ 0000 002A if( y < 10 ){_0x7:

LDI R30,LOW(10)CP R7,R30BRSH _0x8

;___ 0000 002B a = (a*10)+y ;CALL SUBOPT_0x2

;___ 0000 002C itoa(y , lcd);;___ 0000 002D lcd_puts(lcd);;___ 0000 002E delay_ms(50);;___ 0000 002F };___ 0000 0030 ;___ 0000 0031 ;___ 0000 0032 ;___ 0000 0033 if( y > 9 && y < 16 ){_0x8:

LDI R30,LOW(9)CP R30,R7BRSH _0xALDI R30,LOW(16)CP R7,R30BRLO _0xB

_0xA:RJMP _0x9

_0xB:;___ 0000 0034 if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}

LDI R30,LOW(15)CP R30,R7BRNE _0xCCALL SUBOPT_0x1RJMP _0x20A000F

;___ 0000 0035 z = y ;_0xC:

MOV R6,R7;___ 0000 0036 Alamat(y,1);

CALL SUBOPT_0x3LDI R30,LOW(1)LDI R31,HIGH(1)ST -Y,R31ST -Y,R30RCALL _Alamat

;___ 0000 0037 while(Loop){_0xD:

MOV R0,R16OR R0,R17BREQ _0xF

;___ 0000 0038 y = key();CALL SUBOPT_0x0

;___ 0000 0039 if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}

Page 27: Laporan Tugas Besar

BRNE _0x10CALL SUBOPT_0x1RJMP _0x20A000F

;___ 0000 003A if( y < 10 ){_0x10:

LDI R30,LOW(10)CP R7,R30BRSH _0x11

;___ 0000 003B b = (b*10)+y ;CALL SUBOPT_0x4CALL SUBOPT_0x5MOVW R26,R30MOVW R24,R22MOV R30,R7CALL SUBOPT_0x6CALL __ADDF12STS _b,R30STS _b+1,R31STS _b+2,R22STS _b+3,R23

;___ 0000 003C itoa(y , lcd);CALL SUBOPT_0x3CALL SUBOPT_0x7CALL _itoa

;___ 0000 003D lcd_puts(lcd);CALL SUBOPT_0x7CALL _lcd_puts

;___ 0000 003E delay_ms(50);CALL SUBOPT_0x8

;___ 0000 003F }else if(y == 14){RJMP _0x12

_0x11:LDI R30,LOW(14)CP R30,R7BRNE _0x13

;___ 0000 0040 lcd_putchar('=');LDI R30,LOW(61)ST -Y,R30CALL _lcd_putchar

;___ 0000 0041 Mohasebe();RCALL _Mohasebe

;___ 0000 0042 y = 0 ;CLR R7

;___ 0000 0043 Loop = 0 ;__GETWRN 16,17,0

;___ 0000 0044 };___ 0000 0045 }_0x13:_0x12:

RJMP _0xD_0xF:;___ 0000 0046 };___ 0000 0047 if( y > 15 ){_0x9:

LDI R30,LOW(15)CP R30,R7

Page 28: Laporan Tugas Besar

BRLO PC+3JMP _0x14

;___ 0000 0048 lcd_clear();CALL _lcd_clear

;___ 0000 0049 a= 0 ; b = 0 ; c = 0;LDI R30,LOW(0)STS _a,R30STS _a+1,R30STS _a+2,R30STS _a+3,R30STS _b,R30STS _b+1,R30STS _b+2,R30STS _b+3,R30STS _c,R30STS _c+1,R30STS _c+2,R30STS _c+3,R30

;___ 0000 004A Alamat(y , 2);CALL SUBOPT_0x3LDI R30,LOW(2)LDI R31,HIGH(2)ST -Y,R31ST -Y,R30RCALL _Alamat

;___ 0000 004B z = y ;MOV R6,R7

;___ 0000 004C Loop = 1 ;__GETWRN 16,17,1

;___ 0000 004D while(Loop){_0x15:

MOV R0,R16OR R0,R17BREQ _0x17

;___ 0000 004E y = key();CALL SUBOPT_0x0

;___ 0000 004F if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}

BRNE _0x18CALL SUBOPT_0x1RJMP _0x20A000F

;___ 0000 0050 if(y < 10){_0x18:

LDI R30,LOW(10)CP R7,R30BRSH _0x19

;___ 0000 0051 a = (a*10) + y ;CALL SUBOPT_0x2

;___ 0000 0052 itoa(y , lcd);;___ 0000 0053 lcd_puts(lcd);;___ 0000 0054 delay_ms(50);;___ 0000 0055 }else if ( y == 14){

RJMP _0x1A_0x19:

LDI R30,LOW(14)CP R30,R7

Page 29: Laporan Tugas Besar

BRNE _0x1B;___ 0000 0056 lcd_putchar('=');

LDI R30,LOW(61)ST -Y,R30CALL _lcd_putchar

;___ 0000 0057 Mohandes();RCALL _Mohandes

;___ 0000 0058 };___ 0000 0059 Loop = 1 ;_0x1B:_0x1A:

__GETWRN 16,17,1;___ 0000 005A }

RJMP _0x15_0x17:;___ 0000 005B };___ 0000 005C return 0;_0x14:_0x20A000F:

__GETD1N 0x0LD R16,Y+LD R17,Y+RET

;___ 0000 005D };//##########################################################;void Mohasebe(void){;___ 0000 005F void Mohasebe(void){_Mohasebe:;___ 0000 0060 if(z == 10)c = a / b ;

LDI R30,LOW(10)CP R30,R6BRNE _0x1CCALL SUBOPT_0x9CALL SUBOPT_0xA

;___ 0000 0061 if(z == 11)c = a * b ;_0x1C:

LDI R30,LOW(11)CP R30,R6BRNE _0x1DCALL SUBOPT_0x9CALL __MULF12CALL SUBOPT_0xB

;___ 0000 0062 if(z == 12)c = a - b ;_0x1D:

LDI R30,LOW(12)CP R30,R6BRNE _0x1ECALL SUBOPT_0x4CALL SUBOPT_0xCCALL __SUBF12CALL SUBOPT_0xB

;___ 0000 0063 if(z == 13)c = a + b ;_0x1E:

LDI R30,LOW(13)CP R30,R6BRNE _0x1F

Page 30: Laporan Tugas Besar

CALL SUBOPT_0x9CALL __ADDF12CALL SUBOPT_0xB

;___ 0000 0064 ftoa(c , 3 , lcd);_0x1F:

RJMP _0x20A000E;___ 0000 0065 lcd_puts(lcd);;___ 0000 0066 delay_ms(100);;___ 0000 0067 };//#########################################################;float Emoji(int rr){;___ 0000 0069 float Emoji(int rr){_Emoji:;___ 0000 006A q=1;; rr -> Y+0

CALL SUBOPT_0xDCALL SUBOPT_0xE

;___ 0000 006B for(i=0;i<rr;i++)q = q * 2.71728 ;CLR R4CLR R5

_0x21:LD R30,YLDD R31,Y+1CP R4,R30CPC R5,R31BRGE _0x22LDS R26,_qLDS R27,_q+1LDS R24,_q+2LDS R25,_q+3__GETD1N 0x402DE7EACALL __MULF12CALL SUBOPT_0xEMOVW R30,R4ADIW R30,1MOVW R4,R30RJMP _0x21

_0x22:;___ 0000 006C return q;

LDS R30,_qLDS R31,_q+1LDS R22,_q+2LDS R23,_q+3JMP _0x20A000C

;___ 0000 006D };//#########################################################;void Mohandes(void){;___ 0000 006F void Mohandes(void){_Mohandes:;___ 0000 0070 t = (3.1415926535897932384626433832795/180)*a ;

CALL SUBOPT_0xC__GETD2N 0x3C8EFA35CALL __MULF12STS _t,R30STS _t+1,R31STS _t+2,R22

Page 31: Laporan Tugas Besar

STS _t+3,R23;___ 0000 0071 if(z == 16)c = sin(t) ;

LDI R30,LOW(16)CP R30,R6BRNE _0x23CALL SUBOPT_0xFCALL _sinCALL SUBOPT_0xB

;___ 0000 0072 if(z == 17)c = cos(t) ;_0x23:

LDI R30,LOW(17)CP R30,R6BRNE _0x24CALL SUBOPT_0xFCALL _cosCALL SUBOPT_0xB

;___ 0000 0073 if(z == 18)c = tan(t) ;_0x24:

LDI R30,LOW(18)CP R30,R6BRNE _0x25CALL SUBOPT_0xFCALL _tanCALL SUBOPT_0xB

;___ 0000 0074 if(z == 19)c = 1/tan(t) ;_0x25:

LDI R30,LOW(19)CP R30,R6BRNE _0x26CALL SUBOPT_0xFCALL _tanCALL SUBOPT_0x10CALL SUBOPT_0xA

;___ 0000 0075 if(z == 20)c = asin(t) ;_0x26:

LDI R30,LOW(20)CP R30,R6BRNE _0x27CALL SUBOPT_0xFCALL _asinCALL SUBOPT_0xB

;___ 0000 0076 if(z == 21)c = acos(t) ;_0x27:

LDI R30,LOW(21)CP R30,R6BRNE _0x28CALL SUBOPT_0xFCALL _acosCALL SUBOPT_0xB

;___ 0000 0077 if(z == 22)c = log(a) ;_0x28:

LDI R30,LOW(22)CP R30,R6BRNE _0x29CALL SUBOPT_0xCCALL __PUTPARD1

Page 32: Laporan Tugas Besar

CALL _logCALL SUBOPT_0xB

;___ 0000 0078 if(z == 23)c = sqrt(a) ;_0x29:

LDI R30,LOW(23)CP R30,R6BRNE _0x2ACALL SUBOPT_0xCCALL __PUTPARD1CALL _sqrtCALL SUBOPT_0xB

;___ 0000 0079 if(z == 24)c = Emoji(a) ;_0x2A:

LDI R30,LOW(24)CP R30,R6BRNE _0x2BCALL SUBOPT_0xCCALL __CFD1ST -Y,R31ST -Y,R30RCALL _EmojiCALL SUBOPT_0xB

;___ 0000 007A ftoa(c , 3 , lcd);_0x2B:_0x20A000E:

LDS R30,_cLDS R31,_c+1LDS R22,_c+2LDS R23,_c+3CALL __PUTPARD1LDI R30,LOW(3)ST -Y,R30CALL SUBOPT_0x7CALL _ftoa

;___ 0000 007B lcd_puts(lcd);CALL SUBOPT_0x7CALL _lcd_puts

;___ 0000 007C delay_ms(100);CALL SUBOPT_0x11

;___ 0000 007D }RET

;//#########################################################;void Alamat(int Moji,int Halat){;___ 0000 007F void Alamat(int Moji,int Halat){_Alamat:;___ 0000 0080 if(Halat == 1){; Moji -> Y+2; Halat -> Y+0

LD R26,YLDD R27,Y+1SBIW R26,1BRNE _0x2C

;___ 0000 0081 if(Moji == 10)lcd_putchar('/') ;LDD R26,Y+2LDD R27,Y+2+1SBIW R26,10

Page 33: Laporan Tugas Besar

BRNE _0x2DLDI R30,LOW(47)ST -Y,R30CALL _lcd_putchar

;___ 0000 0082 if(Moji == 11)lcd_putchar('*') ;_0x2D:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,11BRNE _0x2ELDI R30,LOW(42)ST -Y,R30CALL _lcd_putchar

;___ 0000 0083 if(Moji == 12)lcd_putchar('-') ;_0x2E:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,12BRNE _0x2FLDI R30,LOW(45)ST -Y,R30CALL _lcd_putchar

;___ 0000 0084 if(Moji == 13)lcd_putchar('+') ;_0x2F:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,13BRNE _0x30LDI R30,LOW(43)ST -Y,R30CALL _lcd_putchar

;___ 0000 0085 delay_ms(100);_0x30:

CALL SUBOPT_0x11;___ 0000 0086 };___ 0000 0087 if(Halat == 2){_0x2C:

LD R26,YLDD R27,Y+1SBIW R26,2BREQ PC+3JMP _0x31

;___ 0000 0088 if(Moji == 16)lcd_putsf("Sin ") ;LDD R26,Y+2LDD R27,Y+2+1SBIW R26,16BRNE _0x32__POINTW1FN _0x0,0CALL SUBOPT_0x12

;___ 0000 0089 if(Moji == 17)lcd_putsf("Cos ") ;_0x32:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,17BRNE _0x33__POINTW1FN _0x0,5

Page 34: Laporan Tugas Besar

CALL SUBOPT_0x12;___ 0000 008A if(Moji == 18)lcd_putsf("Tan ") ;_0x33:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,18BRNE _0x34__POINTW1FN _0x0,10CALL SUBOPT_0x12

;___ 0000 008B if(Moji == 19)lcd_putsf("Cot ") ;_0x34:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,19BRNE _0x35__POINTW1FN _0x0,15CALL SUBOPT_0x12

;___ 0000 008C if(Moji == 20)lcd_putsf("aSin") ;_0x35:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,20BRNE _0x36__POINTW1FN _0x0,20CALL SUBOPT_0x12

;___ 0000 008D if(Moji == 21)lcd_putsf("aCos") ;_0x36:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,21BRNE _0x37__POINTW1FN _0x0,25CALL SUBOPT_0x12

;___ 0000 008E if(Moji == 22)lcd_putsf("Log ") ;_0x37:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,22BRNE _0x38__POINTW1FN _0x0,30CALL SUBOPT_0x12

;___ 0000 008F if(Moji == 23)lcd_putsf("Sqrt ") ;_0x38:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,23BRNE _0x39__POINTW1FN _0x0,35CALL SUBOPT_0x12

;___ 0000 0090 if(Moji == 24)lcd_putsf("exp ") ;_0x39:

LDD R26,Y+2LDD R27,Y+2+1SBIW R26,24BRNE _0x3A__POINTW1FN _0x0,41

Page 35: Laporan Tugas Besar

CALL SUBOPT_0x12;___ 0000 0091 delay_ms(100);_0x3A:

CALL SUBOPT_0x11;___ 0000 0092 ;___ 0000 0093 };___ 0000 0094 }_0x31:

JMP _0x20A0001;//#########################################################;int key(void){;___ 0000 0096 int key(void){_key:;___ 0000 0097 char KEY = 1 ;;___ 0000 0098 while(KEY){

ST -Y,R17; KEY -> R17

LDI R17,1_0x3B:

CPI R17,0BRNE PC+3JMP _0x3D

;___ 0000 0099 ;___ 0000 009A PORTD.0 = 1 ;

SBI 0x12,0;___ 0000 009B PORTD.1 = 0 ;

CBI 0x12,1;___ 0000 009C PORTD.2 = 0 ;

CBI 0x12,2;___ 0000 009D PORTD.3 = 0 ;

CBI 0x12,3;___ 0000 009E if(PIND.4 == 1){return 7 ; KEY = 0;delay_ms(50);}

SBIS 0x10,4RJMP _0x46LDI R30,LOW(7)LDI R31,HIGH(7)RJMP _0x20A000D

;___ 0000 009F if(PIND.5 == 1){return 8 ; KEY = 0;delay_ms(50);}_0x46:

SBIS 0x10,5RJMP _0x47LDI R30,LOW(8)LDI R31,HIGH(8)RJMP _0x20A000D

;___ 0000 00A0 if(PIND.6 == 1){return 9 ; KEY = 0;delay_ms(50);}_0x47:

SBIS 0x10,6RJMP _0x48LDI R30,LOW(9)LDI R31,HIGH(9)RJMP _0x20A000D

;___ 0000 00A1 if(PIND.7 == 1){return 10; KEY = 0;delay_ms(50);}

Page 36: Laporan Tugas Besar

_0x48:SBIS 0x10,7RJMP _0x49LDI R30,LOW(10)LDI R31,HIGH(10)RJMP _0x20A000D

;___ 0000 00A2 //==========================================;___ 0000 00A3 PORTD.0 = 0 ;_0x49:

CBI 0x12,0;___ 0000 00A4 PORTD.1 = 1 ;

SBI 0x12,1;___ 0000 00A5 PORTD.2 = 0 ;

CBI 0x12,2;___ 0000 00A6 PORTD.3 = 0 ;

CBI 0x12,3;___ 0000 00A7 if(PIND.4 == 1){return 4 ; KEY = 0;}

SBIS 0x10,4RJMP _0x52LDI R30,LOW(4)LDI R31,HIGH(4)RJMP _0x20A000D

;___ 0000 00A8 if(PIND.5 == 1){return 5 ; KEY = 0;}_0x52:

SBIS 0x10,5RJMP _0x53LDI R30,LOW(5)LDI R31,HIGH(5)RJMP _0x20A000D

;___ 0000 00A9 if(PIND.6 == 1){return 6 ; KEY = 0;}_0x53:

SBIS 0x10,6RJMP _0x54LDI R30,LOW(6)LDI R31,HIGH(6)RJMP _0x20A000D

;___ 0000 00AA if(PIND.7 == 1){return 11; KEY = 0;}_0x54:

SBIS 0x10,7RJMP _0x55LDI R30,LOW(11)LDI R31,HIGH(11)RJMP _0x20A000D

;___ 0000 00AB //==========================================;___ 0000 00AC PORTD.0 = 0 ;_0x55:

CBI 0x12,0;___ 0000 00AD PORTD.1 = 0 ;

CBI 0x12,1;___ 0000 00AE PORTD.2 = 1 ;

SBI 0x12,2;___ 0000 00AF PORTD.3 = 0 ;

CBI 0x12,3;___ 0000 00B0 if(PIND.4 == 1){return 1 ; KEY = 0;}

Page 37: Laporan Tugas Besar

SBIS 0x10,4RJMP _0x5ELDI R30,LOW(1)LDI R31,HIGH(1)RJMP _0x20A000D

;___ 0000 00B1 if(PIND.5 == 1){return 2 ; KEY = 0;}_0x5E:

SBIS 0x10,5RJMP _0x5FLDI R30,LOW(2)LDI R31,HIGH(2)RJMP _0x20A000D

;___ 0000 00B2 if(PIND.6 == 1){return 3 ; KEY = 0;}_0x5F:

SBIS 0x10,6RJMP _0x60LDI R30,LOW(3)LDI R31,HIGH(3)RJMP _0x20A000D

;___ 0000 00B3 if(PIND.7 == 1){return 12; KEY = 0;}_0x60:

SBIS 0x10,7RJMP _0x61LDI R30,LOW(12)LDI R31,HIGH(12)RJMP _0x20A000D

;___ 0000 00B4 //==========================================;___ 0000 00B5 PORTD.0 = 0 ;_0x61:

CBI 0x12,0;___ 0000 00B6 PORTD.1 = 0 ;

CBI 0x12,1;___ 0000 00B7 PORTD.2 = 0 ;

CBI 0x12,2;___ 0000 00B8 PORTD.3 = 1 ;

SBI 0x12,3;___ 0000 00B9 if(PIND.4 == 1){return 15; KEY = 0;}

SBIS 0x10,4RJMP _0x6ALDI R30,LOW(15)LDI R31,HIGH(15)RJMP _0x20A000D

;___ 0000 00BA if(PIND.5 == 1){return 0 ; KEY = 0;}_0x6A:

SBIS 0x10,5RJMP _0x6BLDI R30,LOW(0)LDI R31,HIGH(0)RJMP _0x20A000D

;___ 0000 00BB if(PIND.6 == 1){return 14; KEY = 0;}_0x6B:

SBIS 0x10,6RJMP _0x6CLDI R30,LOW(14)LDI R31,HIGH(14)

Page 38: Laporan Tugas Besar

RJMP _0x20A000D;___ 0000 00BC if(PIND.7 == 1){return 13; KEY = 0;}_0x6C:

SBIS 0x10,7RJMP _0x6DLDI R30,LOW(13)LDI R31,HIGH(13)RJMP _0x20A000D

;___ 0000 00BD ;___ 0000 00BE //=============================================================================;___ 0000 00BF PORTC.0 = 1 ;_0x6D:

SBI 0x15,0;___ 0000 00C0 PORTC.1 = 0 ;

CBI 0x15,1;___ 0000 00C1 PORTC.2 = 0 ;

CBI 0x15,2;___ 0000 00C2 if(PINC.5 == 1){return 16 ; KEY=0;}

SBIS 0x13,5RJMP _0x74LDI R30,LOW(16)LDI R31,HIGH(16)RJMP _0x20A000D

;___ 0000 00C3 if(PINC.6 == 1){return 17; KEY=0;}_0x74:

SBIS 0x13,6RJMP _0x75LDI R30,LOW(17)LDI R31,HIGH(17)RJMP _0x20A000D

;___ 0000 00C4 if(PINC.7 == 1){return 18 ; KEY=0;}_0x75:

SBIS 0x13,7RJMP _0x76LDI R30,LOW(18)LDI R31,HIGH(18)RJMP _0x20A000D

;___ 0000 00C5 //=====================================================;___ 0000 00C6 PORTC.0 = 0 ;_0x76:

CBI 0x15,0;___ 0000 00C7 PORTC.1 = 1 ;

SBI 0x15,1;___ 0000 00C8 PORTC.2 = 0 ;

CBI 0x15,2;___ 0000 00C9 if(PINC.5 == 1){return 19 ; KEY=0;}

SBIS 0x13,5RJMP _0x7DLDI R30,LOW(19)LDI R31,HIGH(19)RJMP _0x20A000D

;___ 0000 00CA if(PINC.6 == 1){return 20 ; KEY=0;}_0x7D:

Page 39: Laporan Tugas Besar

SBIS 0x13,6RJMP _0x7ELDI R30,LOW(20)LDI R31,HIGH(20)RJMP _0x20A000D

;___ 0000 00CB if(PINC.7 == 1){return 21 ; KEY=0;}_0x7E:

SBIS 0x13,7RJMP _0x7FLDI R30,LOW(21)LDI R31,HIGH(21)RJMP _0x20A000D

;___ 0000 00CC //=====================================================;___ 0000 00CD PORTC.0 = 0 ;_0x7F:

CBI 0x15,0;___ 0000 00CE PORTC.1 = 0 ;

CBI 0x15,1;___ 0000 00CF PORTC.2 = 1 ;

SBI 0x15,2;___ 0000 00D0 if(PINC.5 == 1){return 22 ; KEY=0;}

SBIS 0x13,5RJMP _0x86LDI R30,LOW(22)LDI R31,HIGH(22)RJMP _0x20A000D

;___ 0000 00D1 if(PINC.6 == 1){return 23 ; KEY=0;}_0x86:

SBIS 0x13,6RJMP _0x87LDI R30,LOW(23)LDI R31,HIGH(23)RJMP _0x20A000D

;___ 0000 00D2 if(PINC.7 == 1){return 24 ; KEY=0;}_0x87:

SBIS 0x13,7RJMP _0x88LDI R30,LOW(24)LDI R31,HIGH(24)RJMP _0x20A000D

;___ 0000 00D3 ;___ 0000 00D4 KEY = 1 ;_0x88:

LDI R17,LOW(1);___ 0000 00D5 }

RJMP _0x3B_0x3D:;___ 0000 00D6 }_0x20A000D:

LD R17,Y+RET

;//############################################################; .equ __lcd_direction=__lcd_port-1 .equ __lcd_pin=__lcd_port-2

Page 40: Laporan Tugas Besar

.equ __lcd_rs=0 .equ __lcd_rd=1 .equ __lcd_enable=2 .equ __lcd_busy_flag=7

.DSEG

.CSEG__lcd_delay_G100: ldi r31,15__lcd_delay0: dec r31 brne __lcd_delay0

RET__lcd_ready: in r26,__lcd_direction andi r26,0xf ;set as input out __lcd_direction,r26 sbi __lcd_port,__lcd_rd ;RD=1 cbi __lcd_port,__lcd_rs ;RS=0__lcd_busy:

RCALL __lcd_delay_G100 sbi __lcd_port,__lcd_enable ;EN=1

RCALL __lcd_delay_G100 in r26,__lcd_pin cbi __lcd_port,__lcd_enable ;EN=0

RCALL __lcd_delay_G100 sbi __lcd_port,__lcd_enable ;EN=1

RCALL __lcd_delay_G100 cbi __lcd_port,__lcd_enable ;EN=0 sbrc r26,__lcd_busy_flag rjmp __lcd_busy

RET__lcd_write_nibble_G100: andi r26,0xf0 or r26,r27 out __lcd_port,r26 ;write sbi __lcd_port,__lcd_enable ;EN=1

CALL __lcd_delay_G100 cbi __lcd_port,__lcd_enable ;EN=0

CALL __lcd_delay_G100RET

__lcd_write_data: cbi __lcd_port,__lcd_rd ;RD=0 in r26,__lcd_direction ori r26,0xf0 | (1<<__lcd_rs) | (1<<__lcd_rd) | (1<<__lcd_enable) ;set as output out __lcd_direction,r26 in r27,__lcd_port andi r27,0xf ld r26,y

RCALL __lcd_write_nibble_G100 ld r26,y swap r26

RCALL __lcd_write_nibble_G100 sbi __lcd_port,__lcd_rd ;RD=1

Page 41: Laporan Tugas Besar

JMP _0x20A000A__lcd_read_nibble_G100: sbi __lcd_port,__lcd_enable ;EN=1

CALL __lcd_delay_G100 in r30,__lcd_pin ;read cbi __lcd_port,__lcd_enable ;EN=0

CALL __lcd_delay_G100 andi r30,0xf0

RET_lcd_read_byte0_G100:

CALL __lcd_delay_G100RCALL __lcd_read_nibble_G100

mov r26,r30RCALL __lcd_read_nibble_G100

cbi __lcd_port,__lcd_rd ;RD=0 swap r30 or r30,r26

RET_lcd_gotoxy:

CALL __lcd_readyLD R30,YLDI R31,0SUBI R30,LOW(-__base_y_G100)SBCI R31,HIGH(-__base_y_G100)LD R30,ZLDD R26,Y+1ADD R30,R26ST -Y,R30CALL __lcd_write_dataLDD R9,Y+1LDD R8,Y+0

_0x20A000C:ADIW R28,2RET

_lcd_clear:CALL __lcd_readyLDI R30,LOW(2)ST -Y,R30CALL __lcd_write_dataCALL __lcd_readyLDI R30,LOW(12)ST -Y,R30CALL __lcd_write_dataCALL __lcd_readyLDI R30,LOW(1)ST -Y,R30CALL __lcd_write_dataLDI R30,LOW(0)MOV R8,R30MOV R9,R30RET

_lcd_putchar: push r30 push r31 ld r26,y set

Page 42: Laporan Tugas Besar

cpi r26,10 breq __lcd_putchar1 clt

CP R9,R11BRLO _0x2000004__lcd_putchar1:INC R8LDI R30,LOW(0)ST -Y,R30ST -Y,R8RCALL _lcd_gotoxybrts __lcd_putchar0

_0x2000004:INC R9

rcall __lcd_ready sbi __lcd_port,__lcd_rs ;RS=1 ld r26,y st -y,r26 rcall __lcd_write_data__lcd_putchar0: pop r31 pop r30

JMP _0x20A000A_lcd_puts:

ST -Y,R17_0x2000005:

LDD R26,Y+1LDD R27,Y+1+1LD R30,X+STD Y+1,R26STD Y+1+1,R27MOV R17,R30CPI R30,0BREQ _0x2000007ST -Y,R17RCALL _lcd_putcharRJMP _0x2000005

_0x2000007:RJMP _0x20A000B

_lcd_putsf:ST -Y,R17

_0x2000008:LDD R30,Y+1LDD R31,Y+1+1ADIW R30,1STD Y+1,R30STD Y+1+1,R31SBIW R30,1LPM R30,ZMOV R17,R30CPI R30,0BREQ _0x200000AST -Y,R17RCALL _lcd_putcharRJMP _0x2000008

_0x200000A:

Page 43: Laporan Tugas Besar

_0x20A000B:LDD R17,Y+0ADIW R28,3RET

__long_delay_G100: clr r26 clr r27__long_delay0: sbiw r26,1 ;2 cycles brne __long_delay0 ;2 cycles

RET__lcd_init_write_G100: cbi __lcd_port,__lcd_rd ;RD=0 in r26,__lcd_direction ori r26,0xf7 ;set as output out __lcd_direction,r26 in r27,__lcd_port andi r27,0xf ld r26,y

CALL __lcd_write_nibble_G100 sbi __lcd_port,__lcd_rd ;RD=1

RJMP _0x20A000A_lcd_init: cbi __lcd_port,__lcd_enable ;EN=0 cbi __lcd_port,__lcd_rs ;RS=0

LDD R11,Y+0LD R30,YSUBI R30,-LOW(128)__PUTB1MN __base_y_G100,2LD R30,YSUBI R30,-LOW(192)__PUTB1MN __base_y_G100,3CALL SUBOPT_0x13CALL SUBOPT_0x13CALL SUBOPT_0x13RCALL __long_delay_G100LDI R30,LOW(32)ST -Y,R30RCALL __lcd_init_write_G100RCALL __long_delay_G100LDI R30,LOW(40)CALL SUBOPT_0x14LDI R30,LOW(4)CALL SUBOPT_0x14LDI R30,LOW(133)CALL SUBOPT_0x14

in r26,__lcd_direction andi r26,0xf ;set as input out __lcd_direction,r26 sbi __lcd_port,__lcd_rd ;RD=1

CALL _lcd_read_byte0_G100CPI R30,LOW(0x5)BREQ _0x200000BLDI R30,LOW(0)RJMP _0x20A000A

_0x200000B:

Page 44: Laporan Tugas Besar

CALL __lcd_readyLDI R30,LOW(6)ST -Y,R30CALL __lcd_write_dataCALL _lcd_clearLDI R30,LOW(1)

_0x20A000A:ADIW R28,1RET

.CSEG_itoa: ld r26,y+ ld r27,y+ ld r30,y+ ld r31,y+ adiw r30,0 brpl __itoa0 com r30 com r31 adiw r30,1 ldi r22,'-' st x+,r22__itoa0: clt ldi r24,low(10000) ldi r25,high(10000) rcall __itoa1 ldi r24,low(1000) ldi r25,high(1000) rcall __itoa1 ldi r24,100 clr r25 rcall __itoa1 ldi r24,10 rcall __itoa1 mov r22,r30 rcall __itoa5 clr r22 st x,r22 ret

__itoa1: clr r22__itoa2: cp r30,r24 cpc r31,r25 brlo __itoa3 inc r22 sub r30,r24 sbc r31,r25 brne __itoa2__itoa3: tst r22 brne __itoa4 brts __itoa5

Page 45: Laporan Tugas Besar

ret__itoa4: set__itoa5: subi r22,-0x30 st x+,r22 ret_ftoa:

SBIW R28,4LDI R30,LOW(0)ST Y,R30STD Y+1,R30STD Y+2,R30LDI R30,LOW(63)STD Y+3,R30ST -Y,R17ST -Y,R16LDD R30,Y+11LDD R31,Y+11+1CPI R30,LOW(0xFFFF)LDI R26,HIGH(0xFFFF)CPC R31,R26BRNE _0x202000DLDD R30,Y+6LDD R31,Y+6+1ST -Y,R31ST -Y,R30__POINTW1FN _0x2020000,0ST -Y,R31ST -Y,R30CALL _strcpyfRJMP _0x20A0009

_0x202000D:CPI R30,LOW(0x7FFF)LDI R26,HIGH(0x7FFF)CPC R31,R26BRNE _0x202000CLDD R30,Y+6LDD R31,Y+6+1ST -Y,R31ST -Y,R30__POINTW1FN _0x2020000,1ST -Y,R31ST -Y,R30CALL _strcpyfRJMP _0x20A0009

_0x202000C:LDD R26,Y+12TST R26BRPL _0x202000F__GETD1S 9CALL __ANEGF1CALL SUBOPT_0x15CALL SUBOPT_0x16LDI R30,LOW(45)ST X,R30

Page 46: Laporan Tugas Besar

_0x202000F:LDD R26,Y+8CPI R26,LOW(0x7)BRLO _0x2020010LDI R30,LOW(6)STD Y+8,R30

_0x2020010:LDD R17,Y+8

_0x2020011:MOV R30,R17SUBI R17,1CPI R30,0BREQ _0x2020013CALL SUBOPT_0x17CALL SUBOPT_0x18CALL SUBOPT_0x19RJMP _0x2020011

_0x2020013:CALL SUBOPT_0x1ACALL __ADDF12CALL SUBOPT_0x15LDI R17,LOW(0)CALL SUBOPT_0xDCALL SUBOPT_0x19

_0x2020014:CALL SUBOPT_0x1ACALL __CMPF12BRLO _0x2020016CALL SUBOPT_0x17CALL SUBOPT_0x5CALL SUBOPT_0x19SUBI R17,-LOW(1)RJMP _0x2020014

_0x2020016:CPI R17,0BRNE _0x2020017CALL SUBOPT_0x16LDI R30,LOW(48)ST X,R30RJMP _0x2020018

_0x2020017:_0x2020019:

MOV R30,R17SUBI R17,1CPI R30,0BREQ _0x202001BCALL SUBOPT_0x17CALL SUBOPT_0x18__GETD2N 0x3F000000CALL __ADDF12CALL __PUTPARD1CALL _floorCALL SUBOPT_0x19CALL SUBOPT_0x1ACALL __DIVF21CALL __CFD1U

Page 47: Laporan Tugas Besar

MOV R16,R30CALL SUBOPT_0x16MOV R30,R16SUBI R30,-LOW(48)ST X,R30MOV R30,R16CALL SUBOPT_0x17CALL SUBOPT_0x6CALL __MULF12CALL SUBOPT_0x1BCALL SUBOPT_0x1CRJMP _0x2020019

_0x202001B:_0x2020018:

LDD R30,Y+8CPI R30,0BREQ _0x20A0008CALL SUBOPT_0x16LDI R30,LOW(46)ST X,R30

_0x202001D:LDD R30,Y+8SUBI R30,LOW(1)STD Y+8,R30SUBI R30,-LOW(1)BREQ _0x202001FCALL SUBOPT_0x1BCALL SUBOPT_0x5CALL SUBOPT_0x15__GETD1S 9CALL __CFD1UMOV R16,R30CALL SUBOPT_0x16MOV R30,R16SUBI R30,-LOW(48)ST X,R30MOV R30,R16CALL SUBOPT_0x1BCALL SUBOPT_0x6CALL SUBOPT_0x1CRJMP _0x202001D

_0x202001F:_0x20A0008:

LDD R26,Y+6LDD R27,Y+6+1LDI R30,LOW(0)ST X,R30

_0x20A0009:LDD R17,Y+1LDD R16,Y+0ADIW R28,13RET

.DSEG

.CSEG

Page 48: Laporan Tugas Besar

.CSEG_ftrunc: ldd r23,y+3 ldd r22,y+2 ldd r31,y+1 ld r30,y bst r23,7 lsl r23 sbrc r22,7 sbr r23,1 mov r25,r23 subi r25,0x7e breq __ftrunc0 brcs __ftrunc0 cpi r25,24 brsh __ftrunc1 clr r26 clr r27 clr r24__ftrunc2: sec ror r24 ror r27 ror r26 dec r25 brne __ftrunc2 and r30,r26 and r31,r27 and r22,r24 rjmp __ftrunc1__ftrunc0: clt clr r23 clr r30 clr r31 clr r22__ftrunc1: cbr r22,0x80 lsr r23 brcc __ftrunc3 sbr r22,0x80__ftrunc3: bld r23,7 ld r26,y+ ld r27,y+ ld r24,y+ ld r25,y+ cp r30,r26 cpc r31,r27 cpc r22,r24 cpc r23,r25 bst r25,7 ret_floor:

CALL SUBOPT_0x1D

Page 49: Laporan Tugas Besar

CALL __PUTPARD1CALL _ftruncCALL SUBOPT_0x1E

brne __floor1__floor0:

CALL SUBOPT_0x1DRJMP _0x20A0001

__floor1: brtc __floor0

CALL SUBOPT_0x1FCALL SUBOPT_0xDRJMP _0x20A0003

_log:SBIW R28,4ST -Y,R17ST -Y,R16CALL SUBOPT_0x20CALL __CPD02BRLT _0x204000C__GETD1N 0xFF7FFFFFRJMP _0x20A0007

_0x204000C:CALL SUBOPT_0x21CALL __PUTPARD1IN R30,SPLIN R31,SPHSBIW R30,1ST -Y,R31ST -Y,R30PUSH R17PUSH R16CALL _frexpPOP R16POP R17CALL SUBOPT_0x22CALL SUBOPT_0x20CALL SUBOPT_0x23BRSH _0x204000DCALL SUBOPT_0x21CALL SUBOPT_0x20CALL __ADDF12CALL SUBOPT_0x22__SUBWRN 16,17,1

_0x204000D:CALL SUBOPT_0x20CALL SUBOPT_0x24PUSH R23PUSH R22PUSH R31PUSH R30CALL SUBOPT_0x21CALL SUBOPT_0x10CALL __ADDF12POP R26POP R27POP R24

Page 50: Laporan Tugas Besar

POP R25CALL __DIVF21CALL SUBOPT_0x22CALL SUBOPT_0x21CALL SUBOPT_0x20CALL __MULF12CALL SUBOPT_0x19__GETD1S 2__GETD2N 0x3F654226CALL __MULF12MOVW R26,R30MOVW R24,R22__GETD1N 0x4054114ECALL SUBOPT_0x25CALL SUBOPT_0x20CALL __MULF12PUSH R23PUSH R22PUSH R31PUSH R30CALL SUBOPT_0x17__GETD1N 0x3FD4114DCALL SUBOPT_0x25POP R26POP R27POP R24POP R25CALL __DIVF21PUSH R23PUSH R22PUSH R31PUSH R30MOVW R30,R16CALL __CWD1CALL __CDF1__GETD2N 0x3F317218CALL __MULF12POP R26POP R27POP R24POP R25CALL __ADDF12

_0x20A0007:LDD R17,Y+1LDD R16,Y+0ADIW R28,10RET

_sin:CALL SUBOPT_0x26__GETD1N 0x3E22F983CALL __MULF12CALL SUBOPT_0x27CALL SUBOPT_0x28CALL __PUTPARD1RCALL _floorCALL SUBOPT_0x29

Page 51: Laporan Tugas Besar

CALL SUBOPT_0x25CALL SUBOPT_0x27CALL SUBOPT_0x2ACALL __CMPF12BREQ PC+2BRCC PC+3JMP _0x2040017CALL SUBOPT_0x2ACALL SUBOPT_0x25CALL SUBOPT_0x27LDI R17,LOW(1)

_0x2040017:CALL SUBOPT_0x29__GETD1N 0x3E800000CALL __CMPF12BREQ PC+2BRCC PC+3JMP _0x2040018CALL SUBOPT_0x2ACALL __SUBF12CALL SUBOPT_0x27

_0x2040018:CPI R17,0BREQ _0x2040019CALL SUBOPT_0x2B

_0x2040019:CALL SUBOPT_0x2C__PUTD1S 1CALL SUBOPT_0x2D__GETD2N 0x4226C4B1CALL __MULF12MOVW R26,R30MOVW R24,R22__GETD1N 0x422DE51DCALL SUBOPT_0x25CALL SUBOPT_0x2E__GETD2N 0x4104534CCALL __ADDF12CALL SUBOPT_0x29CALL __MULF12PUSH R23PUSH R22PUSH R31PUSH R30CALL SUBOPT_0x2D__GETD2N 0x3FDEED11CALL __ADDF12CALL SUBOPT_0x2E__GETD2N 0x3FA87B5ECALL __ADDF12POP R26POP R27POP R24POP R25CALL __DIVF21RJMP _0x20A0004

Page 52: Laporan Tugas Besar

_cos:CALL SUBOPT_0x1F__GETD1N 0x3FC90FDBCALL __SUBF12CALL __PUTPARD1RCALL _sinRJMP _0x20A0001

_tan:SBIW R28,4CALL SUBOPT_0x2FRCALL _cosCALL SUBOPT_0x1ECALL __CPD10BRNE _0x204001ACALL SUBOPT_0x30CALL __CPD02BRGE _0x204001BCALL SUBOPT_0x31RJMP _0x20A0006

_0x204001B:__GETD1N 0xFF7FFFFFRJMP _0x20A0006

_0x204001A:CALL SUBOPT_0x2FRCALL _sinMOVW R26,R30MOVW R24,R22CALL SUBOPT_0x1DRJMP _0x20A0005

_xatan:SBIW R28,4__GETD1S 4CALL SUBOPT_0x30CALL __MULF12CALL SUBOPT_0x1ECALL SUBOPT_0x1D__GETD2N 0x40CBD065CALL SUBOPT_0x32CALL SUBOPT_0x30CALL __MULF12PUSH R23PUSH R22PUSH R31PUSH R30CALL SUBOPT_0x1D__GETD2N 0x41296D00CALL __ADDF12CALL SUBOPT_0x1FCALL SUBOPT_0x32POP R26POP R27POP R24POP R25

_0x20A0005:CALL __DIVF21

_0x20A0006:

Page 53: Laporan Tugas Besar

ADIW R28,8RET

_yatan:CALL SUBOPT_0x1F__GETD1N 0x3ED413CDCALL __CMPF12BRSH _0x2040020CALL SUBOPT_0x1DCALL SUBOPT_0x33RJMP _0x20A0001

_0x2040020:CALL SUBOPT_0x1F__GETD1N 0x401A827ACALL __CMPF12BREQ PC+2BRCC PC+3JMP _0x2040021CALL SUBOPT_0x1DCALL SUBOPT_0x10CALL __DIVF21CALL SUBOPT_0x33RJMP _0x20A0002

_0x2040021:CALL SUBOPT_0x1FCALL SUBOPT_0x24PUSH R23PUSH R22PUSH R31PUSH R30CALL SUBOPT_0x1DCALL SUBOPT_0x10CALL __ADDF12POP R26POP R27POP R24POP R25CALL __DIVF21CALL SUBOPT_0x33__GETD2N 0x3F490FDBCALL __ADDF12RJMP _0x20A0001

_asin:CALL SUBOPT_0x26CALL SUBOPT_0x34BRLO _0x2040023CALL SUBOPT_0x29CALL SUBOPT_0xDCALL __CMPF12BREQ PC+4BRCS PC+3JMP _0x2040023RJMP _0x2040022

_0x2040023:CALL SUBOPT_0x31RJMP _0x20A0004

_0x2040022:

Page 54: Laporan Tugas Besar

LDD R26,Y+8TST R26BRPL _0x2040025CALL SUBOPT_0x2BLDI R17,LOW(1)

_0x2040025:CALL SUBOPT_0x2CCALL SUBOPT_0x10CALL SUBOPT_0x25CALL __PUTPARD1CALL _sqrt__PUTD1S 1CALL SUBOPT_0x29CALL SUBOPT_0x23BREQ PC+2BRCC PC+3JMP _0x2040026CALL SUBOPT_0x28__GETD2S 1CALL SUBOPT_0x35__GETD2N 0x3FC90FDBCALL SUBOPT_0x25RJMP _0x2040035

_0x2040026:CALL SUBOPT_0x2DCALL SUBOPT_0x29CALL SUBOPT_0x35

_0x2040035:__PUTD1S 1CPI R17,0BREQ _0x2040028CALL SUBOPT_0x2DCALL __ANEGF1RJMP _0x20A0004

_0x2040028:CALL SUBOPT_0x2D

_0x20A0004:LDD R17,Y+0ADIW R28,9RET

_acos:CALL SUBOPT_0x1FCALL SUBOPT_0x34BRLO _0x204002ACALL SUBOPT_0x1FCALL SUBOPT_0xDCALL __CMPF12BREQ PC+4BRCS PC+3JMP _0x204002ARJMP _0x2040029

_0x204002A:CALL SUBOPT_0x31RJMP _0x20A0001

_0x2040029:CALL SUBOPT_0x1D

Page 55: Laporan Tugas Besar

CALL __PUTPARD1RCALL _asin

_0x20A0002:__GETD2N 0x3FC90FDB

_0x20A0003:CALL __SWAPD12CALL __SUBF12

_0x20A0001:ADIW R28,4RET

.CSEG

.CSEG_strcpyf: ld r30,y+ ld r31,y+ ld r26,y+ ld r27,y+ movw r24,r26strcpyf0:

lpm r0,z+ st x+,r0 tst r0 brne strcpyf0 movw r30,r24 ret

.DSEG_a:

.BYTE 0x4_b:

.BYTE 0x4_c:

.BYTE 0x4_q:

.BYTE 0x4_t:

.BYTE 0x4_lcd:

.BYTE 0x19__base_y_G100:

.BYTE 0x4__seed_G101:

.BYTE 0x4_p_S1040024:

.BYTE 0x2

.CSEG;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x0:

CALL _keyMOV R7,R30LDI R30,LOW(15)CP R30,R7

Page 56: Laporan Tugas Besar

RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 4 TIMES, CODE SIZE REDUCTION:78 WORDSSUBOPT_0x1:

LDI R30,LOW(0)STS _a,R30STS _a+1,R30STS _a+2,R30STS _a+3,R30STS _b,R30STS _b+1,R30STS _b+2,R30STS _b+3,R30STS _c,R30STS _c+1,R30STS _c+2,R30STS _c+3,R30JMP _lcd_clear

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:51 WORDSSUBOPT_0x2:

LDS R26,_aLDS R27,_a+1LDS R24,_a+2LDS R25,_a+3__GETD1N 0x41200000CALL __MULF12MOVW R26,R30MOVW R24,R22MOV R30,R7CLR R31CLR R22CLR R23CALL __CDF1CALL __ADDF12STS _a,R30STS _a+1,R31STS _a+2,R22STS _a+3,R23MOV R30,R7LDI R31,0ST -Y,R31ST -Y,R30LDI R30,LOW(_lcd)LDI R31,HIGH(_lcd)ST -Y,R31ST -Y,R30CALL _itoaLDI R30,LOW(_lcd)LDI R31,HIGH(_lcd)ST -Y,R31ST -Y,R30CALL _lcd_putsLDI R30,LOW(50)

Page 57: Laporan Tugas Besar

LDI R31,HIGH(50)ST -Y,R31ST -Y,R30JMP _delay_ms

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x3:

MOV R30,R7LDI R31,0ST -Y,R31ST -Y,R30RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x4:

LDS R26,_bLDS R27,_b+1LDS R24,_b+2LDS R25,_b+3RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x5:

__GETD1N 0x41200000CALL __MULF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x6:

CLR R31CLR R22CLR R23CALL __CDF1RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 4 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x7:

LDI R30,LOW(_lcd)LDI R31,HIGH(_lcd)ST -Y,R31ST -Y,R30RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:13 WORDSSUBOPT_0x8:

LDI R30,LOW(50)LDI R31,HIGH(50)ST -Y,R31ST -Y,R30JMP _delay_ms

Page 58: Laporan Tugas Besar

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:25 WORDSSUBOPT_0x9:

LDS R30,_bLDS R31,_b+1LDS R22,_b+2LDS R23,_b+3LDS R26,_aLDS R27,_a+1LDS R24,_a+2LDS R25,_a+3RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0xA:

CALL __DIVF21STS _c,R30STS _c+1,R31STS _c+2,R22STS _c+3,R23RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 11 TIMES, CODE SIZE REDUCTION:57 WORDSSUBOPT_0xB:

STS _c,R30STS _c+1,R31STS _c+2,R22STS _c+3,R23RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:21 WORDSSUBOPT_0xC:

LDS R30,_aLDS R31,_a+1LDS R22,_a+2LDS R23,_a+3RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 7 TIMES, CODE SIZE REDUCTION:9 WORDSSUBOPT_0xD:

__GETD1N 0x3F800000RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0xE:

STS _q,R30STS _q+1,R31STS _q+2,R22STS _q+3,R23RET

Page 59: Laporan Tugas Besar

;OPTIMIZER ADDED SUBROUTINE, CALLED 6 TIMES, CODE SIZE REDUCTION:37 WORDSSUBOPT_0xF:

LDS R30,_tLDS R31,_t+1LDS R22,_t+2LDS R23,_t+3CALL __PUTPARD1RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x10:

__GETD2N 0x3F800000RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x11:

LDI R30,LOW(100)LDI R31,HIGH(100)ST -Y,R31ST -Y,R30JMP _delay_ms

;OPTIMIZER ADDED SUBROUTINE, CALLED 9 TIMES, CODE SIZE REDUCTION:13 WORDSSUBOPT_0x12:

ST -Y,R31ST -Y,R30JMP _lcd_putsf

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x13:

CALL __long_delay_G100LDI R30,LOW(48)ST -Y,R30JMP __lcd_init_write_G100

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x14:

ST -Y,R30CALL __lcd_write_dataJMP __long_delay_G100

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x15:

__PUTD1S 9RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:13 WORDS

Page 60: Laporan Tugas Besar

SUBOPT_0x16:LDD R26,Y+6LDD R27,Y+6+1ADIW R26,1STD Y+6,R26STD Y+6+1,R27SBIW R26,1RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x17:

__GETD2S 2RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x18:

__GETD1N 0x3DCCCCCDCALL __MULF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x19:

__PUTD1S 2RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:9 WORDSSUBOPT_0x1A:

__GETD1S 2__GETD2S 9RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x1B:

__GETD2S 9RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x1C:

CALL __SWAPD12CALL __SUBF12RJMP SUBOPT_0x15

;OPTIMIZER ADDED SUBROUTINE, CALLED 9 TIMES, CODE SIZE REDUCTION:13 WORDSSUBOPT_0x1D:

__GETD1S 0RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:1 WORDS

Page 61: Laporan Tugas Besar

SUBOPT_0x1E:__PUTD1S 0RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 8 TIMES, CODE SIZE REDUCTION:11 WORDSSUBOPT_0x1F:

__GETD2S 0RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 6 TIMES, CODE SIZE REDUCTION:7 WORDSSUBOPT_0x20:

__GETD2S 6RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 4 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x21:

__GETD1S 6RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x22:

__PUTD1S 6RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x23:

__GETD1N 0x3F3504F3CALL __CMPF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x24:

RCALL SUBOPT_0xDCALL __SWAPD12CALL __SUBF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 7 TIMES, CODE SIZE REDUCTION:9 WORDSSUBOPT_0x25:

CALL __SWAPD12CALL __SUBF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:2 WORDSSUBOPT_0x26:

SBIW R28,4ST -Y,R17LDI R17,0

Page 62: Laporan Tugas Besar

__GETD2S 5RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 6 TIMES, CODE SIZE REDUCTION:7 WORDSSUBOPT_0x27:

__PUTD1S 5RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 6 TIMES, CODE SIZE REDUCTION:7 WORDSSUBOPT_0x28:

__GETD1S 5RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 11 TIMES, CODE SIZE REDUCTION:17 WORDSSUBOPT_0x29:

__GETD2S 5RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x2A:

RCALL SUBOPT_0x29__GETD1N 0x3F000000RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x2B:

RCALL SUBOPT_0x28CALL __ANEGF1RJMP SUBOPT_0x27

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x2C:

RCALL SUBOPT_0x28RCALL SUBOPT_0x29CALL __MULF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 5 TIMES, CODE SIZE REDUCTION:5 WORDSSUBOPT_0x2D:

__GETD1S 1RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x2E:

__GETD2S 1CALL __MULF12RET

Page 63: Laporan Tugas Besar

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x2F:

__GETD1S 4CALL __PUTPARD1RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x30:

__GETD2S 4RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x31:

__GETD1N 0x7F7FFFFFRET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:3 WORDSSUBOPT_0x32:

CALL __MULF12__GETD2N 0x414A8F4ECALL __ADDF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x33:

CALL __PUTPARD1JMP _xatan

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x34:

__GETD1N 0xBF800000CALL __CMPF12RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDSSUBOPT_0x35:

CALL __DIVF21CALL __PUTPARD1JMP _yatan

.CSEG_delay_ms:

ld r30,y+ld r31,y+adiw r30,0breq __delay_ms1

__delay_ms0:__DELAY_USW 0x3E8

Page 64: Laporan Tugas Besar

wdrsbiw r30,1brne __delay_ms0

__delay_ms1:ret

_sqrt:sbiw r28,4push r21ldd r25,y+7tst r25brne __sqrt0adiw r28,8rjmp __zerores

__sqrt0:brpl __sqrt1adiw r28,8rjmp __maxres

__sqrt1:push r20ldi r20,66ldd r24,y+6ldd r27,y+5ldd r26,y+4

__sqrt2:st y,r24std y+1,r25std y+2,r26std y+3,r27movw r30,r26movw r22,r24ldd r26,y+4ldd r27,y+5ldd r24,y+6ldd r25,y+7rcall __divf21ld r24,yldd r25,y+1ldd r26,y+2ldd r27,y+3rcall __addf12rcall __unpack1dec r23rcall __repackld r24,yldd r25,y+1ldd r26,y+2ldd r27,y+3eor r26,r30andi r26,0xf8brne __sqrt4cp r27,r31cpc r24,r22cpc r25,r23breq __sqrt3

__sqrt4:

Page 65: Laporan Tugas Besar

dec r20breq __sqrt3movw r26,r30movw r24,r22rjmp __sqrt2

__sqrt3:pop r20pop r21adiw r28,8ret

__ANEGD1:COM R31COM R22COM R23NEG R30SBCI R31,-1SBCI R22,-1SBCI R23,-1RET

__CBD1:MOV R31,R30ADD R31,R31SBC R31,R31MOV R22,R31MOV R23,R31RET

__CWD1:MOV R22,R31ADD R22,R22SBC R22,R22MOV R23,R22RET

__PUTPARD1:ST -Y,R23ST -Y,R22ST -Y,R31ST -Y,R30RET

__SWAPD12:MOV R1,R24MOV R24,R22MOV R22,R1MOV R1,R25MOV R25,R23MOV R23,R1

__SWAPW12:MOV R1,R27MOV R27,R31MOV R31,R1

Page 66: Laporan Tugas Besar

__SWAPB12:MOV R1,R26MOV R26,R30MOV R30,R1RET

_frexp:LD R26,Y+LD R27,Y+LD R30,Y+LD R31,Y+LD R22,Y+LD R23,Y+BST R23,7LSL R22ROL R23CLR R24SUBI R23,0x7ESBC R24,R24ST X+,R23ST X,R24LDI R23,0x7ELSR R23ROR R22BRTS __ANEGF1RET

__ANEGF1:SBIW R30,0SBCI R22,0SBCI R23,0BREQ __ANEGF10SUBI R23,0x80

__ANEGF10:RET

__ROUND_REPACK:TST R21BRPL __REPACKCPI R21,0x80BRNE __ROUND_REPACK0SBRS R30,0RJMP __REPACK

__ROUND_REPACK0:ADIW R30,1ADC R22,R25ADC R23,R25BRVS __REPACK1

__REPACK:LDI R21,0x80EOR R21,R23BRNE __REPACK0PUSH R21RJMP __ZERORES

__REPACK0:

Page 67: Laporan Tugas Besar

CPI R21,0xFFBREQ __REPACK1LSL R22LSL R0ROR R21ROR R22MOV R23,R21RET

__REPACK1:PUSH R21TST R0BRMI __REPACK2RJMP __MAXRES

__REPACK2:RJMP __MINRES

__UNPACK:LDI R21,0x80MOV R1,R25AND R1,R21LSL R24ROL R25EOR R25,R21LSL R21ROR R24

__UNPACK1:LDI R21,0x80MOV R0,R23AND R0,R21LSL R22ROL R23EOR R23,R21LSL R21ROR R22RET

__CFD1U:SETRJMP __CFD1U0

__CFD1:CLT

__CFD1U0:PUSH R21RCALL __UNPACK1CPI R23,0x80BRLO __CFD10CPI R23,0xFFBRCC __CFD10RJMP __ZERORES

__CFD10:LDI R21,22SUB R21,R23BRPL __CFD11NEG R21CPI R21,8

Page 68: Laporan Tugas Besar

BRTC __CFD19CPI R21,9

__CFD19:BRLO __CFD17SER R30SER R31SER R22LDI R23,0x7FBLD R23,7RJMP __CFD15

__CFD17:CLR R23TST R21BREQ __CFD15

__CFD18:LSL R30ROL R31ROL R22ROL R23DEC R21BRNE __CFD18RJMP __CFD15

__CFD11:CLR R23

__CFD12:CPI R21,8BRLO __CFD13MOV R30,R31MOV R31,R22MOV R22,R23SUBI R21,8RJMP __CFD12

__CFD13:TST R21BREQ __CFD15

__CFD14:LSR R23ROR R22ROR R31ROR R30DEC R21BRNE __CFD14

__CFD15:TST R0BRPL __CFD16RCALL __ANEGD1

__CFD16:POP R21RET

__CDF1U:SETRJMP __CDF1U0

__CDF1:CLT

__CDF1U0:

Page 69: Laporan Tugas Besar

SBIW R30,0SBCI R22,0SBCI R23,0BREQ __CDF10CLR R0BRTS __CDF11TST R23BRPL __CDF11COM R0RCALL __ANEGD1

__CDF11:MOV R1,R23LDI R23,30TST R1

__CDF12:BRMI __CDF13DEC R23LSL R30ROL R31ROL R22ROL R1RJMP __CDF12

__CDF13:MOV R30,R31MOV R31,R22MOV R22,R1PUSH R21RCALL __REPACKPOP R21

__CDF10:RET

__SWAPACC:PUSH R20MOVW R20,R30MOVW R30,R26MOVW R26,R20MOVW R20,R22MOVW R22,R24MOVW R24,R20MOV R20,R0MOV R0,R1MOV R1,R20POP R20RET

__UADD12:ADD R30,R26ADC R31,R27ADC R22,R24RET

__NEGMAN1:COM R30COM R31COM R22

Page 70: Laporan Tugas Besar

SUBI R30,-1SBCI R31,-1SBCI R22,-1RET

__SUBF12:PUSH R21RCALL __UNPACKCPI R25,0x80BREQ __ADDF129LDI R21,0x80EOR R1,R21

RJMP __ADDF120

__ADDF12:PUSH R21RCALL __UNPACKCPI R25,0x80BREQ __ADDF129

__ADDF120:CPI R23,0x80BREQ __ADDF128

__ADDF121:MOV R21,R23SUB R21,R25BRVS __ADDF129BRPL __ADDF122RCALL __SWAPACCRJMP __ADDF121

__ADDF122:CPI R21,24BRLO __ADDF123CLR R26CLR R27CLR R24

__ADDF123:CPI R21,8BRLO __ADDF124MOV R26,R27MOV R27,R24CLR R24SUBI R21,8RJMP __ADDF123

__ADDF124:TST R21BREQ __ADDF126

__ADDF125:LSR R24ROR R27ROR R26DEC R21BRNE __ADDF125

__ADDF126:MOV R21,R0

Page 71: Laporan Tugas Besar

EOR R21,R1BRMI __ADDF127RCALL __UADD12BRCC __ADDF129ROR R22ROR R31ROR R30INC R23BRVC __ADDF129RJMP __MAXRES

__ADDF128:RCALL __SWAPACC

__ADDF129:RCALL __REPACKPOP R21RET

__ADDF127:SUB R30,R26SBC R31,R27SBC R22,R24BREQ __ZERORESBRCC __ADDF1210COM R0RCALL __NEGMAN1

__ADDF1210:TST R22BRMI __ADDF129LSL R30ROL R31ROL R22DEC R23BRVC __ADDF1210

__ZERORES:CLR R30CLR R31CLR R22CLR R23POP R21RET

__MINRES:SER R30SER R31LDI R22,0x7FSER R23POP R21RET

__MAXRES:SER R30SER R31LDI R22,0x7FLDI R23,0x7FPOP R21RET

Page 72: Laporan Tugas Besar

__MULF12:PUSH R21RCALL __UNPACKCPI R23,0x80BREQ __ZERORESCPI R25,0x80BREQ __ZERORESEOR R0,R1SECADC R23,R25BRVC __MULF124BRLT __ZERORES

__MULF125:TST R0BRMI __MINRESRJMP __MAXRES

__MULF124:PUSH R0PUSH R17PUSH R18PUSH R19PUSH R20CLR R17CLR R18CLR R25MUL R22,R24MOVW R20,R0MUL R24,R31MOV R19,R0ADD R20,R1ADC R21,R25MUL R22,R27ADD R19,R0ADC R20,R1ADC R21,R25MUL R24,R30RCALL __MULF126MUL R27,R31RCALL __MULF126MUL R22,R26RCALL __MULF126MUL R27,R30RCALL __MULF127MUL R26,R31RCALL __MULF127MUL R26,R30ADD R17,R1ADC R18,R25ADC R19,R25ADC R20,R25ADC R21,R25MOV R30,R19MOV R31,R20MOV R22,R21MOV R21,R18

Page 73: Laporan Tugas Besar

POP R20POP R19POP R18POP R17POP R0TST R22BRMI __MULF122LSL R21ROL R30ROL R31ROL R22RJMP __MULF123

__MULF122:INC R23BRVS __MULF125

__MULF123:RCALL __ROUND_REPACKPOP R21RET

__MULF127:ADD R17,R0ADC R18,R1ADC R19,R25RJMP __MULF128

__MULF126:ADD R18,R0ADC R19,R1

__MULF128:ADC R20,R25ADC R21,R25RET

__DIVF21:PUSH R21RCALL __UNPACKCPI R23,0x80BRNE __DIVF210TST R1

__DIVF211:BRPL __DIVF219RJMP __MINRES

__DIVF219:RJMP __MAXRES

__DIVF210:CPI R25,0x80BRNE __DIVF218

__DIVF217:RJMP __ZERORES

__DIVF218:EOR R0,R1SECSBC R25,R23BRVC __DIVF216BRLT __DIVF217TST R0

Page 74: Laporan Tugas Besar

RJMP __DIVF211__DIVF216:

MOV R23,R25PUSH R17PUSH R18PUSH R19PUSH R20CLR R1CLR R17CLR R18CLR R19CLR R20CLR R21LDI R25,32

__DIVF212:CP R26,R30CPC R27,R31CPC R24,R22CPC R20,R17BRLO __DIVF213SUB R26,R30SBC R27,R31SBC R24,R22SBC R20,R17SECRJMP __DIVF214

__DIVF213:CLC

__DIVF214:ROL R21ROL R18ROL R19ROL R1ROL R26ROL R27ROL R24ROL R20DEC R25BRNE __DIVF212MOVW R30,R18MOV R22,R1POP R20POP R19POP R18POP R17TST R22BRMI __DIVF215LSL R21ROL R30ROL R31ROL R22DEC R23BRVS __DIVF217

__DIVF215:RCALL __ROUND_REPACKPOP R21

Page 75: Laporan Tugas Besar

RET

__CMPF12:TST R25BRMI __CMPF120TST R23BRMI __CMPF121CP R25,R23BRLO __CMPF122BRNE __CMPF121CP R26,R30CPC R27,R31CPC R24,R22BRLO __CMPF122BREQ __CMPF123

__CMPF121:CLZCLCRET

__CMPF122:CLZSECRET

__CMPF123:SEZCLCRET

__CMPF120:TST R23BRPL __CMPF122CP R25,R23BRLO __CMPF121BRNE __CMPF122CP R30,R26CPC R31,R27CPC R22,R24BRLO __CMPF122BREQ __CMPF123RJMP __CMPF121

__CPD10:SBIW R30,0SBCI R22,0SBCI R23,0RET

__CPD02:CLR R0CP R0,R26CPC R0,R27CPC R0,R24CPC R0,R25RET

;END OF CODE MARKER__END_OF_CODE:

Page 76: Laporan Tugas Besar
Page 77: Laporan Tugas Besar

c. Tempat access point

Gambar tempat access point pada posisi awal. Dari posisi tersebut maka sebaran sinyal yang ada dalam ruangan tidak maksimal tetapi banyak tersebar kesamping ruangan yang tak jelas pemanfaatannya

d. Spesifikasi WLAN

Dibawah ini adalah spesifikasi dari access point yang kami analisa di tempat praktek:

Access point (air live) 2 Buah Wifi adapter 802.11G

Modem (telkom schoolnet)(ZTE)

e. Analiasa wireless

Berikut adalah hasil analisa alamat IP dengan cara ipconfig/all dari komputer tempat praktek:

Ipconfig/all di jaringan WLAN

Page 78: Laporan Tugas Besar

Ping Rate WLAN

Berikut adalah hasil ping rate yang kami lakukan untuk ping ke google dengan perintah ping www.google.com –t –l t

Download rate dengan IDM

Page 79: Laporan Tugas Besar

Dibawah adalah hasil download rate dengan menggunakan software IDM untuk mendownload file dengan koneksi ke wireless tempat kami praktek

Grafik Trafik jaringan WLAN menggunakan Wireshark dalam keadaan kosong(sepi)

Dibawah adalah hasil analisa traffic jaringan wireless menggunakan software wireshark. Dalam gambar terlihat grafik yang ada dalam kondisi stabil karena tidak banyak pengaksesan ke internet oleh user

Grafik Trafik jaringan WLAN menggunakan Wireshark dalam keadaan sibuk(penuh)

Page 80: Laporan Tugas Besar

Berikut adalah gambar hasil analisa traffic jaringan wireless menggunakan software wireshark. Digambar terlihat grafik mengalamai peningkatan karena banyaknya user yang mengakses jaringan wireless.

Download rate dan upload rate dengan menggunakan indosatM2 ping rate dengan jarak 5 meter

Gambar berikut adalah hasil pengecekan kecepatan internet dengan menggunakan situs indosat M2 broadband dan terlihat hasil download rate 364kbps dan upload ratenya 50kbps. Hasil yang kami dapatkan diatas adalah dengan jarak 5 meter dari access point.

Download rate dan upload rate dengan menggunakan indosatM2 ping rate dengan jarak 10 meter

Page 81: Laporan Tugas Besar

Gambar berikut adalah hasil pengecekan kecepatan internet dengan menggunakan situs indosat M2 broadband dan terlihat hasil download rate 364kbps dan upload ratenya 50kbps. Hasil yang kami dapatkan diatas adalah dengan jarak 10 meter dari access point.

f. Analisa Wireless kondisi Sebelum Jangkaun acces point 1 hanya bisa mengcover lab. komputer, dan

parkiran guru. Jangkauan acces point 2 hanya mengcover ruang TU, ruang kepala

sekolah, dan ruang guru serta ruang staff. Posisi acces point di dalam lab. Komputer, dan ruang TU posisi

dibawah. Kabel tidak tertata dengan rapi. 3 PC lab mengalami problem, sehingga tidak bisa acces internet. Dibawah ini adalah gambar hasil sebaran sinyal sebelum kami

lakukan perbaikan

Page 82: Laporan Tugas Besar

Gambar denah sebelum analisa

g. Analisa Wireless kondisi Sesudah 3 PC yang tidak bisa connect wifi bisa di gunakan kembali Rencana penempatan acces point agar bisa tercover semua area sekolah

(saran) Rencana penambahan 1 access point (saran) Merapikan kabel dan menata acces point dengan rapi. Gambar dibawah ini adalah hasil gambar setelah kami lakukan analisa

dan perbaikan

Gambar denah sesudah analisa

Page 83: Laporan Tugas Besar

h. Dokumentasi

Page 84: Laporan Tugas Besar
Page 85: Laporan Tugas Besar

i. Kesimpulan

Dari hasil analisis jaringan wireless yang kami lakukan kami menarik kesimpulan bahwa access point yang diletakkan pada posisi yang tidak tepat tidak menyebarkan sinyal dengan sempurna, sehingga kami melakukan perubahan letak access point sehingga penyebaran sinyal dapat tersebar dengan baik dan merata ke semua bagian yg diinginkan oleh pihak sekolah, selain itu kita juga menyarankan kepada pihak sekolah untuk menambah beberapa access point agar dalam lingkungan sekolah tersebut dapat menikmati layanan wifi, sehingga kegiatan belajar mengajar mendapatkan hasil yang maksimal dan menyenangkan.

5. Jadwal kegiatan

Pelaksanaan analisa yang kami lakukan pada tempat praktek yaitu di SMPN 3 Bandung,Tulungagung dilakukan pada hari selasa 24 Mei 2011).

KegiatanMei 2011

1 2 3 4

Pengumpulan data

Kunjungan Lokasi dan Observasi

Pengujian dan eksperimen

Analisa hasil

Pembuatan laporan

Daftar Pustaka

[1] Stallings, William. C., 2007, Data and Computer Communication, Singapore, Pearson Education, Inc.