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
- 8-bit ALU, Accumulator dan 8-bit register
- 8-bit Bus Data - Hal ini dapat mengakses 8 bit data dalam satu operasi
- 16-bit alamat bus
- 128 byte RAM
- 4 kbyte kapasitas ROM
- 2 timer (16 bit timer/counter)
- 1 serial
- 4 Port I/O
- 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.
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.
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.
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
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
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
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:
- Transmisi Character-Oriented (lihat Gambar 11.4.11.17(a) )
- Block data diperlukan sebagai rangkaian karakter (biasanya 8 bit karakter)
- Transmisi bit-Oriented (lihat Gambar 11.4.11.17(b))
Yang dapat disimpulkan dari Synkron (Synchronous) diatas keuntungan-nya yaitu:
Keuntungan Transmisi Sinkron:
- Efisiensi dalam ukuran blok data; transmisi asinkron memerlukan 20% atau lebih tambahan ukuran.
- Control informasi kurang dari 100 bit.
Kekurangan:
Parallel:
- Tidak efektif untuk mentransmisikan data jarak jauh.
- Membutuhkan penghantar “kabel” yang banyak untuk mentransmisikan data.
- Membutuhkan waktu yang lama untuk mentransmisikan data karena butuh penyesuaian transmisi yaitu:
- Penyesuaian bit
- Penyesuaian karakter
- Penyesuaian blok
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
- 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).
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