• Tidak ada hasil yang ditemukan

PENGENALAN DASAR MIKROKONTROLER MCS-51 AT89S51/52. DI SUSUN OLEH: RENI NURAENI,ST M.Pd

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENGENALAN DASAR MIKROKONTROLER MCS-51 AT89S51/52. DI SUSUN OLEH: RENI NURAENI,ST M.Pd"

Copied!
33
0
0

Teks penuh

(1)

PENGENALAN DASAR MIKROKONTROLER

MCS-51 AT89S51/52

DI SUSUN OLEH: RENI NURAENI,ST M.Pd

(2)

KEGIATAN BELAJAR 1 MIKROKONTROLLER AT89S51/52

Mikrokontroller 8-bit dengan 4 K Byte, ISP ( In System Programming ) A. PENDAHULUAN

Mikrokontroler saat ini tidak asing lagi dalam dunia elektronika, hampir semua peralatan elektronik dewasa ini menggunakan perangkat ini, mikrokontroler merupakan pengendali utama dalam peralatan elektronik saat ini, maka mikrokontroler merupakan suatu hal yang penting untuk dipelajari bagi mereka yang berkecimpung dalam dunia elektronika.

Mikrokontroler yang dibahas disini adalah mikrokontroler buatan ATMEL yang mudah ditemui di pasaran di Indonesia, yaitu dari keluarga MCS-51. AT89S51 dan AT89S52 mempunyai kemampuan serial downloading atau lebih dikenal dengan istilah In System Programming (ISP) sehingga mikrokontroler langsung dapat diprogram pada rangkaiannya tanpa harus mencabut IC untuk diprogram, Programmer ISP dapat dibuat menggunakan beberapa resistor via paralel port komputer sehingga bagi mereka yang belum memiliki programmer dapat tetap bereskperimen menggunakan mikrokontroler ini dengan biaya yang relatif murah.

FITUR:

1. Kompatibel dengan produk MCS-51

2. 4K byte In System Programmable Flash Memory 3. Range catu daya 4,0V s/d 5,0V

4. Operasi statis: 0 Hz s/d 33 MHz 5. Tiga Tingkat Program memory lock 6. 128 x 8-bit RAM internal

7. 32 Programmable Jalur I/O 8. Dua 16-bit Timer/ Counter 9. Enam Sumber Interupsi 10. Full Duplex Serial Channel

11. Low Power Idle dan Mode Power Down 12. Watch Dog Timer

13. Dua Data Pointer 14. Power Off Flag

(3)

15. Fast Programming Time 16. Flexyble ISP programming

Pada gambar 1 ditunjukkan bentuk fisik dan konfigurasi pin dari sebuah mikrokontroler seri AT89Sxx.

Gambar 1. 1 Bentuk fisik AT89Sxx (PDIP) dan konfigurasi Pin DISKRIPSI

AT89S51 mempunyai konsumsi daya rendah, mikrokontroller 8-bit CMOS dengan 4K byte memori Flash ISP (In System Programmable/ dapat diprogram didalam sistem). Divais ini dibuat dengan teknologi memori non-volatile dengan kerapatan tinggi dan kompatibel dengan standar industri 8051 dari INTEL, set instruksi dan pin keluaran. Flash yang berada di dalam chip memungkinkan memori program untuk diprogram ulang pada saat chip di dalam sistem atau dengan menggunakan Programmer memori non-volatile konvensional. Dengan mengkombinasikan CPU 8-bit yang serbaguna dengan flash ISP pada chip, ATMEL 89S51 merupakan mikrokontroler yang luar biasa yang

(4)

memberikan fleksibilitas yang tinggi dan penggunaan biaya yang efektif untuk beberapa aplikasi kontrol.

AT89S51 memberikan fitur-fitur standar sebagai berikut: 4K byte Flash, 128 byte RAM, 32 jalur I/O, Watchdog Timer, dua data pointer, dua buah 16-bit timer/ counter, lima vektor interupsi dua level, sebuah port serial full dupleks, oscillator internal, dan rangkaian clock. Selain itu AT89S51 didisain dengan logika statis untuk operasi dengan frekuensi sampai 0 Hz dan didukung dengan mode penghematan daya. Pada mode idle akan menghentikan CPU sementara RAM, timer/ counter, serial port dan sistem interupsi tetap berfungsi. Mode Power Down akan tetap menyimpan isi dari RAM tetapi akan membekukan oscillator, menggagalkan semua fungsi chip sampai interupsi eksternal atau reset hardware dibangkitkan.

DISKRIPSI PIN

VCC Tegangan Supply GND Ground

Port0

Port 0, merupakan port I/O 8-bit open drain dua arah. Sebagai sebuah port, setiap pin dapat mengendalikan 8 input TTL. Ketika logika “1” dituliskan ke port 0, maka port dapat digunakan sebagai input dengan high impedansi. Port 0 dapat juga dikonfigurasikan untuk multipleksing dengan address/ data bus selama mengakses memori program atau data eksternal. Pada mode ini P0 harus mempunyai pull-up.

Port1

Port 1 merupakan port I/0 8-bit dua arah dengan internal pull up. Buffer output port 1 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 1, maka port ini akan mendapatkan internal pull up dan

dapat digunakan sebagai input. Port 1 juga menerima alamat byte rendah selama pemrograman dan

(5)

Port Pin Fungsi Alternatif

P1.5 MOSI (digunakan untuk In System Programming) P1.6 MISO (digunakan untuk In System Programming) P1.7 SCK (digunakan untuk In System Programming)

Port2

Port 2 merupakan port I/O 8-bit dua arah dengan internal pull- up. Buffer output port 2 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 2, maka port ini akan mendapatkan internal pull up dan dapat digunakan sebagai input.

Port3

Port 3 merupakan port I/O 8-bit dua arah dengan internal pull up. Buffer output port 3 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 3, maka port ini akan mendapatkan internal pull up dan dapat digunakan sebagai input. Port 3 juga melayani berbagai macam fitur khusus, sebagaimana yang ditunjukkan pada tabel berikut:

Port Pin Fungsi Alternatif

P3.0 RXD ( port serial input ) P3.1 TXD ( port serial output ) P3.2 INT0 ( interupsi eksternal 0 ) P3.3 INT1 ( interupsi eksternal 1 ) P3.4 T0 ( input eksternal timer 0 ) P3.5 T1 ( input eksternal timer 1 )

P3.6 WR ( write strobe memori data eksternal) P3.7 WR ( read strobe memori program eksternal)

RST

Input Reset. Logika high “1” pada pin ini untuk dua siklus mesin sementara oscillator bekerja maka akan me-reset devais.

(6)

mengunci byte low dari alamat selama mengakses memori eksternal. Pin ini juga merupakan input pulsa pemrograman selama pemrograman flash (paralel). Pada operasi normal, ALE mengeluarkan suatu laju konstan 1/6 dari frekuensi osiilator dan dapat digunakan untuk pewaktu eksternal.

PSEN

Program Store Enable merupakan strobe read untuk memori program eksternal.

EA/ VPP

External Access Enable. EA harus di hubungkan ke GND untuk enable devais, untuk mengakses memori program eksternal mulai alamat 0000H s/d FFFFH. EA harus dihubungkan ke VCC untuk akses memori program internal. Pin ini juga menerima tegangan pemrogramman ( VPP) selama pemrograman Flash.

XTAL1

Input untuk penguat oscilator inverting dan input untuk rangkaian internal clock

XTAL2

Output dari penguat oscilator inverting.

1.1. Organisasi Memori

Semua divais 8051 mempunyai ruang alamat yang terpisah untuk memori program dan memori data, seperti yang ditunjukkan pada gambar 1.1. dan gambar 1.2. Pemisahan secara logika dari memori program dan data mengijinkan memori data untuk diakses dengan pengalamatan 8-bit, yang dengan cepat dapat disimpan dan dimanipulasi dengan CPU 8-bit. Selain itu, pengalamatan memori data 16-bit dapat juga dibangkitkan melalui register DPTR. Memori program ( ROM, EPROM dan FLASH ) hanya dapat dibaca, tidak ditulis. Memori program dapat dilakukan ekspansi hingga mencapai 64 K.Byte. Pada 89S51, 4K.Byte memori program terdapat di dalam chip. Untuk membaca memori program eksternal mikrokontroler mengirim sinyal PSEN ( Program Store Enable )

(7)

Gambar 1.2. Diagram blok mikrokontroler 89S51

Memori data ( RAM ) menempati ruang alamat yang terpisah dari memori program. Pada keluarga 8051, 128 byte terendah dari memori data, berada di dalam chip. RAM eksternal (maksimal 64 K. Byte). Dalam pengaksesan RAM eksternal, mikrokontroler mingirimkan sinyal RD ( baca ) dan WR ( tulis ).

(8)

1.1.1.Program Memory

Gambar 1.2. menunjukkan suatu peta bagian bawah dari memori program. Setelah reset CPU mulai melakukan eksekusi dari lokasi 0000H. Sebagaimana yang ditunjukkan pada gambar 1.3, setiap interupsi ditempatkan pada suatu lokasi tertentu pada memori program. Interupsi menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu. Interupsi Eksternal 0, sebagi contoh, menempatai lokasi 0003H. Jika Interupsi Eksternal 0 akan digunakan, maka layanan rutin harus dimulai pada lokasi 0003H. Jika interupsi ini tidak digunakan, lokasi layanan ini dapat digunakan untuk berbagai keperluan sebagai Memori Program.

Gambar 1.4. Peta Interupsi mikrokontroller 8051 1.1.2 Memory Data

Pada gambar 1.2. menunjukkan ruang memori data internal dan eksternal pada keluarga 8051. CPU membangkitkan sinyal RD dan WR yang diperlukan selama akses RAM eksternal. Memori data internal terpetakan seperti pada gambar 1.2. Ruang memori dibagi menjadi tiga blok, yang diacukan sebagai 128 byte lower, 128 byte upper dan ruang SFR. Alamat memori data internal selalu mempunyai lebar data satu byte. Pengalamatan langsung di atas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak langsung di atas 7Fh akan mengakses satu alamat yang berbeda. Demikian pada gambar 1.4 menunjukkan 128 byte bagian atas dan ruang SFR menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya mereka terpisah secara fisik.

(9)

128 byte RAM bagian bawah dikelompokkan lagi menjadi beberapa blok, seperti yang ditunjukkan pada gambar 1.5. 32 byte RAM paling bawah, dikelompokkan menjadi 4 bank yang masing-masing terdiri dari 8 register. Instruksi program untuk memanggil register-register ini dinamai sebagai R0 sampai dengan R7. Dua bit pada Program Status Word (PSW) dapat memilih register bank mana yang akan digunakan. Penggunaan register R0 sampai dengan R7 ini akan membuat pemrograman lebih efisien dan singkat, bila dibandingkan pengalamatan secara langsung.

Gambar 1.5. Memori data internal

(10)

Ports 0, 1, 2 dan 3

P0, P1, P2 dan P3 adalah SFR yang ditempati oleh Port 0, 1, 2 dan 3. Menulis suatu logika 1 terhadap sebuah bit dari sebuah port SFR ( P0, P1, P2 atau P3) menyebabkan pin output port yang bersesuaian akan berada dalam kondisi logika high ‘1’. Demikian sebaliknya.

Buffer Data Serial

Buffer serial sesungguhnya merupakan dua buah register yang terpisah, buffer pemancar dan buffer penerima. Ketika data diisikan ke SBUF, maka akan menuju ke buffer pemancar dan ditahan untuk proses transmisi. Ketika data diambil dari SBUF, maka akan berasal dari buffer penerima.

Register Timer

Pasangan register ( TH0, TL0) dan (TH1, TL1) adalah register pencacah 16-bit untuk Timer/ Counter 0 dan 1.

Register Control

Registers IP, IE, TMOD, TCON, SCON, dan PCON terdiri dari bit control dan status.

Program Status Word

PSW atau Program Status Word berisi bit-bit status yang berkaitan dengan kondisi atau keadaan CPU mikrokontroler pada saat tersebut. PSW berada dalam lokasi ruang SFR ( perhatikan pada gambar 1.7, dengan lokasi alamat D0h ). Pada PSW ini kita dapat memantau beberapa status yang meliputi: carry bit, auxiliary carry ( untuk operasi BCD ), dua bit pemilih bank register, flag overflow, sebuah bit paritas dan dua flag status yang bisa didefinisikan sendiri. Bit carry dapat juga anda gunakan pada keperluan operasi aritmatika, juga bisa digunakan sebagai universal akumulator untuk beberapa operasi Boolean.

(11)

Table 1.1 Program Status Word

MSB LSB

CY AC F0 RS1 RS0 OV - P

BIT SYMBOL FUNCTION

PSW.7 CY Carry flag.

PSW.6 AC Auxilliary Carry flag. (For BCD operations.)

PSW.5 F0 Flag 0. (Available to the user for general purposes.)

PSW.4 RS1

Register bank select control bit 1.

Set/cleared by software to determine working register bank. (See Note.)

PSW.3 RS0

Register bank select control bit 0.

Set/cleared by software todetermine working register bank. (See Note.)

PSW.2 OV Overflow flag.

PSW.1 - User-definable flag.

PSW.0 P

Parity flag.

Set/cleared by hardware each instruction cycle to indicate an odd/even number of “one” bits in the Accumulator, i.e., even parity.

Bit RS0 dan RS1 dapat digunakan untuk memilih satu dari empat bank register sebagaimana ditunjukkan pada tabel 1.2. Bit paritas dapat digunakan untuk mengetahui jumlah logika '1' pada akumulator: P=1 bila pada akumulator mempunyai logika '1' yang jumlahnya ganjil, dan P=0 jika akumulator mempunyai logika '1' yang jumlahnya genap. Dua bit yang lain PSW1 dan PSW5 dapat digunakan untuk berbagai macam tujuan.

(12)

Tabel 1. 2. Alamat Bank

RS1 RS0 Bank Address RAM

0 0 0 00 h - 07 h

0 1 1 08 h - 0F h

1 0 2 10 h - 17 h

1 1 3 18 h - 1F h

Semua data pada lokasi RAM 128 byte paling bawah dapat diakses baik dengan menggunakan pengalamatan langsung maupun tak langsung. 128 byte paling atas hanya dapat diakses dengan cara tak langsung, gambar 1.7.

Gambar 1.7. RAM internal 128 byte paling atas 1.2. Special Function Register

Sebuah peta memori yang disebut sebagai ruang Special Function Register ( SFR ) ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati tidak diperkenankan untuk diakses. Akses baca untuk alamat ini akan menghasilkan data random, dan akses tulis akan menghasilkan efek yang tak jelas.

(13)

Accumulator

ACC adalah register akumulator. Mnemonik untuk instruksi spesifik akumulator ini secara sederhana dapat disingkat sebagai A.

Register B

Register B digunakan pada saat opersi perkalian dan pembagian. Selain untuk keperluan tersebut di atas, register ini dapat digunakan sebagai register bebas.

Program Status Word

Register PSW terdiri dari informasi status dari program yang secara detail ditunjukkan pada Tabel 1.2.1.

Stack Pointer

Register Pointer Stack mempunyai lebar data 8-bit. Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Sementara stack dapat berada disembarang tempat RAM. Stack Pointer diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.

Data Pointer

Data Pointer (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL). Fungsi ini ditujukan untuk menyimpan data 16-bit. Dapat dimanipulasi sebagai register 16-bit atau dua 8-bit register yang berdiri sendiri.

(14)

Gambar 1.8. Peta SFR 1.3 Sistem Minimum

sistem minimum dari mikrokontroller dapat dilihat pada gambar 4.1

bagian sistem ini terdiri dari sebuah mikrokontroller AT89S51/52 , osilator, rangkaian reset yang hanya terdiri dari resistor ,capasitor dan power supply.

(15)

KEGIATAN BELAJAR 2

SET INSTRUKSI MIKROKONTROLER ATMEL 89S51

Mikrokontroller tidak bisa bekerja tanpa perangkat lunak dan perangkat lunak inilah yang menentukan bagaimana sistem kerja pengendalian yang akan dilakukan oleh mikrokontroller. Program ditulis dalam bahasa assembly .

Mnemonics

Mnemonics adalah kata singkat dari instruksi. Sebagai contoh mnemonics dari beberapa instruksi sebagai berikut :

Tabel 6. Mnemonics mikrokontroler Instruksi mnemonics

Move Mov

Add Add

Increment Inc Decrement Dec Add carry Addc

Mnemonics dalam mikrokontroller dikelompokkan berdasarkan fungsinya menjadi 5 kelompok yaitu Arithmetic, Logic, Data moves, Call and jumps, Boolean.

Alih Data (Moving Data)

• Data dialihkan “di copy” dari sumber data “Source” ke tujuan “Destinasi”

• Destinasi disebut lebih awal kemudian baru Source MOVE Destinasi, Source

(16)

PUSH Source atau POP Destinasi XCH Destinasi, Source

• Cara Pengalamatan alih data disebut dengan Addressing Modes Immediate addressing mode

Register addressing mode Direct addressing mode Indirect Addressing mode

• Op code Perinatah “MOVE” mencakup memori : Internal RAM

Internal SFR External RAM

Internal dan eksternal ROM

• Tipe atau jenis Op code yang digunakan untuk alih data : MOV

MOVX MOVC

PUSH dan POP XCH

1.Mnemonics kelompok Arithmetic

Fungsi dari mnemonics kelompok ini adalah untuk memberikan instruksi aritmatika seperti penjumlahan, pengurangan, perkalian dsb. Daftar mnemonics kelompok ini beserta cara penulisan dan artinya secara lengkap sebagai berikut :

Tabel 7. Mnemonics aritmatik

Mnemonics Deskripsi

ADD A,Rr A+Rr Æ A

ADD A,add A+(add) Æ A

(17)

ADD A,#n A+nÆ A

ADDC A,Rr A+Rr+C Æ A

ADDC A,add A+(add)+C Æ A ADDC A,@Rp A+(Rp)+C Æ A

ADDC A,#n A+n+C Æ A

DEC A A-1 Æ A

DEC Rr Rr-1 Æ Rr

DEC add (add) –1 Æ (Add)

DEC @Rp (Rp)-1 Æ (Rp)

DIV AB A/B Æ AB

INC A A +1 Æ A

INC Rr Rr + 1 Æ Rr

INC add (add) + 1 Æ (Add) INC @Rp (Rp) + 1 Æ (Rp)

MUL AB AxB Æ AB

SUBB A, Rr A – Rr - C Æ A SUBB A, add A - (add) - C Æ A SUBB A, @Rp A - (Rp) - C Æ A SUBB A, #n A – n – C Æ A

2. Mnemonics kelompok Logic

Fungsi dari mnemonics kelompok ini adalah untuk memberikan instruksi logika seperti And, Or dsb. Daftar mnemonics kelompok ini beserta cara penulisan dan artinya secara lengkap sebagai berikut :

(18)

Tabel 8. Mnemonics logic

Mnemonics Deskripsi

ANL A, Rr A And Rr Æ A ANL A, add A And (add) Æ A ANL A, @Rp A And (Rp) Æ A ANL A, #n A And n Æ A

ANL Add, A (Add) And A Æ (Add) ANL add, #n (add) And n Æ (Add) ORL A, Rr A Or Rr Æ A

ORL A, add A Or (add) Æ A ORL A, @Rp A Or (Rp) Æ A ORL A, #n A Or n Æ A

ORL Add, A (Add) Or A Æ (Add) ORL add, #n (add) Or n Æ (Add) XRL A, Rr A XOR Rr Æ A XRL A, add A XOR (add) Æ A XRL A, @Rp A XOR (Rp) Æ A XRL A, #n A XOR n Æ A

XRL Add, A (Add) XOR A Æ (Add) XRL add, #n (add) XOR n Æ (Add)

CLR A 00 Æ A

CPL A A Æ A

(19)

RL A A0 Å A7 Å A6 ….. Å A1 Å A0 RLC A C Å A7 Å A6 ….. Å A0 Å C RR A A0 Æ A7 ÆA6 ….. ÆA1 Æ A0 RRC A C Æ A7 ÆA6 ….. Æ A0 Æ C

3. Mnemonics kelompok Data Moves

Fungsi dari mnemonics kelompok ini adalah untuk memberikan instruksi cara pemindahan data. Daftar mnemonics kelompok ini beserta cara penulisan dan artinya secara lengkap sebagai berikut :

Tabel 9. Mnemonics alih data

Mnemonics Deskripsi

MOV A, Rr Rr Æ A MOV A, add (add) Æ A MOV A, @Rp (Rp) Æ A MOV A, #n n Æ A MOV Rr, A A Æ Rr MOV Rr, Add (Add) Æ Rr MOV Rr, #n n Æ Rr MOV Add, A (Add) Æ A MOV Add, Rr Rp Æ (Add) MOV Add1, Add2 (Add2) Æ (Add1) MOV Add, @Rp (Rp) Æ (Add) MOV Add, #n (Rp) Æ (Add) MOV @Rp, A A Æ (Rp)

(20)

MOV @Rp, Add (Add) Æ (Rp) MOV @Rp, #n n Æ (Rp) POP Add (sp) Æ (Add) PUSH Add (Add) Æ (sp) XCH A,Rr A ÅÆ Rr XCH A,Add A ÅÆ (Add) XCH A,@Rp A ÅÆ (Rp)

4. Mnemonics kelompok Calls and Jumps

Fungsi dari mnemonics kelompok ini adalah untuk memberikan instruksi cara pemanggilan subroutins dan lompat ke suatu label. Subroutin adalah bagian kecil dari program yang mempunyai fungsi khusus. Daftar mnemonics kelompok ini beserta cara penulisan dan artinya secara lengkap sebagai berikut :

Tabel 10. Mnemonics calls dan jumps

Mnemonics Deskripsi

ACALL, sadd PC + 2 Æ (SP); sadd Æ PC CJNE A,add,radd [A<>(Add)]; PC + 3 + radd Æ PC CJNE A, #n, radd [A<>n]; PC + 3 + radd Æ PC CJNE Rr, add, radd [Rr<>(Add)]; PC + 3 + radd Æ PC CJNE @Rp, #n, radd [(Rp)<>n]; PC + 3 + radd Æ PC DJNZ Rr, radd [Rr-1<>00]; PC + 2 + radd Æ PC DJNZ add, radd [(add) - 1<>00]; PC + 3 + radd Æ PC LCALL ladd PC +3 Æ (SP); ladd Æ PC

(21)

AJMP sadd sadd Æ PC LJMP ladd ladd Æ PC SJMP radd radd Æ PC JMP @A + DPTR DPTR + A Æ PC JC radd [C=1]; PC + 2 + radd Æ PC JNC radd [C=0]; PC + 2 + radd Æ PC JB b, radd [b=1]; PC + 3 + radd Æ PC JNB b, radd [b=0]; PC + 3 + radd Æ PC JZ radd [A=00]; PC + 2 = radd Æ PC JNZ radd [A>00]; PC + 2 = radd Æ PC

Cara Pembuatan Program

Tahap-tahap pembuatan program adalah sebagai berikut :

- mengetik program dengan program editor apa saja misalnya SK, edit DOS dll. Program yang diketik disimpan dalam file

berekstensi .ASM,dengan menggunakan software M-IDE for MCS-51.

- mengkompilasi program yang berfungsinya untuk mengecek terhadap kesalahan penulisan instruksi. Jika sudah tidak kesalahan penulisan program maka kompilas menghasilkan file berekstensi *.PRN dan *.LSTserta *.OBJ.Perangkat lunak yang dipakai adalah cross assembler.

- mengubah file Object(*.OBJ) menjadi file Hexa (*.Hex) dan mengubah file Hexa menjadi file biner (*.bin).

- memasukkan program yang sudah berupa file biner ke dalam memori program sistem minimum, dan hasil program sudah bisa didapatkan.

(22)

KEGIATAN 3 PERCOBAAN 1

MENGHUBUNGKAN PORT PARALLEL DENGAN DISPLAY LED TUJUAN

1. Peserta diklat memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan LED

2. Peserta diklat dapat memahami program assembly untuk menghidupkan dan mematikan LED

3 Peserta diklat memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RR dan RL.

4. Peserta diklat memahami pembuatan instruksi waktu tunda.

PENDAHULUAN

LED (Light Emitting Diode ) adalah dioda yang dapat memancarkan sinar jika diberikan tegangan maju, LED ini banyak digunakan sebagai indicator/status /kondisi logika.Untuk menghubungkan LED dengan port pararlel pada mikrokontroler adalah sangat mudah. LED dapat dihubungkan langsung dengan port atau melalui resistor.

AT89S51/52

Gambar 1.1 Rangkaian Display LED

Perhatikan pada gambar 1.1 tersebut. Delapan buah LED terhubung ke port 1, yang difungsikan sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika LOW ‘0’ melalui port 0, dan LED akan padam bila diberi logika HIGH ‘1’ melalui port 1.

(23)

Percobaan 1.1. Instruksi MOV LANGKAH KERJA

Pada percobaan 1.1 ini LED akan dihidupkan atau dimatikan dengan mengirimkan data tertentu pada port 1.

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:

1. Hubungkan jumper pada Unit LED Board, untuk mengaktifkan 8 buah LED

2. Hidupkan board MCS51

3. Hubungkan Jumper pada ISP unit MCS-51 Board dengan rangkaian programmer

4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

5. Ketik program berikut ini

Org 0h

Start: MOV P1,#11100B ; ISI P1 DENGAN 11100 SJMP start ; lompat ke start

End

6. Simpanlah program yang anda ketik dan beri nama : latled1.asm 7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.

8. Lakukan pemrograman mikrokontroller dengan menggunakan Program Progisp 168 Software ( Lihat cara mendownload program)

Latihan 1.2 (Led bergantian/waktu tunda)

Untuk melakukan percobaan ini lakukan beberapa langkah 1 sampai 8 seperti latihan 1.2

Contoh program yang menghasilkan penyalaan LED 1 s/d 4 bergantian dengan penyalaan LED 5 s/d 8 secara terus menerus adalah sebagai berikut:

ORG 00h

Mulai: Mov P1, #11110000B ; LED 1 s/d 4 menyala

Acall tunda ; memanggil sub routine tunda Mov P1, #00001111B ; LED 5 s/d 8 menyala

Acall tunda

Sjmp mulai ; lompat ke label mulai Tunda: Mov R0,#0FFh ; isi register R0 dengan FFh Tunda1: Mov R1, #0FFh ; isi register R1 dengan FFh Tunda2: Djnz R1, tunda2 ; kurangi R1 dengan 1dan

(24)

;lompat ke tunda2 jika belum 0 Djnz R0,tunda1 ; kurangi R0 dengan 1 dan

;lompat ke tunda2 jika belum 0

Ret ; kembali ke program utama

End

Latihan 1.3 (Led bergeser dengan adanya delay/waktu tunda) Untuk melakukan percobaan ini lakukan beberapa langkah 1 sampai 8 seperti latihan 1.3

org 000h main:

mov p1,#11111110b ; port 1.0 sebagai output dan diisi 0 lcall delay500ms

mov p1,#11111101b ; port 1.1 sebagai output dan diisi 0 lcall delay500ms

mov p1,#11111011b ; port 1.2 sebagai output dan diisi 0 lcall delay500ms

mov p1,#11110111b ; port 1.3 sebagai output dan diisi 0 lcall delay500ms

mov p1,#11101111b ; port 1.4 sebagai output dan diisi 0 lcall delay500ms

sjmp main ; kembali ke main ;--- ; delay 500 ms ;--- delay500ms: push acc push 00h

mov a,#032h ; 500 milli second x10ms: call delay10ms djnz acc,x10ms pop 00h pop acc ret ;--- ; delay 10 ms ;--- delay10ms: push acc push 00h

(25)

mov 00h,#050h d10ms1: mov a,#0c8h djnz acc,$ djnz r0,d10ms1 pop 00h pop acc ret END EVALUASI:

1.Buatlah program dengan kondisi Output LED berada pada kondisi:

2. Buatlah program dengan kondisi Output LED berada pada kondisi: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Padam Padam Padam Padam Nyala Nyala Nyala Nyala 3.Buatlah program dengan kondisi Output LED berada pada kondisi:

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Nyala Padam Nyala Padam Padam Padam Nyala Nyala 4. Buatlah program led yang dapat bergeser ke kanan atau ke kiri

5. Buatlah program running led

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Nyala Nyala Nyala Nyala Padam Nyala Padam Nyala

(26)

PERCOBAAN 2

MENGHUBUNGKAN PORT PARALLEL DENGAN SAKLAR PUSH BUTTON

TUJUAN:

1 Peserta diklat memahami rangkaian mikrokontroller dengan interface ke saklar

2.Peserta diklat dapat memahami program assembly untuk mengambil data saklar

Dan mengeluarkan data LED

3. Peserta diklat memahami beberapa instruksi assembly dasar, MOV, Setb, Clr,

RR dan RL.

PENDAHULUAN:

Menghubungkan port parallel dengan switch (saklar)

Karena port parallel dapat bersifat bi-directional, karena itu dapat digunakan sebagai port masukan atau sebagai port keluaran. Secara Hardware menghubungkan port parallel masukan dengan port parallel keluaran adalah sama, yang membedakannya pada program (software).

Gambar 2. Rangkaian Interface Push Button

Pada gambar 2. tersebut tampak rangkaian push button, bila saklar ditekan maka port sesuai dengan bit tersebut akan mendapat logika low

1 P2.0 2 P2.1 3 P2.2 4 P2.3 5 P2.4 1K PB1 PB2 PB3 PB4 GND 6 P2.5 7 P2.6 8 P2.7

(27)

‘0’ dan sebaliknya bila saklar tidak ditekan maka port tersebut akan mendapat logika high ‘1’.

Percobaan 2.1. Ambil Data Saklar LANGKAH KERJA:

Pada percobaan ini, LED akan nyala bila saklar ditekan sesuai dengan bit tersebut.

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:

1. Hidupkan board MCS51

2. Hubungkan Jumper P2 dengan Switch

3. Hubungkan Jumper pada ISP unit MCS-51 Board dengan rangkaian programmer

4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

5. Ketik program berikut ini

Org 0h

Start: Mov A, P2 ;Ambil data dari P2 dan Simpan ke A Mov P1, A ;Kirim data A ke P1

sjmp start end

6. Simpanlah program yang anda ketik dan beri nama : latswitch1.asm 7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.

8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (Lihat cara mendownload program)

9. Lakukan pengamatan pada LED.

Saklar Kondisi LED yang Nyala (D1-D2-D3-D4-D5-D6-D7-D8) PB1

PB2 PB3 PB4

Latihan 2.2

Untuk melakukan percobaan ini lakukan beberapa langkah 1 sampai 9 seperti latihan 2.1

(28)

Contoh program untuk mengetahui posisi saklar secara terus menerus dan keadaan saklar ditandai dengan led yang menyala di mulai PB1 samapai dengan PB4.

ORG 00h

Mulai: Mov A, P2 ; baca P2 dan masukkan ; isinya ke register A

cjne A, #01, terus1 ; bandingkan A dengan 01 mov P1, #01h ; menyalakan led 1

terus1: cjneA,#02,terus2 ; bandingkan A dengan 02 mov P2, #02h ; menyalakan led2

terus2: ………. ; bandingkan A dengan 04 dst

sjmp mulai

End EVALUASI:

1. Buatlah program untuk menampilkan LED di Port 1 dengan PB diPort 2

dengan syarat:

- Jika PB “Bit 0” berlogika ‘0’, semua LED padam - Jika PB “Bit 1” berlogika ‘1’, semua LED menyala

2. Buat program kombinasi penggunaan port input dan output dengan deskripsi sbb:

terdapat dua buah saklar S1 dan S2 yang masing-masing dipasang pada P3.0 dan P3.1

- terdapat satu buah mesin disimulasikan dengan led yang terpasang pada P1.0

- jika S1 ditekan (ON) maka mesin hidup, sedangkan jika S2 ditekan (ON) mesin mati

(29)

PERCOBAAN 3

MENGHUBUNGKAN PORT PARALLEL DENGAN DISPLAY 7 SEGMEN TUJUAN:

1. Peserta diklat memahami rangkaian interface mikrokontroller dengan 7 segmen

2. Peserta diklat dapat memahami program assembly untuk menampilkan data ke 7 segment

3. Peserta diklat memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, dan waktu tunda.

PENDAHULUAN:

Rangkaian Seven Segment adalah rangkaian yang menampilkan tampilan numeric ataupun alphabet.LED berfungsi mengubah arus listrik menjadi cahaya, sehingga untuk menyinari ssalah satu segmen dari tampilan, arus harus diarahkan ke diode dari segment yang dimaksud. Untuk aplikasi seven segment ini digunakan konfigurasi seven segment Common Anode. Setiap tampilan Seven Segment membentuk satu digit dari tampilan banyak dogit yang lengkap. Dengan demikian, setiap digit mempunyai delapan terminal, satu untuk setiap segmen dan satu untuk sambungan bersama. Dalam beberapa aplikasi, sering ditambahkan titik desimal, sehingga terdapat sembilan terminal.

Tabel 4.1. Data Display 7 Segmen

P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Display g f e d c b a 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 2 0 1 1 0 0 0 0 3 : : : : : : : : 0 0 0 1 0 0 0 A 0 0 0 0 0 1 1 b

Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data logika low ”0” dan sebaliknya untuk mematikan segmen, harus dikirimkan data logika high ”1”.

(30)

Gambar 3.1 Tampilan Seven Segmen

Pada trainer mikrokontroler MCS 51 ini,seven segmen dudah dihubungkan dengan IC decoder CD 4511,sehingga inputan ke seven segmen hanya 4 bit,yaitu A,B, C dan D. Untuk lebih jelas dapat dilihat pada gambar di bawah ini:

 

 

Gambar 3.2 Skematik Decoder CD4511 dengan Seven Segmen

Dari gambar diatas SW0,SW1,SW2 dan SW3 adalah output dari Decoder yang diberi inisialisai A,B,C dan D yang dihubungkan dengan port

mikrokontroler.

a

(31)

Percobaan 3.1. Menampilkan angka pada 7 Segmen LANGKAH KERJA:

Pada percobaan ini, akan menampilkan angka dari mulai angka 0 sampai dengan 9 pada Seven Segmen Display

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:

1. Hubungkan Unit MCS-51 Board dengan power supply

2. Hubungkan Unit Seven segment Board dengan MCS 51 di Port 0 3. Hubungkan Jumper pada ISP unit MCS-51 Board dengan rangkaian programmer

4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

5. Ketik program berikut ini: ;---

; Program 7 Segmen menggunakan IC BCD 4511 ;---

Org 000h Main:

MOV P0,#00000000B ; Port 0 sebagai Output yang dipakai

Untuk koneksi A,B,C dan D LCALL DELAY500MS MOV P0,#00000001B LCALL DELAY500MS MOV P0,#00000010B LCALL DELAY500MS MOV P0,#00000011B LCALL DELAY500MS MOV P0,#00000100B LCALL DELAY500MS MOV P0,#00000101B LCALL DELAY500MS MOV P0,#00000110B LCALL DELAY500MS MOV P0,#00000111B LCALL DELAY500MS MOV P0,#00001000B LCALL DELAY500MS MOV P0,#00001001B LCALL DELAY500MS

SJMP Main ; Kembali ke Main ;---

(32)

;--- DELAY500MS: PUSH ACC PUSH 00H

MOV A,#010H ; 500 milli second

X10MS: CALL DELAY10MS DJNZ ACC,X10MS POP 00H POP ACC RET ;--- ; DELAY 10 ms ;--- DELAY10MS: PUSH ACC PUSH 00H MOV 00H,#050H D10MS1: MOV A,#0C8H DJNZ ACC,$ DJNZ R0,D10MS1 POP 00H POP ACC RET END EVALUASI:

1. Buatlah program dengan menggunakan Switch di port0 dan seven segment di port 2

- Pada saat pertama kali program dijalankan, maka seven segment akan

manampilkan angka “0”.

- Jika switch pertama ditekan, maka seven segment akan menampilkan angka “1”

- Jika switch kedua ditekan, maka seven segment akan menampilkan angka “2”

- Jika switch ketiga ditekan, maka seven segment akan menampilkan angka “3”

- Jika switch keempat ditekan, maka seven segment akan menampilkan angka “4.

(33)

DAFTAR PUSTAKA

Ayala, KJ, The 8051 Microcontroller Architectur, Programming, and Aplications, WPC, ---

David Lalond, The 8080, 8085, and Z80 Hardware, Software Programming, Interfacing, and Troubleshooting, PHI, 1988

Douglas VH., Microprocessor and Interfacing Programming and Hardware, MCGraw-Hill, 1992

Putra Eko Agfianto,” Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi”,Gava Media,2004

Modul pembelajaran SMK “Kendali Berbasis Mikroprosesor”, Direktorat Pendidikan Menengah Kejuruan Direktorat Jenderal Pendidikan Dasar Dan Menengah Departemen Pendidikan Nasional,EDISI 2001

Gambar

Gambar 1. 1 Bentuk fisik  AT89Sxx (PDIP) dan konfigurasi Pin  DISKRIPSI
Gambar 1.3. Arsitektur Memori Mikrokontroller 8051
Gambar 1.5. Memori data internal
Table 1.1 Program Status Word
+7

Referensi

Dokumen terkait