Anda di halaman 1dari 66

Arsitektur Mikrokontroler

Mikroprosesor (uP)
• sebuah IC (Integrated Circuit) yang digunakan
sebagai otak/pengolah utama dalam sebuah
sistem komputer.
• Mikroprosesor pertama kali diperkenalkan
oleh Intel Corp pada tahun 1971, yaitu
mikroprosesor Intel 4004 (arsitektur 4 bit).
Perbandingan Ukuran Prosesor

Universitas Gunadarma
Judul Pokok Bahasan 4/total
Model Mikroprosesor Ideal
• Mikroprosesor adalah IC digital yang memiliki sejumlah
saluran data, saluran alamat, saluran kontrol dan
saluran sumber daya

• Karena mikroprosesor adalah alat digital maka kondisi


yang terjadi di setiap saluran hanya ada dua tingkat
tegangan
Model Mikroprosesor Ideal

• Secara ideal mikroprosesor memiliki saluran masukan


sejumlah N dan saluran keluaran sejumlah M. Umumnya
jumlah saluran N dan M sama banyaknya
• Mikroprosesor bekerja dengan
– Menerima data dari sejumlah masukan,
– Memproses data menurut ketentuan-ketentuan program yang
disimpan dan
– Menghasilkan sejumlah sinyal keluaran sebagai akibat dari
pemrosesan data tersebut.
Konsep Data Bus
• Bus Data ialah saluran yang berfungsi untuk
mengirim /menerima data antara komponen
sistem dengan mikroprosesor
• Berikut contoh mikroP dengan 8 saluran data
masukan dan keluaran (D)

D0 LSB (Least Significant Bit)


D7 MSB (Most Significant Bit)
Konsep Data Bus
• Metode untuk penghematan jumlah kaki (pin) dalam
sebuah IC dapat dilakukan dengan menggabungkan
sebuah port sebagai masukan data sekaligus sebagai
keluaran data.
• Metode ini dikenal dengan metode multiplexing
dengan prinsip three state buffer
Konsep Address Bus
• Setiap lokasi memori memiliki alamat memori.
• Alamat memori dinyatakan dengan bilangan
hexadecimal
• Hubungan mikroprosesor dan memori melalui
saluran data dan saluran alamat
Konsep Address Bus
• Setiap saluran alamat memiliki satu logika 1
dan 0 sehingga untuk memori dengan N buah
saluran akan memiliki 2N alamat memori yang
berbeda
Daftar kapasitas memori berdasarkan lebar bus
alamat

Judul Pokok Bahasan


Untuk lebar bus data 8-bit (1 byte), maka
ruang alamat memori

• 1.024 = 1 kb (kilo byte)


• 2.048 = 2 kb
• 4.096 = 4 kb
• 8.192 = 8 kb
• 16.384 = 16 kb
• 32.768 = 32 kb
• 65.536 = 64 kb
• ....
• 1.048.476 = 1.024 kB = 1 Mb
• 2.096.952 = 2.048 kB = 2 Mb
• 4.193.904 = 4.096 kB = 4 Mb
• 8.387.808 = 8.192 kB = 8 Mb

Judul Pokok Bahasan


Konsep Address Bus
• Implementasi Address Buss saat ini dengan
adanya konsep address multiplexing, alamat
bisa dikirimkan dalam 2 bagian sehingga
alamat 32 bit bisa ditangani oleh address bus
16 bit
Konsep Control Bus
• Saluran kontrol adalah saluran yang digunakan
untuk mensinkronkan cara kerja
mikroprosesor dan komponen-komponen di
luar mikroprosesor
• Saluran kontrol dengan arah panah masuk ke
mikroprosesor adalah control input contohnya
VMA (Valid Memory Address) , Hold, Int,
Reset,Wait, NMI, BUSRQ, Ready dll
Konsep Control Bus
• Saluran kontrol dengan arah keluar dari mikroprosesor
adalah control output contohnya DBIN, WR, HLDA,
MREQ, IORQ, RD dll
• Saluran kontrol memiliki “status” yang menandakan
keaktifannya.
• Saluran kontrol dengan Aktif High berarti dia akan aktif
pada nilai logika 1, artinya pada saat itu ia akan
memberitahukan pada komponen di luar
mikroprosesor bahwa info alamat yang terdapat pada
saluran alamat adalah benar (valid)
8086/88 Device Specifications

• DIP (Dual In-Line Packages).


1. 8086: 16-bit microprocessor dengan 16-bit data bus
2. 8088: 16-bit microprocessor dengan 8-bit data bus.
• Level Tegangan 5V :
1. 8086: membutuhkan arus maksimum sebesar 360mA.
2. 8086: membutuhkan arus maksimum sebesar 340mA.
3. 80C86/80C88: CMOS tipe membutuhkan 10mA dengan temperatur -40
sampai dengan 225 °F.
• Level Arus Input/Output :
8086/88 Pinout
Fungsi PIN :

• AD15-AD0 Sebagia address multiplexer dimana (ALE=1) /data bus(ALE=0).


• A19/S6-A16/S3 (multiplexed) Sebagai 4 bit terakhir dengan 4 bits dari 20-bit
address A16 s/d A19 Atau status bits S6- S3.
• M/IO Sebagai indikasi apakah alamar memory atau alamat Input Output.
• RD Ketika 0, data bus menujukan pembacaraan dari memory atau dari I/O device.
• WR Berfungsi kepada mikroproses untuk menunjuk ke memory atau I/O device
melalui data bus. Jika 0, maka data bus telah valid data.
• ALE (Address latch enable) Ketika 1, address data bus melakukan penulisan pada
memory atau I/O address.
• DT/R (Data Transmit/Receive) Data bus sebagai transmitting/receiving data.
• DEN (Data bus Enable) mengerakkan data bus di luar buffer.
• S7: Logic 1, S6: Logic 0.
• S5: Jika tidak ada flag bits, dimana hanya untuk alamat yang sesuai denngan
kondisinya
• S4-S3: Memberikan status pada segment saat akses selama mengunakan power.
• S2, S1, S0: Mengindikasi fungsi bus cycle (decoded by 8288).
CONT.
CONT.
• INTR (Interrupt Request) Ketika INTR=1 dan IF=1, maka mikroprosesor
menyediakannya service interrupt. INTA kembali aktif seletah intruksinya
lengkap.
• INTA (Interrupt Acknowledge) mikroprosesor merespon pada INTA. Karena tabel
vektor dapat tepisah dan akan menuju data bus.
• NMI (Non-maskable interrupt) Fungsi seperti INTR, Jika flag bit tidak disetujui,
dan juga berfungsi sebagai intrupsi pada vektor 2.
• CLK (Clock) input mempunyai duty cycle of 33% (high for 1/3 and low for 2/3s)
• VCC/GND Power supply (5V) and GND (0V).
• MN/ MX untuk mode minimum (5V) atau mode maximum (0V) secara operasi.
• BHE (Bus High Enable). Mengaktifkan sebagian data bus yang sangat penting
(D15 -D 8 ) selama operasi pembacaan dan penulisan.
• READY melakukan proses tunggu yang telah ditetapkan (pengontrolan memori
dan I/O pada proses pembacaan atau penulisan) oleh mikroprosesor.
CONT.
• RESET Mikroprosesor akan melakukan reset jika pin ini mendapat high selama 4
clock. Pelaksaan intruksi dimulai dari alamat FFFF0H dan IF flag berkondisi clear.
• TEST Masukan yang dicheck oleh intruksi WAIT. Umumnya terhubung dengan
coprosesor 8087.
• HOLD meminta Direct Memory Access (DMA). ketika 1, mikroprosesor berhenti
dan dan Bus address, data dan kontrol dalam kondisi high-impedance state.
• HLDA (Hold Acknowledge) Suatu indikasi pada mikroprosesor bahwa proses
HOLD sementara berlangsung.
• RO/GT1 and RO/GT0 (Request/grant) meminta/membantu Direct Memory
Access (DMA) selama proses operasi mode maksimum.
• LOCK memberikan output berfungsi mengunci coprosesor ekternal pada sistem.
• QS1 and QS0 (queue status) menunjukan status antrian intruksi internal. Pin ini
digunakan aritmatika coprocessor (8087).
8284A Clock Generator

Fungsi dasar
• Clock generation.
• RESET synchronization.
• READY synchronization.
• Peripheral clock signal.
BUS Buffering dan Latching

Bus Demultiplexing:
a) Sistem komputer mempunya 3 BUS, sebagai berikut :
Address
Data
Control
b) Bus Address dan Bus Data merupakan multiplexed (shared) dimana ke-2
Bus tersebut menjadi satu pada 8086.
Pin ALE mengontrol latch (mempertahan hasil).
c) Semua sinyal harus di buffer (penyangga).
Buffer Latch untuk A0 - A15 .
Kontrol dan A16 - A19 + BHE terpisah dari buffer.
Buffer Bus Data harus bi-directional buffers (BB).
d) BHE: memilih high-order memory bank.
Cont.
8288 Bus Controller

• Sinyal yang digunakan untuk I/O (IORC dan IOWC), sedangkan untuk
memori (MRDC dan MWTC).
• Untuk penulisan memori (AIOWC) dan I/O (AIOWC) secara strobe pada
INTA.
PIC 8259
• Keunggulan:
1. Interupsi terdapat 8 tingkatan
2. Dapat di cascaded pada konfigurasi master-slave dengan 64 level
interupsi.
3. Terdapat prioritas internal.
4. Mode perbaikan prioritas dan rotasi.
5. Mempunyai masing-masing intrupsi maskable.
6. Mode dan Mask dapat dirubah-rubah.
7. Persetujuan IRQ, menetukan prioritas, mengecek apakah masukan
prioritas > level arus, menghasilkan sinyal interupsi.
8. Pada mode 8085, memberikan 3 byte panggilan Intruksi. Pada Mode
8086, memberikan 8 byte nomor vektor.
9. Mode Polling dan vektor.
10. Alamat awal dari ISR atau nomor vektor program.
11. Tidak membutuhkan clock.
Blok Diagram PIC 8259
Control Word PIC 8259
Zilog Z80
Mikrokontroler (uC)
• sebuah chip yang berfungsi sebagai
pengontrol rangkaian elektronik.
• Terdiri atas CPU (Central Processing Unit),
memori, I/O tertentu dan unit pendukung
seperti Analog-to-Digital Converter (ADC) yang
sudah terintegrasi di dalamnya.
Mikrokontroler buatan ATMEL
Perbedaan
Mikrokontroler

www.mikroe.com/chapters/view/1
Central Processing Unit (CPU)
– Membaca instruksi dari memori,
menterjemahkan, mengeksekusinya
– Mentransfer informasi dari/ke memori data /unit

I/O
– Menanggapi sinyal kontrol dari luar yang dikenal
dengan interrupt
CPU
• Register : sebagai tempat penyimpanan sementara
data, alamat, kode instruksi dan bit status berbagai
operasi uP
• Algorithm and Logic Unit (ALU) : untuk mengerjakan
perintah logika dan aritmetika
• Timing and Control Unit : mengambil dan
mengdekodekan instruksi dan memori program dan
membangkitkan sinyal kontrol yang diperlukan oleh
bagian luar uP untuk melaksanakan instruksi
tersebut
BUS
• Data bus : jalur untuk perpindahan data antar
modul dalam sistem uP.
• Address bus : jalur untuk menandakan lokasi
sumber (source) atau tujuan (destination)
pada proses transfer data.
• Control bus : jalur yang mengatur penggunaan
dan akses ke Address bus dan Data bus
Konfigurasi IC AT89S51
• CPU (Central Prosesing Unit) 8 bit dengan register A(Accumulator) dan B.
• 16 bit program counter (PC) dan data pointer (DPTR).
• 8 bit program status word (PSW).
• 8 bit stack pointer (SP).
• 128 byte internal RAM.
• 4 Bank Register, masing-masing berisi 4 register :
– 16 byte yang dapat dialamati pada bit level.
– 80 byte general purpose memori data.
• 32 pin Input/Output, tersusun atas P0 P3, masing-masing 8 bit.
• 2 buah 16 bit Timer Counter.
• Receiver / Transmitter data serial Full Duplex : SBUF.
• Control Register, yaitu : TCON, TMOD, CSON, PCON, IP dan IE.
• 5 buah sumber intrupt yaitu :
– 2 buah interupt eksternal.
– 2 buah interupt pewaktu.
• 1 buah interupsi serial.
Konfigurasi Pin AT89S51
Control Bus
No. Pin Nama Pin Fungsi
29 PSEN Program Store Enable, digunakan untuk mengakses
program memori eksternal
30 ALE/PROG Pulsa input ALE digunakan untuk proses latching byte
address rendah/LSB (A0-A7) pada saat mengakses
memori eksternal.  Sedang saat flash programming
(PROG) berfungsi sebagai pulsa input.
31 EA/VPP Jika EA=1 maka mikrokontroler akan melaksanakan
instruksi dari ROM internal
Jika EA=0 maka mikrokontroler akan melaksanakan
instruksi dari ROM eksternal
9 RST Merupakan pin untuk memberikan sinyal reset pada
mikrokontroler. Pulsa dari low ke high akan mereset
mikrokontroler 
Port I/O
No. Pin Nama Pin Fungsi
32-39 P0.0 - P0.7 Port I/O 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.
1-8 P1.0-P1.7 Port I/O dua arah (bidirectional) dengan internal pull-up.
Port 1 juga digunakan dalam proses pemrograman (In
System Programming) → P1.5 MOSI; P1.6 MISO ; P1.7
SCK
21-28 P2.0-P2.7 Port I/O dua arah (bidirectional) dengan internal pull-up,
mengeluarkan address tinggi (MSB) selama pengambilan
(fetch) program memory eksternal
10-17 P3.0-P3.7 Port I/O dua arah (bidirectional) dengan internal pull-
up. Port 3 juga bisa difungsikan untuk keperluan khusus
Fungsi Khusus Port 3
No. Pin Nama Pin Fungsi Alternatif
10 P3.0 RXD (Port Serial Input)
11 P3.1 TXD (Port Serial Output)
12 P3.2 INT0 (interrupt eksternal 0)
13 P3.3 INT1 (interrupt eksternal 1)
14 P3.4 T0 (input eksternal timer 0)
15 P3.5 T1 (input eksternal timer 1)
16 P3.6 WR (sinyal penulisan data eksternal)
17 P3.7 RD (sinyal pembacaan data eksternal)
Fungsi Pin Lain
No. Pin Nama Pin Fungsi
40 VCC Sumber tegangan, dapat menggunakan sumber
tegangan dari +2,5 V – 6 V, biasanya menggunakan
sumber tegangan +5V
20 GND Ground
19 XTAL1 Input osilator dan dihubungkan dengan kristal bila
menggunakan osilator internal.
18 XTAL2 Input osilator dan dihubungkan dengan kristal bila
menggunakan osilator internal.
Perancangan Rangkaian Minimum
• Sistem elektronika yang terdiri dari komponen-
komponen dasar yang dibutuhkan oleh suatu
mikrokontroler untuk dapat berfungsi dengan baik
• Komponen Yg Harus Ada
• CPU Internal
• Memori Program (ROM)
• Memori Data (RAM) Sudah ada
dalam mikrokontroler
• Port I/O
• Pewaktuan CPU (Crystal 4-24 MHz)
• Reset Eksternal Eksternal
• Power Supply (5 Volt)
• EA/VPP dihubungkan ke VCC 
Pewaktuan CPU (Crystal)
• Mikrokontroler MCS51memiliki 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 dari
4 sampai 24 MHZ
• Sedang untuk kapasitor dapat bernilai 20 pF
sampai 40 pF
Rangkaian Clock Eksternal
Siklus Mesin
• Dalam mikrokontroler dikenal istilah
Machine Cycle (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 =1µS
Waktu Eksekusi
•  Waktu eksekusi sebuah instruksi oleh
mikrokontroler 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
Persamaan Waktu Eksekusi
• Waktu
  eksekusi dapat dihitung dengan
rumus :

Dimana:
Waktu mengeksekusi 1 instruksi (Secon)
C : Jumlah machine cycle
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
formatMov A,#n adalah instruksi dengan ukuran 1
Byte dan 1Cycle =
Maka :
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.
Rangkaian reset

Pada rangkaian ini


T=R.C = (8K2).(10uF) = 82mS.
Setelah kapasitor terisi, maka pin 9
akan low. 
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
Syntax
• [label:] mnemonic [operand1] [,operand2]
[,operand3][;komentar]
Contoh Opcode (Operational Code
Mnemonics)
Sintax
$mod51
org 00h
mov p3,#0feh ;nilai awal led
mov a,p3
start:
rl a ;geser kiri
mov p3,a
call tunda
sjmp start

tunda:
mov r7,#02h ;nilai utama untuk merubah nilai lama waktu tunda
lupa: mov r6,#0ffh
lupb: mov r5,#0ffh
djnz r5,$
djnz r6,lupb
djnz r7,lupa
ret

end
Sintax
• #include <mega8535.h>
• #include <delay.h>

• void main()
• {
• unsigned char cnt;

• DDRA=0xff; //Direction setting register, PORTA output setting
• PORTA=0x00;
• while(1)
• {

• PORTA=0x01;

• for(cnt=0;cnt<7;cnt++)
• {
• delay_ms(500); // Delay 500msec
• PORTA <<= 1; // left shift
• }

• PORTA=0x80;

• for(cnt=0;cnt<7;cnt++)
• {
• delay_ms(500); // Delay 500msec
• PORTA >>= 1; // right shift
• }

• }
• }
DT-AVR
Arduino

-Mudah pemrogramannya
-Open Source
-Banyak yang mengembangkan
Arduino Uno

Making-robots-with-arduino.pdf
hendy@pens.ac.id
Atmel ATMega 328

Specification
Making-robots-with-arduino.pdf
hendy@pens.ac.id
Arduino IDE

hendy@pens.ac.id

Anda mungkin juga menyukai