btc baner

Pages

This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Monday, May 12, 2014

Pemrograman Mikrokontroler AT89S51 (Tingkat Dasar)



Setelah membuat programmer AT89S51 pada tulisan saya sebelumnya, maka kemudian untuk dapat menggunakan mikrokontroler tersebut, maka diperlukan program yang akan di tuliskan ke mikrokontroler tersebut agar mikrokontroler tersebut dapat berfungsi seperti yang kita harapkan.
Untuk dapat melakukan pemrograman pada mikrokontroler AT89S51 sebenarnya ada beberapa bahasa pemrograman yang bisa dipakai, diantaranya adalah bahasa pemrograman tingkat rendah seperti bahasa mesin dan bahasa assembly, ataupun dengan menggunakan bahasa pemrograman tingkat tinggi, seperti bahasa C, Basic, pascal, dll.
1. Bahasa Mesin dan bahasa assembly

Sebenarnya mikrokontroler sendiri cuma mengerti bahasa mesin, yang hanya mesin (mikrokontroler) saja yang mengerti, bahasa mesin ini tersusun dari angka – angka binary yang disimpan dalam memory mikrokontroler yang berupa flash, untuk AT89S51 flash nya berkapasitas 4kB. Contohnya adalah seperti dibawah ini:
Contoh bahasa mesin pada memory flash
Contoh bahasa mesin pada memory flash
Program diatas tersimpan dalam memory flash dari mikrokontroler AT89S51, program tersebut berasal dari hasil compile dari bahasa assembly sebagai berikut :
mov p1,#5
mov p1,#6
end
Dalam memory tersebut, tersimpan data yaitu : ox75, 0×90, 0×05, 0×75, 0×90, dan 0×06. Dari program tersebut, mesin dapat menerjemahkan sebagai berikut:
angka pertama adalah commandnya (0×75 = mov) adalam perintah untuk memberikan nilai pada alamat 0×90 (P1) sebesar 0×05, kemudian mov lagi (0×75) untuk memberikan nilai pada alamat 0×90 sebesar 0×05.
Untuk compiler bahasa assebly nya bisa di donwload melalui link berikut:
Sedangkan untuk tutorial bahasa pemograman assembly untuk intel 8051 (AT89S51 full compatible dengan microprosesor intel 8051) dapat di download melalui link berikut:
Instruction setnya dapat dilihat dalam chapter 4 pada tutorial di atas.
Penggunaan bahasa asembly memiliki kekurangan yaitu bahasa yang digunakan sulit sekali dimengerti oleh manusia, karena masih menggunakan pemrograman tingkat rendah, akan tetapi kelebihannya adalah penggunaan memorynya menjadi semakin kecil. Dengan menggunakan bahasa pemrograman C maka bahasa pemrograman menjadi lebih mudah dipahami, sedangkan penggunaan memori menjadi sedikit lebih besar.
Compiler bahasa C untuk 8051 diantaranya adalah
A. Reads51
programnya dapat di download melalui link berikut:
Contoh programnya adalah sebagai berikut:
Pemrograman Mikrokontroler AT89S51 menggunakan Reads51
Pemrograman Mikrokontroler AT89S51 menggunakan Reads51
Jika program diatas dikompile, maka akan menghasilkan file .hex (bahasa mesin) sebagai berikut:
File .hex hasil compilan menggunakan Reads51 bahasa C
File .hex hasil compilan menggunakan Reads51 bahasa C
Pada program di atas, sebetulnya perintahnya hampir sama dengan perinta pada bahasa assembly di atas, akan tetapi dengan menggunakan bahasa C Reads51 ternyata banyak perintah – perintah inisialisasi yang besarnya mendekati 2 kB, hal ini tentu saja sangat memboros memory flash, yang pada At89S51 cuma 4 kB.
Program Read51 diatas juga bisa digunakan untuk mengkompile dengan menggunakan bahasa pemrograman asembly.
B. SDCC
Compiler SDCC dapat di download dari link berikut ini:
Contoh programnya adalah sebagai berikut (dengan menggunakan Reads51 hanya untuk editornya saja)
Program menggunakan compiler SDCC
Program menggunakan compiler SDCC
Compiler SDCC masih berbasis dos, jadi untuk mengkompile program butuh sintaks tertentu untuk mengkompilenya, command untuk mengkompile nya adalah sebagai berikut :
dari command prompt :
C:\>sdcc [nama file]
misal :
C:\sdcc file.c
jika kompilasi berhasil, maka akan dihasilkan beberapa file, diantaranya ‘file.ihx’, file tersebutlah yang kemudian akan di download ke mikrokontroler, jika file tersebut dilihat menggunakan isppgm (seperti yang telah disinggung dalam pembahasan downloader /  writer mikrokontroler AT89S51), maka dapat dilihat buffernya adalah sebagai berikut :
File bahasa mesin (.ihx) menggunakan compiler SDCC
File bahasa mesin (.ihx) menggunakan compiler SDCC
Jika dibandingkan dengan compiler sebelumnya yang menggunakan Reads51, penggunaan memorinya lebih sedikit(inisialisasi program sekitar 99 byte) dengan menggunakan perintah bahasa C yang sama, oleh karena itu disarankan untuk menggunakan SDCC compiler untuk pemrograman bahasa C pada mikrokontroler AT89S51.

Light Emiting Dioda (LED)


Light Emiting Diode
Dioda cahaya atau lebih dikenal dengan sebutan LED (light-emitting diode) adalah suatu semikonduktor yang memancarkan cahaya monokromatik yang tidak koheren ketika diberi tegangan maju.
Gejala ini termasuk bentuk elektroluminesensi. Warna yang dihasilkan bergantung pada bahan semikonduktor yang dipakai, dan bisa juga ultraviolet dekat atau inframerah dekat.
LED dapat menyala jika diberikan tegangan yang cukup untuk memicu dioda persambungannya, biasanya nilainya adalah 1.5V, LED tersebut juga harus dialiri arus listrik yang cukup untuk menyalakan LED tersebut, biasanya sebesar 10mA.
Rangkaian LED sederhana dapat dilihat dalam gambar berikut
LED
Dari rangkaian diatas, jika pin di beri tegangan 5V, maka pada resistor akan muncul tegagan sebesar :
VR = Vin – Vled
VR = 5 – 1.5 = 3.5V
Arus yang mengalir pada rangkaian tersebut adalah :
I = VR/R
I = 3.5/330 = 10.6 mA
Arus sebesar 10.6 mA sudah cukup untuk menyalakan LED tersebut dengan nyala yang cukup.

LED Seven Segmen


Led Seven Segmen biasanya digunakan untuk menampilkan angka berupa angka0 sampai 9, angka – angka tersebut dapat ditampilkan dengan mengubah nyala dari 7 segmen yang ada pada led yang disusun seperti gambar dibawah ini :
segmen
Led Seven Segmen, terdapat dua macam, yaitu common anoda dan common Catoda.
Common Catoda berarti seven segmen tersebut terdiri dari led – led dimana Catoda nya (Kutub -) di hubungkan menjadi satu, skematiknya adalah seperti gambar dibawah ini :
seven_seg_cc_sch
Sedangkan untuk common anoda, skema nya adalah seperti dibawah ini :
seven_seg_ca_sch
Led seven segmen tersebut dapat diaktifkan dengan menghubungkan dengan perangkat kontrol seperti mikrokontroler, seperti di bawah ini :
seven-segment_led_driver
Dengan nilai hambatannya tergantung dari arus yang akan dilewatkan dalam rangkaian.

Rangkaian Digital


Peralatan elektronika elektronika dewasa ini hampir semuanya sudah menerapkan prinsip – prinsip dari elektronika digital.
Di dalam elektronika digital hanya mengenal 2 keadaan logika, yaitu 0 dan 1, 0 berarti berarti tegangan (input/output) memiliki level tegangan tegangan antara 0 – 0,7 V (TTL), sedangkan 1 berarti tegangan (input/output) memiliki level tegangan antara 3,6 – 5 V.
Terdapat beberapa gerbang logika yang digunakan dalam dalam elektronika digital, dapat dilihat dalam tabel berikut ini:
Gerbang Logika Dasar
Gerbang Logika Dasar
Dari tabel diatas, misal pada AND Gate pada masukan A berlogika 1, dan masukan B berlogika 1, maka keluaran F juga akan berlogika 1 seperti yang terlihat dalam tabel kebenaran.
Dalam Elektronika digital, rangkaian gerbang logika, rangkaian gerbang logika dapat dibagi menjadi 2 macam yaitu, rangkaian kombinasional dan rangkaian sekuensial :
1. Rangkaian Gerbang Logika Kombinasional
Rangkaian Gerbang logika Kombinasional dipakai dipakai pada rangkaian Adder,  rangkaian adder ini banyak dipakai dalam aritmatika yang menjadi dasar dari ALU (Arithmatic and Logical unit) atau yang merupakan otak dari sistem mikro komputer.
A. Rangkaian Half Adder (2 bit)
Ini adalah rangkain dasar dari rangkaian adder, rangkaiannya sebagai berikut :
Rangkaian Half Adder
Rangkaian Half Adder
Rangkaian diatas diatas  adalah adalah rangkaian half  adder 1 bit, rangkaian diatas berfungsi untuk menjumlahkan sebanya satu bit,  misalnya pada masukan A berlogika 1 dan B berlogika 1, maka keluarannya adalah 10, CO (Carry out) bisa dipakai jika rangkaian ini akan dikembangkan menjadi lebih dari 2 bit.
Adapun tabel kebenarannya adalah sebagai berikut :
Tabel Kebenar Rangkaian Half Adder
Tabel Kebenar Rangkaian Half Adder
B. Rangkaian Full Adder
Rangkaian Full adder adalah sebagai berikut :
Rangkaian Full Adder
Rangkaian Full Adder
Dalam rangkaian diatas, merupakan penyempurnaan dari Half adder, sehinnga pada rangkaian ini dapat dapat menyertakan Carry out dari dari penjumlahan sebelumnya, dengan adanya Carry in maka rangkaian diatas dapat dikembankan menjadi lebih dari 1 bit masukan, bisa 8bit, 16bit, dll.
Adapun Tabel kebenaran dari rangkaian Full Adder adalah sebagai berikut :
Tabel Kebenaran Rangkaian Full Adder
Tabel Kebenaran Rangkaian Full Adder
2. Rangkaian Gerbang Logika Sekuensial
Rangkaian Gerbang Logika sekuensial adalah suatau rangkaian yang keluarannya dipengaruhi oleh logika masukan sebelumnya (Waktu sebelumnya).
Rangkaian Gerbang Logika Sekuensial adalah sebagai berikut :
A. Flip – Flop RS
Flip - Flop RS
Flip - Flop RS
B. D Flip – Flop
Flip - Flop D
Flip - Flop D
C. Flip – Flop JK
Flip - flop JK
Flip - flop JK
3. Register
Register berfungsi untuk menyimpan data secara digital, register disebut juga sebagai memory dimanis. Dibangun dari kumpulan Flip – Flop yang banyaknya menentukan jumlah bit data yang dapat disimpan dalam Register.
Rangkaian Register adalah sebagai berikut :
A. Register Seri
Register seri adalah sebuah register dimana proses penyimpanan datanya dapat dilakukan secara serial.
Register Seri
Register Seri
B. Register Paralel
Register seri adalah sebuah register yang dapat menyimpan data dimana proses penyimpanan datanya dapat dilakukan secara paralel.
Register Paralel
Register Paralel
[Ym : mikro_kontroler@yahoo.com]

Prinsip Kerja Rangkaian Sensor Ultrasonik

Gelombang ultrasonik adalah gelombang dengan besar frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20 KHz. Seperti telah disebutkan bahwa sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver. Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik. Ketika sinyal mengenai benda penghalang, maka sinyal ini dipantulkan, dan diterima oleh receiver ultrasonik. Sinyal yang diterima oleh rangkaian receiver dikirimkan ke rangkaian mikrokontroler untuk selanjutnya diolah untuk menghitung jarak terhadap benda di depannya (bidang pantul).
Prinsip kerja dari sensor ultrasonik dapat ditunjukkan dalam gambar dibawah ini :
Prinsip kerja dari sensor ultrasonik adalah sebagai berikut :
  1. Sinyal dipancarkan oleh pemancar ultrasonik. Sinyal tersebut berfrekuensi diatas 20kHz, biasanya yang digunakan untuk mengukur jarak benda adalah 40kHz. Sinyal tersebut di bangkitkan oleh rangkaian pemancar ultrasonik.
  2. Sinyal yang dipancarkan tersebut kemudian akan merambat sebagai sinyal / gelombang bunyi dengan kecepatan bunyi yang berkisar 340 m/s. Sinyal tersebut kemudian akan dipantulkan dan akan diterima kembali oleh bagian penerima Ultrasonik.
  3. Setelah sinyal tersebut sampai di penerima ultrasonik, kemudian sinyal tersebut akan diproses untuk menghitung jaraknya. Jarak dihitung berdasarkan rumus :
S = 340.t/2
dimana S adalah jarak antara sensor ultrasonik dengan bidang pantul, dan t adalah selisih waktu antara pemancaran gelombang ultrasonik sampai diterima kembali oleh bagian penerima ultrasonik.
a. Pemancar Ultrasonik (Transmitter)
Pemancar Ultrasonik ini berupa rangkaian yang memancarkan sinyal sinusoidal berfrekuensi di atas 20 KHz menggunakan sebuah transducer transmitter ultrasonik
Rangkaian Pemancar Gelombang Ultrasonik
Rangkaian Pemancar Gelombang Ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adlah sebagai berikut :
  1. Sinyal 40 kHz dibangkitkan melalui mikrokontroler.
  2. Sinyal tersebut dilewatkan pada sebuah resistor sebesar 3kOhm untuk pengaman ketika sinyal tersebut membias maju rangkaian dioda dan transistor.
  3. Kemudian sinyal tersebut dimasukkan ke rangkaian penguat arus yang merupakan kombinasi dari 2 buah dioda dan 2 buah transistor.
  4. Ketika sinyal dari masukan berlogika tinggi (+5V) maka arus akan melewati dioda D1 (D1 on), kemudian arus tersebut akan membias transistor T1, sehingga arus yang akan mengalir pada kolektotr T1 akan besar sesuai dari penguatan dari transistor.
  5. Ketika sinyal dari masukan berlogika tinggi (0V) maka arus akan melewati dioda D2 (D2 on), kemudian arus tersebut akan membias transistor T2, sehingga arus yang akan mengalir pada kolektotr T2 akan besar sesuai dari penguatan dari transistor.
  6. Resistor R4 dan R6 berfungsi untuk membagi tengangan menjadi 2,5 V. Sehingga pemancar ultrasonik akan menerima tegangan bolak – balik dengan Vpeak-peak adalah 5V (+2,5 V s.d -2,5 V).
b. Penerima Ultrasonik (Receiver)
Penerima Ultrasonik ini akan menerima sinyal ultrasonik yang dipancarkan oleh pemancar ultrasonik dengan karakteristik frekuensi yang sesuai. Sinyal yang diterima tersebut akan melalui proses filterisasi frekuensi dengan menggunakan rangkaian band pass filter (penyaring pelewat pita), dengan nilai frekuensi yang dilewatkan telah ditentukan. Kemudian sinyal keluarannya akan dikuatkan dan dilewatkan ke rangkaian komparator (pembanding) dengan tegangan referensi ditentukan berdasarkan  tegangan keluaran penguat pada saat jarak antara sensor kendaraan mini dengan sekat/dinding pembatas mencapai jarak minimum untuk berbelok arah. Dapat dianggap keluaran komparator pada kondisi ini adalah high (logika ‘1’) sedangkan jarak yang lebih jauh adalah low (logika’0’). Logika-logika biner ini kemudian diteruskan ke rangkaian pengendali (mikrokontroler).
Rangkaian Penerima Gelombang Ultrasonik
Rangkaian Penerima Gelombang Ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adalah  sebagai berikut :
  1. Pertama – tama sinyal yang diterima akan dikuatkan terlebih dahulu oleh rangkaian transistor penguat Q2.
  2. Kemudian sinyal tersebut akan di filter menggunakan High pass filter pada frekuensi > 40kHz oleh rangkaian transistor Q1.
  3. Setelah sinyal tersebut dikuatkan dan di filter, kemudian sinyal tersebut akan disearahkan oleh rangkaian dioda D1 dan D2.
  4. Kemudian sinyal tersebut melalui rangkaian filter low pass filter pada frekuensi < 40kHz melalui rangkaian filter C4 dan R4.
  5. Setelah itu sinyal akan melalui komparator Op-Amp pada U3.
  6. Jadi ketika ada sinyal ultrasonik yang masuk ke rangkaian, maka pada komparator akan mengeluarkan logika rendah (0V) yang kemudian akan diproses oleh mikrokontroler untuk menghitung jaraknya.

Komunikasi Paralel Mikrokontroler – Komputer

Mikrokontroler dan komputer dapat melakukan komunikasi dua arah dengan menggunakan port paralel komputer sebagai jalur input dan output antara komputer dan mikrokontroler.
Port paralel ialah port data  di komputer untuk mentransmisi 8 bit data dalam sekali detak. Standar port paralel  yang baru ialah IEEE 1284 dimana dikeluarkan tahun 1994.  Standar ini mendefinisikan 5 mode operasi sebagai berikut :
  1. Mode kompatibilitas
  2. mode nibble
  3. mode byte
  4. mode EPP (enhanced parallel port)
  5. mode ECP (Extended capability port)
Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya (SPP) yangn diluncurkan tahun 1981. Mode  Compatibilitas, nibble dan byte  digunakan sebagai standar perangkat keras yang tersedia di port paralel  orisinal dimana EPP dan ECP membutuhkan tambahan hardware dimana dapat berjalan dengan kecepatan yang lebih tinggi. Mode kompatibilitas atau (“Mode Centronics” ) hanya dapat mengirimkan data pada arah maju pada kecepatan 50 kbytes per detik hingga 150 kbytes per detik. Untuk menerima data, anda harus mengubah mode menjadi mode nibble atau byte. Mode nibble dapat menerima  4 bit (nibble) pada arah yang mundur, misalnya dari alat ke computer. Mode byte  menggunakan fitur bi-directional parallel untuk menerima 1 byte (8 bit) data pada arah mundur. IRQ (Interrupt Request ) pada port paralel  biasanya pada IRQ5 atau IRQ7.
Port paralel Extend dan Enhanced menggunakan  hardware tambahan untuk membangkitkan dan mengatur handshaking. Untuk mengeluarkan 1 byte ke printer menggunakan mode kompatibilitas, software harus :
  1. menulis byte ke data port
  2. cek untuk melihat apakah printer sibuk, jika sibuk, ia tidak akan menerima data, sehingga data yang telah ditulis akan hilang.
  3. buat strobe (pin 1) rendah. Ini memberitahukan printer bahwa data yang benar telah berada di line data
  4. buat strobe tinggi lagi setelah menunggu sekitar 5 mikrodetik setelah membuat strobe low.
Hal ini membatasi kecepatan data. Sedangkan  EPP dan ECP mengizinkan hardware mengecek jika printer sibuk dan mengeluarkan sinyal strobe  atau handshaking lainnya. Ini berate hanya 1 instruksi I/O yang harus dilakukan yang akan meningkatkan kecepatan Port ECP juga mempunyai kelebihan menggunakan saluran DMA dan buffer FIFO, jadi data dapat digeser tanpa menggunakan instruksi I/O.
Protokol  EPP mempunyai 4 macam siklus transfer dta yang berbeda yaitu :
  1. Siklus baca data (Data read)
  2. Siklus baca alamat (Address Read)
  3. Siklus tulis data (data write)
  4. siklus tulis alamat (address write)
Siklus data digunakan untuk mentrasfer data antara host dan peripheral.  Siklus alamat digunakan untuk mengirimkan alamat, saluran (channel) atau informasi perintah dan control.
Berikut ialah tabel nama pin dari konekter DB25 dan Centronics dengan jumlah konektor 34.  DB25 ialah konektor yang umum digunakan di computer sebagai port paralel , sedangkan konektor Centronics umum ditemukan di printer.  IEEE 1284 ialah standar yang menentukan 3 konektor berbeda yang dapat digunakan dengan port paralel, yaitu1284 tipe A ialah konektor DB25 yang dapat ditemukan di hampir semua komputer, 1284 tipe B ialah konektor Centronics 36 pin yang umum ditemukan di printer, IEEE 1284 type C ialah konektor 36 pin seperti Centronics, tetapi ukurannya lebih kecil dan lebih memuaskan.
Tabel Nama pin dari konektor parallel port  DB 25 dan Centronics
Pin DB25
Pin Centronics
SPP Signal
Arah  In/out
Register
Hardware di invert
1
1
nStrobe
In/Out
Control
Ya
2
2
Data 0
Out
Data

3
3
Data 1
Out
Data

4
4
Data 2
Out
Data

5
5
Data 3
Out
Data

6
6
Data 4
Out
Data

7
7
Data 5
Out
Data

8
8
Data 6
Out
Data

9
9
Data 7
Out
Data

10
10
nAck
In
Status

11
11
Busy
In
Status
Ya
12
12
Paper-Out / Paper-End
In
Status

13
13
Select
In
Status

14
14
nAuto-Linefeed
In/Out
Control
Ya
15
32
nError / nFault
In
Status

16
31
nInitialize
In/Out
Control

17
36
nSelect-Printer / nSelect-In
In/Out
Control
Ya
18 – 25
19-30
Ground
Gnd


Untuk mengeluluarkan data di port parallel, anda gunakan fungsi outport (8 bit ) dan outportb(16 bit)   sebagai berikut :
//Program menggunakan bahasa C (Turbo C) untuk pengendali lampu led di port paralel
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
outport(0x378,0);//lampu led mati
sleep(1); //tunda 1 detik
outport(0x378,1); //lampu led hidup
sleep(1);
return 0;
}
Untuk mengaktifkan port paralel sebagai jalur data input -  output terlebih dahulu anda harus mensetting bios pada mode EPP, ECP, atau pada beberapa komputer Bi-directional (standard).
Rangkaian antar muka antara mikrokontroler dan komputer adalah sebagai berikut :
Paralel Port

Gambar Antarmuka Port Data Paralel Port dengan Mikrokontroler ATMEGA32

Menggunakan Sistem Operasi di Mikrokontroler

Linux Operating System

Sebuah sistem mikrokontroler / mikrokomputer hanya dapat melakukan satu proses instruksi di setiap siklus mesinnya (machine cycle), hal ini berarti sebuah mikrokontroler hanya dapat melakukan satu operasi saja pada suatu waktu.
Untuk dapat melakukan beberapa operasi sekaligus sebuah mikrokontroler memiliki fitur yang di disebut interupsi, interupsi inilah yang kemudian dapat membuat sebuah mikrokontroler seolah – olah dapat  melakukan beberapa operasi sekaligus.
Ada beberapa sumber interupsi dalam mikrokontroler, seperti interupsi external, interupsi timer, interupsi reset (highest priority), ataupun interupsi ADC, dll.
Sebagai contoh, misalkan sebuah sistem yang dapat menampilkan keluaran di seven segmen, dan juga dapat membaca input dari keypad secara bersamaan, maka pengaturan output pada seven segmen ada di program utama, sedangkan input dari keypad ada dalam program interupsi timer, yang misalnya dilakukan setian 1 mS.
Untuk proses yang tidak terlalu banyak cara diatas masih dapat dilakukan dengan mudah, akan tetapi bagaimana jika suatu terebut harus dapat melakukan banya proses, seperti display di lcd, output di seven segmen, input keypad, input dari ADC, mengatur pwm, kontrol motor, dll, dalam waktu yang seolah – olah bersamaan, maka program yang dibuat akan menjadi lebih rumit.
Untuk mengatasi keadaan tersebut dapat dilakukan dengan menggunakan sistem operasi pada mikrokontroler, sistem operasi ini yang akan mengatur proses yang dijalanka. Sehingga mikrokontroler dapat memiliki fitur multasking yang sebenarnya.

Operating System
Ada banyak sistem operasi yang ada sekarang ini, diantaranya adalah DOS, WINDOWS, LINUX, MACOS, UNIX, dll. Salah satu sistem operasi yang dapat diaplikasikan di mikrokontroler 8bit seperti AVR ATMEGAXX adalah FREERTOS. Source code nya bisa di download disini :

Programmer / Writer Mikrokontroler AT89S51

Programmer / Writer Mikrokontroler AT89S51

Mikrokontroler AT89S51 adalah mikrokontroler produsi Atmel yang kompatible dengan mikrokontroler Intel 8051.
Mikrokontroler tersebut murah harganya, serta mudah didapat di pasaran, mikrokontroler tersebut memiliki spesifikasi sebagai berikut :
8-Bit mikrokontroler keluarga MCS-51
Spesifikasi Teknis :
- 4K Byte Code Memory
- 3 Lock Bit
- 256 Byte Internal RAM
- Two 16-bit Timer / Counter
- 9 sumber interrupt
- Ful Duplex UART Interface
- Dual Pointer
- DIP-40 Package
Spesifikasi lengkapnya dapat dilihat dalam datasheet AT89S51 yang dapat di donwload di :
Dengan fitur – fitur yang lengkap tersebut, mikrokontroler jenis ini ternyata murah, cukup pas untuk experiment, karena tidak membutuhkan biaya yang mahal, dengan ditambah komponen – komponen lainnya seperti kristal 12Mhz, konektor db-25, pcb matrix, resistor, kapasitor, dll, kira – kira menghabiskan dana sekitar Rp 50.000 – Rp 75000, kita sudah bisa ber ekperimen dengan mikrokontroler AT89S51.
Mikrokontroler Atmel AT89S51 ini adalah penyempurnaan dari versi sebelumnya AT89C51 yang menggunakan pemrograman dengan interface paralel yang rumit.
AT89S51 sudah dilengkapi dengan ISP (In System Programming), sehingga hanya membutuhkan beberapa kabel untuk antarmuka pemrograman pada flash nya.
Mikrokontroler AT89S51 memiliki memori flash sebesar 4kB.
Adapun rangkaian antar muka pemrogramannya adalah sebagai berikut :
AT89S51 Programmer / Writer
AT89S51 Programmer / Writer
Software yang digunakan untuk memrogram mikrokontroler AT89S51 adalah menggunakan program ISPPGM.
Software ISPPGM dapat di download di :
File yang dapat di download adalah file dengan extensi hex.
catatan : Sebelumnya, port paralel harus di set standard atau bidirectional terlebih dahulu melalui bios.

Antarmuka Komputer – Mikrokontroler


Antarmuka Komputer – Mikrokontroler

Antar muka Komputer
Mikrokontroler dapat digunakan untuk berhubungan dengan piranti lainnya, salah satunya adalah antarmuka dengan komputer.
Antarmuka ini dimaksudkan agar data yang diperoleh dari mikrokontroler kemudian dapat dihubungkan dengan komputer dan kemudian dapat diproses lebih lanjut, seperti penyimpanan ke database, menampilkan di layar monitor, atau di upload ke server lain di internet.
Ada beberapa terminal antar muka antara komputer dan mikrokontroler, antara lain melalui port paralel, port serial, usb, ataupun melalui card tambahan seperti PPI8255.
Dari beberapa teknik antar muka diatas dapat dijelaskan sebagai berikut :
1.  Antar muka melalui port paralel
Antar muka dengan menggunakan port paralel menggunakan komunikasi  paralel sebanyak 8 bit data dalam parelel port (port data) dihubungkan dengan 8 bit data dalam mikrokontroler. Sistem antar muka ini merupakan sistem antarmuka yang paling cepat diantara yang lainnya. Akan tetapi memiliki kekurangan yaitu membutuhkan jumlah sambungan yang banyak.
2. Antar muka dengan menggunakan serial port
Sitem antar muka dengan menggunakan port serial ini banyak digunakan dalam sistem saat ini. Dengan menggunakan sistem antar muka serial, port serial (UART) dari mikrokontroler dihubungkan ke konverter RS-232 kemudian dihubungkan ke port serial komputer.
Kecepatan transfer dari komunikasi ini bergantung pada baudrate dari komunikasi serial di antara dua piranti tersebut, kedua piranti tersebut, yaitu komputer dan mikrokontroler harus mempunyai nilai baudrate (jumlah byte per detik) yang sama, misal 1200,2100,19200, 115000, dll.
Misal baudrate 1200, maka komunikasi tersebut dapat mentransfer data sebanyak 1200 byte data dalam satu detik.
Sistem antar muka port serial ini banyak digunakan dalam sistem antarmuka saat ini.
3. Sistem antar muka menggunakan usb
Saat ini setiap komputer sudah dilengkapi dengan usb, serta sebagaian besar piranti tambahan komputer juga sudah menggunakan usb, usb saat ini sudah sangat populer untuk menghubungkan perangkat luar ke komputer, seperti transfer data atau gambar, dll.
Demikian juga dengan antar muka misalnya antara handphone dengan komputer juga menggunakan usb. Sistem antar muka antara mikrokontroler dan komputer melalui usb sebenarnya sama dengan antar muka melalui port serial. Jadi data serial dari mikrokontroler dihubungkan terlebih dahulu ke konverter serial – USB kemudian dihubungkan ke port usb.
Di dalam komputer port usb tersebut kemudian di kenali sebagai port serial baru. Jadi, program interface dalam komputer tersebut dapat menerima data tersebut sebagai data serial.

Pengantar Mikrokontroler

Mikrokontroler adalah suatu chip berupa IC (Integrated Circuit) yang dapat menerima sinyal input, mengolahnya dan memberikan sinyal output sesuai dengan program yang diisikan ke dalamnya. Sinyal input mikrokontroler berasal dari sensor yang merupakan informasi dari lingkungan sedangkan sinyal output ditujukan kepada aktuator yang dapat memberikan efek ke lingkungan. Jadi secara sederhana mikrokontroler dapat diibaratkan sebagai otak dari suatu perangkat/produk yang mempu berinteraksi dengan lingkungan sekitarnya.
Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya terdapat mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya. Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC. Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz, sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz. Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler jauh lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan mikrokontroler sudah cukup untuk dapat digunakan pada banyak aplikasi terutama karena ukurannya yang kompak. Mikrokontroler sering digunakan pada sistem yang tidak terlalu kompleks dan tidak memerlukan kemampuan komputasi yang tinggi.
Sistem yang menggunakan mikrokontroler sering disebut sebagai embedded system atau dedicated system. Embeded system adalah sistem pengendali yang tertanam pada suatu produk, sedangkan dedicated system adalah sistem pengendali yang dimaksudkan hanya untuk suatu fungsi tertentu. Sebagai contoh printer adalah suatu embedded system karena di dalamnya terdapat mikrokontroler sebagai pengendali dan juga dedicated system karena fungsi pengendali tersebut berfungsi hanya untuk menerima data dan mencetaknya. Hal ini berbeda dengan suatu PC yang dapat digunakan untuk berbagai macam keperluan, sehingga mikroprosesor pada PC sering disebut sebagai general purpose microprocessor (mikroprosesor serba guna). Pada PC berbagai macam software yang disimpan pada media penyimpanan dapat dijalankan, tidak seperti mikrokontroler hanya terdapat satu software aplikasi.
Penggunaan mikrokontroler antara lain terdapat pada bidang-bidang berikut ini.
  • Otomotif : Engine Control Unit, Air Bag, fuel control, Antilock Braking System, sistem pengaman alarm, transmisi automatik, hiburan, pengkondisi udara, speedometer dan odometer, navigasi, suspensi aktif
  • perlengkapan rumah tangga dan perkantoran : sistem pengaman alarm, remote control, mesin cuci, microwave, pengkondisi udara, timbangan digital, mesin foto kopi, printer, mouse.
  • pengendali peralatan di industri.
  • robotika.
Saat ini mikrokontroler 8 bit masih menjadi jenis mikrokontroler yang paling populer dan paling banyak digunakan. Maksud dari mikrokontroler 8 bit adalah data yang dapat diproses dalam satu waktu adalah 8 bit, jika data yang diproses lebih besar dari 8 bit maka akan dibagi menjadi beberapa bagian data yang masing-masing terdiri dari 8 bit. Contoh mikrokontroler 8 bit antara lain keluarga Motorolla 68HC05/11, Intel 8051, Microchip PIC 16, dan yang akhir-akhir ini mulai populer keluarga Atmel AVR. Selain yang telah disebutkan di atas terdapat juga beberapa seri mikrokontroler lain yang cukup dikenal antara lain Basic Stamp dari Parallax (banyak digunakan untuk pembelajaran mikrokontroler) dan HD64180 dari Hitachi (sebagai pengendali LCD). Masing-masing mikrokontroler mempunyai cara dan bahasa pemrograman yang berbeda, sehingga program untuk suatu jenis mikrokontroler tidak dapat dijalankan pada jenis mikrokontroler lain. Untuk memilih jenis mikrokontroler yang cocok dengan aplikasi yang dibuat terdapat tiga kriteria yaitu
  • Dapat memenuhi kebutuhan secara efektif & efisien. Hal ini menyangkut kecepatan, kemasan/packaging, konsumsi daya, jumlah RAM dan ROM, jumlah I/O dan timer, harga per unit
  • Bahasa pemrograman yang tersedia
  • Kemudahan dalam mendapatkannya