• Tidak ada hasil yang ditemukan

BAB 2 DASAR TEORI. membantu perkembangan didunia elektronika. Arsitektur mikrocontroler banyak

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 DASAR TEORI. membantu perkembangan didunia elektronika. Arsitektur mikrocontroler banyak"

Copied!
30
0
0

Teks penuh

(1)

5 BAB 2

DASAR TEORI

2.1 MIKROKONTROLER AT89C51

2.1.1 Gambaran Umum Mikrokontroler sebagai teknologi semi konduktor, kehadirannya sangat

membantu perkembangan didunia elektronika. Arsitektur mikrocontroler banyak kandungan transistor yang terintegrasi, sehingga mendukung dibuatnya rangkaian elektronika yang lebih simpel tetapi dalam rangkaian sebenarnya dengan memakai transistor maka rangkaian ini sangat besar.

Mikrokontroler dapat diproduksi secara masal sehingga harganya menjadi lebih murah dibandingkan dengan mikroprosesor, Tetapi tetap memiliki kelebihan yang bisa diandalkan. Mikrokontroler memiliki perbandingan ROM dan RAM nya yang besar, artinya program control disimpan dalam ROM yang ukurannya relative lebih besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk register-register yang digunakan dalam mikrokontroler yang bersangkutan.

Pengunaan utama dari mikrokontroler adalah untuk mengontrol operasi dari mesin. Strategi kendali untuk mengontrol mesin tertentu dimodelkan dalam program algoritma pengaturan yang ditulis dalam bahasa assembly. Program tersebut selanjutnya di translasi ke kode mesin digital dan disimpan selanjutnya di dalam media penyimpanan digital yang disebut ROM. Mikrokontroler adalah Central

(2)

processing dalam satu 2.1.2 Ars Pada Gamb pula akum unit (CPU chip. sitektur Mi Gamb bar 2.1 terlih mulator, reg U) yang dis ikrokontrol bar 2.1 Diag hat bahwa t gister, RAM 6 sertai memo ller AT 89C gram Blok M terdapat 4 p M, stack p ori serta sa C51 Mikrokontro port untuk in pointer, Ar arana Input oler AT89C nput output rithmetic L t/output dan C51 t data, serta Logic Unit n dibuat a tersedia (ALU),

(3)

7

pengunci (latch) dan rangkaian osilasi yang membuat 89C51 dapat beroperasi hanya dengan 1 keping IC.

Mikrokontroler AT 89C51 merupakan produk ATMEL, memiliki fitur sebagai berikut:

1. Sebuah central processing unit 8 bit 2. Osilator Internal dan rangkaian pewaktu

3. 4 kbyte memori program yang dapat ditulis hingga 1000 kali 4. 128 Byte memori RAM internal

5. 32 jalur input-output (4 buah port parallel I/O) 6. 2 Timer/ counter 16 bit

7. 2 data pointer

8. Lima buah jalur interupsi (dua buah interupsi eksternal dan 3 buah interupsi internal)

9. ISP (In system Programmable) Flash memori 4 Kbyte 10. Port serial full dupleks

11. Kemampuan untuk melaksanakan operasi aritmetika dan operasi logika 12. Kecepatan melaksanakan instruksi per siklus 1 mikrodetik pada

frekwensi12MHz.

Keluarga mikrokontroler adalah suatu alat elektronika yang paling populer saat ini. Keluarga ini diawali oleh Intel yang mengenalkan IC mikrokontroler type 8051 pada awal tahun 1980-an, 8051 termasuk sederhana dan harganya murah sehingga banyak digemari.

(4)

8

Sampai kini sudah ada lebih dari 100 macam mikrokontroler turunan 8051, sehingga terbentuklah sebuah keluarga besar mikrokontroler dan disebut sebagai MCS51.

ICAT89C51 hanya memerlukan tambahan 3 kapasitor,1 resistor dan 1 Xtal serta catu daya 5 Volt. Kapasitor 10 µF dan resistor 10 Kohm dipakai untuk rangkaian reset, dengan adanya rangakaian Reset ini AT89C51 otomatis di reset begitu rangkaian menerima catu daya. Xtal dengan frekwensi maksimum 24 Mhz dan 2 kapasitor 30 pico Farad dipakai untuk melengkapi rangkaian osilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.

2.1.3 Fungsi-fungsi kaki pada Mikrokontroler AT89C51

IC 8051 mempunyai 40 kaki, dengan 32 kaki dipakai sebagai port-port multiguna, kaki sebagai sumber tegangan, kristal, dan kaki-kaki untuk kendali(pembacaan memori). Gambar 2.2 memperlihatkan diagram pin mikrokontroler AT89C51 Berikut adalah fungsi-fungsi kaki mikrokontroler 8051 standar.

1. P1.0-P1.7 (port 1)

Port 1 merupakan port 8 bit dua arah (input/output). Port satu bisa diakses per-bit.

2. Port 3 merupakan port 8 bit dua arah (input/output). Selain berfungsi sebagai port I/O, P3 juga mempunyai fungsi khusus seperti pada tabel 2.1

(5)

9

Tabel 2.1 Fungsi khusus port 3

Port Fungsi khusus

P3.0 RXD (merupakan masukan untuk port serial) P3.1 TXD (merupakan output dari port serial)

P3.2 INT0 merupakan masukan untuk interupsi eksternal 0 P3.3 INT1, merupakan masukan untuk pulsa external 1 P3.4 T0 merupakan masukan untuk pulsa external timer 0 P3.5 T1 merupakan masukan untuk pulsa eksternal timer 1

P3.6 WR merupakan sinyal tulis (write strobe) untuk menulis data eksternal. Aktif rendah

P3.7 RD merupakan sinyal baca (Read strobe) untuk membaca data dari memori Eksternal. Aktif rendah.

3. Port2.0-Port2.7

Port 2 mempunyai lebar 8 bit dua arah atau input/output. Selain sebagai input dan output Port 2 memiliki fungsi khusus yaitu pada saat menjalankan program dari memori program eksternal atau pada saat mengakses memori data eksternal yang menggunakan perintah 16 bit. Atau alamat orde tinggi A8-A15.

4. Pin 32 sampai 39 (Port 0)

Port 0 merupakan Port keluaran/masukan (I/0). Sebagai Port keluaran,. Port 0 dapat digunakan sebagai masukan-masukan berimpedansi tinggi. Selain sebagai input output P0 memiliki fungsi khusus yaitu sebagai bus data (DO-D7) dan bus alamat orde rendah (A0-A7) yaitu pada saat pemakaian memori exsternal.

(6)

10

5. RST berfungsi sebagai mengembalikan kerja mikro ke awal program yang berada di ROM.

6. XTAL 1 dan XTAL 2

XTAL 1 merupakan keluaran dari rangkaian penguat osilator internal, sedangkan XTAL 2 merupakan masukan kepenguat osilator internal, sebuah kristal dan dua buah kapasitor yang dihubungkan ke pin ini sudah cukup untuk menyediakan sinyal detak (clock) untuk mikrokontroler.

7. VCC dan GND

VCC dan GND merupakan pin untuk tegangan DC. Mikrokontroler 8051 standar membutuhkan tegangan DC sebesar 5 Volt agar bisa bekerja dengan baik.

8. Pin 29 (PSEN)

PSEN (Program Store Enable) adalah pulsa pengaktif untuk membaca memori luar.

(7)

11 9. ALE/PROG

Berfungsi untuk demultiplexer pada saat Port 0 bekerja sebagai data bus (pengaksesan memori eksternal). Pada paruh pertama memory cycle, Pin ALE mengeluarkan sinyal latch yang menahan alamat ke eksternal register. Pada paruh kedua memory cycle, Port 0 digunakan sebagai data bus. Jadi fungsi utama dari ALE adalah untuk memberikan signal ke IC latch (bisa 74CT573) agar menahan/ menyimpan address dari port 0 yang akan menuju memori eksternal, dan selanjutnya port 0 akan mengeluarkan data melalui port 0 juga. 10. EA /VPP

EA (Eksternal Access) digunakan untuk memilih penggunaan memori. Jika EA high maka yang dipilih adalah memori internal, jika EA low atau dihubung ke GND maka yang dipilih atau memori yang dipakai adalah memori luar.

2.1.4 Register Fungsi Khusus a. Akumulator

ACC digunakan sebagai register utama dalam proses aritmatik dan penyimpanan data sementara. Dalam penulisan instruksi ACC ditulis A. ACC menempati alamat E0h. Register ini bisa diakses per byte maupun per bit. b. Register B

Register B menempati alamat F0h. Register ini dipakai bersama-sama dengan Register A pada proses aritmatik (perkalian dan pembagian). Register B juga bisa diakses Per byte dan per bit.

(8)

12 c. PSW (Program Status Word)

Program Status Word atau PSW berisi bit-bit yang berkaitan dengan kondisi CPU. Status yang tersimpan dalam PSW meliputi : carry bit, auxiliary carry (untuk operasi BCD), dua bit pemilih bank register, overflow flag, parity, dan dua flag status yang bisa didefiniskan sendiri (user definable).

d. P0 - P3 (Register Port)

Register port merupakan SFR yang mengatur kerja port-port 8051(P0-P3). Register ini merupakan alamat Latch dari masing-masing port. Menulis atau membaca latch ini sama dengan menulis atau membaca latch yang bersangkutan sehingga data data bisa ditulis ke dan dibaca dari masing-masing port 8051.

Mov 80h,#45h Sama artinya dengan Mov P0,#45h

e. Data Pointer (DPTR) dan Stack Pointer (SP)

Data pointer (DPTR) adalah register 16 bit yang biasa dipakai untuk pengalamatan data 16 bit. Misalnya pada saat membaca atau menulis RAM eksternal (dengan perintah MOVX). DPTR menempati dua alamat dalam memori SFR 82h dan 83h. DPTR bisa diakses sebagai register 8 bit dengan nama DPL (DPTR bit 0 - bit 7) dan DPH (DPTR bit 8-bit 15). DPTR tidak bisa diakses per bit.

Stack pointer merupakan register 8 bit, dipakai untuk menyimpan data sementara pada saat perintah push, pop dan call, ret. Misalnya suatu rutin yang

(9)

13

memakai register A akan memanggil (call) subrutin yang juga memakai register A, maka agar data register A pada rutin pertama tidak dimodifikasi oleh subrutin yang dipanggil, data register A harus disimpan dulu di SP (dengan perintah push).

Setelah subrutin selesai dikerjakan, data register A yang tersimpan di SP di baca kembali (melalui perintah pop) dan disimpan di register A. Perintah call akan menyimpan isi PC (program counter) ke dalam SP dan mengambilnya kembali setelah instruksi ret. Pada saat reset SP memiliki alamat 07h, namun karena SP akan ditambahkan satu sebelum data disimpan melalui perintah push, tumpukan data yang disimpan akan dimulai pada alamat 08h. Alamat ini menempati memori internal 8051 SP tidak bisa dialamati per bit.

2.1.5 Struktur Memori

Mikrokontroler MCS-51 memiliki kendali yang berbeda untuk mengakses memori RAM atau memori data dan ROM atau memori program. Kendali untuk memori program adalah PSEN dan kendali untuk memori data adalah RD. Mikrokontroler MCS-51 memiliki lebar bus alamat 16 bit, sehingga memori dapat diakses sebesar 2×64 KB. Memori program internal dipakai jika Pin EA dihubungkan ke VCC. Sedangkan kalau EA dihubungkan ke GND maka memori program akan diakses eksternal. Untuk memori data internal MCS-51 adalah sebesar 128 byte. Jika dipakai memori data Eksternal dapat diakses sebesar 64 KB.

(10)

14 2.1.5.1 Memori RAM

Pemakaian RAM harus diperhatikan agar tidak tumpang tindih dengan memori stack pointer (SP). Salah satu kesalahan mikrokontroler jika Pemakaian RAM tumpang tindih dengan SP adalah memori pada RAM internal akan hilang jika di reset. Tabel 2.2 memperlihatkan Struktur RAM 128 byte.Memori internal RAM 128 byte bisa dibagi menjadi 3 area:

Tabel 2.2 Struktur RAM 128 byte

30H-7FH 20H-2FH 00H-1FH

1. Bank-bank Register

Bank register dibagi menjadi 4 grup yaitu bank 0 sampai bank 3. masing masing bank menempati alamat sebesar 8 byte. Tabel 2.3. adalah susunan bank-bank register.

Tabel 2.3 Susunan bank-bank register Alamat Bank Register RS1,RS0

00-07 Bank 0 00

08-0F Bank 1 01

10-17 Bank 2 10

18-1F Bank 3 11

Area scratch pad 80 byte

Area yang bisa dialamati per Bit (16 byte)

Bank-bank register (32 Byte)

(11)

15

Masing-masing alamat dalam satu grup diberi nama R0-R7. Alamat R0-R7 ditentukan oleh Bank register yang aktif saat itu.

Semua alamat R0-R7 bisa di alamati dengan model pengalamatan langsung. R0 dan R1 juga bisa dialamati dengan model pengalamatan tak langsung. Pada model pengalamatan tak langsung R0 dan R1 menyimpan alamat RAM internal yang akan diakses.

2. Memori Yang Bisa Dialamati Per-Bit

Area ini menempati alamat 20H-2FH (16 Byte) sebagai byte dan 00H-07FH (128bit) sebagai alamat bit. Area memori ini berfungsi untuk menyimpan tipe data bolean atau 2 keadaan.

Ada 2 cara untuk mengakses memori ini.

- Cara mengakses sebagai byte bisa dilakukan dengan pengalamatan langsung, misal. Mov 20H, #20H. Akan menulis data 45 H ke alamat 20H.

- Pengaksesan secara bit dilakukan dengan mengakses alamat bit yang bersangkutan,misal.

Mov C,13H

Akan memindahkan alamat pada bit ke-13 ke bit C (carry). Alamat 13H adalah bit ke-3 dari alamat 22H. Bahasa assembler MCS-51 memiliki penulisan yang lain untuk mengakses bit ke-3 yaitu 22.3H,sehingga

(12)

3. Are alam han lang 2.1.5.2 M R catu daya, langsung re dengan pen sebagai me bekerja. 2.1.6 An ea Memori Area me mat paling a nya bisa diak

gsung. emory RO ROM (read dipakai un eset dan ak nggunaanya emori progr ntar Muka Gambar 2 Scratch Pa emori ini y atas RAM i kses sebaga M Only mem ntuk menyim an menjalan a ROM dis ram dan tida

Memori E 2.3 89C51 m 16 atch ang disebu internal seb ai byte deng mory) isinya mpan progr nkan progra ebut sebaga ak bisa di t Eksternal mengakses t area scrat besar 80 byt gan mode p a tidak beru am, Begitu am-program ai memori p tulis ke RO EPROM da tch patch m te (alamat 3 pengalamata ubah meski u catu daya m yang ada program. M OM saat mik an RAM Ek memory me 30H-7FH). an langsung ipun IC keh ada maka pada ROM Memori ROM krokontroler ksternal enempati Area ini g dan tak hilangan IC akan M. Sesuai M hanya r sedang

(13)

17

Memori program (ROM) dan memori data (RAM) eksternal diakses dengan menggunakan P0 dan P2 sebagai bus data dan bus alamat. P0 akan menyediakan jalur data yang di-multipleks dengan jalur alamat orde rendah (A0-A7), dan P2 menyediakan jalur alamat orde tinggi (A8-A15). Konfigurasi pengaksesan memori eksternal ditunjukkkan pada gambar 2.2. (EFROM 64 KB dan RAM 32 KB). Konfigurasi ini memisahkan antara memori program(ROM) dengan Memori data (RAM).Kendali sinyal baca untuk ROM adalah PSEN sedangkan RAM mendapat sinyal baca dan sinyal tulis dari P3.7(RD) dan P3.6(WR), sementara EPROM tidak mendapat sinyal kendali tulis. Pin EA dihubungkan ke ground sehingga 8051 hanya akan melaksanakan perintah-perintah yang tersimpan di EPROM eksternal.

P0, selain dihubungkan ke jalur data EPROM dan RAM, juga dihubungkan dengan masukan latch agar alamat orde rendah (A0-A7) yang dikeluarkan oleh P0 bisa dipisahkan dari jalur data EPROM. Pada saat P0 mengeluarkan alamat yang valid, ALE akan memberikan pulsa sehingga sehingga IC latch akan menyimpan alamat ini dan memberikannya ke jalur Alamat EPROM dan RAM. Bersamaan dengan itu, P2 akan mengeluarkan alamat orde tinggi (A8-A15) yang secara langsung terhubung dengan jalur alamat EPROM dan RAM.

PSEN akan diaktifkan 2 kali setiap satu siklus mesin saat membaca program dari EPROM eksternal. Saat PSEN aktif (berlogika 0) EPROM akan mengeluarkan data yang diterjemahkan sebagai perintah yang harus dijalankan oleh mikrokontroler. Pada saat mengakses RAM, PSEN berada pada logika tinggi.

(14)

18

Penulisan ke RAM dilakukan dengan mengaktifkan sinyal tulis (RD=1 dan WR=0), CPU akan mengirimkan data ke RAM setelah terlebih dahulu mengirimkan alamat RAM. Yang akan dituliskan. Sementara itu, pembacaan dilakukan dengan mengaktifkan sinyal baca (RD=0 dan WR=1), CPU akan memberikan alamat RAM

yang akan dibaca, mengaktifkan sinyal baca dan membaca data RAM dari jalur data. 2.1.7 Osilator

Osilator berfungsi untuk menyediakan sinyal clock dan pewaktuan bagi semua perangkat internal 8051. Untuk menyediakan sinyal Clock digunakan dengan dua cara yaitu:

1. Dengan menggunakan pembangkit frekwensi eksternal seperti pada gambar 2.4

Gambar 2.4 Pemakaian osilator eksternal

- Pin Xtal satu pada mikrokontroler 8051 dihubungkan ke keluaran pembangkit frekwensi eksternal.

- Pin Xtal dua dibiarkan mengambang.

- Pin Ground pada pembangkit frekwensi eksternal dihubungkan ke Ground pada mikrokontroler 8051.

(15)

19

2. Dengan menggunakan Kristal dan 2 kapasitor 30 pF dan 47 pF, Seperti pada gambar 2.5

Hal yang paling mendasar dari osilator sebenarnya adalah untuk menentukan siklus mesin. Siklus mesin adalah waktu minimum yang diperlukan oleh mikrokontroler untuk menjalankan satu perintah. Siklus mesin ini akan menentukan kecepatan mikrokontroler (seberapa cepat mikrokontroler menjalankan suatu perintah). Satu siklus mesin mikrokontroler 8051 adalah 12 kali periode frekwensi osilator (dengan frekwensi 12 Mhz), maka satu siklus mesin adalah 1/12 dikali 12 Mhz.

Gambar 2.5 Pembangkit sinyal clock internal

Jadi kecepatan satu siklus mikrokontroler 8051 jika frekwensi pada XTAL1 12 Mhz adalah 1 Mhz atau 1 mikro detik. Berarti untuk melakukan satu perintah mikrokontroler 8051 hanya dalam satu mikro detik. Atau 1 juta perintah dalam satu detik.

2.2 Central Processing Unit (CPU)

CPU terdiri atas dua bagian, yaitu unit pengendali (control unit) serta unit aritmetika dan logika (ALU).

(16)

20

Fungsi utama unit pengendali adalah mengambil, mengkode, dan melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori. Unit pengendali menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakkan operasi, aliran, dan instruksi program.Unit aritmetika dan logika berfungsi untuk melakukan proses perhitungan yang diperlukan selama program dijalankan serta mempertimbangkan suatu kondisi dan mengambil keputusan yang diperlukan untuk instruksi-instruksi

berikutnya. 2.2.1 Penggunanaan Softwere 8051 IDE

Softwere 8051 IDE ini digunakan untuk menulis program dalam bahasa assembler. Setelah program assembler selesai ditulis kemudian di-save dan di assemble. Program di assemble dengan tujuan untuk mengecek

Gambar 2.6 Softwere 8051 IDE

kesalahan penulisan. Jika masih ada kesalahan penulisan, maka softwere 8051 memberi peringatan, sehingga program dapat diubah sampai tidak ada pesan peringatan lagi.

(17)

21 2.2.2 Penggunaan Softwere Downloader

Softwere downloader digunakan agar downloader dapat mendownload program assembler ke mikrokontroler AT89C51. Softwere dapat dijalankan jika komputer terhubung dengan alat downloader beserta mikrokontroler yang digunakan.

Gambar 2.7 DT-HIQ Programmer

Cara menggunakan softwere downloader adalah dengan meng-klik open file untuk mengambil program assembler dari hasil kompilasi, kemudian klik Auto programming untuk mengisikan hasil kompilasi tersebut ke mikrokontroler. 2.3 Mode-Mode Pengalamatan

Data atau operan bisa berada di tempat yang berbeda sehingga dikenal beberapa cara untuk mengakses data tersebut. Inilah yang dikenal sebagai mode pengalamatan. Beberapa mode pengalamatan yang dikenal antara lain:

(18)

22

2.3.1 Mode Pengalamatan Segera (immediate addressing mode)

Mode pengalamatan ini menggunakan konstanta. Data konstanta ini merupakan data yang menyatu dengan instruksi. Contoh instruksinya:

MOV A, #20 h

Instruksi tersebut diatas mempunyai arti bahwa data konstantanya, yaitu 20h perlu disalin ke akumulator. Tanda ‘#’ dipakai untuk menunjukan bahwa data berupa konstanta.

2.3.2 Mode Pengalamatan Langsung (direct addressing mode)

Cara ini dipakai untuk menunjuk data yang berada di suatu lokasi memori. Contoh instruksinya:

MOV A, 30h

Instruksi ini mempunyai arti agar data pada alamat 30h diambil dan dipindahkan ke akumulator. Bila diperhatikan, maka kita akan bisa lihat bahwa instruksi diatas tidak menyertakan tanda ‘#’. Tanpa tanda ‘#’, maka data diartikan sebagai alamat memori.

2.3.3 Mode Pengalamatan Tidak Langsung (indirect addressing mode)

Mode pengalamatan ini dipakai untuk mengakses data yang alamatnya berada dalam suatu register. Contoh instruksi:

MOV A, @R0

Arti dari instruksi tersebut adalah data yang alamatnya berada di register R0 disalin ke akumulator. Tanda “@” menyatakan bahwa alamat lokasi data

(19)

23

berada dalam suatu register. Jadi data tersebut sendiri tidak berada di R0. Yang berada di R0 adalah alamatnya.

2.3.4 Mode Pengalamatan Register (register addressing mode)

Mode pengalamatan ini dipakai untuk mengakses suatu data yang tersimpan dalam register. Contoh instruksi:

MOV A, R0

Arti dari instruksi diatas adalah bahwa data pada register R0 disalin ke akumulator. Jadi, berbeda dengan mode pengalamatan tidak langsung yang menjadikan register sebagai tempat penyimpanan alamat data, maka pada mode pengalamatan register ini, data disimpan langsung di register.

2.3.5 Mode Pengalamatan Berindeks

Mode pengalamatan ini dipakai untuk mengakses data yang tersimpan dalam memori program. Seperti yang telah dibahas sebelumnya, memori program bisa menyimpan data yang bisa diakses hingga 64 Kb. Keuntungan dari menyimpan data di memori program adalah karena memori program berupa ROM (non-volatile) sehingga data tersimpan terus

menerus. Contoh instruksi: MOVC, A, @A + DPTR

Arti instruksi diatas adalah data yang lokasinya disimpan di A+ DPTR dipindahkan ke akumulator. Perhatikan bahwa perintah yang digunakan adalah MOVC, bukan MOV. MOVC menandakan bahwa data yang diakses berada di memori program sedangkan MOV digunakan untuk mengakses memori data.

(20)

24 2.4 Bus-Bus Pada AT89C51

1. Bus Alamat

Bus alamat berfungsi sebagai lintasan saluran pengalamatan antara alat dengan sebuah computer. Pengalamatan ini harus ditentukan terlebih dahulu untuk menghindari terjadinya kesalahan pengiriman sebuah instruksi dan terjadinya bentrok antara dua buah alat yang bekerja secara bersamaan.

2. Bus Data

Bus data merupakan sejumlah lintasan saluran keluar-masuknya data dalam suatu mikrokontroler. Pada umumnya saluran data yang masuk sama dengan saluran data yang keluar.

3. Bus Kontrol

Bus control atau bus pengendali ini berfungsi untuk menyerempakkan operasi mikrokontroler dengan operasi luar.

2.5 INSTRUKSI-INSTRUKSI DALAM BAHASA ASEMBLER

Beberapa instruksi dasar yang umum digunakan pada pemrograman mikrokontroler AT89C51 adalah:

1. MOV, MOVC DAN MOV X

- Instruksi MOV digunakan untuk menyalin data antara 2 operand.

- Instruksi MOVC digunakan untuk menyalin data yang terdapat pada memori program internal.

(21)

25

- Instruksi MOVX digunakan untuk menyalin data yang terdapat pada memori program eksternal.

Tabel 2.4 MOV, MOVC DAN MOV X Contoh syntax Keterangan

MOV A,R1 Salin nilai R1 ke akumulator

MOV A,@R1 Salin isi lokasi yang ditunjuk R1 ke A MOV A,P1 Salin data dari port 1 ke A

MOV P1,A Salin data pada Akumulator ke A MOVC

A,@X+DPTR Salin data int.yang ditunjuk DPTR ke A MOVX A,@DPTR Salin data eks, yang ditunjuk DPTR ke A

MOVX @DPTR,A Salin data Akumulator ke lokasi yang ditunjuk DPTR

2. ADD DAN SUBB

1. Instruksi ADD digunakan untuk melakukan operasi penjumlahan Akumulator dengan suatu operand dan hasilnya disimpan dalam Akumulator.

2. Instruksi SUBB digunakan untuk melakukan operasi pengurangan Akumulator dengan suatu operand dan hasilnya disimpan dalam Akumulator

Tabel 2.5 Instruksi ADD DAN SUBB

Contoh Syntax Keterangan

ADD A,#20 A =A+20

ADD A,@R0 A =A+(R0)

SUBB A,B A =A-B

(22)

26 3. MUL AB DAN DIV AB

- Instruksi MUL AB digunakan untuk melakukan operasi perkalian antara Akumulator dengan Register B .Hasilnya berupa data 16 bit dengan low byte pada A dan high byte pada B.

Contoh: A =50 h B=A0h

Mul AB = 3200 maka: A=00h B= 32H

- Instruksi DIV AB digunakan untuk melakukan operasi pembagian antara Akumulator dengan Register B. Hasilnya, pembagian disimpan pada Register B.

Contoh: Misal A=FBh B=12h

DIV AB hasil =0Dh maka A=0Dh B=11h Karena, FBh= 0D ×12 + 1

4. DEC DAN INC

1. Instruksi DEC digunakan untuk melakukan pengurangan sebesar satu pada setiap operand.

2. Intruksi INC digunakan untuk melakukan penambahan sebesar satu pada setiap operand. Seprti yang terlihat pada tabel 2.6

Tabel 2.6 Instruksi DEC DAN INC

Contoh Syntax Keterangan

DEC A A = A-1

DEC @R0 (R0) = (R0)-1

INC A A = A+1

(23)

27 5. ORL,ANL DAN CPL

1. Instruksi orl digunakan untuk melakukan operasi OR antara 2 operand 2. Instruksi Anl digunakan untuk melakukan operasi AND antara 2 operand 3. Instruksi CPL digunakan untuk melakukan operasi komplemen suatu

operand

Tabel 2.7 InstruksiDEC ORL,ANL DAN CPL Contoh Syntax Akumulator RegisterB Hasil

ORL A,B 0011 1010 1111 0000 1111 1010

ANL A,B 0011 1010 1111 0000 0011 0000

CPL A 0011 1010 ________________ 1100 0101

6. SETB Dan CLR

1. Instruksi SETB digunakan untuk memberikan logika satu pada bit operand.

2. Instruksi CLR digunakan untuk memberikan logika nol pada bit operand Mulai:

Setb p2.0

Setb Pacc.0

Clr P2.1

(24)

28 7. PUSH Dan POP

1.Intruksi PUSH digunakan untuk menyimpan operand ke dalam stack. 2.Instruksi pop digunakan untuk mengembalikan nilai operand dan stack.

PUSH 7 PUSH 6 PUSH 5 MOV R7,#04H LoopA: MOV R6,#0FFH LoopB: MOV R5,#0FFH Djnz R5,$ Djnz R6,loopB Djnz R7,loopA Pop 5 Pop 6 Pop 7 8. JMP, JB, JNB, JZ, JNZ, DAN CJNE

1. JMP (JUMP)digunakan untuk melakukan lompatan ke suatu blok program

2. JB(jump if bit) dan JNB(jump if not bit) digunakan untuk melakukan lompatan ke suatu blok program jika nilai operand satu (bit) atau nol (not bit)

3. JZ (jump If jero) dan JNZ(jump if not jero) digunakan untuk melakukan lompatan ke suatu blok program jika nilai operand 0 (jero) atau 1 (not jero)

(25)

29

4. CJNE(compare and jump If not equal) digunakan untuk melakukan perbandingan dua operand dan lompat ke blok program lain jika tidak sama.

9. CALL Dan RET

1. Instruksi CALL digunakan untuk memanggil prosedur tertentu dalam program (sub program)

2. Instruksi RET digunakan untuk mengembalikan ke baris program yang melakukan CALL.

2.6 BEBERAPA ISTILAH DALAM PEMROGRAMAN

1. Program adalah instruksi –instruksi yang akan dijalankan oleh computer. Untuk membuat instruksi-instruksi tersebut dibutuhkan bahasa pemrograman seperti Bahasa assembler,bahasa visual basic, bahasa C++ dan bahasa lainnya.

2. Programmer artinya orang yang membuat program..

3. Programming Language artinya Bahasa pemrograman, yaitu Bahasa untuk membuat program misalnya bahasa program assembler.

4. High level language artinya bahasa pemrograman tingkat tinggi, misalnya bahasa turbo pascal, bahasa visual C++ dan lain sebagainnya. 5. Low Level Language adalah Bahasa tingkat rendah, misalnya Assembler. 6. Interpreter dan compiler fungsinya untuk menerjemahkan bahasa

pemrograman ke bahasa mesin. Interpreter menerjemahkan Instruksi secara baris perbaris.(program langsung dijalankan walaupun masih ada kesalahan. Compiler Menerjemahkan dahulu seluruh instruksi secara

(26)

7. 8. 9. 10 2.7 Ampli Ampl frekue inform baris pe dibanding Sintax ad Bug artin Program dengan ko 0. Program word,exc tudo Shift Suatu te litudo sebag ensi gelomb masi digital erbaris(prog gkan dengan dalah tata ca nya kesalaha adalah seku ode. aplikasi a el dan lain-Keying (AS eknik mend gai sinyal p mbang pemb . Gambar Gam 30 gram langs n interpreter ara penulisan an dalam pr umpulan ins artinya Pro lain. SK) dapatkan bi embawanya bawa tergan r 2.8 sinyal mbar 2.9 Mod sung dijala r. n kode-kod ogram struksi ,inst ogram siap t digital un a. Dalam pr ntung pada ASK dulasi Digit ankan)Com e dalam bah truksi-instru pakai co ntuk data y roses modul ada atau t tal mpiler lebih hasa pemrog

uksi ini dise

ontohnya M

yang meng lasi ini kem tidak adany h cepat graman. ebut juga Microsoft ggunakan munculan ya sinyal

(27)

31

Modulasi digital merupakan proses penumpangan sinyal digital (bit stream) ke dalam sinyal carrier. Modulasi digital sebenarnya adalah proses mengubah-ubah karakteristik dan sifat gelombang pembawa (carrier) sedemikian rupa sehingga bentuk hasilnya (modulated carrier) memiliki ciri-ciri dari bit-bit (0 atau 1).Pada dasarnya dikenal 3 sistem modulasi digital yaitu: ASK, FSK, dan PSK.

Amplitude Shift Keying (ASK) adalah modulasi yang menyatakan sinyal digital 1 sebagai suatu nilai tegangan tertentu (misalnya 1 Volt) dan sinyal digital 0 sebagai sinyal digital dengan tegangan 0 Volt. Sinyal ini yang kemudian digunakan untuk menyala-mati-kan pemancar, kira-kira mirip sinyal morse.

Mekanisme kerja :

Apabila sinyal data mempunyai perbedaan dengan sinyal pembawa maka bit digital adalah 1, dan apabila sinyal data sama dengan sinyal pembawa maka bit digital adalah 0.

Frequency Shift Keying (FSK) atau pengiriman sinyal digital melalui penggeseran frekuensi. Metode ini merupakan suatu bentuk modulasi yang memungkinkan gelombang modulasi menggeser frekuensi output gelombang pembawa. Pergeseran ini terjadi antara harga-harga yang telah ditentukan semula dengan gelombang output yang tidak mempunyai fase terputus-putus.

Phase Shift Keying (PSK) atau pengiriman sinyal digital melalui pergeseran fase. Metode ini merupakan suatu bentuk modulasi fase yang memungkinkan fungsi pemodulasi fase gelombang termodulasi di antara nilai-nilai diskrit yang telah ditetapkan sebelumnya. Dalam proses modulasi ini fase dari frekuensi gelombang pembawa berubah-ubah sesuai dengan perubahan status sinyal informasi digital. Sudut fase harus mempunyai acuan kepada pemancar dan penerima.

(28)

2.7.1 Pen

RL

nerima RLP

LP434A SA

Fre

P434A

AW Base

Pi Pi Pi Pi Pi Pi Pi Pi

equency 3

Gamba Gambar 2.1 32

ed Reciver

in 1: Gnd in 2 : Digita in 3 : RSSI in 4 : Vcc in 5 : Vcc in 6 : E/D (E in 7 : Gnd in 8 : Anten

315, 418 a

Mod Supp Outp ar 2.10 Pene 11 Rangkaia

r

al Data Outp Enable = 1, na

and 433.92

dulation : AS ply Voltage put : Digital erima RLP4 an dalam R put Disable = 0

2 Mhz

SK : 3.3- 6.0 V l & Linear 434A LP434A 0) VDC

(29)

33

Tabel.2.8 data seat RPL434A

Simbol Parameter Conditions Min Typ Max Unit Vcc Operating supply

voltage

3.3 5.0V 6.0 V

Itot Operating current - 4.5 mA

Vdata Data out Idata=+200uA Vcc-0.5 - Vcc V

Gambar 2.12 Blok diagram penerima

HT12D -18 DIP-A

Gambar 2.13 HT12D

HT12D dapat mendekodekan informasi yang berisi N jumlah bit alamat dan 12- N bit data dan 8 bit sebagai bit alamat dan dalam tugas akhir ini digunakan 4 bit

(30)

34

sebagai bit data. Pada penerimaan mikrokontroler mengisyaratkan N bit pertama sebagai bit alamat dan 12 – N bit selanjutnya sebagai bit data , dengan N adalah jumlah kode alamat sinyal dari pin DN mengaktifkan diver disaat mendekodekan bit alamat dan bit data yang diterima. Mikrokontroler akan meninjau bit alamat yang diterima tiga kali berturut-turut . Jika kode bit alamat sama dengan bit alamat HT12D bit data dikodekan kemudian pin VT pada kondisi high dan hal ini berarti data yang diterima valid. Jika tidak sama maka kondisi keluaran tetap sama seperti keluaran sebelumnya lalu menerima data lagi dari RLP434A kemudian meninjau lagi bit alamat 3 kaliberturut-turut. Bit data ang keluar dari pin Dout sebelumnya telah di latch terlebih dahulu sehingga pada keluaran data akan tetap sama hingga data yang baru diterima. HT12D merupakan decoder yang merupakan seri CMOS LSIs yang dpat dimanfaatkan untuk system untuk system kendali jarak jauh.

Rangkai penerima RLP434A ini bayak digunakan pada robot dan alat komunikasi buatan manusia.

Gambar

Tabel 2.1  Fungsi khusus port 3
Gambar 2.2  Diagram pin Mikrokontroler AT 89C51
Tabel 2.2  Struktur RAM 128 byte
Gambar 2.4  Pemakaian osilator eksternal
+7

Referensi

Dokumen terkait

Penelitian ini bertujuan untuk mengetahui inventarisasi faktor internal yang menjadi kekuatan, kelemahan, dan faktor eksternal yang mejadi peluang dan ancaman yang

1. Tuntutan kompetensi lulusan Sekolah Menengah Pertama dilihat dari soal – soal ujian nasional dua tahun terakhir termuat dalam sejumlah 34 kompetensi dasar dari sejumlah 59

INSTITUT PERTANIAN BOGOR. FAKULTAS TEKNOLOGI

Puji syukur penulis panjatkan kehadirat Allah SWT atas segala rahmat, taufik, hidayah serta inayah-Nya, sehingga penulis dapat menyelesaikan skripsi dengan judul “ RANCANG

Tujuan dari penelitian ini adalah (1) untuk mendeskripsikan tentang respon siswa terhadap penerapan metode pembelajaran demonstrasi di kelas VIII SMP Negeri 9 Kota

[r]

Segala puji syukur penulis haturkan kepada Allah SWT yang senatiasa memberikan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan Tugas Akhir yang

Analisis aliran daya sangat dibutuhkan pada suatu jaringan tenaga listrik transmisi maupun distribusi. Tujuan dari analisis aliran daya antara lain untuk memperoleh