BAB II LANDASAN TEORI

dokumen-dokumen yang mirip
Mengenal bahasa assembly

BAB 2 TINJAUAN TEORITIS

Ringkasan Set Instruksi Dan Mode pengalamatan ( Addressing Mode )

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

BAB 3 PERANCANGAN DAN PEMBUATAN SISTEM

BAB 2 LANDASAN TEORI. Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu. dua macam memori yang sifatnya berbeda yaitu:

BAB 2 TINJAUAN TEORITIS. Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroler dan microkomputer,

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. memudahkan penggunaan elektronik dalam berbagai

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. Dalam bab ini penulis akan membahas tentang komponen-komponen yang

BAB 2 LANDASAN TEORI. Agar kendaraan lebih teratur dan tidak terlalu padat, biasanya tempat perparkiran ini dibagi

BAB III PERANCANGAN SISTEM. Secara garis besar rangkaian pengendali peralatan elektronik dengan. blok rangkaian tampak seperti gambar berikut :

BAB II TINJAUAN PUSTAKA. Mikrokontroler, sebagai suatu terobosan teknologi mikrokontroler dan

LAMPIRAN D DATA SHEET

BAB II TEORI DASAR. peralatan input / output ( I / O ) pendukung di dalamnya. Suatu sistem mikroprosesor

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

Memprogram Port sebagai Output dan Input Sederhana

BAB 2 LANDASAN TEORI. bisa digunakan untuk memindahkan program yang ber-ekstention.hex ke Flash,

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB 2 LANDASAN TEORI

BAB III RANCANGAN SISTEM. dirancanag. Setiap diagram blok mempunyai fungsi masing-masing. Adapun diagram

INSTRUKSI DAN BAHASA PEMOGRAMAN MIKROKONTROLER

DESKRIPSI SINGKAT INSTRUKSI-INSTRUKSI PADA AT89S51

Program Studi Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lambung Mangkurat

PETUNJUK PEMROGRAMAN DAN SET INSTRUKSI

BAB III ANALISA DAN CARA KERJA RANGKAIAN

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

BAB 3 PERANCANGAN ALAT DAN PROGRAM

MIKROKONTROLER AT89S52

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

Pengendalian 8 buah Motor oleh DST-51

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI. Dalam merancang sebuah peralatan yang cerdas, diperlukan suatu

I/O dan Struktur Memori

BAB III METODE PENELITIAN

BAB I PENDAHULUAN. 1.2 Rumusan Masalah Berdasarkan uraian di atas, dapat dikemukakan permasalahan sebagai berikut:

BAB III PERANCANGAN DAN CARA KERJA RANGKAIAN

BAB 2 LANDASAN TEORI. Dalam bidang elektronika, perlahan-lahan peralatan-peralatan manual mulai digantikan

Menggunakan Bahasa Pemrograman Assembly

BELAJAR MIKROKONTOLER AT89C51/52/55 (Teori dan aplikasi)

BAB III PERANCANGAN ALAT PENDETEKSI KERUSAKAN KABEL

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

BAB 2 LANDASAN TEORI. Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

BAB III METODOLOGI PENELITIAN

TUGAS AKHIR JAM DIGITAL BERBASIS MIKROKONTROLER AT89S51. Disusun oleh : MUHAMAD YUSUF PARDEDE NIM:

MANAJEMEN ENERGI PADA SISTEM PENDINGINAN RUANG KULIAH MELALUI METODE PENCACAHAN KEHADIRAN & SUHU RUANGAN BERBASIS MIKROKONTROLLER AT89S51

BAB II DASAR TEORI. Laporan Tugas Akhir Controller Aktuator Plant/Process. Gambar 2.1 Sistem Kontrol Closed Loop

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

LM124/LM224/LM324/LM2902

Desain Tracker Antena Parabola Berbasis Mikrokontroler

Bekerja Dengan MIDE-51

Tabel Perbandingan ROM dan RAM pada beberapa seri ATMEL

AKSES MEMORI Menggunakan DT-51 MinSys

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

APLIKASI PLC PADA PENGENDALIAN MESIN BOR OTOMATIS DENGAN SISTEM MONITORING BERBASIS VISUAL BASIC 6.0

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. software arduino memiliki bahasa pemrograman C.

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

RANCANG-BANGUN PROTOTYPE SISTEM KONTROL PINTU BERBASIS MIKROKONTROLER AT89S51 MENGGUNAKAN KARTU BER-PASSWORD DAN SENSOR FOTODIODA

USER MANUAL TRAINER TOMBOL & LED 8 BIT MENGGUNAKAN AT89S51 MATA PELAJARAN:ELEKTRONIKA KENDALI

BAB IV ANALISA DAN HASIL UJI COBA RANGKAIAN

BAB IV PENGUJIAN DAN ANALISA DATA

PERCOBAAN 11 PULSE WIDHT MODULATION

BAB III PERANCANGAN PROTOTIPE

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

BAB III METODOLOGI PENELITIAN. Adapun blok diagram modul baby incubator ditunjukkan pada Gambar 3.1.

BAB III RANCANGAN DAN CARA KERJA ALAT

BAB 2 LANDASAN TEORI

PENGISIAN TANGKI PENAMPUNGAN AIR DENGAN MIKROKONTROLER AT89S51 MENGGUNAKAN TIMER DIGITAL DAN LCD M1632

BAB III PERANCANGAN ALAT

DAFTAR ISI HALAMAN JUDUL... HALAMAN PENGESAHAN P EMBIMBING... HALAMAN PENGESAHAN P ENGUJI... HALAMAN PERSEMBAHAN... HALAMAN MOTTO... KATA PENGANTAR...

Yudha Bhara P

BAB 2 LANDASAN TEORI

PERTEMUAN MEMORY DAN REGISTER MIKROKONTROLER

RANCANG BANGUN KONTROL PERALATAN LISTRIK OTOMATIS BERBASIS AT89S51

BAB III PERANCANGAN ALAT

BAB VI MIKROKONTROLER

BAB III PROSES PERANCANGAN

BAB II PENDEKATAN PEMECAHAN MASALAH. Tombol kuis dengan Pengatur dan Penampil Nilai diharapkan memiliki fiturfitur

PERTEMUAN BAHASA PEMOGRAMAN DAN FORMAT BILANGAN MIKROKONTROLER

BAB III PERANCANGAN. Perancangan tersebut mulai dari: spesifikasi alat, blok diagram sampai dengan

Atmel Corporation, 2009, AT89S52 Datasheet,

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

BAB III METODE PENELITIAN

BAB II LANDASAN TEORI. Definisi PLC menurut National Electrical Manufacturing Association (NEMA)

BAB II TEORI DASAR. diantaranya adalah keluaran (output), proses dan masukan (input). Gambar 2.1 Ilustrasi Pada Kerja Robot

PERTEMUAN. SET INSTRUKSI MIKROKONTROLER AT 89C51 (Lanjutan)

CONTOH-CONTOH PROGRAM MIKROKONTROLER

BAB II TINJAUAN PUSTAKA

BAB V PENGUJIAN DAN ANALISIS. pengukuran terhadap parameter-parameter dari setiap komponen per blok maupun

Gambar 1.1. Diagram blok mikrokontroller 8051

Transkripsi:

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. Politeknik Negeri Bandung 6

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. Politeknik Negeri Bandung 7

R0 R1 R2 R3 R4 R5 R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 $00-$07 $08-$17 $18-$1F $18-$1F $20-$27 $28-$2F $30-$37 $38-$3F $40-$47 $48-$4F $50-$57 $58-$5F $60-$67 $68-$6F $70-$77 $78-$7F Memori untuk keperluan umum sebanyak $50 (80)byte dengan nomor memori $30-$7F Special Function Register(SFR) dengan nomor memori $80-$FF $00 $08 $10 $18 $20 $28 $30 $7F $80 $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. Politeknik Negeri Bandung 8

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, Politeknik Negeri Bandung 9

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) lewat bantuan R0 sampai R1. Akan tetapi, untuk SFR hanya bisa dipakai 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. Politeknik Negeri Bandung 10

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. Politeknik Negeri Bandung 11

KOLOM 4 KOLOM= Scan Output 4 BARIS = Scan Input BARIS D # 0 * C 9 8 7 B 6 5 A 3 2 P1.4 P1.5 1 P1.6 4 P1.7 P1.0 P1.1 P1.2 P1.3 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 AT89S52 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 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. Politeknik Negeri Bandung 12

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, yang sebelumnya terbuka menjadi terhubung. 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. Politeknik Negeri Bandung 13

SPDT Relay Single-Pole Dual- Totem COM NO NC Relay Tugas Akhir 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. Politeknik Negeri Bandung 14

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, Politeknik Negeri Bandung 15

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. Politeknik Negeri Bandung 16

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. Politeknik Negeri Bandung 17

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. Politeknik Negeri Bandung 18

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. Politeknik Negeri Bandung 19

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 Arti MOV A,R7 Data asal dari register serbaguna R7 di kopikan / dipindahkan ke dalam Akumulator A. 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 Politeknik Negeri Bandung 20

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 Arti 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 XOR-kan A dengan salah satu register R0 R7. komplemen CPL P1.1 Komplemenkan pada port pin P1.1 Clear Crl P1.1 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. Politeknik Negeri Bandung 21

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 Arti Jz rel Program akan lompat ke alamat rel jika akumulator nol, jika tidak nol, program melanjutkan ke alamat selanjutnya. 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, Tombol 2 Program akan lompat ke alamat subrutin Tombol 2 kalau 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. Politeknik Negeri Bandung 22

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 : Delay_3detik : Mov R0, #100 RET Call Delay_1detik Call Delay_1detik Call Delay_1detik RET END panggil delay 1 detik panggil delay 1 detik panggil delay 1 detik Dalam instruksi diatas bisa dilihat bahwa RET merupakan kode simbol akhiran bahwa program adalah subrutin, dan CALL adalah instruksi dimana untuk memanggil subrutin. Politeknik Negeri Bandung 23