AKAN DI UPDATE SETIAP SAAT UNTUK MATERI PEMBELAJARAN

We are currently working on an awesome new site, won't be long!

  • 00

    days

  • 00

    hours

  • 00

    minutes

  • 00

    seconds

Sign up here to be one of the first to know when it's ready.

Jumat, 18 September 2015

MATERI TEKNIK ANTARMUKA MIKROKONTROLER

TEKNIK ANTARMUKA MIKROPROSESOR

TUJUAN
u  Mahasiswa mampu memahami dasar dan teknik antarmuka mikroprosesor/mikrokontroler
u  Mahasiswa mampu merancang dan mengaplikasikan 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
  1. Mikroprosesor itu sendiri
  2. Random Access Memory(RAM)
  3. Read Only memory(ROM)
  4. 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



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 C
BAHASAN

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
Setiap port terhubung ke register TRIS, misalnya TRISA, TRISB, TRISC, dll
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
 Pengenalan mikroC
gambar 4
Pengenalan PICPgm
gambar 5
DASAR PEMROGRAMAN BAHASA C

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
Tipe floating (bilangan pecahan)
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
Operator Logika 
gambar 10
Contoh.
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

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
G. Fungsi pustaka

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;
}

Tidak ada komentar:

Posting Komentar

Diberdayakan oleh Blogger.