Home >Documents >Pelatihan Mikrokontroler

Pelatihan Mikrokontroler

Date post:28-Jun-2015
Category:
View:393 times
Download:2 times
Share this document with a friend
Description:
Pelatihan Mikrokontroler di Fakultas Teknologi komunikasi dan Informatika- UNAS
Transcript:

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA

UNIVERSITAS NASIONAL

SPESIFIKASI PERALATANHARDWARE PC Minimal P3-450 atau Laptop Modul Mikrokontroller (Dz - USB AVR+MCS ISP MKII) + Kabel Downloader

SOFTWARE Sistem Operasi Windows (98, Me atau XP SP2) Topview Simulator

SPESIFIKASI MIKROKONTROLLER (MCS-51)Mikrokontroller AT89XX (MCS-51) memiliki spesifikasi sebagai berikut : 4 x 8 bit port I/O RAM internal 128 bytes Memiliki 2 buah Timer 1 buah port serial 5 sumber kendali interupsi Memiliki register-register fungsi khusus (SFR)

Susunan pin-pin dari mikrokontroller AT89XX dapat dilihat dari gambar berikut.

Konfigurasi PIN Mikrokontroller AT89XX

1. Kode Instruksi Mikrokontroller Type MCS-51 (256 Kode Instruksi)A. Pemindahan Data Menyalin data dari suatu lokasi (sumber) ke lokasi lain (tujuan), tanpa terjadi perubahan isi data pada lokasi sumber. Contoh : Mov B. Aritmatika Melaksanakan operasi aritmatika, meliputi penjumlahan, pengurangan, penambahan satu (increment), pengurangan satu (decrement), perkalian dan pembagian. Contoh : ADD, SUBB, INC, DEC C. Logika dan Manipulasi Bit Melaksanakan operasi-operasi logika pada accumulator dan manipulasi bit. Contoh : AND, OR, CPL. D. Percabangan Mengubah urutan pelaksanaan program. Instruksi ini dibedakan atas percabangan bersyarat (Contoh : CJNE) dan percabangan tanpa syarat (Contoh : ACALL). E. Stack, I/O, dan Kontrol Mengatur penggunaan stack, baca/tulis I/O, serta pengontrolan.

2. Teknik Pengalamatan Mikrokontrollera. Pengalamatan Langsung Teknik pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register secara langsung. Pengalamatan langsung menggunakan simbol #. Contoh instruksi : MOV A,#01H b. Pengalamatan Tidak Langsung Teknik pengalamatan tidak langsung menunjuk ke sebuah register yang berisi lokasi alamat memori yang akan digunakan dalam operasi. Lokasi yang sebenarnya tergantung pada isi register saat instruksi dijalankan. Pengalamatan tidak langsung menggunakan simbol @. Contoh instruksi: c. Pengalamatan Bit Teknik pengalamatan bit adalah penunjukkan alamat lokasi memori secara bit. Untuk melakukan pengalamatan bit digunakan simbol titik .. Contoh instruksi: SETB P2.0 atau CLR P2.1 ADD A,@R0 MOV @R0,#30H

3. Perangkat Instruksi Mikrokontroller 1. ACALL (Absolute Call) Instruksi ini digunakan untuk memanggil sub-sub rutin program Format : ACALL (alamat kode) 2. ANL (Logical AND Immediate Data) Instruksi ini sebagai instruksi gerbang logika and, yang berfungsi sebagai pengali data terhadap nilai yang ditentukan. Format : ANL A,#DATA Contoh : ANL A,#0001000B Ini berarti data acumulator akan dikalikan dengan 00010000 Biner

- Jika A bernilai 11100001 maka hasilnya adalah 00000000 - Jika A bernilai 11110001 maka hasilnya adalah 000100003. CJNE (Compare Indirect Address to Immediate Data) Instrksi ini akan membandingkan data langsung dengan lokasi memori yang dialamati oleh register R atau Akumulator A. apabila tidak sama maka instruksi akan menuju ke alamat kode. Format : CJNE R,#data,Alamat kode atau CJNE A,#data,Alamat kode 4. CLR (Clear Accumulator) Instruksi ini akan mereset data akumulator menjadi 00H. Format : CLR A 5. DEC (Decrement Indirect Address)

Instruksi ini akan mengurangi isi lokasi memori yang ditujukan oleh register R dengan 1, dan hasilnya disimpan pada lokasi tersebut. 6. DJNZ (Decrement Register And Jump Id Not Zer) Instruksi ini akan mengurangi nilai register dengan 1 dan jika hasilnya sudah 0 maka instruksi selanjutnya akan dieksekusi. Jika belum 0 akan menuju ke alamat kode. Format : DJNZ Rr,Alamat Kode 7. INC (Increment Indirect Address) Instruksi ini akan menambahkan isi memori dengan 1 dan menyimpannya pada alamat tersebut. Format : INC Rr 8. JB (Jump if Bit is Set) Instruksi ini akan membaca data per satu bit, jika data tersebut adalah 1 maka akan menuju ke alamat kode dan jika 0 tidak akan menuju ke alamat kode. Format : JB alamat bit,alamat kode 9. JNB (Jump if Bit is Not Set) Instruksi ini akan membaca data per satu bit, jika data tersebut adalah 0 maka akan menuju ke alamat kode dan jika 1 tidak akan menuju ke alamat kode. Format : JNB alamat bit,alamat kode 10. JMP (Jump to sum of Accumulator and Data Pointer) Instruksi untuk memerintahkan loncat kesuato alamat kode tertentu. Format : JMP alamat kode.

11. MOVInstruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain.

Format :

- MOV a,#data (Memindahkan data ke accumulator) - MOV R,A (Memindahkan Accumulator ke Register) - MOV Px,Px (Memindahkan data port ke port)12. ORL (Logical OR Immediate Data to Accumulator) Instruksi ini sebagai instruksi Gerbang logika OR yang akan menjumlahkan Accumulator terhadap nilai yang ditentukan. Format : ORL A,#data Contoh : ORL A,#0001000B Ini berarti data acumulator dijumlahkan dengan 00010000 Biner - Jika A bernilai 11100001 maka hasilnya adalah 11110001

- Jika A bernilai 11110001 maka hasilnya adalah 11110001 13. RET (Return from subroutine)Intruksi untuk kembali dari suatu subrutin program ke alamat terakhir subrutin tersebut di panggil. Format : RET 14. SETB (Set Bit) Instruksi untuk mengaktikan atau memberikan logika 1 pada sebuat bit data. Format : SETB P1.1 (memberikan logika 1 pada Port 1 bit ke 1) 15. CLRB (Clear Bit) Instruksi untuk memberikan logika 0 pada sebuat bit data. Format : CLR P1.1 (memberikan logika 0 pada Port 1 bit ke 1) 4. Struktur Program Assembler $Mod51 Org 00h

End

* Beberapa contoh aplikasi menggunakan LED (output) Program membuat 1 bit LED berkedip $Mod51 Org 00h Start: Setb P2.0 Acall Two_Seconds_Delay Clr P2.0 Acall Two_Seconds_Delay Ajmp Start $Include(Tunda.asm) End Program membuat 2 kelompok LED berkedip $Mod51 Org 00h Start: Mov P2,#00001111b Acall Two_Seconds_Delay Mov P2,#11110000b Acall Two_Seconds_Delay Ajmp Start $Include(Tunda.asm) End Program lampu LED berjalan $Mod51 Org 00h Start: Mov A,#01111111b Loop: Mov P2,A RL A Acall Long_Delay Ajmp Loop $Include(Tunda.asm) End

* Beberapa contoh aplikasi menggunakan Tombol (input) Program membaca input secara 1 Bit $Mod51 Org 00h Start: Setb P2.0 Loop: Jb P3.0,Start Clr P2.0 Ajmp Loop End Program membaca input secara 1 Byte $Mod51 Org 00h Start: Mov P2,P3 Ajmp Start End Program ON/OFF dengan 1 Tombol $Mod51 Org 00h Start: Jb P3.0,$ Clr P2.0 Jnb P3.0,$ Acall Long_Delay Jb P3.0,$ Setb P3.0 Jnb P3.0,$ Acall Long_Delay Ajmp Start $Include(Tunda.asm) End

5. Cara membuat prosedur penundaan waktu (Delay) Untuk membuat prosedure penundaan waktu dapat memanfaatkan pengurangan nilai sebuah register, kita ketahui bahwa untuk 1 step program (siklus mesin) yang dilakukan mikrokontroller adalah (Nilai Kristall / 12MHZ) sehingga jika kita menggunakan nilai kristal 11,0592Mhz maka untuk satu siklus mesin membutuhkan waktu 0.9216 uS. ;===================================================== ;Procedure penundaan waktu selama 255usx255us ;===================================================== Long_Delay: Mov R7,#0FFh Long_Delay_1: Acall Delay Djnz R7,Long_Delay_1 Ret Delay: Mov R6,#0FFh Djnz R6,$ ; Label Delay ; Isikan Register 6 (R6) dengan data 0FFH (255) ; Kurangi Nilai Register6 (R6) dengan 1 jika belum sama dengan 0 Terus kurangi. (waktu akan tertunda selama 255 us) Ret ; Label Long_Delay ; Isikan Register 7 dengan data 0FFH(255) ; Label Long_Delay ; Panggil Prosedure Delay ;Kurangi Nilai Register7 (R7) dengan 1 jika belum sama dengan 0 loncat ke prosedure Long_Delay_1

6. Langkah-langkah mempergunakan software Topview Simulator

Membuka Program Notepad

Membuat file assembler baru

Menjalankan program Topview simulator

Melakukan setting Mikrokontroller

Setting memori Mikrokontroller

Tampilan Topview setelah melakukan setting Mikrokontroller

Proses mengambil file assembler

Open file assembler

Tampilan program assembler

Mengcompile program

Melakukan setting simulator

Setting Led dan 7 segment

Mengambil *.Hex program

Menampilkan simulator Led dan 7 segment

Tampilan simulator

Menjalankan simulator

Mematikan simulator

7. Program menghidupkan display 7 segment

VCC VCC 40

10k 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27

U? P10 P11 P12 P13 P14 P15 P16 P17 P30/RXD P31/TXD P32/INT0 P33/INT1 P34/T0 P35/T1 P36/W R P37/RD 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 a b c d e f g Dp Com 7SEG VC C

VCC

VCC

31 30 29

X1 EA/VP ALE/P PSEN GND X2 RESET 89C51

19 U? 18 9 CRYSTAL

20

VCC 10K 1uF

Rangkaian 7 Segment

Tabel Susunan pin 7segment terhadap port mikrokontroller: TampilanPX.7 PX.6 PX.5 PX.4 PX.3 PX.2 PX.1 PX.0

Dot g f e d c b Digit 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 2 1 0 1 0 0 1 0 3 1 0 1 1 0 0 0 4 1 0 0 1 1 0 0 5 1 0 0 1 0 0 1 6 1 0 0 0 0 0 1 7 1 1 1 1 1 0 0 8 1 0 0 0 0 0 0 9 1 0 0 1 0 0 0 Program menampilkan digit 0 s/d 9 pada modul 7 segment.$Mod51 Start: Clr P0.1 Loop: Mov P1,#11000000b Acall Two_Seconds_Delay

a 0 1 0 0 1 0 0 0 0 0

Hex C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H

; Menampilkan Angka 0

Mov P1,#111111001b Acall Two_Seconds_Delay Mov P1,#10100100b Acall Two_Seconds_Delay Mov P1,#10110000b Acall Two_Seconds_Delay Mov P1,#10011001b Acall Two_Seconds_Delay Mov P1,#10010010b Acall Two_Seconds_Delay Mov P1,#10000010b Acall Two_Seconds_Delay Mov P1,#11111000b Acall Two_Seconds_Delay Mov P1,#10000000b Acall Two_Seconds_Delay Mov P1,#10010000b Acall Two_Seconds_Delay Jmp Loop $Include(Tunda.asm) End

; Menampilkan Angka 1 ; Menampilkan Angka 2 ; Menampilkan Angka 3 ; Menampilkan Angka 4 ; Menampilkan Angka 5 ; Menampilkan Angka 6 ; Menampilkan Angka 7 ; Menampilkan Angka 8 ; Menampilkan Angka 9

Program menampilkan digit dengan m

Embed Size (px)
Recommended