BAB II TEORI DASAR
BAB II
LANDASAN TEORI
2.1
Perangkat Keras (Hardware)
2.1.1
Arsitektur Mikrokontroler AT89S52
AT89S52 merupakan mikrokontroler yang dikembangkan dari 8051
standar (semua pin dan instruksi assembler sesuai dengan standar 8051) oleh
Atmel Corporation. Mikrokontroler ini dirancang dengan teknologi CMOS dan memori non-volatile dari Atmel dengan memori program internal (memori flash) sebesar 8 KB yang bisa diprogram dalam sistem (In-System Programmable Flash Memory ISP). Penambahan fitur dari mikrokontroler standar di antaranya: 1.
Memori flash 8 KB yang bisa diprogram ulang sampai 1000 siklus
baca/tulis 2.
Fungsi penguncian memori program (program memori lock) untuk memproteksi isi memori program internal
3.
Bekerja pada frekuensi sampai 33 MHz
4.
RAM internal sebesar 256 byte
5.
Penambahan Timer 2
6.
Membutuhkan catu daya 4.5 – 5.5 Volt. Dengan penambahan fungsi-fungsi di atas, AT89S52 merupakan
mikrokontroler yang cukup handal untuk aplikasi-aplikasi sistem kendali atau yang lainnya. Memori flash internal sebesar 8 KB yang bisa diprogram ulang dalam sistem (ISP) memudahkan untuk merancang software.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
6
BAB II TEORI DASAR
2.1.2
Pengalamatan Memori dan Register pada MCS-51 Mikrokontroler MCS-51 memiliki beberapa buah ruang alamat memori
yang dapat dibagi menjadi : 1. Ruang alamat memori kode program (code address space), sebanyak
64KB. Ruang alamat memori ini biasanya ditempati oleh EPROM/ROM
internal IC mikrokontroler atau bisa juga ditempati oleh IC EPROM 2. Ruang alamat memori data internal yang dapat dialamati secara langsung,
yang terdiri atas RAM (Random Access Memory) sebanyak 128 byte dan
Special Function Register sebanyak 128 byte. RAM internal dan hardware register ini terletak di dalam IC 8051. Sebagian ruang alamat pada RAM
internal dapat diakses secara bit, dalam pengamatan mermori 1 byte sama dengan 8 bit dalam bilangan biner. 3.
Ruang alamat memori data eksternal sebanyak maksimal 64KB yang dapat ditambahkan oleh pemakai. Ruang alamat ini biasanya ditempati IC RAM. Perlu diketahui bahwa alamat memori kode program dan ruang alamat
memori data eksternal sebenarnya memiliki ruang alamat yang sama (overlap). Ruang alamat memori kode program dan ruang alamat memori data eksternal dialamati dari alamat 0000h sampai FFFFh. Sementara itu, memori-data internal dialamati dari alamat 00h sampai FFh. Rinciannya adalah alamat 00h sampai 7Fh dipakai untuk mengalamati RAM internal dan alamat 80h sampai FFh dipakai untuk mengalamati Special Function Register.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
7
BAB II TEORI DASAR
R0
R1
R2
R3
R4
R5
R6
R7
$00
R0
R1
R2
R3
R4
R5
R6
R7
$08
R0
R1
R2
R3
R4
R5
R6
R7
$10
R0
R1
R2
R3
R4
R5
R6
R7
$18
Bit No
Bit No
Bit No
Bit No
Bit No
Bit No
Bit No
Bit No
$00-$07
$08-$17
$18-$1F
$18-$1F
$20-$27
$28-$2F
$30-$37
$38-$3F
$20
Bit No
Bit No
Bit No
Bit No
Bit No
Bit No
Bit No
Bit No
$40-$47
$48-$4F
$50-$57
$58-$5F
$60-$67
$68-$6F
$70-$77
$78-$7F
$28 $30
Memori untuk keperluan umum
sebanyak $50 (80)byte dengan nomor memori
$30-$7F
$7F
Special Function Register(SFR) dengan nomor memori
$80
$80-$FF $FF Gambar 2.1 Peta Pengalamatan Memori-Data Internal
Seperti yang terlihat dalam denah memori-data gambar 2.1 diatas memoridata internal dibagi menjadi dua bagian. Alamat memori 00h sampai 7Fh merupakan memori seperti RAM meskipun beberapa bagian mempunyai kegunaan khusus, sedangkan alamat memori 80h sampai FFh dipakai sangat khusus yang dinamakan Special Function Register memori data nomor 00h sampai 7Fh bisa dipakai sebagai memori penyimpan data biasa, dibagi menjadi 3 bagian: 1. Alamat memori 00h sampai 18h selain sebagai memori data biasa, bisa pula dipakai sebagai register serba guna (General Purpose Register) 2. Alamat memori 20h samapai 2Fh selain sebagai memori data biasa, bisa dipakai untuk menyimpan informasi dalam level bit 3.
Alamat memori 30h sampai 7Fh (sebanyak 80 byte) merupakan memori data biasa, bisa dipakai untuk menyimpan data maupun dipakai sebagai Stack.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
8
BAB II TEORI DASAR
2.1.2.1 Register Serba Guna
Register serba guna ini (General Purpose Register) mempunyai alamat memori data 00h sampai 18h. memori sebanyak 32 byte ini dikelompokkan menjadi 4 kelompok register (Register Bank). 8 byte memori dari masing-masing
kelompok ini dikenali sebagai Register 0, Register 1, …. Register 7 (R0, R1, R2, R3, R4, R5, R6, R7).
Dalam penulisan program, memori-memori ini bisa langsung disebut
sebagai R0, R1, R2, R3, R4, R5, R6 dan R7, tidak lagi dengan nomor memori.
Dengan cara ini, instruksi yang terbentuk bisa lebih sederhana dan bekerja lebih cepat. Pengertian ini bisa diperjelas dengan contoh 2 instruksi berikut : MOV A, O4h
; instruksi 1
MOV A, R4
; instruksi 2
Instruksi pertama mempunyai makna ini memori data pada alamat 04h dikopikan ke Akumulator A, sedangkan instruksi kedua artinya isi R4 dikopikan ke Akumulator A. karena R4 menempati memori data nomor 4 maka kedua instruksi itu berakibat sama bagia akumulator A . 2.1.2.2 Special Function Register Register khusus SFR (Special Function Register) adalah satu daerah RAM dalam IC keluarga MCS-51 yang dipakai untuk mengatur perilaku MCS-51 dalam hal-hal khusus, misalnya tempat untuk berhubungan dengan port paralel P1 atau P3, dan sarana input/output lainnya, tapi tidak umum dipakai untuk menyimpan data, seperti memori data. Meskipun demikian, dalam hal ini penulisan program SFR diperlakukan persis dengan memori data. Untuk mengisi memori data pada alamat 60h dengan bilangan 0Fh, instruksi yang digunakan adalah MOV 60h, #0Fh. Sementara itu,
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
9
BAB II TEORI DASAR
untuk menyimpan 0Fh ke port 1 yang di SFR menempati memori data pada
alamat 90h, instruksi yang digunakan adalah MOV 90h,#0Fh.
Membandingkan kedua instruksi di atas bisa dimengerti dalam segi
penulisan program SFR dan diperlakukan persis dengan memori data. Meskipun
demikian, dalam mengakses memori data bisa dipakai dua cara, yakni pengaksesan alamat memori secara langsung (direct memory addressing) dan pengaksesan alamat memori secara tidak langsung (indirect memory addressing) bantuan R0 sampai R1. Akan tetapi, untuk SFR hanya bisa dipakai lewat
penyebutan nomor memori secara langsung (direct memory addressing).
2.1.2.3 Akumulator Sesuai dengan namanya, akumulator adalah sebuah register yang berfungsi untuk menampung (accumulate) hasil-hasil pengolahan data dari banyak instruksi MCS-51. Akumulator bisa menampung data 8 bit (1 byte) dan merupakan register yang paling banyak kegunaannya, lebih dari setengah instruksi-instruksi MCS-51 melibatkan akumulator. Instruksi – instruksi berikut memperjelas pengertian di atas: MOV A,#20h ADD A,#30h Instruksi pertama menyimpan nilai 20h ke akumulator. Instruksi kedua menambahkan 30h ke akumulator, hasil dar penjumlahan sebesar 50h ditampung di akumulator.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
10
BAB II TEORI DASAR
2.1.3
Keypad
Keypad merupakan suatu papan yang tersusun dari beberapa tombol dan
dihubungkan dalam susunan kolom dan baris. Terdapat bermacam – macam
keypad antara lain: Keypad 3 x 4
Keypad 4 x 4 dan
Keypad 4 x 6 .
Keypad dalam tugas akhir ini menggunakan Keypad 4 x 4 yang tersusun dari 16 tombol, yang terbagi dalam 4 kolom dan 4 baris. Tiap – tiap tombol yang ada di dalam keypad menghubungkan 1 buah kolom dengan1 buah baris. Contoh : Tombol 6
menghubungkan kolom 3 dengan baris 2
Tombol 8
menghubungkan kolom 2 dengan baris 3
Tombol F
menghubungkan kolom 1 dengan baris 4.
Keypad sering digunakan sebagai suatu input pada beberapa peralatan yang berbasis mikroprosessor atau mikrokontroler. Keypad sesungguhnya terdiri dari sejumlah saklar, yang terhubung sebagai baris dan kolom dengan susunan seperti yang ditunjukan pada gambar 2.2 dibawah ini.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
11
BAB II TEORI DASAR AT89S52
4 KOLOM= Scan Output 4 BARIS = Scan Input
P1.0=T2 P1.1=T2 EX P1.2 P1.3 P1.4 P1.5=MOSI P1.6=MISO P1.7=SCK RST P3.0=RXD P3.1=TXD P3.2=INT0 P3.3=INT1 P3.4=T0 P3.5=T1 P3.6=WR P3.7=RD XTAL2 XTAL1 GND=20
P1.1
P1.2
D
BARIS # 0
C
9
8
7
B
6
5
4
A
3
2
KOLOM
P1.0
P1.3
*
1
P1.7
P1.6 P1.5
P1.4
VCC=40 P0.0=AD0 P0.1=AD1 P0.2=AD2 P0.3=AD3 P0.4=AD4 P0.5=AD5 P0.6=AD6 P0.7=AD7 EA/VPP ALE/PROG
PSEN P2.7=A15 P2.6=A14 P2.5=A13 P2.4=A12 P2.3=A11 P2.2=A10 P2.1=A9 P2.0=A8
Keypad Tugas Akhir Teknik Refrigerasi dan Tata Udara
Gambar 2.2 Rangkaian Keypad 4 x 4
Agar mikrokontroler dapat melakukan scan keypad, dilakukan cara berikut: Pemasangan keypad diletakan pada satu port Port tersebut dibagi menjadi dua bagian, 4 bit output (untuk baris) dan 4 bit input (untuk kolom) Mikrokontroler mengeluarkan logika low “0” kesalah satu bit dari 4 bit yang terhubung kolom Mikrokontroler membaca 4 bit pada baris untuk menguji jika ada tombol yang ditekan pada kolom tersebut Sebagai konsekunsi selama tidak ada tombol yang ditekan, maka mikrokontroler akan melihat sebagai logika high “1” pada pin yang terhubung ke baris Tetapi jika ada penekanan pada salah satu tombol, maka pada salah satu baris akan berlogika low “0”.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
12
BAB II TEORI DASAR
2.1.4
Relay
Relay adalah saklar yang dikendalikan secara elektronik (electronically switch). Arus listrik yang mengalir pada kumparan relay akan menciptakan medan
magnet yang kemudian akan menarik lengan relay dan mengubah posisi saklar, sebelumnya terbuka menjadi terhubung. yang
Relay memiliki tiga jenis kutub yaitu, COMMON = kutub acuan, NC
(Normally Close) = kutub yang dalam keadaan awal terhubung pada COMMON,
dan NO (Normally Open) = kutub yang pada awalnya terbuka dan akan terhubung
dengan COMMON saat kumparan relay diberi arus listrik.
Berdasarkan jumlah kutub pada relay, maka relay dibedakan menjadi 4 jenis: SPST = Single Pole Singe Throw SPDT = Single Pole Double Throw DPST = Double Pole Single Throw DPDT = Double Pole Double Throw Pole adalah jumlah COMMON, sedangkan Throw adalah jumlah terminal output (NO dan NC). Sedikit menjelaskan, kata Normally disini berarti relay dalam keadaan non-aktif atau non-energized, atau gambarannya kumparan relay tidak dialiri arus. Jadi kontak Normally-Open (NO) adalah kontak yang pada saat Normal tidak terhubung, dan kontak Normally-Closed (NC) adalah kontak yang pada saat Normal terhubung.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
13
BAB II TEORI DASAR SPDT Relay Single-Pole DualTotem
COM
NO
NC
Relay Tugas Akhir Teknik Refrigerasi dan Tata Udara
Gambar 2.3 Relay SPDT
Pada
gambar
2.3
relay
SPDT
adalah
simbol
dari
komponen
relay SPDT (Single-Pole Dual-Totem) yang berarti memiliki sebuah kontak NO dan sebuah kontak NC dengan sebuah COMMON. Pada saat kumparan tidak dialiri arus, maka kontak NC akan terhubung dengan COM. Jika kumparan dialiri arus, maka kontak akan bergerak dari NC ke NO, sehingga NO akan terhubung dengan COM.
2.1.4.1 Rangkaian Driver Relay Pada umumnya, output dari mikrokontroler berarus rendah, sehingga dibutuhkan rangkaian tambahan berupa penggerak (driver) yang berupa electronic switch untuk bisa mengendalikan relay dan driver tersebut pun perlu ditambahkan suatu komponen tambahan yang dihasilkan oleh kumparan relay, seperti transistor, dioda yang diarahkan ke VCC.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
14
BAB II TEORI DASAR 5 VOLT
NO
NC
DI
common
PORT MIKRO
`
GND
Gambar 2.4 Rangkaian Driver Relay.
2.1.5 Motor DC Motor listrik merupakan perangkat elektromagnetis yang mengubah energi listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya memutarkan impeller pompa, fan, menggerakan kompresor pada sistem refrigerasi, memutarkan damper AHU dll. Motor listrik menjadi hardware (perangkat keras) utama dalam menggerakan sistem – sistem industri khususnya dalam bidang refrigerasi dan tata udara. Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Dalam aplikasinya seringkali sebuah motor digunakan untuk arah yang searah dengan jarum jam maupun sebaliknya. Untuk mengubah putaran dari sebuah motor dapat dilakukan dengan mengubah arah arus yang mengalir melalui motor tersebut. Secara sederhana seperti yang ada pada gambar,
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
15
BAB II TEORI DASAR
hal ini dapat dilakukan hanya dengan mengubah polaritas tegangan motor. Motor DC
Motor DC
Gambar 2.5 Dasar pengaturan arah putaran motor dc.
Bisa dilihat dari gambar 2.5 untuk mengubah arah putan motor dc bisa
mengubah kutub polaritas motor dc, jika sumber motor dc berada pada kutub yang sebenarnya maka motor akan berputar searah jarum jam, dan jika sumber motor dc berada pada kutub yang sebaliknya maka motor dc akan berputar kearah berlawanan jarum jam. 2.1.6
Power Supply Untuk Mikrokontroler Catu daya berfungsi untuk memberikan suplay tegangan, khususnya ke IC
mikrokontroler AT89S52, catu daya yang di gunakan adalah 5 Volt dc. Untuk menurunkan tegangan trafo dari 12 V menjadi 5 V maka di gunakan IC voltage regulator LM7805. Pada rangkaian catu daya, dioda 1N4001 berfungsi sebagai penyearah gelombang penuh dari ac ke dc dengan arus sebesar 1 Ampere, sedangkan kapasitor 1003F dan 100nF berfungsi sebagai filter tegangan dc atau penghalus pulsa-pulsa tegangan yang dihasilkan oleh dioda penyearah. Skema rangkaian catu daya.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
16
BAB II TEORI DASAR
Gambar 2.6 Skematik Power Supply Catu Daya Mikrokontroler
Sumber : www.Sharekan.wordpress.com
2.2 Perangkat Lunak (Software)
2.2.1
Software Pemograman MIDE-51 Mikrokontroler MCS51 banyak digunakan dalam pembuatan alat-alat
pengendali. Pada pembuatannya diperlukan software yang digunakan untuk memprogram mikrokontroler tersebut. Banyak sekali program yang dapat digunakan untuk pemrograman mikrokontroler MCS51 ini, salah satunya adalah MIDE-51. Software MIDE-51 ini telah dilengkapi dengan compiler untuk bahasa pemrograman assembler dan C. Compiler yang digunakan untuk assembler adalah asem51 sedangkan untuk bahasa C menggunakan SDCC buatan sandeep duta. Selain itu juga terdapat simulator yang berfungsi untuk melihat hasil pembutan program yaitu TS Control Simulator 51 dan JSIM with 8051. Pada MIDE-51 juga telah dilengkapi dengan fasilitas untuk link ke program-program downloader MCS51. Dengan fasilitas yang terdapat dalam MIDE-51 ini, sudah cukup untuk melakukan experimen dengan pemrograman mikrokontroler MCS51. Software MIDE-51 dapat di download di internet melalui alamat www.opcube.com, kapasitas software ini hanya sekitar 4 Mb.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
17
BAB II TEORI DASAR
Gambar 2.7 Software MIDE-5.
2.2.2
Pengenalan Bahasa Assembly Bahasa Assembly adalah bahasa pemrograman tingkat rendah. Dalam
pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis yang pertama adalah bahasa pemrograman tingkat tinggi (high level language) dan jenis yang kedua adalah bahasa pemrograman tingkat rendah (low level language).
Kelebihan Bahasa Assembly: 1. Ketika di-compile lebih kecil ukuran 2. Lebih efisien/hemat memori 3. Lebih cepat dieksekusi. Kesulitan Bahasa Assembly: 1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang dibanding
bahasa tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak. 3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
18
BAB II TEORI DASAR
Dalam program bahasa assembly terdapat 2 jenis yang kita tulis dalam program
yaitu:
1. Assembly Directive (yaitu merupakan kode yang menjadi arahan bagi assembler/compiler untuk menata program). 2. Instruksi (yaitu kode yang harus dieksekusi oleh CPU mikrokontroler).
2.2.3
Pemograman Dasar Assembly Mikrokontroler MCS51
Kode program (perangkat lunak) mikrokontroler disusun dari kumpulan
instruksi yang setara dengan kalimat perintah bahasa manusia yang hanya terdiri
atas predikat dan objek. Dengan demikian, tahap pertama pembuatan progaram
pengendalian mikrokontroler dimulai dengan pengenalan dan pemahaman predikat (kata kerja) dan objek apa saja yang dimiliki mikrokontroler. Objek dalam pemograman mikrokontroler adalah data yang tersimpan didalam memori, register dan input/output. Sementara itu, „kata kerja‟ yang dikenal pun secara umum dikelompokan dan beberapa hal khusus. Kombinasi dari „kata kerja‟ dan objek itulah yang membentuk perintah pengatur kerja mikrokontroler. Instruksi MOV A,P1 merupakan contoh sebuah instruksi dasar yang sangat spesifik. MOV merupakan „kata kerja‟ yang memerintahkan pengopian data – perdikat dalam kalimat perintah ini. Sementara itu, objek adalah data yang dikopikan, dalam hal ini adalah data yang ada di dalam port P1 dikopikan ke Akumulator A. 2.2.3.1 Instruksi – instruksi dalam MCS51 Instruksi – instruksi tersebut dikelompokan sebagai berikut: 1. Kelompok Pengopian Data 2. Kelompok Aritmetika 3. Kelompok Logika 4. Kelompok Percabangan.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
19
BAB II TEORI DASAR
2.2.3.2 Kelompok Pengopian Data
Kode dasar untuk kelompok ini adalah MOV, singkatan dari MOVE yang artinya memindahkan. Meskipun demikian, lebih cepat dikatakan perintah ini mempunyai makna pengopian data.
Tabel 2.1 Contoh Instruksi Pengopian Data
Instruksi
MOV A,R7
Data asal dari register serbaguna R7 di kopikan / dipindahkan ke dalam Akumulator A.
Arti
2.2.3.3 Kelompok Aritmetika Instruksi – instruksi aritmetika digunakan untuk melakukan operasi – operasi aritmetika seperti, penjumlahan, pengurangan dan perkalian. Tabel 2.2 Contoh dan Fungsi Instruksi Aritmetika
Instruksi
Bentuk Instruksi
Arti
Penjumlahan
Add A,Rn
Penjumlahan isi register R0 – R7 dengan isi akumulator, hasil disimpan di akumulator A
Pengurangan
Subb A,Rn
Pengurangan A oleh R0 – R7. Hasil simpan di akumulator A.
Perkalian
Mul AB
Perkalian isi register A dan register B.
pembagian
Div AB
Pembagian register A dengan B. hasil akan disimpan di A, sedangkan sisa akan disimpan di B
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
20
BAB II TEORI DASAR
2.2.3.4 Kelompok Logika
Instruksi logika adalah instruksi yang akan melakukan operasi – operasi logika, seperti logika AND, OR, dan XOR. Operasi komplemen akumulator. Tabel 2.3 merangkum instruksi – instruksi logika ini.
Tabel 2.3 Contoh dan Fungsi Instruksi Logika
Instruksi
Bentuk Instruksi
Logika AND
Anl A,#data
AND-kan A dengan konstanta.
Logika OR
Orl C,#data
OR-kan C dengan konstanta.
Logika XOR
Xrl A,Rn
Arti
XOR-kan A dengan salah satu register R0 – R7.
komplemen
CPL P1.1
Komplemenkan pada port pin P1.1
Crl P1.1
Clear
Clear (nol kan) pada port pin P1.1
Operasi set bit
Setb P1.1
Set P1.1
2.2.3.5 Kelompok Percabangan Kelompok percabangan dibagi menjadi 2 yaitu : 1. Instruksi Lompat Tak Bersyarat 2. Instruksi Lompat Bersyarat. Untuk Instruksi Lompat Tak Bersyarat bisa dilihat pada tabel 2.4 Tabel 2.4 Contoh dan Fungsi Instruksi Lompat Tak Bersyarat
Bentuk Instruksi
Arti
Sjmp Scan_keypad
Lompat pendek (short jump). Ke subrutin scan_keypad
Ajmp Scan_keypad
Lompat absolut (absolute jump). Ke subrutin scan_keypad
Ljmp Scan_keypad
Lompat jauh (long jump). Ke subrutin scan_keypad
Jmp delay_1s
Instruksi yang hampir sama dengan Ljmp, lompat ke delay 1 detik.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
21
BAB II TEORI DASAR
Untuk Instruksi Lompat Bersyarat bisa dilihat pada tabel 2.5 Contoh dan
Fungsi Instruksi Lompat Bersyarat.
Tabel 2.5 Contoh dan Fungsi Instruksi Lompat Bersyarat.
Bentuk Instruksi
Jz rel
Arti Program akan lompat ke alamat rel jika akumulator nol,
jika
selanjutnya.
tidak
nol,
program
melanjutkan
ke
alamat
Jnz rel
Program akan lompat ke alamat rel jika akumulator tidak
nol, jika nol, program melanjutkan ke alamat selanjutnya.
Jc rel
Program akan lompat ke alamat rel kalau bit carry ( C ) di set.
jika
tidak,
program
melanjutkan
ke
alamat
selanjutnya. Jb Kolom1,
Program akan lompat ke alamat subrutin Tombol 2 kalau
Tombol 2
Kolom1 tidak di set bit, jika di set bit, program melanjutkan ke alamat selanjutnya.
Jbc bit, rel
Program akan lompat ke alamat rel kalau bit di set setelah itu bit akan di nolkan (clear). jika tidak, program melanjutkan ke alamat selanjutnya.
Cjne A,#data,rel
Program akan lompat ke alamat rel jika akumulator tidak sama dengan konstanta, jika sama, program melanjutkan ke alamat selanjutnya.
Djnz Rn,rel
Kurangi satu isi register Rn (n=0,1,2,….,7) jika belum nol melompat ke alamat rel, jika sudah nol lanjutkan ke alamat selanjutnya.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
22
BAB II TEORI DASAR
2.2.3.6 Instruksi – instruksi CALL, RET, dan RETI
Dalam alur program bahasa assembler yang terdiri atas subrutin – subrutin program, mikrokontroler akan mengerjakan perintah yang ada dalam subrutin tersebut. CALL
adalah instruksi untuk memanggil subrutin dan RET, RETI
adalah kode akhir dalam subrutin. Contoh program: Delay_1detik :
Mov R0, #100
RET Delay_3detik :
Call Delay_1detik
panggil delay 1 detik
Call Delay_1detik
panggil delay 1 detik
Call Delay_1detik
panggil delay 1 detik
RET END
Dalam instruksi diatas bisa dilihat bahwa RET merupakan kode simbol akhiran bahwa program adalah subrutin, dan CALL adalah instruksi dimana untuk memanggil subrutin.
Teknik Refrigerasi dan Tata Udara Politeknik Negeri Bandung
23