Saturday, November 5, 2011

Pengenalan Mikrokontroller 8051 series MCS-51

Mikrokontroller 8051 dikembangkan oleh Intel pada tahun 1980 hingga 1990, Mikrokontroller 8051 jauh sebelum dikembangan, pendahulunya adalah 8048 yang digunakan didalam system keyboard pertama oleh PC IBM. Bahkan uC ini digunakan sebagai bahan utama untuk industry aplikasi controller yaitu PLC (Programmable Logic Controller). Mikrokontroller 8051 adalah 8-bit processor ini artinya Processor tersebut berkerja dengan 8 bit data dalam suatu waktu. uC 8051 ini mempunyai
  1. 8-bit ALU, Accumulator dan 8-bit register
  2. 8-bit Bus Data - Hal ini dapat mengakses 8 bit data dalam satu operasi
  3. 16-bit alamat bus
  4. 128 byte RAM
  5. 4 kbyte kapasitas ROM
  6. 2 timer (16 bit timer/counter)
  7. 1 serial
  8. 4 Port I/O
  9. 6 Interrupt sumber ini tergantung versi uC.
Didalam Mikrokontroller pada umumnya terdapat bagan-bagan seperti gambar dibawah, mari kita mengulas satu per satu dari bagan yang terlihat seperti dibawah
sebelum kita membahas bagan uC diatas terlabih dahulu kita membahas tentang Register :)
Register
8051 mempunyai 8 bit register
Register ini berfungsi sebagai tempat penyimpanan sementara informasi , dan infromasi ini dapat berupa sebuah byte data yang akan di proses, atau alamat yang menunjuk ke data yang akan diambil.
Ok D0 – D7 itu kita sebut saja Data 0 – Data 7, dengan jumlah register hanya 8 bit ini, tidak mungkin dapat menampung data yang akan diolah lebih besar dari 8 bit, maka jika data yang akan diolah lebih besar dari 8 bit akan di pecah sebelum di proses.
Register yang sering digunakan adalah
  • A(Accumulator) untuk intruksi perhitungan aretmatik dan logika
  • B, R0, R1, R2, R3, R4, R5, R6, R7
  • DPTR (data pointer), and PC (program counter)
Program Counter
Saya punya tutor dikit nih kita akan menguji program sederhana dan melacak program tersebut setelah dimasukkan didalam ROM.
1    0000                       ORG 0H ;start dari 0H
2    0000     7D25        MOV R5,#25H               ;tampung 25H di R5
3    0002      7F34        MOV R7,#34H               ;tampung 34H di R7
4    0004     7400         MOV A,#0                      ;isikan 0 ke A
5    0006      2D            ADD A,R5                       ;nilai R5 ini berisi 25H = 37d dan A = 0 berarti sekarang  A = A + R5
6    0007      2F            ADD A,R7                        ;tambahkan isi dari R7 to A sekarang A = A + R7
7    0008     2412         ADD A,#12H                  ;tambakan nilai 12h ke A berarti A = A + 12H
8    000A    80EF       HERE: SJMP HERE      ;shortjump mengulang terus
9    000C                      END ;end of asm source file
Jika ditablekan kita lihat seperti ini

Step by step penjelasan proses kerja 8051.
PC (program counter) untuk keluarga 8051 ini adalah register 16 bit yang mampu mengakses data sebesar 216 = 65536 = 64kbyte opcode.
Saat uC mulai dari mendapatkan supplay listrik, PC(Program Counter) berada pada 0000h dan mulai mengambil opcode (Operation Code) pertama dari lokasi ROM.
  • Setelah menjalankan opcode 7D, CPU mengambil nilai 25 dan ditempakatkan di R5
  • Sekarang satu intruksi selesai, dan kemudian PC menaikkan untuk menunjuk alamat ke 0002, yang berisi opcode 7F
  • Setelah menjalankan opcode 7F, nilai 34H dipindahkan ke R7
  • Dan sekarang PC bertambah menjadi 0004.
  • Setelah eksekusi 1-byte instruksi pada lokasi 0006, PC = 0007
  • Setelah eksekusi instruksi ini 1-byte di 0007, PC dinaikkan ke 0008
  • Proses ini berlangsung sampai semua instruksi di dieksekusi
1.      CPU (Central Procesing Unit)
Central Processing Unit (CPU),berfungsi sebagai pengoprasian dan pengontrolan infromasi yang tersimpan didalam Memory computer, dan untuk pengolahan fungsi-fungsi computer, biasanya CPU disebut juga dengan procesesor, CPU ini mempunyai bagan-bagan penting lagi didalamnya anda bisa lihat disini.
2.      RAM (Random Acces Memory)
Inilah tempat penyimpanan data anda sementara saat computer hidup. "tunggu ulasannya"
3.      ROM (Read Only Memory)
Berisi program dan informasi penting untuk pengelohan computer, informasi yang terdapat didalam ROM tidak dapat diubah oleh pengguna, dan tidak hilang karena memory tersebut bersifat nonvolatile.
4.      I/O (Input Output)
Berfungsi sebagai sarana untuk berkomunikasi dengan cpu , dan  memindahkan data ke lingkungan luar atau perangkat lainnya.
5.      Timer/counter (Pewaktuan/pencacahan)
Timer digunakan untuk melakukan “hard delay” penunda keras. Dalam 8051 memiliki 2 timer yaitu timer 0 dan 1, dan timer ini juga diset sebagai counter yang berfungsi untuk pencahahan / menghitung peristiwa yang terjadi diluar Mikrokontroller, misal anda menggunkan sensor ultrasonic yang akan menghitung jarak suatu benda dan  dipantulkan kembali ke sensor, untuk mengakusisi data ini menggunakan timer/counter dari mikrokontroller.
6.      Serial (Mode Pengiriman data serial)
Sebenarnya sih komunikasi computer terdapat 2 cara yaitu Parallel dan Serial, ok saya hanya akan membahas sedikit tentang parallel biar kita tau perbedaan dikit antara parallel dan serial.
Parallel
Biasanya menggunakan  8  kawat (conductor) atau bias juga lebih,  yang akan mentrasmiskan data dari satu tempat ke tempat lainya, dan kekurangan parallel ini tidak dapat mentransmisikan data dalam beberapa meter.Dengan transmisi parallel, bit-bit yang berbentuk karaketer dikirim secara bersamaan melewati sejumlah penghantar yang terpisah, dalam transmisi parallel terjadi procedure yang dikenal sebagai handshaking, yaitu prosedur yang diperlukan untuk mengakomodasi ketepatan waktu pengiriman data antara computer dengan terminal atau alat peripheral lainnya. Sesuai dengan kesepakatan, kita hanya akan membahas tentang komunikasi Serial ;D
Serial  
Komunikasi data yang menggunakan serial ini mentrasmisikan data dengan jarak yang bermeter-meter dan ini sangat efektif dari pada pengiriman data dengan komunikasi parallel, hanya dengan 2 jalur komunikasi yang disebut TX(Transmiter) dan RX (Receiveer).


Komunikasi Data Serial menggunakan 2 metode yaitu :
1. Metode Asinkron (Asynchronous)
Metode ini digunakan untuk mencegahnya aliran data pada saat ditransmisikan dalam waktu yang panjang tidak terjadi putus-putus dengan mengirim per karakter pada satu waktu, panjang karakter biasanya dikirim 5 sampai 8 bit dalam satu waktu. Pengirim harus menggunakan Timing atau didelay diantara karakter yang dikirim, waktu delay yang diberikan pengirim ini harus dimanfaatkan oleh penerima agar mengsinkronkan data yang telah dikirim.




Gambar 11.4.11 : Contoh pengiriman metode asinkron
Gambar a, ketika tidak ada transmisi karakter, jalur antara transmitter dan receiver dalam keaadaan (idle) nganggur. Idle ini digunakan untuk pensinyalan untuk logic 1. Awal dari suatu karakter adalah “start bit” dengan logic 0, kemudian diikuti oleh 5 sampai 8 karakter per bit, bit dari karakter tersebut ditransmisikan dengan diawali dari LSB (Least Significant Bit) bit yang paling kecil, lalu didalam pengiriman itu disisipkan parity bit yang berada di posisi MSB (Most Significant Bit) bit yang paling besar.

Parity Bit ini diset 1 berarti mengunakan event parity (paritas genap). Setelah parity adalah element stop (Stop pengiriman) yang diset 1 panjang minimum bit stop ini 1/1,5  atau 2 kali durasi dari bit. Sedangkan maksimumnya dispesifikasikan dengan data yang akan dikirim, karena bit stop ini = kondisi idle (nganggur) maka transmisi akan melanjutkan sinyal stop sampai siap untuk mengirim karakter berikutnya.

Pada gambar 11.4.11.C memperlihatkan efek kesalahan pewaktuan (timing  error) yang menyebabkan kesalahan pada penerimaan. Di sini dianggap bawahwa kecepatan datanya 10000 bps. Oleh karena itu tiap bit mempunyai durasi 0,1 milidetik atau atau 100 detik. Anggaplah penerima “receiver” terlambat 7 persen atau 7 detik per bit time “bps”. Dengan demikian receiver mengambil sampel karakter yang masuk setiap 93 detik berdasarkan pada clock transmitter. Seperti terlihat, sampel terakhir mengamlami kesalahan. Sebenarnya kesalahan ini ada dua macam: pertama, sample bit terakhir diterima tidak tepat; kedua, perhitungan bit sekarang keluar dari kesepakatan.

Jika bit ke 7 adalah 1 dan bit k 8 adalah 0 maka bit 8 akan dianggap start bit, kondisi ini diistilahkan Framing error, yaitu karakter plus start  dan stop bit yang kadang-kadang dinyatakan suatu frame. Framing error juga terjadi jika beberapa kondisi noise menyebabkan munculnya kesalahan dari suatu start bit selama kondisi idle.

Kesimpulan

Komunikasi Serial Asinkron (Asynchronous), ini sederhana dan murah tetapi memerlukan tambahan 2 sampai 3 bit per karakter untuk operasional sinkronisasi. Presentase tambahan dapat dikurangi dengan mengrim blok-blok bit yang besar antara bit start dan bit stop, tetapi akan memperbesar kesalahan pewaktuan kumulatig. Solusinya yaitu transmisi sinkron.

2. Metode Synkron (Synchronous)
Dengan metode ini data tidak dikirimkan per byte melainkan frame blok yang besar, ukuran dari frame ini bervariasi, mulai dari byte rendah sampai byte tinggi (1500 byte untuk Ethernet atau 4096 byte untuk system frame relay). Informasi clocking disertakan dalam data yang telah dikodekan atau diberikan dalam jalur-jalur clock terpisah. Dengan demikian pengiriman dan penerimaan selalu sinkron selama transmitter frame terjadi,  Ada beberapa level lain dari transmisi sinkronus (synchronous) ini yang diperlukan agar penerima (receiver) dapat menentukan awal dan akhir suatu blok data. Untuk itu tiap blok dimulai dengan pola preamble bit dan di akhiri dengan preamble bit. Pola-pola ini adalah control informasi.

Frame adalah data plus control informasi. Format yang tepat dari frame tergantung metode transmisinya, yaitu:
  1. Transmisi Character-Oriented (lihat Gambar 11.4.11.17(a) )
  2. Block data diperlukan sebagai rangkaian karakter (biasanya 8 bit karakter)
Semua control informasi dalam bentuk karakter. Frame dimulai dengan 1 atau lebih. Karakter sinkronisasi yang disebut SYN, yaitu pola bit khusus yang member sinyal ke pesawat penerima bahwa ini adalah awal suatu blok. Sedangkan untuk postamble-nya juga dipakai karakter khusus. Jadi penerima diberitahu bahwa suatu blok data sedang masuk, oleh karakter SYN, dan menerima data tersebut sampai terlihat karakter postamble. Penerima kemudian menunggu pola SYN yang berikutnya. Alternative yang lain dengan panjang frame sebagai bagian dari control informasi. Penerima mengunggu karakter SYN, menentukan panjang frame, membaca tanda sejumlah karakter frame berikutnya.
  1. Transmisi bit-Oriented (lihat Gambar 11.4.11.17(b))
Blok data diperlakukan sebagai serangkaian bit. Kontrol informasi dalam bentuk 8 bit karakter. Pada transmisi ini preamble bit panjangya 8 bit dan dinyatakan sebagai suatu flag sedangkan postamble-nya memaakai flag yang sama pula. Pesawat penerima mencari pola flag pada sinyal start dari frame yang diikuti oleh sejumlah control field. Kemudian sejumlah data field, control field dan akhirnya diulangi.
Yang dapat disimpulkan dari Synkron (Synchronous) diatas keuntungan-nya yaitu:
Keuntungan Transmisi Sinkron:
  1. Efisiensi dalam ukuran blok data; transmisi asinkron memerlukan 20% atau lebih tambahan ukuran.
  2. Control informasi kurang dari 100 bit.
Dari 2 metode Transmisi Prallel dan serial mempunyai kelemahan dan kelebihan masing-masing yaitu
Kekurangan:
Parallel:
  • Tidak efektif untuk mentransmisikan data jarak jauh.
  • Membutuhkan penghantar “kabel”  yang banyak untuk mentransmisikan data.
Serial
  • Membutuhkan waktu yang lama untuk mentransmisikan data karena butuh penyesuaian transmisi yaitu:
  1. Penyesuaian bit
  2. Penyesuaian karakter
  3. Penyesuaian blok
Kelebihan :
Parallel
  • Parallel mentransmisikan data lebih cepat dari serial karna dalam satu waktu parallel dapat mengirim 5 sampai 8 bit data / karakter, berbeda dengan serial harus mengirim perbit karakter
Serial
  • Dengan transmisi serial pengiriman  data jarak jauh menjadi lebih efektif debandingkan dengan parallel.
  • Saluran seri pengiriman setiap karakter per element hanya diperlukan satu atau dua penghanta “kabel” yaitu TX(Transmiter) dan RX(Receiver).
Sumber :
Totok Budioko, “Belajar Dengan Mudah Dan Cepat Pemrograman Bahasa Dengan SDCC  pada
Mikrokontroler AT89X051/AT89C51/52 Teori, Simulasi dan Aplikasi “ Cetakan
Pertama GAVA MEDIA, Yogyakarta, 2005.
Ariyus Doni & Andri Rum, Komunikasi Data, Andi Offset, 2008
A.P. Godse & D.A.Godse, Microprosessor and Microcontroller System,Technical Publication Pune
Muh. Ali Mazidi The 8051 Microcontroller and Embedded Systems Using Assembly and C-2nd-ed
http://en.wikipedia.org/wiki/Intel_MCS-51
http://en.wikipedia.org/wiki/Intel_MCS-48
http://en.wikipedia.org/wiki/Instructions_per_second
http://en.wikipedia.org/wiki/Asynchronous_serial_communication
http://upload.wikimedia.org/wikipedia/commons/1/1f/Serial_Programming.pdf
http://upload.wikimedia.org/wikipedia/commons/d/d8/Communication_Systems.pdf

untuk pembasan dengan pemograman insyaAllah akan saya bahas dan belajar bersama pada postingan yang lain dan masih di page Mikrokontroller mcs51, yang akan dibahas yaitu.
I/O (Input Output)
Timer/counter (Pewaktuan/pencacahan)
Serial (Mode Pengiriman data serial)
Parallel
Thanks
semoga bermanfaat.
to be continue :)

No comments:

Post a Comment

Please Comment