TEKNIK ANTARMUKA MIKROPROSESOR
TUJUAN
u Mahasiswa
mampu memahami dasar dan teknik antarmuka mikroprosesor/mikrokontroler
POKOK BAHASAN
u Sistem mikroprosesor/mikrokontroler, meliputi CPU, memori, jalur bus, devais storage dan devais I/O lainnya;
u Sumber
daya, clock, reset dan interupsi di sistem mikroprosesor/mikrokomputer;
u Teknik
antarmuka port I/O digital paralel untuk peripheral masukan (push-button,
saklar, keypad) dan peripheral keluaran (panel LED, 7-segmen, LCD alphanumerik
dan, motor DC);
u Teknik
pemrograman timer, counter, interupsi dan real-time clock (RTC);
u Teknik
antarmuka Pulse Width Modulator (PWM)
u Teknik
antarmuka serial asinkron UART
u Teknik
antarmuka serial sinkron, meliputi SPI dan I2C
u Teknik
antarmuka USB
u Teknik antarmuka ADC dan DAC
u Desain
mikrokontroler
ANTARMUKA
/INTERFACING ?
u Satu sistem ke sistem yang lain
u computer to computer
u Computer to another
Antarmuka
u Perangkat dan konsep yang mengacu pada
titikinteraksi antar komponen
>
berlaku untuk hardware (graphic card) maupunsoftware (internet browser)
u Memungkinkan komponen dapat berfungsi
secaraindependen
>
Komunikasi antarkomponen menggunakan interface lewat sistem I/O dan protokol yang sesuai
u Interface:
bus, storage devices, I/O devices
u Interface
diimplementasikan dengan interkoneksi, sinyal elektrik dan logika, serta
protokol (disebut sebagai signalling)
u Terdapat
standar interface: PATA/IDE, PCI, PC/104,USB, SPI, 1-wire, I2C, PCIe
MIKROPROSESOR ?
u Mikroprosesor adalah sebuah IC(Integrated Circuit) yang dapat melaksanakan operasi-operasi
hitungan, operasi nalar, dan operasi kendali secara elektronis (digital).
u Secara fungsi mikroprosesor didisain bekerja sebagai pelaksana instruksi atau program, pengendali sistim serta sebagai pusat pengolah data digital called: Central Processing Unit (CPU)
u Biasanya mikroprosesor dikemas
dengan plastik atau keramik. Kemasannya dilengkapi dengan pin-pin yang merupakan
terminal masukan dan keluaran dari chip.
MIKROKONTROLER ?
PERBEDAAN MIKROKONTROLER DAN MIKROPOSESOR?
Mikroprosesor dan Mikrokontroler
Mikroprosesor
u IDigunakan
untuk aplikasi high-performance
u Cost dan size tidak jadi
kriteria kritis
u Chip
didedikasikan untuk CPU dan peningkatan kecepatan eksekusi (processing power)
u Membutuhkan
memori eksternal dan hardware I/O
u Digunakan
di PC
u Kriteria:
kompatibilitas software, performansi dan fleksibilitas
u Arsitektur:
von Neumann
Mikrokontroler
u Digunakan
untuk meminimalkan jumlah chip dan biaya total
u Menyertakan
memori dan I/O on-chip, sehingga bahkan hanya butuh 1 mikrokontroler untuk
mengimplementasikan produk
u Aplikasi
khusus dengan trade-off fleksibilitas
u Kriteria:
compact
u Arsitektur:
Havard
Arsitektur Von Neumann dan Havard
Arsitektur von Neumann (Princeton)
u Menggunakan
jalur/bus tunggal untuk memori program dan data
u Digunakan
di mesin berbasis mikroprosesor
u Memaksimalkan
fleksibilitas alokasi memori
Arsitektur Havard
Menggunakan jalur terpisah untuk memori program dan data
penulisan/pembacaan program dan data dapat dilakukan
bersamaan
Kecepatan transfer memori bisa 2 kali (paralelisme tranfer
instruksi dan data)
Digunakan di chip mikrokontroler dan DSP (tanpa cache)
Di
mikroprosesor (ARM, x86) menggunakan modifikasi arsitektur Harvard
Dari CPU ke cache menggunakan Harvard
Dari cache ke devais memori
menggunakan Von Neumann
MENGAPA PERLU MIKROKONTROLER?
u Pada saat ini banyak perangkat
elektronika yang dikendalikan oleh mikrokontroler
u Dengan mikrokontroler penggunaan
komponen dapat dikurangi sehingga biaya produksi dapat dikurangi.
APA YANG INGIN ANDA BUAT MENGGUNAKAN MIKROKONTROLER?
MIKROPROSESOR
SEJARAH MIKROPROSESOR
u Mikroprosesor pertama adalah intel
4004 yang dikenalkan tahun1971, tetapi kegunaan mikroprosesor ini masih sangat
terbatas, hanya dapat digunakan untuk operasi penambahan dan pengurangan.
u Mikroprosesor pertama yang digunakan
untuk komputer di rumah adalah intel 8080, merupakan komputer 8 bit dalam satu
chip yang diperkenalkan pada tahun 1974.
u Tahun 1979 diperkenalkan
mikroprosesor baru yaitu 8088. Mikroprosesor 8088 mengalami perkembangan
menjadi 80286, berkembang lagi menjadi 80486, kemudian menjadi Pentium, dari
Pentium I sampai dengan sekarang,Pentium IV.
JENIS-JENIS CHIP MIKROPROSESOR
Berdasar lebar kata (wordlength) bus data mikro prosesor dapat diklasifikasikan menjadi;
Mikroprosesor
4-bit
Contoh:
4004 Buatan
Intel
TMS1000 Buatan
Texas Instrument
Mikroprosesor
8-bit
Contoh:
6800, 6802 Buatan
Motorola
6502
Buatan
Signetic
8008,
8080, 8085 Buatan
Intel
Z80 Buatan
Zilog
Mikroprosesor
16-bit
Contoh:
68000 Buatan
Motorola
8086,8088,80186,
80286 Buatan Intel
Z8000 Buatan
Zilog
Mikroprosesor 32-bit
68020,
68030 Buatan Motorola
80386,
80486, Buatan Intel
Pentium 1, 2, 3 Buatan Intel
Mikroprosesor 64-bit
Contoh:
Intel Pentium 4
D
Intel Pentium
Core Duo, Core 2 Duo
KOMPONEN SISTEM MIKROPROSESOR
Sistem mikroprosesor tersusun
dari empat komponen, yaitu
- Mikroprosesor itu sendiri
- Random Access Memory(RAM)
- Read Only memory(ROM)
- Port Input/Output(PIO)
Dalam bekerja, keempat komponen
tersebut saling berkomunikasi/mentransfer data.
Media transfer datanya berupa
sekelompok jalur-jalut penghubung yang disebut bus.Ada tiga jenis bus dalam
sistem mikroprosesor, yaitu bus alamat, bus data, dan bus kontrol.
Microprocessor
Unit (MPU)
u MPU
tersusun dari tiga bagian pokok yaitu :
1. Control
Unit (CU)
2. Arithmetic
Logic Unit (ALU)
3. Register
Unit (RU)
Random Access Memory
u RAM
adalah media pengingat sementara.
u Ram diperlukan oleh sistem karena
selam proses kerja, banyak proses tulis/baca data yang tidak bersifat permanen.
kapasitas RAM yang
lebih besar mengakibatkan bertambahnya kecepatan proses sistem mikroprosesor.
Read Only
Memory
u Sesuai
dengan namanya, data pada read only memory(ROM) hanya dapat dibaca. Data
ditulis sekali dan setelah itu hanya dibaca saja.
u Data yang ditulis pada ROM lebih
bersifat permanen dibandingkan data pada RAM. Kerena itu ROM disebut juga
memory ROM pada sistem single chip atau single board diisi dengan seluruh program yang akan
dijalankan.
Port I/O
u Port
I/O berfungsi sebagai pelabuhan keluar masuknya data perangkat di luar sistem
mikroprosesor.
u Contoh perangkat di luar sistem
mikroprosesor adalah keyboard, mouse, monitor, display, printer, modem, dan
lainnya.
u Susunan data yang dikirim ke atau
diterima dari luar dapat berupa susunan paralel atau susunan serial.
Sistem Bus
u Mikroprosesor
berkomunikasi dengan unit memori, unit I/O
menggunakan saluran yang disebut dengan BUS.
u Setiap
mikroprosesor dilengkapi dengan
tiga bus sebagai berikut:
Bus Data
u Perpindahan data antara MPU/CPU
dengan komponen luar terjadi pada Bus Data
u Data
bus terdiri dari 8, 16, 32, 64 atau lebih saluran paralel.
Bus Data
CPU
membaca/menulis data ®
lokasi memori,Port. (melalui saluran Bus
Data)
Banyak
piranti akan terhubung
pada data bus namun hanya ada
satu piranti yang aktif dalam satu waktu akses.
Setiap
piranti yang terhubung ke data bus
harus menggunakan tri state buffer sehingga dapat berkeadaan floating/berimpedansi tinggi jika tidak
sedang digunakan.
Mikroprosesor
standar memiliki saluran bus data 8 bit dua arah artinya alih
data atau informasi berlangsung pada 8 saluran paralel dari MPU ke unit lain diluar MPU atau dari unit lain di
luar ke MPU.
Address Bus
u Untuk
menetapkan kemana data itu dikirim atau dari mana data itu
diambil digunakan bus alamat (Address Bus)
u Bus alamat bertugas menetapkan dan memilih satu lokasi memori
atau satu lokasi I/O yang hendak diakses.
u Bus alamat terdiri dari 16, 20, 24, atau
lebih saluran sinyal paralel.
u Pada saluran CPU mengirim alamat lokasi memori yang
akan ditulisi atau lokasi memori yang akan dibaca.
u Jumlah
lokasi memori yang dapat dialamati oleh sebuah CPU ditentukan oleh jumlah bit address
bus.
u Jika jumlah bit address bus adalah N maka jumlah lokasi memori
yang dapat dialamati =2N.
Control Bus
Bus Kendali (Control bus) terdiri dari
4 -10 saluran paralel.
CPU mengirim keluar atau
menerima sinyal kendali melalui saluran bus kendali.
Bentuk-bentuk
bus kendali adalah: Pembacaan memori, Penulisan ke
memori, Pembacaan Port I/O, Penulisan Port I/O, Reset, Interrupt, Memori
Request, I/O Request,
dan sebagainya
tergantung jenis
CPU-nya.
Bus
Kendali adalah seperangkat
bit pengendali yang berfungsi mengatur:
1. Penyerempakan memori,
2. Penyerempakan I/O,
3. Penjadwalan MPU, Interupsi, DMA,
4. Pembentuk
clock, dan reset.
MIKROKONTROLER
Antarmuka Mikrokontroller
Antarmuka on-chip yang ada di mikrokontroler umumnya:
u timer
u counter
u port
data paralel
u port
data serial
u konverter
A/D
u konverter
D/A
u Performansi
peripheral umumnya
lebih rendah
daripada peripheral khusus
yang digunakan di
mikroprosesor
JENIS MIKROKONTROLER
Keluarga
Mikrokontroler
Mikrokontroler
ATMEL berbasis Intel 8051, menggunakan standar industri MCS-51, memiliki
kemampuan In System Programming
Selain seri
MCS-51 ATMEL juga mengembangkan seri AVR (Alf And Vegard’s RISC processor)
Secara umum dapat dikelompokan ke dalam kelas ATTiny, AT90Sxx, ATMEGA
Secara umum dapat dikelompokan ke dalam kelas ATTiny, AT90Sxx, ATMEGA
Contoh
beberapa bentuk mikrokontroler
Microchip
”PIC Microcontroller”
u Pada awalnya, PIC merupakan
kependekan dari Programmable Interface Controller. Tetapi pada perkembangannya
berubah menjadi Programmable Intelligent Computer atau Peripheral Interface Controller
u PIC termasuk keluarga
mikrokonktroler berarsitektur Harvard yang dibuat oleh Microchip Technology.
Awalnya dikembangkan oleh Divisi Mikroelektronik General Instruments dengan
nama PIC1640. Sekarang Microhip telah mengumumkan pembuatan PIC-nya yang keenam
u PIC cukup popular digunakan oleh
para developer dan para penghobi ngoprek karena biayanya yang rendah,
ktersediaan dan penggunaan yang luas, database aplikasi yang besar, serta
pemrograman (dan pemrograman ulang) melalui hubungan serial pada komputer.
ANTARMUKA PORT I/O DIGITAL (LED, PUSHBUTTON)
& DASAR PEMROGRAMAN BAHASA CBAHASAN
Dasar I/O Port
Antarmuka Port output LED
Pengenalan microC
Dasar pemrograman bahasa C
DASAR I/O PORT
![]() |
gambar 1 |
Setiap Mikrokontroler mempunyai jumlah port I/O yang berbeda
Pada mikrokontroler PIC 16F877A terdapat 33 pin I/O yang terdiri atas 5 PORT, yaitu 6 pin pada PORT A, 8 pin pada PORT B, 8 pin pada PORT C, 8 pin pada PORT D, dan 3 pin pada PORT E
Setiap pin I/O dapat memiliki dua atau tiga fungsi
![]() |
gambar 2 |
Setting TRISA bit (= 1) menunjukkan PORTA diatur sebagai input
Clearing TRISA bit (= 0) menunjukkan PORTA diatur sebagai output
Contoh :
Setting Output
TRISD = 0x00; (PortD sebagai output)
TRISD = 0b00000000; (0b = biner, 0x = hexadesimal)
TRISD.RD7 = 0; (Pin RD7 sebagai output)
Setting input
TRISB = 0xFF; (PortB sebagai input)
TRISB.RB0 = 1; (Pin RB0 sebagai input)
ANTARMUKA LED
![]() |
gambar 3 |
![]() | |
gambar 4 |
![]() |
gambar 5 |
A. Pengenal
Pengenal (identifier) merupakan nama yang didefinisikan oleh program untuk menunjukan identitas dari sebuah konstanta,variabel,fungsi dan label atau tipe data khusus.
Aturan:
1. Karakter pertama tidak boleh menggunakan angka.
2. Karakter kedua dapat berupa huruf,angka,atau garis bawah.
3. Tidak boleh menggunakan spasi.
Bersifat case sensitif yaitu huruf kecil dan huruf besar dianggap berbeda.
Contoh:
Benar : unisma2, unisma_D3, _unisma_D3
Salah : 2unisma, unisma+D3, unisma D3
B. Tipe Data
Tipe Integer (bilangan bulat)
![]() |
gambar 6 |
![]() |
gambar 7 |
Contoh
int data_suhu;
float b = 3,89;
char txt;
C. Konstanta dan Variabel
Konstanta
Merupakan suatu nilai yang sifatnya tetap. Dibagi 2 :
1. Konstanta bilangan
Bilangan Bulat, Contoh : 1,2,3……100
Desimal Berpresisi tunggal, Contoh : 5.68 atau 5.33e3
Desimal Berpresisi ganda, Contoh : sama seperti floating point
2. Konstanta teks
- Data Character, Contoh : ‘A’ atau ‘b’
- Data String, Contoh : “unisma” atau “Fatmawati”
Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program.
Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan.
Nama dari suatu variable dapat ditentukan sendiri
Variabel Global Dan Variabel Local
Variabel global adalah variable yang dapat dikenali oleh semua fungsi yang ada dalam program sadangkan variable local adalah variable yang hanya dikenali oleh fungsi tertentu saja.
D. Komentar Program
Komentar program hanya diperlukan untuk memudahkan pembacaan dan pemahaman suatu program (untuk keperluan dokumentasi program).
Untuk memberikan komentar atau penjelasan dalam bahasa C digunakan pembatas” /* dan */ ” atau menggunakan tanda” // “ untuk komentar yang hanya terdiri dari satu baris.
Komentar program tidak akan ikut diproses dalam program (akan diabaikan).
Contoh :
// program PWM untuk mengatur kecepatan motor
/*sedangkan yang ini adalah komentar
yang digunakan lebih dari satu baris*/
E. Pernyataan
Pernyataan adalah satu buah intruksi lengkap yang berdiri sendiri. Berikut adalah contoh sebuah pernyataan :
PORTC = 0x0F:
Pernyataan diatas merupakan sebuah interuksi untuk mengeluarkan data 0x0F ke Port C.
F. Operator
Operator Aritmatika
![]() |
gambar 8 |
Operator Pembanding
![]() |
gambar 9 |
![]() |
gambar 10 |
If (( a == b ) && (c ! = d )) PORTC = 0XFF;
Operator Bitwise
Operator bitwise adalah operasi logiika yang berkerja pada level bit.
hal ini berbeda dengan operator logika diatas dimana pada operator logika menghasilkan benar atau salah (Boolean) sedangkan operator bit menghasilkan data biner.
![]() |
gambar 11 |
Operator Penugasan (Assignment operator) dalam bahasa C berupa tanda sama dengan (“=”).
Contoh :
nilai = 80;
A = x * y;
Artinya : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil
perkalian antara x dan y.
Operator Unary
Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam bahasa C terdapat beberapa operator unary, yaitu :
![]() |
gambar 12 |
Bahasa C mempunyai fungsi pustaka yang berada pada file-file tertentu dan sengaja disediakan untuk menangani berbagai hal dengan cara memanggil fungsi-fungsi yang telah dideklarasikan didalam file tersebut.
Contoh :
#include <lcd.h>
H. Struktur kondisi “if….”
Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal.
Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan.
Bentuk umum struktur kondisi if adalah :
If (kondisi)
{
// blok pernyataan yang akan dikerjakan
// jika kondisi if terpenuhi
}
I. struktur kondisi “if......else….”
Dalam struktur kondisi if....else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan.
Bentuk umumnya adalah sebagai berikut :
If (kondisi)
{
// blok pernyataan yang akan dikerjakanjika kondisi if terpenuhi
}
Else
}
// blok pernyataan lain yang akan dikerjakan jika kondisi if tidak terpenuhi
}
J. Pernyataan If Bersarang
Pernyataan if bersarang (nested if) adalah pernyataan if maupun if...else dimana didalam blok pernyataan yang akan dikerjakan terdapat pernyataan if atau if else lagi.
contoh bentuk pernyataan if bersarang 2 tingkat adalah sebagai berikut :
If (kondisi_1)
{ If (kondisi_2)
{
// blok pernyataan_1 yang akan dikerjakan jika kondisi_1 dan kondisi_2 terpenuhi
}
}
Else
{ If (kondisi_3)
{
// blok pernyataan_2 yang akan dikerjakan kondisi_3 terpenuhi
}}
K. Pernyataan Switch
Pernyatan switch digunakan untuk melakukan pengambilan keputusan terhadap banyak kemungkinan.
Bentuk pernyataan switch adalah sebagai berikut :
switch (ekspresi)
{
case nilai_1 : pernyataan_1;break;
case nilai_2 : pernyataan_2;break;
case nilai_3 : pernyataan_3;break;
.................
default : pernyataan_default;break;
}
L. Pernyataan While
Pernyataan while digunakan untuk pengulangan sebuah pernyataan atau blok pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi.
Bentuk pernyataan while adalah sebagai berikut :
while (kondisi)
{
//sebuah pernyataan atau blok pernyataan
}
Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bisa dihilangkan.
Contoh :
Unsigned char a=0;
................
While (a<10)
{
PORTC=a;
a++;
}
M. Pernyataan For
pernyataan for digunakan untuk melakukan pengulangan sebuah pernyataan atau blok pernyataan, tetapi berapa kali jumlah pengulangan dapat ditentukan secara lebih spesifik.
Bentuk pernyataan for adalah sebagai berikut :
for (nilai_awal ; kondisi ; perubahan)
{
//sebuah blok pernyataan atau blok pernyataan
}
Nilai_awal adalah nilai inisialisasi awal sebuah variable yang didefinisikan terlebih dahulu untuk menentukan niali variable pertama kali sebelum pengulangan.
Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan, jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan diulang terus sampai pernyataan kondisi tidak terpenuhi (salah).
Perubahan adalah pernyataan yang digunakan untuk melekukan perubahan nilai variable baik naik maupun turun setiap kali pengulangan dilakukan.
Contoh :
unsigned int a;
for (a=1,a<10,a++)
{
PORTC=a;
}
good lah
BalasHapuspower supply teknisi hp