KBK 635
MIKROKONTROLER
PENDAHULUAN
PERTEMUAN 1
Program Studi Sistem Komputer - Fakultas Ilmu Komputer
UNIVERSITAS NAROTAMA SURABAYA
Informasi Kuliah
•
Dosen : Gembong Edhi Setyawan•
HP : 08123313678•
Email : gembong@gembong.web.id•
Website : http://www.kuliah.gembong.web.id•
Kantor : Fasilkom – Unnar, Ruang Dosen II•
Hari Kerja: Selasa, Rabu, Kamis•
Jam : 09.00 – 14.00 WIB•
Email & Website adalah jalan berkomunikasi / berkonsultasi yang terbaik dengan sayaMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Perkuliahan 1
•
Penjelasan Kontrak Pembelajaran•
Pengenalan Mikrokontroler•
Mikroprosesor Vs MikrokontrolerDeskripsi Mata Kuliah
•
Arsitektur Mikrokontroler AT89S51•
Organisasi Memori•
Pemrograman Assembly MCS51•
Sistem Interupsi•
Port Pararel•
Timer dan Counter•
Port SerialMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Metode Pembelajaran
•
Tutorial di kelas•
Tugas aplikasi (di demokan di akhir perkuliahan)•
Diskusi (Tanya – Jawab)•
Keaktifan di dalam kelasMetode Evaluasi
•
Kehadiran : 20%•
Tugas : 40%•
Nilai Kuis : 10%Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Buku Referensi
•
Gembong Edhi Setyawan. 2008. AplikasiMikrokontroler AT89S51. Universitas
Narotama, Surabaya
•
Kenneth J Ayala. 1991. The 8051Microcontroller: Architecture, Programming and Applications.
Wesh Publishing Company. USA
Materi Kuliah
Ke Pokok Bahasan
1 Pendahuluan
1.1 Penjelasan Kontrak Pembelajaran 1.2 Pengenalan Mikrokontroler
1.3 Mikroprosesor Vs Mikrokontoler 1.4 Penggunaan Mikrokontroler
2 Arsitektur Mikrokontroler AT89S51
2.1 Diagram Blok 2.2 Deskripsi Pin
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
3 Organisasi Memori AT89S51
3.1 Memori Data
3.2 Memori Program
3.3 SFR (Special Function Register) UJIAN TDK TERJADWAL (QUIS)
Materi Kuliah
Ke Pokok Bahasan
4-5 Pemrograman Assembly MCS51
4.1 Instruksi-instruksi MCS51 4.2 Operasi Assembler
4.3 Struktur pemrograman Assembly MCS51 4.4 Perangkat lunak yang digunakan untuk
MCS51
4.5 Ekspresi-Ekspresi Assembler 4.6 Pengarah Assembler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
6 Sistem Interupsi
5.1 Struktur Interupsi
5.2 Mengaktifkan dan menonaktifkan interupsi 5.3 Tingkat prioritas interupsi
5.4 Teknik Polling
5.5 Pemrosesan interupsi 5.6 Vektor-vektor interupsi
5.7 Perancangan program interupsi 5.8 Pewaktuan interupsi
Materi Kuliah
Ke Pokok Bahasan
7 Penggunaan Port Pararel
6.1 Fungsi-fungsi kaki pin
6.2 Struktur port dan cara kerja 6.2.1 Konfigurasi port I/O
6.2.2 Spesifikasi port (port 0, port 1, port 2, port 3)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
9 Timer dan Counter
8.1 Timer/Counter AT89S51
8.1.1 Mode kerja Timer 0 dan Timer 8.1.2 Register pengatur timer
8.2 Mengatur timer
Materi Kuliah
Ke Pokok Bahasan
11 Port Serial
10.1 Antarmuka Serial
10.2 Register Kontrol Port Serial 10.3 Baudrate
10.4 Mode Kerja Port Serial
12 Latihan Aplikasi Penggunaan Port Serial
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Komputer - Mikroprosesor - Mikrokontroler
•
Komputer : Suatu perangkat yang dapatdigunakan untuk menyimpan data, mengolah data dan dapat menjalankan program yg
disimpan tanpa intervensi manusia
•
Mikroprosesor : CPU (Central ProcessingUnit) dari komputer
•
Mikrokontroler : mikroprosesor yang tergabungdengan beberapa peripheral dalam 1 chips, dan mempunyai fungsi khusus sbg alat kontrol
Pengenalan Mikrokontroler (Definisi)
•
Mikrokontroler adalah chip tunggal (IC) yangmempunyai beberapa bagian yang sama
dengan komputer dekstop, seperti µP, Memori, I/O port, dll. Tidak termasuk monitor, keyboard dan mouse
•
Mikrokontroler = µP + Memori (RAM & ROM) +I/O Port + Programmable IC
•
Mikrokontroler didesain sebagai mesinpengendali menggantikan manusia
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Mikroprosesor Vs Mikrokontroler
Mikroprosesor Mikrokontroler
•CPU untuk komputer dan berdiri sendiri; RAM, ROM, I/O terpisah.
•Desainer dapat
menentukan besarnya RAM, ROM, I/O
•Bisa digunakan untuk tujuan berbagai macam (general purpose)
•CPU dimana RAM, ROM, I/O, Timer tergabung
menjadi 1 IC.
•Besarnya RAM, ROM
sudah ditentukan dalam 1 chip IC
•1 aplikasi = 1 tujuan (single purpose)
Mikroprosesor Vs Mikrokontroler
CPU General-Purpose Micro-processorRAM ROM I/O
Port Timer Serial COM Port Data Bus Address Bus
General-Purpose Microprocessor System
Many chips on mother’s board
RAM ROM I/O Port Timer Serial COM CPU A single chip
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Penggunaan Mikrokontroler
•
Mikrokontroler banyak digunakan di duniaindustri, control proses, instrumentasi, peralatan rumah tangga, dll
•
Contoh : Robot, Tulisan Banner, Pengendali Temperatur, dllMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Penggunaan Mikrokontroler
Penggunaan Mikrokontroler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Penggunaan Mikrokontroler
Penggunaan Mikrokontroler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Studi Kasus
•
Mikrokontroler MCS51 / 8051Mengapa Mikrokontroler 8051/MCS51?
•
Sangat terkenal / Sering digunakan•
Banyak peripheral dan tool pengembangannya•
Lebih dari 150 variasi yang ditawarkan oleh lebih dari 20 vendor•
Kita akan mempelajari apa yang adadidalamnya, bagaimana memprogram, dan
bagaimana mendesain untuk mengembangkan 8051
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Untuk Pertemuan Minggu Depan
•
Baca dan pahami kontrak pembelajaran•
Mengulang sekilas pelajaran hari ini•
Email nama, foto Anda,website : bonus 5% nilai•
Email daftar nama kelompok untuk pengerjaan tugas besar•
Tugas Besar: Membuat Aplikasi Menggunakan Mikrokontroler•
Baca dan pahami mengenai Arsitektur mikrokontroler AT89S51KBK 635
MIKROKONTROLER
Arsitektur Mikrokontroler AT89S51
PERTEMUAN 2
Program Studi Sistem Komputer - Fakultas Ilmu Komputer
UNIVERSITAS NAROTAMA SURABAYA
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Informasi Kuliah
•
Dosen : Gembong Edhi Setyawan•
HP : 08123313678•
Email : gembong@gembong.web.id•
Website : http://www.kuliah.gembong.web.id•
Kantor : Fasilkom – Unnar, Ruang Dosen II•
Hari Kerja: Selasa, Rabu, Kamis•
Jam : 09.00 – 14.00 WIB•
Email & Website adalah jalan berkomunikasi / berkonsultasi yang terbaik dengan sayaMateri Kuliah
Ke Pokok Bahasan
1 Pendahuluan
1.1 Penjelasan Kontrak Pembelajaran 1.2 Pengenalan Mikrokontroler
1.3 Mikroprosesor Vs Mikrokontoler 1.4 Penggunaan Mikrokontroler
2 Arsitektur Mikrokontroler AT89S51
2.1 Diagram Blok 2.2 Deskripsi Pin
2.3 Port I/O Mikrokontroler AT89S51
RINGKASAN
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
3 Organisasi Memori AT89S51
3.1 Memori Data
3.2 Memori Program
3.3 SFR (Special Function Register) UJIAN TDK TERJADWAL (QUIS)
Materi Kuliah
Ke Pokok Bahasan
4-5 Pemrograman Assembly MCS51
4.1 Instruksi-instruksi MCS51 4.2 Operasi Assembler
4.3 Struktur pemrograman Assembly MCS51 4.4 Perangkat lunak yang digunakan untuk
MCS51
4.5 Ekspresi-Ekspresi Assembler 4.6 Pengarah Assembler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
6 Sistem Interupsi
5.1 Struktur Interupsi
5.2 Mengaktifkan dan menonaktifkan interupsi 5.3 Tingkat prioritas interupsi
5.4 Teknik Polling
5.5 Pemrosesan interupsi 5.6 Vektor-vektor interupsi
5.7 Perancangan program interupsi 5.8 Pewaktuan interupsi
Materi Kuliah
Ke Pokok Bahasan
7 Penggunaan Port Pararel
6.1 Fungsi-fungsi kaki pin
6.2 Struktur port dan cara kerja 6.2.1 Konfigurasi port I/O
6.2.2 Spesifikasi port (port 0, port 1, port 2, port 3)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
9 Timer dan Counter
8.1 Timer/Counter AT89S51
8.1.1 Mode kerja Timer 0 dan Timer 8.1.2 Register pengatur timer
8.2 Mengatur timer
Materi Kuliah
Ke Pokok Bahasan
11 Port Serial
10.1 Antarmuka Serial
10.2 Register Kontrol Port Serial 10.3 Baudrate
10.4 Mode Kerja Port Serial
12 Latihan Aplikasi Penggunaan Port Serial
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Ringkasan Pendahuluan Mikrokontroler
•
Mikrokontroler = µP + Memori (RAM & ROM) + I/O Port + Programmable IC•
Mikrokontroler digunakan sebagai komponen pengendali•
Mikrokontroler digunakan untuk 1 tujuan (singlepurpose)
•
Aplikasi mikrokontroler: dunia industri, kontrol proses, instrumentasi, home applications,robotika, dll
•
Materi Mikrokontroler 8051 → Atmel 89S51SAP
Perkuliahan 2
•
Spesifikasi Mikrokontroler AT89S51•
Diagram Blok•
Deskripsi PinMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Spesifikasi Mikrokontroler AT89S51
•
Kompatibel dengan produk MCS-51.•
4K Byte flash memori yang dapat diprogram dan dihapus.•
Catu tegangan sebesar 4V – 5,5V.•
Frekuensi operasi dari 0 Hz – 33 MHz.•
128 Byte RAM internal.•
32 jalur I/O yang dapat diprogram (P0-P3).•
Dua buah Timer/Counter 16 bit.•
Lima vektor interupsi.Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Diagram Pin
Control
Bus
Port 0
Port 2
VCC
Port 3
Port 1
Reset
Oscillator
Ground
Control Bus
PSEN
Program Store Enable, digunakan untuk mengakses
program memori eksternal. Biasanya pin ini dikoneksikan dengan pin OE pada EPROM.
ALE/PROG
Pin ini berfungsi untuk me-latch low byte alamat pada saat mengakses memori eksternal. Sedang saat flash programming (PROG) berfungsi sebagai pulsa input.
EA / VPP
Jika EA=1 maka mikrokontroler akan melaksanakan instruksi dari ROM internal
Jika EA=0 maka mikrokontroler akan melaksanakan instruksi dari ROM eksternal
RST
Merupakan pin untuk memberikan sinyal reset pada mikrokontroler. Pulsa dari low ke high akan mereset mikrokontroler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Port I/O
Port 0
Port 0 merupakan port paralel 8 bit dua arah (bi-directional) yang dapat digunakan untuk berbagai keperluan.
Port 0 juga memultipleks alamat dan data jika digunakan untuk mengakses memori eksternal
Port 1
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 ; P1.7 SCK
Port 2
Port 2 merupakan port paralel 8 bit bi-directional dengan internal pull-up.
Port 2 akan mengirim byte alamat jika digunakan untuk mengakses memori eksternal.
Port 3
Port 3 merupakan port paralel 8 bit bi-directional dengan internal pull-up.
Fungsi Khusus Port 3
PIN FUNGSI ALTERNATIF
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
RXD (port input serial) TXD (port output serial)
INT0 (interrupt eksternal 0) INT1 (interrupt eksternal 1) T0 (input eksternal timer 0) T1 (input eksternal timer 1)
WR (strobe penulisan data eksternal) RD (strobe pembacaan data eksternal)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Fungsi Pin Lain
VCC
Sumber tegangan, dapat menggunakan sumber tegangan dari +2,5 V – 6 V,
biasanya menggunakan sumber tegangan +5 V
GND Ground
XTAL1
Merupakan input untuk amplifier osilator
inverting dan input untuk rangkaian clock
internal
RST
Merupakan keluaran dari amplifier osilator
Perancangan Rangkaian Minimum
•
Rangkaian minimal yang harus ada agarmikrokontroler dpt bekerja.
•
Komponen Yg Harus Ada – CPU– Memori Program (ROM) – Memori Data (RAM)
– Port I/O
– Pewaktuan CPU (Crystal 4-24 MHz) – Reset
– Power Supply (5 Volt)
– EA, VPP dihubungkan ke VCC
Internal (Sudah Ada Dalam
Mikrokontroler)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pewaktuan CPU (Crystal)
•
Mikrokontroler 8951 memiliki osilator internal bagi sumber clock CPU.•
Untuk menggunakan osilator internal diperlukan kristal antara XTAL1 dan XTAL 2 dan sebuah kapasitor ground.•
Untuk kristalnya dapat digunakan frekuensi dari4 sampai 24 MHZ.
•
Sedang untuk kapasitor dapat bernilai 20 pFsampai 40 pF.
•
Bila menggunakan clock eksternal rangkaian dihubungkan seperti berikut :Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Siklus Mesin
•
Dalam mikrokontroler dikenal istilah MachineCycle (MC) / Siklus Mesin, dimana :
1 MC = 6 state = 12 periode clock
•
Jika frekuensi crystal yang digunakan adalah 12 MHz maka 1 MC = 12/frekuensi crystal = 12/12 MHz =1uSWaktu Eksekusi
•
Waktu eksekusi sebuah instruksi olehmikrokontroler tergantung dari jenis instruksi dan frekuensi clock yang digunakan.
•
Setiap instruksi memiliki panjang byte dan jumlah siklus yang berbeda.•
Byte instruksi (Byte) menandakan jumlah lokasi memori yang dipakai•
Siklus instruksi (Cycle) menandakan jumlah machine cycle yang dibutuhkan.Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Waktu Eksekusi
Dimana :
Tinst : Waktu yang dibutuhkan untuk mengeksekusi 1 instruksi (Secon)
Waktu Eksekusi
Contoh :
Diketahui sebuah mikrokontroler dengan frekuensi crystal 12 MHz. Berapakah waktu yang diperlukan untuk
mengeksekusi perintah berikut ini?
Mov A,#30h
Jawab :
Dari lembaran data 8051 Operational Code Mnemonics diketahui bahwa instruksi dengan format
Mov A,#n adalah instruksi dengan Byte = 1 dan Cycle = 1 Maka : Tinst = (1x12)/12MHz=1uS
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Reset
Mengapa Perlu Reset?
• Saat power dinyalakan, instruksi yang pertamakali dieksekusi oleh mikrokontroler adalah instruksi yang tersimpan pada address
0000h.
• Agar Program Counter (PC) dapat menunjuk address 0000h pada saat awal maka mikrokontroler perlu di-reset.
• Caranya adalah dengan memberikan pulsa high pada pin Reset
selama minimal 2 machine cycle ( jika f crystal = 12 MHz maka 2MC = 2uS).
• Setelah itu baru diberikan pulsa low. Kondisi ini dapat dipenuhi dengan memasang rangkaian RC yang akan mensuplai tegangan Vcc ke pin 9 selama kapasitor mengisi muatan / charging.
• Konstanta waktu pengisian dapat dihitung dengan mengalikan nilai R dan C.
• Pada rangkaian dibawah adalah : T=R.C = (8K2).(10uF) = 82mS. Setelah kapasitor terisi, maka pin 9 akan low.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Rangkaian Minimum
Tombol push button
dipasang agar pada saat
running Mikrokontroler dapat
juga di-reset.
Pin EA / External Access harus dihubungkan ke +5V agar mikrokontroler dapat mengambil byte instruksi dari ROM internal
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Untuk Pertemuan Minggu Depan
•
Baca dan pahami Arsitektur Mikrokontroler AT89S51•
Mengulang sekilas pelajaran hari ini•
Mempunyai Modul Rangkaian AT89S51•
Baca dan pahami mengenai Organisasi Memori Mikrokontroler AT89S51KBK 635
MIKROKONTROLER
Organisasi Memori
PERTEMUAN 3
Program Studi Sistem Komputer - Fakultas Ilmu Komputer
UNIVERSITAS NAROTAMA SURABAYA
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Informasi Kuliah
•
Dosen : Gembong Edhi Setyawan•
HP : 08123313678•
Email : gembong@gembong.web.id•
Website : http://www.gembong.web.id•
Kantor : Fasilkom – Unnar, Ruang Dosen II•
Hari Kerja: Selasa, Rabu, Kamis•
Jam : 09.00 – 14.00 WIB•
Email & Website adalah jalan berkomunikasi / berkonsultasi yang terbaik dengan sayaMateri Kuliah
Ke Pokok Bahasan
1 Pendahuluan
1.1 Penjelasan Kontrak Pembelajaran 1.2 Pengenalan Mikrokontroler
1.3 Mikroprosesor Vs Mikrokontoler 1.4 Penggunaan Mikrokontroler
2 Arsitektur Mikrokontroler AT89S51
2.1 Diagram Blok 2.2 Deskripsi Pin
2.3 Port I/O Mikrokontroler AT89S51
RINGKASAN
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
3 Organisasi Memori AT89S51
3.1 Memori Data
3.2 Memori Program
3.3 SFR (Special Function Register) UJIAN TDK TERJADWAL (QUIS)
Materi Kuliah
Ke Pokok Bahasan
4-5 Pemrograman Assembly MCS51
4.1 Instruksi-instruksi MCS51 4.2 Operasi Assembler
4.3 Struktur pemrograman Assembly MCS51 4.4 Perangkat lunak yang digunakan untuk
MCS51
4.5 Ekspresi-Ekspresi Assembler 4.6 Pengarah Assembler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
6 Sistem Interupsi
5.1 Struktur Interupsi
5.2 Mengaktifkan dan menonaktifkan interupsi 5.3 Tingkat prioritas interupsi
5.4 Teknik Polling
5.5 Pemrosesan interupsi 5.6 Vektor-vektor interupsi
5.7 Perancangan program interupsi 5.8 Pewaktuan interupsi
Materi Kuliah
Ke Pokok Bahasan
7 Penggunaan Port Pararel
6.1 Fungsi-fungsi kaki pin
6.2 Struktur port dan cara kerja 6.2.1 Konfigurasi port I/O
6.2.2 Spesifikasi port (port 0, port 1, port 2, port 3)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
9 Timer dan Counter
8.1 Timer/Counter AT89S51
8.1.1 Mode kerja Timer 0 dan Timer 8.1.2 Register pengatur timer
8.2 Mengatur timer
Materi Kuliah
Ke Pokok Bahasan
11 Port Serial
10.1 Antarmuka Serial
10.2 Register Kontrol Port Serial 10.3 Baudrate
10.4 Mode Kerja Port Serial
12 Latihan Aplikasi Penggunaan Port Serial
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Ringkasan Arsitektur Mikrokontroler
SAP
Memori AT89S51
MEMORI AT89S51
MEMORI AT89S51
ROM / Read Only Memory (Memori Program)
RAM / Read Access Memory (Memori Data)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
ROM (Memori Program) AT89S51
•
ROM (Read Only Memory) : Tempat menyimpan program / source code•
Sifat ROM : Non Volatile (data/program tidak akan hilang walaupun tegangan supply tidak ada)•
Kapasitas ROM AT89S51 : 4 KByte•
Alamat : 0000 H – 0FFF HRAM (Memori Data) / AT89S51
• RAM (Read Access Memory) : Tempat menyimpan data • Sifat RAM : Volatile (data akan hilang jika tegangan
supply tidak ada)
• RAM AT89S51, ada 3 blok:
– Lower 128 byte (00 H – 7F H) : Dpt diakses dengan pengalamatan langsung maupun tidak langsung
– Upper 128 byte (80 H – FF H) : Dpt diakses dengan pengalamatan tak langsung saja
– SFR/Special Function Register (80 H – FFH) : Register yg mempunyai fungsi tertentu. Walaupun pny alamat sama dengan upper 128 byte tp secara fisik berbeda
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Peta Memori Internal AT89S51
Catatan:
Gambar disamping adalah peta memori internal
89S51 yang terdiri dari
RAM, SFR dan ROM.
Tampak 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
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Organisasi RAM Internal (Lower Byte)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Membaca Program Dari ROM Eksternal
D 74LS373 ALE P0.0 P0.7 PSEN A0 A7 D0 D7 P2.0 P2.7 A8 A12 OE OC EA G 8051 ROM 1. Send address to ROM 2. 74373 latches the address and send to
ROM
Membaca Program Dari ROM Eksternal
D 74LS373 ALE P0.0 P0.7 PSEN A0 A7 D0 D7 P2.0 P2.7 A8 A12 OE OC EA GMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
KBK 635
MIKROKONTROLER
Organisasi Memori
PERTEMUAN 3
Program Studi Sistem Komputer - Fakultas Ilmu Komputer
UNIVERSITAS NAROTAMA SURABAYA
Informasi Kuliah
•
Dosen : Gembong Edhi Setyawan•
HP : 08123313678•
Email : gembong@gembong.web.id•
Website : http://www.gembong.web.id•
Kantor : Fasilkom – Unnar, Ruang Dosen II•
Hari Kerja: Selasa, Rabu, Kamis•
Jam : 09.00 – 14.00 WIB•
Email & Website adalah jalan berkomunikasi / berkonsultasi yang terbaik dengan sayaMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
1 Pendahuluan
1.1 Penjelasan Kontrak Pembelajaran 1.2 Pengenalan Mikrokontroler
1.3 Mikroprosesor Vs Mikrokontoler 1.4 Penggunaan Mikrokontroler
2 Arsitektur Mikrokontroler AT89S51
2.1 Diagram Blok 2.2 Deskripsi Pin
2.3 Port I/O Mikrokontroler AT89S51
RINGKASAN
Materi Kuliah
Ke Pokok Bahasan
3 Organisasi Memori AT89S51
3.1 Memori Data
3.2 Memori Program
3.3 SFR (Special Function Register) UJIAN TDK TERJADWAL (QUIS)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
4-5 Pemrograman Assembly MCS51
4.1 Instruksi-instruksi MCS51 4.2 Operasi Assembler
4.3 Struktur pemrograman Assembly MCS51 4.4 Perangkat lunak yang digunakan untuk
MCS51
4.5 Ekspresi-Ekspresi Assembler 4.6 Pengarah Assembler
Materi Kuliah
Ke Pokok Bahasan
6 Sistem Interupsi
5.1 Struktur Interupsi
5.2 Mengaktifkan dan menonaktifkan interupsi 5.3 Tingkat prioritas interupsi
5.4 Teknik Polling
5.5 Pemrosesan interupsi 5.6 Vektor-vektor interupsi
5.7 Perancangan program interupsi 5.8 Pewaktuan interupsi
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
7 Penggunaan Port Pararel
6.1 Fungsi-fungsi kaki pin
6.2 Struktur port dan cara kerja 6.2.1 Konfigurasi port I/O
6.2.2 Spesifikasi port (port 0, port 1, port 2, port 3)
Materi Kuliah
Ke Pokok Bahasan
9 Timer dan Counter
8.1 Timer/Counter AT89S51
8.1.1 Mode kerja Timer 0 dan Timer 8.1.2 Register pengatur timer
8.2 Mengatur timer
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
11 Port Serial
10.1 Antarmuka Serial
10.2 Register Kontrol Port Serial 10.3 Baudrate
10.4 Mode Kerja Port Serial
12 Latihan Aplikasi Penggunaan Port Serial
Ringkasan Organisasi Memori
•
Mikrokontroler 89S51 Mempunyai 2 jenis memori, yaitu Memori Program (ROM) dan Memori Data (RAM)•
Memori Program besarnya 4 KByte menempati alamat 000H – FFFH•
Memori Data dibagi menjadi 3 blok: – 128 byte bawah (00H-7FH)– 128 byte atas (80H-FFH)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Perangkat Lunak Yang Dibutuhkan Untuk Membuat Aplikasi Mikrokontroler AT89S51
•
Kompiler ASM51•
Mengubah berkas Objek (.OBJ) ke Heksa (.HEX)•
Mengubah Berkas Heksa (.HEX) ke Binair (.BIN)•
Simulator / Emulator 8051 berfungsi untuk melakukan pengujian/simulasi dari programMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Langkah-Langkah Membuat Aplikasi Mikrokontroler AT89S51
•
Menulis Program Assembly ke editor teks (edit, notepad), kemudian simpan kode programdengan ekstensi “ *.ASM “
•
Melakukan Kompilasi Program Dengan Cara:asm51 <NAMA_FILE.ASM>
•
Jika terjadi kesalahan akan ditunjukkan dan harus diperbaiki. Kesalahan akan ditunjukkan dengan membuka file dengan ekstensi “ *.1ST “•
Bila tidak terjadi kesalahan akan ado file objek yang berekstensi “ *.OBJ “Langkah-Langkah Membuat Aplikasi Mikrokontroler AT89S51
•
File yang telah di kompile dan berhasilmenghasilkan berkas “ *.OBJ “ di ubah ke format heksa (“ *.HEX “) dengan perintah
OH <NAMA_FILE.OBJ>
•
Program yang berekstensi “ *.HEX “ biasanya sudah bisa dimanfaatkan kesimulator/emulator.
•
Kadang ada beberapa software yang membutuhkan format biner.Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pemrograman Assembly AT89S51
•
Bahasa Assembly digunakan untukmenggantikan kode heksa dari bahasa mesin dengan “mnemonik” yang mudah diingat.
Pemrograman Assembly AT89S51
Bahasa Assembly, berisi:
•
Instruksi-Instruksi Mesin : Mnemonik yang menyatakan instruksi, contoh Æ MOV•
Pengarah-pengarah assembler : Instruksi yang menyatakan struktur program, simbol-simboldata, konstantata, contoh Æ ORG
•
Kontrol-Kontrol Assembler : Menentukan mode-mode Assembler, contoh Æ $TITLE•
Komentar : Ditulis agar program mudah dibaca, tidak harus per instruksi bisa sekumpulanMikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Format Assembly AT89S51
[label:] mnemonic [operan] [,operan] [...] [;komentar]
•
Label : Mewakili alamat dari instruksi, biasanyadigunakan sebagai operan pada instruksi
percabangan. Label harus diawali dengan huruf,
tanda tanya atau garis bawah kemudian diikuti dengan huruf, angka, tanda tanya atau garis bawah hingga 31 karakter.
Format Assembly AT89S51
[label:] mnemonic [operan] [,operan] [...] [;komentar]
•
Operan : Bisa berupa alamat atau data yangberdasar pada kode mnemoniknya. Ada kode mnemonik yang tidak membutuhkan operan, misal RET
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Simbol-Simbol Khusus Assembler
Assembler telah menyediakan beberapa simbol untuk menunjukkan register tertentu sebagai operand.
Contoh:
A Akumulator
R0 …. R7 Register Serbaguna
DPTR Data Pointer Register 16 Bit PC Program Counter
C Carry Flag
Simbol-Simbol Khusus Assembler
Assembler telah menyediakan beberapa simbol untuk menunjukkan register tertentu sebagai operand.
Contoh:
A Akumulator
R0 …. R7 Register Serbaguna
DPTR Data Pointer Register 16 Bit PC Program Counter
C Carry Flag
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Tak Langsung
Operand pengalamatan tak langsung
menunjuk ke sebuah register yang
berisi lokasi alamat memory yang
akan digunakan dalam operasi.
Lokasi yang nyata tergantung pada isi
register saat instruksi dijalankan.
Pengalamatan Tak Langsung
Untuk melaksanakan pengalamatan tak langsung digunakan simbol @
Contoh:
MOV A,@R1
MOV @R0,A
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Tak Langsung
Pengalamatan tak langsung (Indirect) ini
biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang mempunyai urutan beraturan.
Jika proses ini dilakukan dengan
menggunakan pengalamatan langsung jumlah baris program yang diperlukan akan cukup
Pengalamatan Tak Langsung
Contohnya penulisan data 08H pada alamat 50H hingga 57H. Listing 1: ORG 0H MOV 50H,#08H MOV 51H,#08H MOV 52H,#08H MOV 53H,#08H MOV 54H,#08H MOV 55H,#08H MOV 56H,#08H MOV 57H,#08H
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Tak Langsung
Dengan digunakan sistem pengalamatan tak langsung, dapat diubah menjadi :
Listing 2: ORG 0H MOV R0,#50H ; LOOP: MOV @R0,#08H INC R0 CJNE R0,#58H,LOOP END
Pengalamatan Tak Langsung
Dalam listing program 2 diatas, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang
perintah penulisan data ke alamat yang
ditunjuk R0 hingga register ini menunjukkan nilai 57H + 1, atau 58H. Dengan demikian, barisan perintah pada Listing 1 dapat
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
27
• Pengalamatan Tak Langsung
MCS-51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit ( R0 dan R1 ) yang dapat
digunakan untuk melakukan pengalamatan tidak langsung. Contoh-contoh perintah yang menggunakan sistem
pengalamatan tak langsung adalah :
MOV @R0,A ; R0 sebagai reg. penyimpan alamat MOV A,@R1 ; R1 sebagai reg. penyimpan alamat ADD A,@R0 ; R0 sebagai reg. penyimpan alamat MOVX @DPTR,A ; DPTR sebagai reg. penyimpan alamat MOVC A,@A+DPTR ; DPTR sebagai register
Pengalamatan Langsung
( Immediate Data )
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan diproses.
Biasanya operand tersebut selalu diawali
dengan tanda ‘#’ seperti pada contoh berikut. MOV A,#05H
MOV A,#45H MOV B,#0E4H
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
29
Pengalamatan Langsung
( Immediate Data )
Operand yang digunakan pada immediate data juga dapat berupa bilangan bertanda mulai - 256 hingga + 256.
Contoh :
MOV A,# -1
sama dengan
MOV A,#0FFH
Bilangan -1 adalah sama dengan bilangan 0 dikurangi 1, dalam bentuk heksa bilangan 00H. Jika dikurangi dengan 1, hasilnya adalah 0FFH. Dengan pengertian seperti ini, bilangan -1 dapat dianggap sama dengan 0FFH.
Pengalamatan Data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.
Contoh :
MOV P0,A
Port 0 adalah salah satu I/O pada MCS-51 yang
mempunyai alamat 80H. Perintah pada contoh di atas selain mengirimkan data akumulator ke Port 0 juga
merupakan perintah pemindahan data dari akumulator ke alamat 80H sehingga dapat juga dituliskan
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Bit
•
Salah satu kelebihan dari mikrokontroler adalah bisa mengalamati per bit.•
Lokasi yang teralamati bit harus menyediakan suatu alamat bit dalam memori data internal (00H-7FH) dan SFR (80H-FFH)•
Cara Penulisannya ada tiga cara:– Menggunakan alamatnya langsung (SETB 0EH) – Menggunakan tanda titik antara alamat byte dan
posisi bit (SETB ACC.7)
JUMP dan CALL
•
ASM51 membolehkan kita untuk menggunakanmnemonik JMP atau CALL yang umum.
Mnemonik JMP digunakan sebagai wakil dari
SJMP, AJMP atau LJMP, sedangkan
mnemonik CALL mewakili ACALL atau
LCALL. Assembler akan mengkonversi
mnemonik umum ini menjadi instruksi yang sesungguhnya mengikuti beberapa aturan sederhana.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
JUMP dan CALL
•
Diubah ke SJMP jika tidak ada dalam acuan alamat didepan (tujuan lompatan sebelum instruksi JMP yang bersangkutan) danjangkauan (lompatan berada dalam 128 byte).
•
Diubah ke bentuk AJMP jika tidak ada acuan lompatan didepan dan tujuan lompatan masih berada didalam blok 2K yang sama;•
Jika aturan 2 dan 3 tidak terpenuhi maka akan diubah ke bentuk LJMP.Tidak selamanya konversi merupakan cara pemrograman yang baik.
JUMP dan CALL
•
Misalnya tujuan lompatan ada beberapa didepan (setelah instruksi JMP yang bersangkutan) maka JMP yang umum tersebut akan diubah kebentuk LJMP, walau SJMP lebih cocok.Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (BASIS BILANGAN)
• Penulisan Bilangan akhir konstanta harus ditulis “B” untuk biner, “O” atau “Q” untuk oktaf, “D” atau tanpa simbol untuk desimal dan “H” untuk heksadesimal.
• Instruksi-instruksi berikut ini artinya sama:
MOV A,#15
MOV A,#1111B MOV A,#0FH MOV A,#17Q MOV A,#15D
• Khusus untuk format heksa, jika digit awal adalah huruf (A,B,C,D,E atau F), penulisannya harus diawali “0” (nol)
EKSPRESI-EKSPRESI ASSEMBLER (STRING KARAKTER)
•
Operan dapat berupa string yang terdiri dari satu atau karakter yang diapit tanda petik tunggal (‘). Kode ASCII dari karakter tersebut kemudian diterjemahkan sebagai bilangan biner yang sesuai dengan Assembler.CJNE A, #’Q’, Lagi
SUBB A, #’O’ ; konversi digit ASCII ke digit biner MOV DPTR, #’AB’ ; dua perintah
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR ARITMETIK)
Operator-operator aritmetik meliputi: + penambahan
- pengurangan * perkalian
/ pembagian
MOD modulo, sisa pembagian
Misalnya, dua instruksi ini hasilnya sama:
MOV A, #10+10h MOV A, #1Ah
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)
Operator logika meliputi OR logika OR AND logika AND
XOR logika eksklusif OR NOT logika komplemen
Operasi logika tersebut masing-masing bit pada operator, misalnya, dua instruksi berikut
hasilnya sama:
MOV A, #’9’ AND 0Fh MOV A,#9
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)
Operator NOT hanya membutuhkan satu operan. Tiga instruksi MOV berikut ini, hasilnya sama:
TIGA EQU 3
MIN_TIGA EQU -3
MOV A, #(NOT TIGA) + 1
MOV A, #MIN_TIGA
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR KHUSUS)
Operator-operator khusus meliputi: SHR geser kanan
SHL geser kiri
HIGH byte_tinggi (d7 s/d d4) LOW byte_rendah (d3 s/d d0) Misalnya, dua instruksi berikut hasilnya sama:
MOV A, #8 SHL 1 MOV A, #10h
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR KHUSUS)
Kedua instruksi berikut juga sama:
MOV A, #HIGH 1234h MOV A, #12h
EKSPRESI-EKSPRESI ASSEMBLER
(OPERATOR-OPERATOR RELASIONAL)
Jika suatu operator relasional digunakan antara dua operan, maka hasilnya selalu salah (0000h) atau benar (FFFFh). Operator-operator relasional ini meliputi:
EQ = Sama dengan
NE <> Tidak sama dengan LT < Lebih kecil dari
LE <= Lebih kecil sama dengan GT > Lebih besar dari
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER
(OPERATOR-OPERATOR RELASIONAL)
Contoh berikut menghasilkan benar (FFFFh):
MOV A, #5 = 5 MOV A, #5 NE 3 MOV A, #’X’ LT ‘Z’ MOV A, #’X’ >= ‘X’ MOV A, #$ > 0 MOV A, #100 GE 50
Dengan kata lain semua instruksi tersebut, sama dengan instruksi:
EKSPRESI-EKSPRESI ASSEMBLER (PRIORITAS OPERATOR) ( ) HIGH LOW * / MOD SHL SHR + -EQ NE LT LE GT GE = <> < <= > >= NOT AND OR XOR
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (PRIORITAS OPERATOR)
Jika lebih dari satu operator maka prioritas yang lebih tinggi didahulukan, jika prioritasnya sama maka akan dievaluasi dari kiri ke kanan,
misalnya: Ekspresi Nilai HIGH (‘A’ SHL 8) 0041h HIGH ‘A’ SHL 8 0000h NOT ‘A’ -1 FFBFh ‘A’ OR ‘A’ SHL 8 4141h
KBK 635
MIKROKONTROLER
Organisasi Memori
PERTEMUAN 3
Program Studi Sistem Komputer - Fakultas Ilmu Komputer
UNIVERSITAS NAROTAMA SURABAYA
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Informasi Kuliah
•
Dosen : Gembong Edhi Setyawan•
HP : 08123313678•
Email : gembong@gembong.web.id•
Website : http://www.gembong.web.id•
Kantor : Fasilkom – Unnar, Ruang Dosen II•
Hari Kerja: Selasa, Rabu, Kamis•
Jam : 09.00 – 14.00 WIB•
Email & Website adalah jalan berkomunikasi / berkonsultasi yang terbaik dengan sayaMateri Kuliah
Ke Pokok Bahasan
1 Pendahuluan
1.1 Penjelasan Kontrak Pembelajaran 1.2 Pengenalan Mikrokontroler
1.3 Mikroprosesor Vs Mikrokontoler 1.4 Penggunaan Mikrokontroler
2 Arsitektur Mikrokontroler AT89S51
2.1 Diagram Blok 2.2 Deskripsi Pin
2.3 Port I/O Mikrokontroler AT89S51
RINGKASAN
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
3 Organisasi Memori AT89S51
3.1 Memori Data
3.2 Memori Program
3.3 SFR (Special Function Register) UJIAN TDK TERJADWAL (QUIS)
Materi Kuliah
Ke Pokok Bahasan
4-5 Pemrograman Assembly MCS51
4.1 Instruksi-instruksi MCS51 4.2 Operasi Assembler
4.3 Struktur pemrograman Assembly MCS51 4.4 Perangkat lunak yang digunakan untuk
MCS51
4.5 Ekspresi-Ekspresi Assembler 4.6 Pengarah Assembler
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
6 Sistem Interupsi
5.1 Struktur Interupsi
5.2 Mengaktifkan dan menonaktifkan interupsi 5.3 Tingkat prioritas interupsi
5.4 Teknik Polling
5.5 Pemrosesan interupsi 5.6 Vektor-vektor interupsi
5.7 Perancangan program interupsi 5.8 Pewaktuan interupsi
Materi Kuliah
Ke Pokok Bahasan
7 Penggunaan Port Pararel
6.1 Fungsi-fungsi kaki pin
6.2 Struktur port dan cara kerja 6.2.1 Konfigurasi port I/O
6.2.2 Spesifikasi port (port 0, port 1, port 2, port 3)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Materi Kuliah
Ke Pokok Bahasan
9 Timer dan Counter
8.1 Timer/Counter AT89S51
8.1.1 Mode kerja Timer 0 dan Timer 8.1.2 Register pengatur timer
8.2 Mengatur timer
Materi Kuliah
Ke Pokok Bahasan
11 Port Serial
10.1 Antarmuka Serial
10.2 Register Kontrol Port Serial 10.3 Baudrate
10.4 Mode Kerja Port Serial
12 Latihan Aplikasi Penggunaan Port Serial
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Ringkasan Organisasi Memori
•
Mikrokontroler 89S51 Mempunyai 2 jenis memori, yaitu Memori Program (ROM) dan Memori Data (RAM)•
Memori Program besarnya 4 KByte menempati alamat 000H – FFFH•
Memori Data dibagi menjadi 3 blok: – 128 byte bawah (00H-7FH)– 128 byte atas (80H-FFH)
– SFR (Special Function Register) (80H-FFH)
SAP
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Perangkat Lunak Yang Dibutuhkan Untuk Membuat Aplikasi Mikrokontroler AT89S51
•
Kompiler ASM51•
Mengubah berkas Objek (.OBJ) ke Heksa (.HEX)•
Mengubah Berkas Heksa (.HEX) ke Binair (.BIN)•
Simulator / Emulator 8051 berfungsi untuk melakukan pengujian/simulasi dari programLangkah-Langkah Membuat Aplikasi Mikrokontroler AT89S51
•
Menulis Program Assembly ke editor teks (edit, notepad), kemudian simpan kode programdengan ekstensi “ *.ASM “
•
Melakukan Kompilasi Program Dengan Cara:asm51 <NAMA_FILE.ASM>
•
Jika terjadi kesalahan akan ditunjukkan dan harus diperbaiki. Kesalahan akan ditunjukkan dengan membuka file dengan ekstensi “ *.1ST “Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Langkah-Langkah Membuat Aplikasi Mikrokontroler AT89S51
•
File yang telah di kompile dan berhasilmenghasilkan berkas “ *.OBJ “ di ubah ke format heksa (“ *.HEX “) dengan perintah
OH <NAMA_FILE.OBJ>
•
Program yang berekstensi “ *.HEX “ biasanya sudah bisa dimanfaatkan kesimulator/emulator.
•
Kadang ada beberapa software yang membutuhkan format biner.Pemrograman Assembly AT89S51
•
Bahasa Assembly digunakan untukmenggantikan kode heksa dari bahasa mesin dengan “mnemonik” yang mudah diingat.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pemrograman Assembly AT89S51
Bahasa Assembly, berisi:
•
Instruksi-Instruksi Mesin : Mnemonik yang menyatakan instruksi, contoh Æ MOV•
Pengarah-pengarah assembler : Instruksi yang menyatakan struktur program, simbol-simboldata, konstantata, contoh Æ ORG
•
Kontrol-Kontrol Assembler : Menentukan mode-mode Assembler, contoh Æ $TITLE•
Komentar : Ditulis agar program mudah dibaca, tidak harus per instruksi bisa sekumpulanFormat Assembly AT89S51
[label:] mnemonic [operan] [,operan] [...] [;komentar]
•
Label : Mewakili alamat dari instruksi, biasanyadigunakan sebagai operan pada instruksi
percabangan. Label harus diawali dengan huruf,
tanda tanya atau garis bawah kemudian diikuti dengan huruf, angka, tanda tanya atau garis bawah hingga 31 karakter.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Format Assembly AT89S51
[label:] mnemonic [operan] [,operan] [...] [;komentar]
•
Operan : Bisa berupa alamat atau data yangberdasar pada kode mnemoniknya. Ada kode mnemonik yang tidak membutuhkan operan, misal RET
Simbol-Simbol Khusus Assembler
Assembler telah menyediakan beberapa simbol untuk menunjukkan register tertentu sebagai operand.
Contoh:
A Akumulator
R0 …. R7 Register Serbaguna
DPTR Data Pointer Register 16 Bit PC Program Counter
C Carry Flag
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Simbol-Simbol Khusus Assembler
Assembler telah menyediakan beberapa simbol untuk menunjukkan register tertentu sebagai operand.
Contoh:
A Akumulator
R0 …. R7 Register Serbaguna
DPTR Data Pointer Register 16 Bit PC Program Counter
C Carry Flag
Pengalamatan Tak Langsung
Operand pengalamatan tak langsung
menunjuk ke sebuah register yang
berisi lokasi alamat memory yang
akan digunakan dalam operasi.
Lokasi yang nyata tergantung pada isi
register saat instruksi dijalankan.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Tak Langsung
Untuk melaksanakan pengalamatan tak langsung digunakan simbol @
Contoh:
MOV A,@R1
MOV @R0,A
Pengalamatan Tak Langsung
Pengalamatan tak langsung (Indirect) ini
biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang mempunyai urutan beraturan.
Jika proses ini dilakukan dengan
menggunakan pengalamatan langsung jumlah baris program yang diperlukan akan cukup
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Tak Langsung
Contohnya penulisan data 08H pada alamat 50H hingga 57H. Listing 1: ORG 0H MOV 50H,#08H MOV 51H,#08H MOV 52H,#08H MOV 53H,#08H MOV 54H,#08H MOV 55H,#08H MOV 56H,#08H MOV 57H,#08H END
Pengalamatan Tak Langsung
Dengan digunakan sistem pengalamatan tak langsung, dapat diubah menjadi :
Listing 2: ORG 0H MOV R0,#50H ; LOOP: MOV @R0,#08H INC R0 CJNE R0,#58H,LOOP END
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
Pengalamatan Tak Langsung
Dalam listing program 2 diatas, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang
perintah penulisan data ke alamat yang
ditunjuk R0 hingga register ini menunjukkan nilai 57H + 1, atau 58H. Dengan demikian, barisan perintah pada Listing 1 dapat
• Pengalamatan Tak Langsung
MCS-51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit ( R0 dan R1 ) yang dapat
digunakan untuk melakukan pengalamatan tidak langsung. Contoh-contoh perintah yang menggunakan sistem
pengalamatan tak langsung adalah :
MOV @R0,A ; R0 sebagai reg. penyimpan alamat MOV A,@R1 ; R1 sebagai reg. penyimpan alamat ADD A,@R0 ; R0 sebagai reg. penyimpan alamat MOVX @DPTR,A ; DPTR sebagai reg. penyimpan alamat MOVC A,@A+DPTR ; DPTR sebagai register
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
28
Pengalamatan Langsung
( Immediate Data )
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan diproses.
Biasanya operand tersebut selalu diawali
dengan tanda ‘#’ seperti pada contoh berikut. MOV A,#05H
MOV A,#45H MOV B,#0E4H
Pengalamatan Langsung
( Immediate Data )
Operand yang digunakan pada immediate data juga dapat berupa bilangan bertanda mulai - 256 hingga + 256.
Contoh :
MOV A,# -1
sama dengan
MOV A,#0FFH
Bilangan -1 adalah sama dengan bilangan 0 dikurangi 1, dalam bentuk heksa bilangan 00H. Jika dikurangi dengan 1, hasilnya adalah 0FFH. Dengan pengertian seperti ini, bilangan -1 dapat dianggap sama dengan 0FFH.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
30
Pengalamatan Data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.
Contoh :
MOV P0,A
Port 0 adalah salah satu I/O pada MCS-51 yang
mempunyai alamat 80H. Perintah pada contoh di atas selain mengirimkan data akumulator ke Port 0 juga
merupakan perintah pemindahan data dari akumulator ke alamat 80H sehingga dapat juga dituliskan
Pengalamatan Bit
•
Salah satu kelebihan dari mikrokontroler adalah bisa mengalamati per bit.•
Lokasi yang teralamati bit harus menyediakan suatu alamat bit dalam memori data internal (00H-7FH) dan SFR (80H-FFH)•
Cara Penulisannya ada tiga cara:– Menggunakan alamatnya langsung (SETB 0EH) – Menggunakan tanda titik antara alamat byte dan
posisi bit (SETB ACC.7)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
JUMP dan CALL
•
ASM51 membolehkan kita untuk menggunakanmnemonik JMP atau CALL yang umum.
Mnemonik JMP digunakan sebagai wakil dari
SJMP, AJMP atau LJMP, sedangkan
mnemonik CALL mewakili ACALL atau
LCALL. Assembler akan mengkonversi
mnemonik umum ini menjadi instruksi yang sesungguhnya mengikuti beberapa aturan sederhana.
JUMP dan CALL
•
Diubah ke SJMP jika tidak ada dalam acuan alamat didepan (tujuan lompatan sebelum instruksi JMP yang bersangkutan) danjangkauan (lompatan berada dalam 128 byte).
•
Diubah ke bentuk AJMP jika tidak ada acuan lompatan didepan dan tujuan lompatan masih berada didalam blok 2K yang sama;•
Jika aturan 2 dan 3 tidak terpenuhi maka akan diubah ke bentuk LJMP.Tidak selamanya konversi merupakan cara pemrograman yang baik.
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
JUMP dan CALL
•
Misalnya tujuan lompatan ada beberapa didepan (setelah instruksi JMP yang bersangkutan) maka JMP yang umum tersebut akan diubah kebentuk LJMP, walau SJMP lebih cocok.EKSPRESI-EKSPRESI ASSEMBLER (BASIS BILANGAN)
• Penulisan Bilangan akhir konstanta harus ditulis “B” untuk biner, “O” atau “Q” untuk oktaf, “D” atau tanpa simbol untuk desimal dan “H” untuk heksadesimal.
• Instruksi-instruksi berikut ini artinya sama:
MOV A,#15
MOV A,#1111B MOV A,#0FH MOV A,#17Q MOV A,#15D
• Khusus untuk format heksa, jika digit awal adalah huruf (A,B,C,D,E atau F), penulisannya harus diawali “0” (nol)
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (STRING KARAKTER)
•
Operan dapat berupa string yang terdiri dari satu atau karakter yang diapit tanda petik tunggal (‘). Kode ASCII dari karakter tersebut kemudian diterjemahkan sebagai bilangan biner yang sesuai dengan Assembler.CJNE A, #’Q’, Lagi
SUBB A, #’O’ ; konversi digit ASCII ke digit biner MOV DPTR, #’AB’ ; dua perintah
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR ARITMETIK)
Operator-operator aritmetik meliputi: + penambahan
- pengurangan * perkalian
/ pembagian
MOD modulo, sisa pembagian
Misalnya, dua instruksi ini hasilnya sama:
MOV A, #10+10h MOV A, #1Ah
Mikrokontroler - Fasilkom - Unnar Dosen : Gembong Edhi Setyawan
EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)
Operator logika meliputi OR logika OR AND logika AND
XOR logika eksklusif OR NOT logika komplemen
Operasi logika tersebut masing-masing bit pada operator, misalnya, dua instruksi berikut
hasilnya sama:
MOV A, #’9’ AND 0Fh MOV A,#9