Anda di halaman 1dari 24

LAPORAN AWAL PRAKTIKUM SISTEM MIKROPROSESOR DIGITAL MIKROKONTROLER AT89C51 MODUL I

EDITING, DEBUGGING DAN PEREKAMAN AT89C51

Nama NPM Hari/ Tanggal Praktikum Waktu Praktikum Asisten

: Amty Marufah A. D. : 140310090007 : Kamis, 27 September 2012 : 08.00-10.00 WIB :

LABORATORIUM SISTEM MIKROPROSESOR DIGITAL JURUSAN FISIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS PADJADJARAN BANDUNG 2012

LEMBAR PENGESAHAN
MODUL I

EDITING, DEBUGGING DAN PEREKAMAN AT89C51

Nama NPM Hari/ Tanggal Praktikum Waktu Praktikum Asisten

: Amty Marufah A. D. : 140310090007 : Kamis, 27 September 2012 : 08.00-10.00 WIB :

LP

SP

LA

Jatinangor, 27 September 2012 Asisten

(.........................................) NPM.

I. Tujuan Percobaan 1. Melakukan editing, debugging, dan kompilasi pemrograman bahasa asembli mikrokontroler MCS51 AT89C51. 2. Melakukan perekaman program bahasa asembli ke chip mikrokontroler AT89C51. 3. Memahami cara membaca input dari luar mikrokontroler. 4. Memahami megeluarkan data dari mikrokontroler ke display LED.

II. Teori Dasar 2.1. Sistem Mikrokomputer MIKROKOMPUTER Mikrokomputer adalah interkoneksi antara mikroprosesor (CPU) dengan memori utama (main memory) dan antarmuka input-output (I/O interface) yang dilakukan dengan menggunakan sistem interkoneksi bus.

Gambar 1. Sistem mikrokomputer Sistem mikrokomputer terdiri dari bagian-bagian yang berfungsi sama penting. 1. CPU/Mikroprosesor CPU terdiri atas dua bagian yaitu: a. CU (Control Unit) :Fungsi utama unit pengendali (CU) adalah mengambil, mengkode, dan melaksanakan instruksi sebuah program yang tersimpan dalam memori. Unit pengendali

mengatur urutan operasi seluruh sistem. Unit ini juga menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakkan operasi, juga aliran dan instruksi program. b. ALU (Arithmetic Logic Unit): Unit ini berfungsi melaksanakan operasi aritmatik serta operasi-operasi logika.

2. Memori a. RAM (Random Access Memory) RAM adalah unit memori yang dapat dibaca dan/atau ditulisi. Data dalam RAM bersifat volatile (akan hilang bila power mati). RAM hanya digunakan untuk menyimpan data sementara. Ada dua macam RAM yaitu : i. RAM statik RAM statik adalah flipflop yang terdiri dari komponen seperti resistor, transistor, dioda dan sebagainya. Setiap 1 bit informasi tersimpan hingga sel dialamatkan dan ditulishapuskan. Keuntungan dari RAM statik adalah akses atau jalan masuk yang bebas ke setiap tempat penyimpanan yang diinginkan, dan karena itu kecepatan masuk ke dalam memori terhitung relatif tinggi. ii. RAM dinamik RAM dinamik menyimpan bit informasi sebagai muatan. Sel memori elementer dibuat dari kapasistansi gerbangsubstrat transistor MOS. Keuntungan RAM dinamik adalah sel-sel memori yang lebih kecil sehingga memerlukan tempat yang sempit, sehingga kapasistas RAM dinamik menjadi lebih besar dibanding RAM statik. Kerugiannya adalah bertambahnya kerumitan pada papan memori, karena diperlukannya rangkaian untuk proses penyegaran (refresh).

Proses penyegaran untuk kapasitor ini dilakukan setiap 1 atau 2 mili detik. b. ROM (Read Only Memory) ROM merupakan memori yang hanya dapat dibaca. Data tidak akan terhapus meskipun aliran listrik terputus (non-volatile). Karena sifatnya, program-program disimpan dalam ROM. Beberapa tipe ROM: i. ROM Murni : yaitu ROM yang sudah diprogram oleh pabrik atau dapat juga program yang diminta untuk diprogramkan ke ROM oleh pabrik. ii. PROM (Programmable Random Access Memory) : ROM jenis ini dapat diprogram sendiri akan tetapi hanya sekali pakai (tidak dapat diprogram ulang). iii. EPROM (Erasable Programmable Random Access Memory) : yaitu jenis ROM yang dapat diprogram dan diprogram ulang.

3. Input/Output (I/O) Piranti Input/Output (I/O interface) dibutuhkan untuk

menghubungkan piranti di luar sistem. I/O dapat menerima/memberi data dari/ke mikroprosesor. Untuk menghubungkan antara I/O interface dengan mikroprosesor dibutuhkan piranti address. Dua macam I/O interface yang dipakai yaitu: serial dan paralel. Piranti serial (UART/universal asynchronous receiver-transmitter)

merupakan pengirim-penerima tunggal (tak serempak). UART mengubah masukan serial menjadi keluaran paralel dan mengubah masukan paralel menjadi keluaran serial. PIO (paralel input output) merupakan pengirim-penerima serempak. PIO dapat diprogram dan menyediakan perantara masukan dan keluaran dasar untuk data paralel 8 bit.

Sistem Bus Bus menghubungkan semua komponen dalam unit mikrokomputer. Ada tiga tipe bus yaitu: 1. Data Bus (bus-D) : bus dengan delapan penghantar, data dapat diteruskan dalam arah bolak-balik (lebar data 8 bit) yaitu dari mikroprosesor ke unit memori atau modul I/O dan sebaliknya. 2. Control Bus (bus-C) : meneruskan sinyal-sinyal yang mengatur masa aktif modul mikrokomputer yang sesuai dengan yang diinginkan menurut kondisi kerja. 3. Address Bus (bus-A) : meneruskan data alamat (misal alamat 16 bit), dari penyimpan atau dari saluran masukan/keluaran yang diaktifkan pada saat tertentu. Hubungan dalam masing-masing bus berupa kabel paralel 8 bit (jalur) maupum 16 bit (jalur).

MIKROPROSESOR Mikroprosesor adalah suatu chip (IC = integrated circuits) yang di dalamnya terkandung rangkaian ALU (arithmetic-logic unit), rangkaian CU (control unit), dan register-register. Mkroprosesor disebut juga dengan CPU (Central Processing Unit). Karakteristik Mikroprosesor Berikut adalah karakteristik penting dari mikroprosesor : 1. Ukuran bus data internal (internal data bus size) : Jumlah saluran yang terdapat dalam mikroprosesor yang menyatakan jumlah bit yang dapat ditransfer antar komponen di dalam mikroprosesor. 2. Ukuran bus data eksternal (external data bus size) : Jumlah saluran yang digunakan untuk transfer data antar komponen antara mikroprosesor dan komponen-komponen di luar mikroprosesor. 3. Ukuran alamat memori (memory address size) : Jumlah alamat memori yang dapat dialamati oleh mikroprosesor secara langsung.

4. Kecepatan clock (clock speed): Rate atau kecepatan clock untuk menuntun kerja mikroprosesor. 5. Fitur-fitur spesial (special features): Fitur khusus untuk mendukung aplikasi tertentu seperti fasilitas pemrosesan floating point, multimedia dan sebagainya. Cara kerja sebuah Mikroprosesor diarahkan oleh suatu program dalam kode-kode bahasa mesin yang telah dimasukkan terlebih dahulu ke dalam sebuah memori. Di dalam Mikroprosesor minimal terdiri dari rangkaian digital, register, pengolah logika aritmatika, rangkaian sekuensial.

MIKROKONTROLLER Struktur mikrokontroller: 1. Register : tempat penyimpanan (8 atau 16 bit) Fungsi : khusus (register timer dan counter) dan umum (utk proses perhitungan dan operasi mikrokontroller) 2. Accumulator : sebagai operand umum proses aritmatika dan logika 3. Program Counter (PC) : sebagai pencacah eksekusi program mikrokontroller 4. ALU (Arithmetic and Logic Unit) : mengerjakan proses aritmatik dan logika 5. Clock Circuit : sinkronisasi 6. Internal ROM (Read Only Memory) : memori yang hanya dibaca saja ROM berisi program untuk menjalankan mikrokontroller. Isi ROM tidak dapat hilang walaupun power dimatikan 7. Internal RAM (Random Access Memory) : berisi data data variabel dan register dimana dapat diubah dan dihapus. 8. Stack Pointer : bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data secara khusus 9. I/O Ports : berupa pin-pin untuk masukan atau keluaran

10. Interrupt Circuits : untuk mengendalikan sinya l- sinyal interupsi. Cara kerja mikrokontroller 1. Mikrokontroller mengambil data pada ROM dengan alamat yang tertera pada PC, selanjutnya PC ditambah nilainya dengan1 (increment) secara otomatis. Data yang diambil adalah urutan instruksi program pengendali mikrokontroller yang sebelumnya telah dibuat oleh pemakai 2. Instruksi tersebut diolah dan dijalankan. 3. PC berubah nilainya, sehingga mikrokontroller melakukan langkah 1.

Perbedaan mikroprossesor, mikrokomputer dan mikrokontroler a. Dari segi strukturnya: Struktur utama dari mikroprosesor adalah ALU (arithmetic-logic unit), rangkaian CU (control unit), dan register-register. Struktur utama dari mikrokontroler adalah Mikroprosesor, RAM, ROM, I/O interface, dan beberapa peripheral. Struktur utama dari mikrokomputer adalah mikroprosesor,

mikrokontroler, memori utama dan I/O interface. b. Dari segi fungsinya: Mikroprosesor berfungsi sebagai pengolahan data, pengontrol fungsi prosesor dan sebagai media penyimpanan sementara. Mikrokontroler berfungsi sebagai interkoneksi antara mikroprosesor, RAM, ROM, I/O interfece dan beberapa peripheral. Mikrokomputer berfungsi sebagai interkoneksi antara mikroprosesor dengan memori utama dan sebagai antar muka input output.

2.2. Arsitektur MCS-51 Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta jalur I/O berupa port bit I/O dan port serial. Selain itu terdapat fasilitas timer/counter internal dan jalur interface address dan data ke memori eksternal. Beberapa feature yang dimiliki mikrokontroler tipe 89S51 buatan Atmel. 4K bytes Flash ROM 128 bytes RAM 4 port @ 8-bit I/O (Input/Output) port 2 buah 16 bit timer Interface komunikasi serial 64K pengalamatan code (program) memori 64K pengalamatan data memori Prosesor Boolean (satu bit satu bit) 210 lokasi bit-addressable Fasilitas In System Programming (ISP)

Gambar 2. Diagram Blok 89S51

Memori Internal 89S51 Memori internal 89S51 terdiri dari 3 bagian yaitu ROM, RAM dan SFR.

ROM / Read Only Memory adalah memori tempat menyimpan program / source code. Sifat ROM adalah non-volatile, data / program tidak akan hilang walaupun tegangan supply tidak ada. Kapasitas ROM tergantung dari tipe mikrokontroler. Untuk AT89S51 kapasitas ROM adalah 4 KByte. ROM pada AT89S51 menempati address 0000 s/d 0FFF.

RAM / Random Access Memory adalah memori tempat menyimpan data sementara. Sifat RAM adalah volatile, data akan hilang jika tegangan supply tidak ada. Kapasitas RAM tergantung pada tipe mikrokontroler. Pada AT89S51 RAM dibagi menjadi 2 yaitu : LOWER 128 byte yang menempati address 00 s/d 7F. RAM ini dapat diakses dengan pengalamatan langsung (direct) maupun tak langsung (indirect) Contoh : Direct -> mov 30h,#120 ; Pindahkan data 120 ke RAM pada address 30h Indirect -> mov R0,#30h ; Isi Register 0 dengan 30h

mov @R0,#120 ; Pindahkan data 120 ke RAM pada address sesuai isi R0 UPPER 128 byte yang menempati address 80 s/d FF. Address ini sama dengan address SFR meski secara fisik benar-benar berbeda. RAM ini hanya dapat diakses dengan pengalamatan tak langsung saja.

SFR / Special Function Register adalah register dengan fungsi tertentu. Misalnya, register TMOD dan TCON adalah timer control register yang berfungsi mengatur fasilitas timer mikrokontroler. SFR pada AT89S51 menempati address 80 s/d FF.

Gambar 3. Peta memori internal 89S51

Tampak pada Gambar 3 bahwa ada kesamaan address antara RAM, SFR dan ROM yaitu pada address 00 s/d FF. Atas pertimbangan inilah maka biasanya source code ditulis setelah address 00FF yaitu 0100 pada ROM. Hal ini dimaksudkan agar data RAM dan SFR tidak terisi oleh byte source code.

Gambar 4. Konfigurasi pin AT89S51

Tabel 1. Konfigurasi pin AT8951 (2) VCC GND Tegangan supply +5V Ground Port 0 merupakan port paralel 8 bit dua arah (bidirectional) yang dapat digunakan untuk berbagai keperluan. Port 0 juga memultipleks alamat dan data jika digunakan untuk mengakses memori Port 0 eksternal. Port 1 merupakan port paralel 8 bit bi-directional dengan internal pull-up. Port 1 juga digunakan dalam proses pemrograman (In System Programming) P1.5 MOSI P1.6 MISO Port 1 P1.7 SCK Port 2 merupakan port paralel 8 bit bi-directional dengan internal pull-up. Port 2 Port 2 akan mengirim byte alamat jika digunakan

untuk mengakses memori eksternal Port 3 merupakan port paralel 8 bit bi-directional dengan internal pull-up. Port 3 juga bisa difungsikan untuk keperluan khusus yaitu : P3.0 RXD(Receive Data) P3.1 TXD(Transmit Data) P3.2 INT0(Interrupt 0) P3.3 INT1(Interrupt 1) P3.4 T0(Timer 0) P3.5 T1(Timer 1) P3.6 WR(Write Strobe) Port 3 RST ALE/PRO G P3.7 RD(Read Strobe) Pulsa dari low ke high akan mereset mikrokontroler Address Latch Enable, digunakan untuk menahan alamat memori eksternal selama pelaksanaan instruksi Program Store Enable, merupakan sinyal kendali yang memperbolehkan program memori eksternal masuk ke PSEN dalam bus selama proses pengambilan instruksi Jika EA=1 maka mikrokontroler akan melaksanakan instruksi dari ROM internal Jika EA=0 maka mikrokontroler akan melaksanakan EA/VPP XTAL 1 XTAL 2 instruksi dari ROM eksternal Input ke rangkaian osilator internal Output dari rangkaian osilator internal

Organisasi RAM Internal RAM (Random Access Memory) internal AT89S51 berfungsi untuk menyimpan data sementara. Data akan tetap disimpan selama ada supply tegangan ke mikrokontroler. Pada AT89S51, RAM dibagi menjadi 3 bagian yaitu : 1. Register serba guna Terdiri dari Bank 0, Bank 1, Bank 2, Bank 3. Tiap bank register terdiri dari 8 register 8 bit yaitu R0, R1,.. ,R7. Pemilihan bank register ditentukan pada register PSW Rentang address : 00 s/d 1F 2. Bit addressable RAM Adalah RAM yang dapat diakses per bit. Ini diperlukan pada saat kita ingin menyimpan data yang panjangnya hanya 1 bit. Setiap bit pada lokasi RAM ini memiliki address sendiri-sendiri seperti terlihat pada gambar. Rentang address : 20 s/d 2F 3. General purpose RAM Adalah RAM yang dapat diakses per byte. Ini diperlukan pada saat kita ingin menyimpan data yang panjangnya 8 bit. Rentang address : 30 s/d 7F

Gambar 5. Memory map mikrokontroler MCS-51

Gambar 6. Special Function Register

2.3. Operasi Pemindahan Data 1. Immediate Addressing Mode

Gambar 7. Immediate Addressing Mode Immediate Addressing : data langsung dipindahkan ke register. Contoh : MOV A,#30h ; Copy the immediate data 30h to A register MOV R0,#00110000B ; Copy the immediate data 30h to R0 register MOV DPTR,#48 ; Copy the immediate data 30h to DPTR register

Catatan : 30hexa = 00110000biner = 48desimal

2. Register Addressing Mode

Gambar 8. Register Addressing Mode Register Addressing : data dari register sumber dipindahkan ke register tujuan. Contoh : MOV R0,A ; Copy data from A register to R0 register MOV A,R7 ; Copy data from R7register to A register

3. Direct Addressing Mode

Gambar 9. Direct Addressing Mode Register Addressing : data dari register/RAM/SFR sumber dipindahkan ke register/RAM/SFR tujuan.

Contoh : MOV A,80h ; Copy data from port 0 pins to A register MOV 80h,A ; Copy data from A register to the port 0 MOV 3Ah,#3Ah ; Copy immediate data 3Ah to RAM location 3Ah MOV R0,12h ; Copy data from RAM location 12h to R0 register MOV 8Ch,R7 ; Copy data from R7 register to SFR timer 0 high byte MOV 5Ch,A ; Copy data from A register to RAM location 5Ch MOV 0A8h,77h ; Copy data from RAM location 77h to IE register

4. Indirect Addressing Mode

Gambar 10. Indirect Addressing Mode R0 atau R1 digunakan untuk menunjukkan Destination Address MOV @R0,#30h ; Copy immediate data 30h to the address in R0 MOV @R0,30h ; Copy the content of address 30h to the address in R0 MOV @R0,A ; Copy the data in A to the address in R0 R0 atau R1 digunakan untuk menunjukkan Source Address MOV 7Fh,@R0 ; Copy the content of the address in R0 to address 7Fh MOV A,@R0 ; Copy the content of the address in R0 to A

III. Tugas Pralab 1. Perbedaan antara mikroprosesor dengan mikrokontroler : a. Jika Mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung dari sebuah komputer, maka

Mikrokontroler umumnya terdiri dari CPU, Memori , I/O tertentu dan unit pendukung. b. Kelebihan utama dari Mikrokontroler ialah telah tersedianya RAM dan peralatan I/O Pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. c. Mikrokontroler mempunyai kandungan semikonduktor transistor yang lebih banyak dibandingkan dengan mikroprosesor. d. Harga mikrokontroler lebih murah dibandingkan dengan

mikroprosesor. 2. Penggunaan mikrokontroller : Sistem management mesin pada automobile (mobil otomatis) Keyboard pada PC IP Elektronik (Digital Multimeter, frekuensi synthesisers dan osiloskop) Printer dan mobile phone Perlengkapan TV, Radio, CD Players dan tape recording Hearing Aids (alat bantu pendengaran) Sistem alarm keamanan, sistem alarm kebakaran dan sistem building services. 3. a. 127 biner: 0111 1111, b. 89 biner: 0101 1001, hexadecimal : 7FH hexadecimal: 59H hexadecimal: FEH hexadecimal: 10H

c. 254 biner: 1111 1110, d. 16 biner: 0001 0000,

4. a. Decimal: 363, b. Decimal: 507, c. Decimal: 21, d. Decimal: 172, e. Decimal: 57,

hexadecimal: 16BH hexadecimal: 1FBH hexadecimal: 15H hexadecimal: ACH hexadecimal: 39H

5. a. 10110110110 + 10000011101 = 100111010011 b. 101010100011 + 100001111001 = 10000000000 c. 1100000101 + 0011111011 = 1001100011100 d. 111111111111 + 000000000001 = 1000000000000 6. 7. 8. Ukuran RAM internal 8051 = 128 byte untuk data temporary dan stack. 9. Ukuran ROM internal 8051 = 4K byte 10. Flag-flag yang tersimpan di PSW : a. Flag Zero, Flag Carry, Flag Interrupt b. Carry bit, the auxiliary carry, 2-bit pemisah register, overflow flag c. Bit paritas dan dua flag status user-definable 11. Alamat stack ketika 8051 direset = 81 12. Jumlah register yang digunakan = 4 buah mulai dari bank-0 sampai bank-3 dimana alamat masing-masing R0-R7. 13. Port output digunakan untuk mengakses memori eksternal = Serial Port Control (SCON) dan Serial Port Data Buffer (SBUF). 14. Sebuah pin I/O dapat digunakan baik sebagai input/output = 15. Port yang tidak memiliki fungsi ganda = 16. Alamat SFR PCON = 87

17. Komponen dasar komputer : CPU (Central Processor Unit) Software dan Hardware RAM (Random Access Memory) ROM (Read Only Memory) 18. Hexadecimal, decimal 19. Fungsi alamat adalah untuk menspesifikasi lokasi-lokasi memori agar dapat dipanggil kembali. 20. Software adalah piranti/perangkat lunak, contohnya dapat berupa seperti program-program komputer yang diinstall ke harddisk, file-file system. 21. Hardware adalah piranti/perangkat keras, yaitu alat yang digunakan, contohnya seperti harddisk, CD-ROM, RAM, Motherboard. 22. Tiga bahasa tingkat tinggi = Fortran, C++, C, Pascal. 23. Alasan pemrograman menggunakan bahasa Assembly = Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus pembacaan instruksi yang tersimpan di dalam memori. Mikrokontroler menentukan alamat dari memori program yang akan dibaca, dan melakukan proses baca data di memori. Data yang dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh mikrokontroler di register, yang dikenal sebagai program counter. Instruksi ini misalnya program aritmatika yang melibatkan 2 register. AT89C51 memiliki sekumpulan instruksi yang sangat lengkap. Jika anda telah mempelajari bahasa assembly mikroprosesor keluarga intel (misal 8086), ada sedikit perbedaan dengan bahasa assembly di mikrokontroler. Instruksi MOV untuk byte dan bit dikelompokkan sesuai dengan mode pengalamatan (addressing modes). Berisi beberapa singkatan yang mudah diingat. Efisiensi waktu pemrograman.

24. 25. File yang masuk ke progran assembler = file berekstensi *.asm dan *.obj 26. File yang dihasilkan program assembler = file berekstensi *.hex, *.obj 27. Program yang digunakan sebagai pengubah bahasa manusia ke bahasa biner instruksi program = Pascal. 28. Pada tahun 1971 muncul microprocessor pertama Intel, microprocessor 4004 ini digunakan pada mesin kalkulator Busicom. 29. (Jawaban untuk nomor 30) Mikroprosesor yang dibuat oleh Zilog : Z80 Mikroprosesor yang dibuat oleh MOST Technology : 6502 31. MCS8051 pertama kali diperkenalkan pada tahun 1981, mikroprosesor yang dibuat sebelumnya adalah 8088 pada tahun 1979 dengan clockspeed : 5, 8, dan 10 MHz. 32. Dua jenis memory semikonduktor : RAM (Random Access Memory), Volatile ROM (Read Only memory), non-Volatil (tetap tersimpan meski tanpa daya) 33. Memory Address Register, menyimpan alamat word 34. Pada pengambilan opcode, Informasi yang terdapat pada bus alamat dan data Arah aliran informasi ini selama pengambilan opcode 35. Lebar bus data 8 bit : nilai maksimal sama dengan angka biner 1111 1111 : 255 Lebar bus alamat 18 bit : alamat tertinggi sama dengan biner 11 1111 1111 1111 1111 (262.143) 36. 16 bits pada komputer maksudnya = banyaknya ruangan yang dapat menampung data sebanyak 64 Kbyte atau 216. 37. Instruksi yang membedakan mikrokontroler dengan mikroprosesor:

38. 4 Perusahaan mikrokontroler 8051 selain INTEL adalah : Atmel Corp, Dallas semiconductor, Phillips Corps, Xilinx, dan Altera 39. Mikrokontroler (MCS51) yang cocok diproduksi dalam skala besar dan kapasitas program besar = Mikrokontroler AT89S51.

DAFTAR PUSTAKA
Hidayat, Darmawan S.Si.,M.T.2005.Diktat Praktikum Sistem http://blog.ub.ac.id/ayrie/category/sistem-mikrokomputer/ http://kuliah.andifajar.com/arsitektur-mcs-51/ http://salamkuproy-adesaputra.googlecode.com/files/tutorial-at89s51.pdf http://www.gudangmateri.com/2010/07/mikrokontroler-at89c51.html http://www.tutorial-mikrokontroler.com/2012/04/organisasi-memorimikrokontroler.html