Ho Mikon 1 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

PANDUAN PRAKTIKUM MICROCONTROLLER SEMESTER GANJIL TAHUN AKADEMIK 2014-2015 FAKULTAS TEKNIK ELEKTRONIKA DAN KOMPUTER UKSW Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan aritmatika) ”



1. TUJUAN a. Mahasiswa memahami arsitektur microcontroller keluarga MCS-51. b. Mahasiswa dapat membuat skema dan board untuk microcontroller MCS-51. c. Mahasiswa memahami pemrograman dasar microcontroller keluarga MCS-51. 2. DASAR TEORI a. Pendahuluan Microcontroller merupakan sebuah microprocessor yang telah diintegrasikan dengan peripheral lain (ROM, RAM, I/O, dll) menjadi sebuah IC.Salah satu microcontroller yang masih sangat popular saat ini adalah keluarga MCS-51. Pada praktikum kali ini, kita akan menggunakan tipe AT89S52 yang merupakan microcontroller keluarga MCS-51 buatan Atmel. Pada praktikum ini kita tidak akan menggunakan board minimum sistem AT9S52, tapi akan kita simulasikan dengan program ISIS – Proteus. Sedikit penjelasan tentang ISISProteus berada pada lampiran.



Gambar 1. Konfigurasi



Pin AT89S52



AT89S52 memiliki 4 port I/O yang masing-masing memiliki 8 pin, yaitu Port 0, Port 1, Port 2, dan Port 3. Selain sebagai I/O, masing-masing port juga memiliki fungsi yang berbeda-beda. Port 0 (P0.0 – P0.7) merupakan 8-bitopendrain bidirectional I/O. Port ini dapat digunakan untuk mengakses address/data busmemori program atau data eksternal. Untuk keperluan baca/tulis ke memori eksternal, AT89S52 memiliki pin ALE (Address Latch Enable, pin 30) dan PSEN’ (Program Store Enable, pin 29). PSEN’akan mengeluarkan sinyal ‘0’ selama pengambilan data dari memori eksternal. Pin ini biasanya dihubungkan dengan pin OE’ (Output Enable) dari memori eksternal. Sedangkan ALE akan mengeluarkan sinyal ‘1’ selama Port 0 mengeluarkan address dan akan mengeluarkan sinyal ‘0’ selama Port 0mengeluarkan data. ALE digunakan untuk memberitahu piranti memori eksternal tentang jenis keluaran Port 0 (address atau data). Selain itu, juga ada pin EA’ (External Address, pin 31) yang digunakan untuk mengatur apakah program akan diakses dari memori internal / eksternal. Jika program diambil dari memori internal maka EA’ di-set ‘1’ dan ‘0’ jika program dari memori eksternal.Perlu diperhatikan bahwa Port 0 tidak memiliki pull-up internal. 1



Panduan Praktikum Microcontroller | 2 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Port 1 (P1.0 – P1.7) merupakan 8-bit bidirectional I/O yang sudah dilengkapi dengan pull-up internal.Port 1 dapat dipakai untuk berkomunikasi dengan piranti eksternal. Selain itu, Port 1 memiliki beberapa fungsi khusus untuk pin tertentu, yaitu: - P1.0 : T2 (external count input to Timer/Counter 2), clock-out - P1.1 : T2EX (Timer/Counter 2 capture/reload trigger and direction control) - P1.5 : MOSI (untuk In-System Programming) - P1.6 : MISO (untuk In-System Programming) - P1.7 : SCK (untuk In-System Programming) Port 2 (P2.0 – P2.7)juga merupakan 8-bit bidirectional I/O yang sudah dilengkapi dengan pull-up internal. Port ini biasanya juga digunakan untuk address bus jika digunakan penambahan memori eksternal. Port 3 (P3.0 – P3.7) juga hampir sama dengan Port 1 dan 2. Bedanya, Port ini memiliki beberapa fungsi khusus, yaitu: - P3.0 : RXD (serial input port) - P3.1 : TXD (serial output port) - P3.2 : INT0’ (external interrupt 0) - P3.3 : INT1’ (external interrupt 1) - P3.4 : T0 (timer 0 external input) - P3.5 : T1 (timer 1 external input) - P3.6 : WR’ (external data memory write strobe) - P3.7 : RD’ (external data memory read strobe) Selain port-port dan beberapa pin yang telah dibahas, AT89S52 juga memiliki beberapa pin lain, yaitu: - VCC, GND - XTAL1 , XTAL2 Kedua pin ini digunakan untuk mengatur siklus kerja microcontroller. Kedua pin ini dihubungkan dengan kristal osilator dengan frekuensi (biasanya) 12 MHz. Karena MCS-51 mempunyai siklus kerja 1/12 frekuensi osilator maka satu siklus kerja AT89S52 + 1µs. -



RST Pin ini dipakai untuk me-resetmicrocontroller. MCS-51 menggunakan reset high dengan waktu reset setidaknya 2 siklus kerja.



Gambar 2. Diagram Pemasangan Kristal Osilator; C1 dan C2 30pF + 10pF



Panduan Praktikum Microcontroller | 3 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Gambar 3. Diagram Blok AT89S52 b. Pengalamatan Memori dan Register Keluarga MCS-51 memiliki beberapa ruang alamat memori, yaitu: 1. Ruang alamat kode program (code address space) Ruang alamat kode memori program sebanyak maksimal 64KB ditempati oleh EEPROM/ROM internal atau eksternal. 2. Ruang alamat memori data internal Ruang alamat memori data internal ini dapat dialamati secara langsung yang terdiri dari 128B RAM internal dan 128B SFR (Special Function Register). 3. Ruang alamat memori eksternal Ruang alamat memori eksternal sebanyak maksimal 64KB dapat ditempati oleh IC RAM eksternal. Ruang alamat memori kode program dan ruang alamat memori data eksternal sebenarnya memiliki ruang alamat yang sama (overlap). Ruang alamat memori kode program



Panduan Praktikum Microcontroller | 4 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



dan ruang alamat memori data eksternal dialamati dari alamat 0000h sampai FFFFh. Sedangkan 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 SFR.



Gambar 4. Peta Pengalamatan memori MCS-51 Internal RAM sendiri dibagi menjadi beberapa bagian, yaitu: - 00 – 18h sebagai memori data biasa dan bisa pula sebagai Register Serba Guna (General Purpose Register). - 20 – 2Fh sebagai memori data biasa dan bisa pula diakses secara bit (bitaddressable) - 30 – 7Fh sebagai memori data biasa yang dapat menyimpan data maupun stack c. Register Serba Guna Register Serba Guna (General Purpose Register) menempati alamat memori-data 00hsampai 18h. Memori sebanyak 32 byte ini dikelompokkan menjadi 4 Kelompok Register(Register Bank). 8 byte memori dari masing-masing kelompok itu dikenali sebagai Register 0 - Register 7 (R0, R1, R2, R3,R4, R5, R6 dan R7).



Panduan Praktikum Microcontroller | 5 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



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,04h MOV A,R4



Instruksi pertama mempunyai makna isi memori-data pada alamat 04h di-copy- kan ke AkumulatorA, sedangkan instruksi kedua artinya isi R4di-copy-kan ke Akumulator A. Karena R4menempati memori-data nomor 4, jadi kedua instruksi itu berakibat sama bagi Akumulator A.Tapi saat diterjemahkan ke kode mesin, intruksi pertama diubah menjadi E5 04(heksadesimal) dan instruksi kedua menjadi E6(heksadesimal). Jadi, instruksi kedua lebih sederhana dari instruksi pertama. Selain itu, khusus untuk Register 0 dan Register 1 (R0 dan R1) masih mempunyai kemampuan lain. Kedua register ini bisa dipakai sebagai register penampung alamat yang dipakai dalam pengakesesan memori secara tidak langsung(indirect memori addressing).Empat kelompok Register Serba Gunaitu tidak bisa dipakai secarabersamaan.Setelah microcontroller di-reset maka yang aktif adalah Kelompok Register 0(Register Bank 0). Kalau yang diaktifkan adalah Kelompok Register 1, maka yang dianggap sebagai R0bukan lagi memori-data nomor 0 melainkan memori-data nomor 8.Demikian pula kalau yang diaktifkan Kelompok Register 3maka memori-data nomor 18h yang menjadi R0. Kelompok Register yang aktif dipilih dengan cara mengatur bit RS0dan RS1yang ada di dalam Register PSW(Program Status Word).



d. Bit-addressable Memori Memori data internal pada alamat 20hsampai 2Fhbisa dipakai menampung informasi dalam level bit. Setiap byte memori di daerah ini bisa dipakai menampung 8 bit informasi yang masing-masing dinomori tersendiri.Dengan demikian dari 16 byte memori yang ada bisa dipakai untuk menyimpan 128 bit (16 x 8 bit) yang dialamati dengan alamat 00hsampai 7Fh. Informasi dalam level bit tersebut masing-masing bisa di-‘1’-kan atau di-‘0’-kan dengan instruksi. Pengertian di atas bisa dipikirkan seolah-olah MCS51 mempunyai jenis memori yang lain. Tetapi sesungguhnya kedua jenis memori itu tetap sama, hanya saja cara pengaksesannya saja yang berlainan. Instruksi SETB 00hmengakibatkan memori bitalamat 0h menjadi ‘1’ atau sama dengan membuat bit nomor 0 dari memori datapada alamt 20hmenjadi ‘1’, sedangkan bit-bit



Panduan Praktikum Microcontroller | 6 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



lainnya dalam alamat memori 20htidak berubah nilai. Sedangkan instruksi CLR 7Fhmengakibatkan memori bitalamat 7Fhmenjadi ‘0’, atau sama dengan membuat bit nomor 7 dari memori datapada alamat 2Fhmenjadi ‘0’, sedangkan bit-bit lainnya dalam alamat memori 2Fhtidak berubah nilai. Pengertian ini dipertegas dengn intsruksi-instruksi berikut: MOV 21h,#0Fh



Sama dengan hasil kerja instruksi-instruksi berikut : SETB 08h SETB 09h SETB 0Ah SETB 0Bh CLR 0Ch CLR 0Dh CLR 0Eh CLR 0Fh



Instruksi MOV 21h,#0Fhmempunyai makna mengisi memori datapada alamat 21hdengan nilai 0Fh(atau bilangan biner 00001111), berarti mengisi memori bit pada alamat 0Fhsampai 08hdengan bilangan biner 00001111 yang bisa dinyatakan dengan 8 baris instruksi berikutnya. e. Special Function Register SFRadalah satu daerah RAM dalam IC keluarga MCS-51 yang dipakai untuk mengatur perilaku MCS51 dalam hal-hal khusus, misalnya tempat untuk berhubungan dengan port paralel P1atau P3, dan sarana input/output lainnya, tapi tidak umum dipakai untukmenyimpan data seperti layaknya memori data. Meskipun demikian, dalam hal penulisan program SFRdiperlakukan persis sama dengan memori data. Untuk mengisi memori-data pada alamat 60hdengan bilangan 0Fh, instruksi yang dipergunakan adalah : MOV 60h,#0Fh



Sedangkan untuk menyimpan 0Fhke Port 1 yang di SFRmenempati memori-data pada alamat 90h, instruksi yang dipergunakan adalah : MOV 90h,#0Fh



Membandingkan kedua instruksi di atas bisa dimengerti dalam segi penulisan program SFRdiperlakukan persis sama dengan memori data. Meskipun demikian, dalam mengakses memori databisa dipakai dua cara, yakni pengaksesan alamat memori secara langsung(direct memory addressing) dan pengaksesan alamat memori secara tidak langsung(indirect memoryaddressing) lewat bantuan R0dan R1. Tetapi untuk SFRhanya bisa dipakai penyebutan nomor memori secara langsung(direct memory addressing) saja. f. Register Dasar MCS-51



Panduan Praktikum Microcontroller | 7 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Untuk keperluan penulisan program, setiap mikroprosesor/mikrokontroler selalu dilengkapi dengan Register Dasar. Ada beberapa macam register merupakan register baku yang bisa dijumpai disemua jenis mikroprosesor/mikrokontroler, ada register yang spesifik pada masing-masing prosesor.Yang termasuk Register Baku antara lain:Program Counter, Akumulator, Stack Pointer Register, Program Status Register. MCS51 mempunyai semua register baku ini. Sebagai register yang khas MCS51, antara lain adalah Register B, Data Pointer High Byte dan Data Pointer Low Byte.Di samping itu MCS51 masih mempunyai Register Serba Guna R0...R7yang sudah disebut diatas. Dalam mikroprosesor/mikrokontroler yang lain, register-register dasar biasanya ditempatkan ditempat tersendiri dalam inti prosesor, tapi dalam MCS51 register-register itu ditempatkan secara terpisah. • Program Counter ditempatkan ditempat tersendiri di dalam inti prosesor • Register Serba GunaR0..R7ditempatkan di salah satu bagian dari memori data internal • Register lainnya ditempatkan dalam SFR.



Gambar 5. Susunan Register Dasar MCS51 Kegunaan dan pemakaian register-register dasar tersebut antara lain sebagaiberikut: - Program Counter Program Counter (PC) dalam 8051 berkapasitas 16 bit. Di dalam PCdicatat nomor memori program yang menyimpan instruksi berikutnya yang akan diambil (fetch) sebagai instruksi untuk dikerjakan (execute). Saat setelah reset PCbernilai 0000h, berarti MCS51 akan segera mengambil isi memori-program nomor 0 sebagai instruksi. Nilai PCotomatis bertambah 1 setelah prosesor mengambil instruksi 1 byte. Adainstruksi yang hanya 1 byte, ada instruksi yang sampai 4 byte, dengan demikian pertambahan nilai PC setelah menjalankan instruksi, tergantung pada jumlah byte instruksi bersangkutan.



Panduan Praktikum Microcontroller | 8 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



-



Akumulator Sesuai dengan namanya, Akumulatoradalah sebuah register yang berfungsi untuk menampung (accumulate) hasil-hasil pengolahan data dari banyak instruksi MCS51. Akumulator bisa menampung data 8 bit (1 byte) dan merupakan register yang paling banyak kegunaannya, lebih dari setengah instruksi-instruksi MCS51 melibatkan Akumulator. Instruksi-instruksi berikut memperjelas pengertian di atas : MOV A,#20h ADD A,#30h



Instruksi pertama menyimpan nilai 20hke Akumulator, instruksi kedua menambahkan bilangan 30hke Akumulator, hasil penjumlahan sebesar 50h ditampung di Akumulator. -



Stack Pointer Register Salah satu bagian dari memori-data dipakai sebagai Stack, yaitu tempat yang dipakai untuk menyimpan sementara nilai PCsebelum prosesor menjalankan sub-rutin. Nilai tersebut akan diambil kembali dari Stackdan dikembalikan ke PCsaat prosesor selesai menjalankan sub-rutin. Stack Pointer Registeradalah register yang berfungsi untuk mengatur kerja stack. Dalam Stack Pointer Registerdisimpan nomor memori datayang dipakai untuk operasi Stack berikutnya.



-



Program Status Word Program Status Word (PSW) berfungsi mencatat kondisi prosesor setelah melaksanakan instruksi.PSW terdiri dari (MSB ke LSB): CY-AC-F0-RS1-RS0OV-NULL-P = Carry – Auxiliary - Flag 0 - Register Selector 1 - Register Selector 0 - Overflow - General purpose - Parity. Pembahasan tentang PSWsecara rinci akan dilakukan dibagian lain.



-



Register B Merupakan register dengan kapasitas 8 bit, merupakan register pembantu Akumulatorsaat menjalankan instruksi perkalian dan pembagian.



-



DPH dan DPL Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL) masingmasing merupakan register dengan kapasitas 8 bit, tetapi dalam pemakaiannya kedua register ini digabungkan menjadi satu register 16 bit yang dinamakan sebagai Data Pointer Register (DPTR). Sesuai dengan namanya, Register ini dipakai untuk mengalamati datadalam jangkauan yang luas, yaitu terutama untuk mengakses data yangberada pada memori eksternal



Panduan Praktikum Microcontroller | 9 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



g. Pemrograman Assembly Pada MCS-51 Pemrograman mikrokontroller MCS-51 menggunakan bahasa assembly. Dalam praktikum nanti akan menggunakan program assembler ASM51.EXE. Mnemonic dari sebuah baris perintah bisa merupakan instruksi untuk prosesor, maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler. Mnemonic untuk instruksi prosesor, sangat tergantung pada prosesor yang dipakai, sedangkan mnemonic untuk Assembler Directive tergantung pada program Assembler yang dipakai. Meskipun demikian, terdapat beberapa Assembler Directive yang umum, yang sama untuk banyak macam program Assembler. Assembler Directive yang bersifat umum tersebut, antara lain adalah 1. ORG– singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG 1000hmaka memori berikutnya yang dipakai Assembler adalah 1000h. ORGberlaku untuk memori program maupun memoridata. Misalnya :ORG 1000h 2. EQU– singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol. Misalnya :Angka88 EQU 88 Berarti memberi nilai 88pada Symbol Angka88, atau CR EQU 0Dhmempunyai makna kode ASCII dari CR(Caarriage Return) adalah 0Dh. 3. DB– singkatan dari DEFINE BYTE, dipakai untuk memberi nilai tertentu pada memori-program. Nilai tersebut merupakan nilai 1 byte, bisa berupa angka ataupun kode ASCII. DBmerupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel. Contoh : ORG 200h STRING DB ‘Belajar Mikrokontroler’



ORG 200hmemerintahkan program Assembler agar bekerja mulai dari memori



programnomor 200h. Instruksi selanjutnya memerintahkan program Assembler agar mengisi memori programnomor 200hdan berikutnya dengan tulisan ‘BelajarMikrokontroler’ (yang diisikan adalah kode ASCII dari ‘B’, ‘e’ dan seterusnya). 4. DW– singkatan dari DEFINE WORD, dipakai untuk memberi nilai 2 byte ke memori-program pada baris bersangkutan. Assembler Directive ini biasa dipakai untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori program. 5. DS/DATA– singkatan dari Define Storage, Assembler Directive ini dipakai untuk membentuk variable. Sebagai variabel tentu saja memori yang dipakai adalah memori data(RAM) bukan memori program(ROM). Hal ini harus benar-benar



Panduan Praktikum Microcontroller | 10 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



dibedakan dengan Assembler DirectiveDBdan DWyang membentuk kode di memori program. Dan karena DSbekerja di RAM, maka DShanya sekedar menyediakan tempat di memori, tetapi tidak mengisi nilai pada memori bersangkutan. Secara umum pemrograman assembly yang dipakai sama dengan yang ada pada praktikum mikroprosesor. Namun ada sedikit perbedaan dalam pemakaian operand-nya (register,pengaksesan alamat).Perulangan,percabangan pun hampir sama. Maka seharusnya praktikan sudah bisa memprogram microcontroller. Untuk lebih jelasnya dapat di lihat tabel instruction set di lampiran. Register yang biasa digunakan dalam MCS51 adalah register Akumulator(A) Contoh program : $MOD52 ROM LED_PIN COUNT_X COUNT_Y COUNTD TEMP ORG ROM AJMP START



EQU 000H BIT 090H DATA 040H DATA 041H DATA 042H DATA 043H



ORG 200H TABEL ANIMASI : DB 081H,042H,024H,018H,024H,042H ORG 400H START : MOV DPTR,#TABEL ANIMASI MOV COUNTD,#06H ULANG ANIMASI: MOV A,#0H MOVC A,@A+DPTR MOV P1,A INC DPL DJNZ COUNTD,ULANG_ANIMASI AJMP START END



$MOD52 adalah berisi definisi alamat register beserta pin-pin dari AT89S52,register sendiri terdapat di memori internal mikrokontroler.Sebenarnya kita juga bisa mendefinisikan pin dan register kita sendiri. Yang perlu diingat alamat 0-32byte pertama digunakan untuk stack memori, jadi jangan diutak-atik. Sedangkan alamat 80h keatas digunakan untuk IO dan setting lainnya.Jadi kita meempunyai alamat dari 20-7F total 95 byte kosong untuk dapat difungsikan sebagai variabrl bebas. Tanpa #MOD52,kita masih bisa membuat program,hanya saja kita harus tahu alamat fisik dari register yang akan kita manfaatkan, misal: P0 P1 P2



DATA 080H; PORT0 DATA 090H; PORT1 DATA 0A0H; PORT2



Panduan Praktikum Microcontroller | 11 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” | P3



DATA 0B0H; PORT3



Nama port 0 bisa kita ganti sesuai keinginan kita. Misal kita memakai port 0 untuk lcd,maka kita bisa definisikan dengan kode berikut: LCD



DATA 080H; LCD PORT



MOV COUNTD,#06h. Tanda # pada 06h berarti 06h adalah immediate data,yang berarti instruksi ini akan mengisi variable COUNTD dengan nilai 06h. Sedangkan MOV COUNTD,06hberarti variable



COUNTD akan diisi dengan nilai dari RAM alamat 06h. MOVC A,@A+DPTR



MOVC berarti mengambil data dari ROM(code),dari alamat sesuai dengan nilai dari A+DPTR. Bagaimana untuk menuilis secara dinamis di RAM? Dengan MOV @R1,A Misal kita ingin menuilis di RAM alamat 60h,maka bisa memakai kode berikut MOV R1,#80h MOV @R1,A



Contoh program lain dapat dilihat di lampiran. h. ASM51 ASM51 adalah program assembler.Program ini menerjemahkan bahasa assembly ke dalam kode binary(bahasa mesin) yang dimengerti oleh mikroprosesor. Jadi, pertama tulis program kalian di notepad. Simpan pada file berekstensi .asm dan letakkan di folder yang sama dengan ASM51.EXE. Masuk command prompt, ketikkan: ASM51 namafile



Gambar 6. Tampilan Program ASM51 pada Command Prompt Jika benar,maka akan muncul tulisan seperti diatas. Jika ada eror juga akanNampak pada pesan.Setelah demikian,maka akan muncul file .HEX yang nantinya di-download-kan ke mikro dan file .LST. i. ISP (In-System Programming) Setelah membuat program,kita akan memasukkan progam tersebut ke dalam mikrokontroler. Kita bisa menggunakan STK200 memakai parallel port.



Panduan Praktikum Microcontroller | 12 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Gambar 7. Skema STK200 Sebenarnya ISP tidak terbatas hanya menggunakan STK200,dapat juga memakai Universal Programmer,serial UART, tergantung mikrokontroler kita mendukung yang mana. j. ISP PROGRAMMER Isp-prog adalah program untuk men-download-kan program kita ke dalam mikrokontroler.



Gambar 8. Tampilan program ISP-PROGRAMMER Untuk menggunakan jangan lupa mengatur setup,tipe microcontroller,crystal yang digunakan, memilih file yang akan di-download-kan(file .hex keluaran dari assembler). k. SIM535 dan EdSim51 SIM535 dan EdSim51 merupakan program simulator mikrokontroler.Dengan program ini kita bisa melihat status register yang ada, men-trace program kita. Kita bisa memilih program keluaran assembler ASM51(file .lst) yang sudah kita buat.



Panduan Praktikum Microcontroller | 13 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Gambar 9. Tampilan Program Sim535



Gambar 10. Tampilan Program EdSim51 3. PENUTUP



Panduan Praktikum Microcontroller | 14 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Demikian yang dapat saya sampaikan tentang MCS-51. Untuk hal-hal lain akan dibahas pada topic berikutnya. Selain itu, praktikan juga harap mempelajari handout, buku acuan maupun datasheet AT89S52 sebagai persiapan mengikuti praktikum. Selamat belajar dan mencoba.Tuhan memberkati.  Orang LUAR BIASA itu SEDERHANA dalam UCAPAN,tetapi HEBAT dalam TINDAKAN. - unknown -



SIMULASI MIKROKONTROLER DENGAN MENGGUNAKAN ISIS – PROTEUS Proteus adalah program untuk mendesain rangkaian elektronika dan PCB serta melakukan simulasi.Didalam Proteus sendiri tergintegrasi program ISIS untuk membuat rangkaian elektronika dan ARES untuk membuat desain PCB. Pada praktikum akan lebih difokuskan pada simulasi dengan program ISIS. Kelebihan utama program ISIS-Proteus adalah pada kemampuannya untuk mensimulasikan rangkaian mikrokontroler yang sudah kita rancang.Program yang sudah kita buat, setelah dicompile dengan compiler, dapat dijalankan dan disimulasikan.ISIS-PROTEUS juga menyediakan contoh rangkaian mikorokontroler yang sudah terintegrasikan dengan komponen lainnya.Misalnya Rangkaian pengendali motor stepper, atau pembacaan sensor suhu beserta program yang sudah bisa langsung dijalankan. Berikut adalah tutorial singkat untuk membuat dan mensimulasikan rangkaian minimum system AT89S52menggunakan ISIS-Proteus: 1. Buka Proteus 7 Profesional > ISIS 7 Profesional. 2. Untuk memilih komponen yang akan digunakan, pertama-tama klik tombol P (Pick from Libraries). Jendela Pick Devicesakan muncul.



Panduan Praktikum Microcontroller | 15 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Button Pick Devices



3. Pada Keywoard kita masukkannama komponen atau devices yang kita inginkan. Yang kita inginkan adalah mikrokontroler AT89S52, namun karena tidak ada pada library kita masukkan saja AT89C52. Secara umum kedua mikrokontroler tersebut sama saja, hanya berbeda pada metode pemrograman mikrokontoler tersebut. AT89S52 mendukung pemrograman dengan metode ISP (In System Programming), sementara AT89C52 tidak. Namun karena kita menggunakan ISIS untuk mensimulasikannya, kita tidak perlu memikirkan metode pemrograman mikrokontrolernya.



Jendela Pick Devices.



4. Pada workspace kita klik pada area kosong maka chip mikorokontroler AT89C52akan muncul.



Panduan Praktikum Microcontroller | 16 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Mikrokontroler AT89C52



5. Untuk menambahkan komponen lain caranya sama saja seperti langkah 3 dan 4. Komponen yang kita gunakan akan muncul pada kotak DEVICES. Berikut adalah daftar komponen untuk membuat rangkaian minimum system at89s52/at89c52



Jendela Devices



6. Untuk memunculkan terminal VCC dan GND, pada toolbar dibagian kiri kita klik tombol Terminal Mod, kemudian pilih POWER /GROUND kemudian klik lagi pada workspace. Untuk menyambung kaki-kaki antar komponen tinggal klik kaki komponen yang diinginkan kemudian tarik ke kaki komponen yang lain.



Panduan Praktikum Microcontroller | 17 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Button Terminals Mode dan Jendela Terminal



7. Berikut adalah rangkaian minimum system dari AT89C52 yang sudah selesai dirancang. Semua mikrokontroler 51 atmel memilki osilator on-chip yang dapat digunakan sebagai sumber clock ke CPU. Untuk menggunakannyadi antara kaki XTAL1 dan XTAL2 dihubungkan resonator kristal atau keramik dengan kapasitor yang terhubung ke ground. Biasa digunakan kristal dengan frekuensi 12 MHz atau 11.0592 MHz. Satu siklus mesin paling lama dikerjakan dalam 12 periode osilator. Jika digunakan kristal 12 MHz, maka untuk satu siklus mesin dibutuhkan waktu 1µs. Pada PORT 0 dipasang resistor pull up eksternal karena PORT 0 tidak memilki pull up inernal. Pada pin reset dipasang rangkaian untuk mereset mikrokontroler jika switch ditekan.



Panduan Praktikum Microcontroller | 18 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Min-System AT89S52/AT89C52



8. Berikut adalah rangkaian minimum system dari AT89C52 yang sudah selesai dirancang beserta modul LED indicator pada semua PORT nya:



Panduan Praktikum Microcontroller | 19 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Min-System AT89S52/AT89C52 dengan modul LED Indikator



9. Untuk memasukkan program kedalam mikrokontroler AT89C52, double-klik AT89C52 akan muncul jendela Edit Component. Pada Program File, kita masukkan program yang dinginkan untuk disimulasi. Jangan lupa pada Clock Frequency kita masukkan frekuensi dari Kristal yang kita gunakan dalam hal ini 12MHz. Kemudian klik OK.



Jendela Edit Component



Panduan Praktikum Microcontroller | 20 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



10. Untuk mesimulasikan, kita klik tombol play yang berada di kiri bawah work space. Simuasi dapat dihentikan dengan menekan tombol stop, atau dihentikan sementara dengan tombol pause. Simulasi juga dapat djalankan per step. Tombol Play, Step, Pause, dan Stop



Panduan Praktikum Microcontroller | 21 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Lampiran 1 CONTOH PROGRAM ASSEMBLY Contoh1 : ORG 000H JMP PROGRAM ORG 100H PROGRAM:MOV A,#0H ULANG: MOV P1,A CALL DELAY INC A JMP ULANG DELAY: MOV R0,#00H MOV R1,#00H ULANG1: INC R1 ULANG2: INC R0 CJNE R0,#0FFH,ULANG2 CJNE R1,#040H,ULANG1 RET SELESAI: NOP END



Program di atas kalau dijalankan akan membentuk sebuah penghitung (counter) 8 bit pada port1. Contoh 2 : ORG 000H JMP MULAI ORG 100H MULAI: MOV P1,#0FFH ULANG: JNB P0.0,ULANG MOV P1,#00H END



Program di atas akan menunggu masukan pada pin P0.0 diberi masukan high, lalu dia akan mengeluarkan nilai 00h ke seluruh pin port 1 (P1.0-P1.7). Contoh 3 : ORG 000H JMP PROGRAM ORG 100H PROGRAM:MOV P1,#0FFh ULANG1: MOV C,P1.0 MOV P1.1,C JMP ULANG1 END



Program di atas akan memindahkan keadaan logika (misal diberi masukan ‘1’) pada pin P1.0 ke pin P1.1 melalui register C.



Panduan Praktikum Microcontroller | 22 Topik 1 – “Pengenalan Microcontroller Keluarga MCS-51 (Looping dan Aritmatika)” |



Contoh 4: ORG 000H JMP PROGRAM ORG 100H PROGRAM:MOV A,#01H ULANG: MOV P1,A RL A CALL DELAY JMP ULANG DELAY: MOV R0,#00H MOV R1,#00H ULANG1: INC R1 ULANG2: INC R0 CJNE R0,#0FFH,ULANG2 CJNE R1,#040H,ULANG1 RET SELESAI: NOP END



Program di atas jika dijalankan akan membentuk animasi LED sederhana pada port1 jika keluaran port 1 (pin P1.0 sampai P1.7) dihubungkan dengan LED. Animasi LED yang dibentuk adalah jenis running LED.