Ads

Sunday, February 28, 2010

Pemrograman MC6805

Pendahuluan
Kekuatan utama dari setiap komputer terletak pada kemampuannya dalam mengakses memori. Mode pengalamatan dari CPU menyediakan kemampuan ini. Mode pengalamatan mempunyai pengertian bagaimana suatu instruksi akan mendpatkan data yang diperlukannya dalam eksekusi. Karena ada beberapa macam mode pengalamatan yang berbeda, suatu instruksi dapat mengakses operan dalam satu atau beberapa cara yang berbeda. Setiap variasi mode pengalamatan dari suatu instruksi harus memiliki kode operasi (op-code) yang unik, sehingga 62 instruksi dasar mikrokontroler M68HC05 membutuhkan setidaknya 210 kode operasi dari instruksi-instruksinya.

CPU M68HC05 menggunakan enam mode pengalamatan. Mode pengalamatan ini adalah inherent, immediate, extended, direct, indexed, dan relative. Dalam mikrokontroler M68HC05 yang terkecil, semua variabel program dan register I/O cukup dalam area $0000 sampai $00FF di memori sehingga mode pengalamatan yang digunakan adalah direct addressing mode.
Informasi yang disediakan dalam listing program menggunakan beberapa simbol untuk menentukan tipe dari numerik yang digunakan. Simbol khusus ini adalah:
  1. Tanpa simbol mengindikasikan numerik desimal. Angka ini akan diterjemahkan menjadi nilai biner sebelum disimpan dalam memori dan digunakan oleh CPU.
  2. Simbol $ mengindikasikan numerik heksadesimal, seperti $24 adalah 2416 dalam heksadesimal yang bernilai sama dengan 36 desimal.
  3. Simbol @ mengindikasikan numerik oktal, seperti @10 bernilai sama dengan 8 desimal.
  4. Simbol % mengindikasikan numerik biner, seperti 0100 bernilai sama dengan 8 desimal.
  5. Simbol ‘ (apostrof) mengindikasikan karakter ASCII tunggal.
  6. Simbol # mengindikasikan operand langsung (immediate) dan angka ditemui langsung dalam lokasi memori yang mengikuti kode operasi. Beberapa macam simbol dan ekspresi dapat mengikuti simbol # ini.
Mode pengalamatan yang dikenal oleh mikrokontroler keluarga 6805 ada beberapa macam sebagaimana tercantum di bawah ini:
  1. Mode Pengalamatan IMEDIATE
  2. Mode Pengalamatan INHERENT
  3. Mode Pengalamatan EXTENDED
  4. Mode Pengalamatan DIRECT
  5. Mode Pengalamatan INDEXED
  6. Mode Pengalamatan RELATIVE
Untuk Lebih lengkapnya silahkan kilk DISINI

Arsitektur Komputer

Pendahuluan
Setiap hal yang dikerjakan CPU dibagi-bagi menjadi beberapa langkah yang sederhana dan berurutan. Osilator clock membangkitkan clock CPU yang digunakan dalam langkah (step) kerja CPU dalam urutan perkerjaannya. Karena clock CPU ini sangat cepat untuk ukuran manusia, sehingga yang terlihat bahwa CPU bekerja secara langsung dan cepat.

Mikrokontroler 8-bit dari Motorola M68HC05 dan M68HC11 memiliki organisasi khusus yan disebut dengan arsitektur Von Neumann. Dalam arsitektur ini, CPU dan rangkaian memori di-interkoneksi-kan dengan bus alamat dan bus data. Bus alamat digunakan untuk menentukan lokasi memori yang mana yang akan diakses, dan bus data digunakan untuk mengirim informasi baik dari CPU ke lokasi memori dan sebaliknya.

Dalam arsitektur implementasi Motorola ini terdapat beberapa memori spesial yang disebut dengan register CPU yang terletak di dalam CPU itu sendiri. Register ini mirip dengan memori yang dapat menyimpan informasi. Tetapi register ini terjalur langsung di dalam CPU dan bukan bagian dari memori konvensional mikrokontroler.

CPU menganggap semua lokasi memori sebagai satu kesatuan walaupun di dalamnya terdapat instruksi program, data variabel, maupun kontrol input-output (I/O). Teknik semacam ini yang disebut dengan memory-mapped I/O. Artinya, semua piranti input-output dari sistem mikrokontroler memiliki alamat tersendiri yang ikut dipetakan dalam peta memori, sehingga dianggap sebagai bagian dari memori itu sendiri.

Di dalam CPU juga terdapat komponen ALU atau Arithmatic Logic Unit yang digunakan untuk melakukan kalkulasi aritmatika dan logika yang didefinisikan oleh instruksi. Berbagai macam variasi operasi aritmatika biner dikerjakan dalam ALU ini. Hampir semua operasi aritmatika biner didasarkan pada operasi tambah. Pengurangan dikerjakan sebagai proses tambah dengan salah satu data dikomplemenkan. Perkalian dikerjakan sebagai urutan beberapa proses tambah dan operasi shift dalam ALU. Blok diagram dari CPU M68HC05 ditampilkan dalam gambar 4.1 di bawah ini.




Register-register CPU
CPU yang berbeda memiliki set register yang berbeda pula. Perbedaan utama terletak pada jumlah dan ukuran dari register itu sendiri. Dalam gambar 4.1 diperlihatkan register-register CPU yang terdapat dalam mikrokontroler keluarga M68HC05.



Register A berukuran 8 bit, juga dikenal sebagai akumulator karena register ini digunakan untuk menyimpan hasil dari operasi aritmatika dan manipulasi data. Register ini juga dapat langsung diakses untuk operasi non-aritmatika. Akumulator digunakan dalam proses eksekusi dari program saat isi dari beberapa lokasi memori yang digunakan di-load ke akumulator. Demikian juga instruksi penyimpanan akan menyebabkan isi dari akumulator disimpan dalam memori yang telah ditentukan.
Register X adalah index register yang berukuran 8 bit. Kegunaan utama dari index register ini adalah untuk menunjukkan suatu area memori di mana CPU akan mengambil atau menuliskan suatu informasi. Kadang-kadang index register juga disebut dengan pointer register.

PC atau program counter digunakan CPU untuk menata urutan alamat instruksi yang akan dikerjakan. Saat CPU reset atau baru dihidupkan, PC ini dimuati dengan alamat yang telah ditentukan dalam reset vector. Lokasi reset vector ini berisi alamat dari instruksi pertama yang akan dikerjakan oleh CPU. Saat suatu instruksi dikerjakan, CPU akan menambah isi PC sehingga akan menunjuk ke alamat informasi berikutnya yang akan dibutuhkan CPU. Jumlah bit dari PC sama persis dengan jumlah jalur bus alamat. Isi dari register ini dinyatakan dalam empat digit heksadesimal di mana enam bit teratas selalu nol karena hanya 10 bit jalur bus alamat.

CCR atau condition code register adalah register dengan ukuran 8 bit, yang menyimpan indikator status dari hasil operasi CPU sebelumnya. Terdapat tiga bit teratas tidak digunakan dan selalu sama dengan logika satu. Instruksi percabangan menggunakan bit-bit status dalam register ini untuk mengerjakan suatu keputusan percabangan.

Isi dari CCR ini adalah sebuah interrupt mask dan empat indikator status seperti pada gambar 4.1. Kelima flag tersebut adalah H atau half cary, N atau negative, Z atau zero, dan C atau carry/borrow.
Flag H (half carry) digunakan untuk operasi aritmatika BCD (Binary Coded Decimal) dan dipengaruhi oleh kerja instruksi ADD dan ADC. Bit H ini akan set jika ada carry yang timbul dari digit heksadesimal 0-3 (low order) dan digit desimal 4-7 (high order).

Bit I (interrupt mask) bukanlah status flag tetapi merupakan bit yang akan men-nonaktif-kan semua sumber interrupt yang maskable saat bit ini diset. Interrupt baru akan aktif jika bit ini nol. Jika ada interrupt eksternal yang terjadi saat bit I diset, maka interrupt tersebut akan di-latch dan akan diproses saat bit I dinolkan. Karena itu, interrupt yang terjadi tidak akan hilang. Setelah interrupt ditangani, instruksi RTI (return from interrupt) akan menyebabkan register ini dikembalikan ke nilai semula. Umumnya, bit I ini akan menjadi nol setelah instruksi RTI dilaksanakan.

Flag N (negative) akan diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data yang terakhir adalah negatif. Nilai negatif dalam two's complement ditandai jika bit MSB adalah satu.
Flag Z (zero) diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data terakhir adalah nol. Instruksi perbandingan (compare) akan mengurangi suatu harga dari suatu lokasi memori yang akan dites. Jika nilainya sama, maka bit Z ini akan diset.

Flag C (carry/borrow) digunakan untuk menandai apakah ada carry dari hasil operasi tambah atau ada borrow darioperasi pengurangan. Instruksi shift dan rotate juga dapat memakai bit C ini.
SP atau stack pointer digunakan sebagai pointer ke lokasi yang tersedia berikutnya dalam tumpukan stack dalam uruatn LIFO (last-in first-out). Stack ini dapat dianalogikan sebagai tumpukan kartu. Setiap kartu menyimpan satu byte (8 bit) informasi. Dalam suatu saat, CPU dapat menaruh satu kartu di atas tumpukan kartu tersebut maupun mengambil satu kartu dari tumpukan. Kartu di dalam tumpukan tidak dapat diambil kecuali jika kartu di atasnya sudah diambil sebelumnya. Stack mirip dengan tumpukan kartu ini hanya saja dalam fisiknya, stack mempunyai arah tumpukan ke bawah bukan ke atas seperti pada tumpukan kartu.

SP akan menunjuk pada alamat stack yang akan tersedia berikutnya. Jika CPU menaruh informasi dalam stack, maka data tersebut akan dituliskan dalam memori yang ditunjukkan oleh nilai SP saat itu, dan kemudian nilai SP akan dikurangi satu sehingga SP akan menunjukkan ke lokasi memori berikutnya yang kosong untuk digunakan sebagai penyimpan berikutnya. Jika CPU mengambil data dari stack, SP akan ditambah satu sehingga menunjukkan ke lokasi stack yang terakhir, dan kemudian data diambil dan dibaca oleh CPU. Saat CPU pertama kali dihidupkan atau setelah instruksi Reset Stack Pointer (RSP), maka SP akan menunjukkan memori tertentu dalam RAM.

Reset
Reset digunakan untuk memaksa sistem mikrokontroler untuk menuju alamat tertentu. Sistem periperal dan sejumlah bit kontrol dan status juga dipaksa untuk menuju ke state awal sebagai hasil dari proses reset. Aksi-aksi berikut ini yang terjadi akibat proses reset dari mikrokontroler:
1. Semua register data direction (DDR) diset nol (input)
2. Nilai SP dipaksa menjadi $00FF
3. Bit I dalam CCR diset
4. Latch interrupt eksternal dinolkan
5. Latch STOP dinolkan
6. Latch WAIT dinolkan

Kondisi-kondisi berikut ini yang akan menyebabkan mikrokontroler M68HC05 menjadi reset:
1. Sinyal input low pada kaki RESET
2. Reset karena pertama kali dihidupkan
3. Timer watchdog COP (computer operating properly) sudah habis
4. Usaha untuk menjalankan perintah dari suatu alamat yang tidak diperbolehkan



Memori & I/O Paralel

Pendahuluan
Ide dasar dari semua memori adalah kemampuan untuk menyimpan informasi. Tentu saja informasi yang disimpan dapat dipanggil atau diolah kembali bila diperlukan. Sebagai analogi, memori dimisalkan sebagai sekelompok kotak surat dalam suatu apartemen yang besar. Seseorang dapat meletakkan informasi dalam suatu kotak surat dengan nomor tertentu yang tertera. Jika pemilik ingin mengambil informasi tersebut, pemilik dapat melihat ke kotak suratnya dengan nomor yang tepat dan mengambil informasinya.

Dalam CPU 8 bit, setiap kotak surat dalam analogi di atas terdiri dari delapan set saklar on-off. Data atau informasi yang diberikan merupakan kondisi dari setiap saklar. Setiap saklar hanya ada dua kondisi yaitu on dan off, sehingga informasi yang terkandung di dalamnya adalah kombinasi on-off. Dalam delapan saklar tersebut, setiap saklar mewakili satu digit biner (bit). Bit satu mewkili saklar on dan bit nol mewakili saklar off. Setiap satu set 8 saklar mempunyai alamat spesifik sehingga penulisan dan pembacaan data dapat dilakukan dengan tepat dan benar.

Dalam analogi, apartemen dapat memiliki nomor kotak surat 100-175 untuk lantai pertama dan 200-275 untuk lantai kedua. Angka desimal ini menggambarkan jumlah orang yang memiliki kotak surat. Karena komputer bekerja dengan sistem biner, maka jumlah alamat dari data di memori merupakan kelipatan dua dari jalur alamat. Misalkan suatu komputer mempunyai empat jalur alamat, maka dia mempunyai 24 atau 16 alamat karena empat bit biner mempunyai kombinasi 16 buah. Komputer ini akan memetakan 16 alamat dari $0 sampai $F.

Dalam mikrokontroler MC68HC05 terdapat sepuluh jalur alamat sehingga didapatkan 1024 lokasi memori. Sedangkan mikrokontroler MC68HC11 memiliki 16 jalur alamat sehingga dapat mengalamati 65536 lokasi memori.Komputer 8-bit dengan sepuluh jalur alamat akan mempunyai peta memori dengan 1024 alamat dan masing-masing alamat memiliki 8 bit data. Alamat pertama dari lokasi memori adalah 00 0000 00002 dan alamat akhir 11 1111 11112. Sepuluh bit alamat tersebut pada umumnya dinyatakan dalam heksadesimal, sehingga jangkauan alamat memori tersebut menjadi $0000 sampai $03FF.Komputer menentukan lokasi memori mana yang akan digunakan dengan meletakkan kombinasi biner pada 10 jalur alamat kemudian mengirimkan sinyal read atau write. Hasilnya, informasi yang diinginkan pada alamat memori tertentu di atas akan muncul dalam delapan jalur data.

Jenis-jenis Memori
Komputer menggunakan beberapa jenis informasi sehingga membutuhkan beberapa jenis memori yang berbeda. Instruksi-instruksi yang mengontrol operasi dari mikrokontroler disimpan dalam memori non-volatile sehingga jika sistem tidak perlu diprogram ulang jika daya sistem hilang. Variabel dan hasil sementara bisa disimpan dalam memori yang dapat ditulis dengan mudah dan cepat saat operasi sedang berlangsung. Tidaklah penting untuk terus mengingat informasi yang ditulis saat tidak ada daya (volatile).

RAM (Random Access Memory) adalah suatu bentuk memori volatile yang dapat dibaca dan ditulis oleh CPU. Seperti definisinya, lokasi RAM dapat diakses dalam berbagai urutan (random). Memori jenis ini adalah yang paling umum digunakan oleh komputer pribadi. RAM membutuhkan area chip yang lebih lebar dibandingkan dengan ROM, sehingga RAM yang diikutsertakan dalam sistem mikrokontroler hanyalah sebagian kecil saja.

ROM (Read Only Memory) diisi saat proses produksinya. Informasi yang dituliskan harus dipesan oleh pelanggan sebelum chip diberikan. Dalam sistem mikrokontroler, informasi ini dapat dibaca oleh CPU tetapi tidak dapat dirubah. ROM adalah memori yang paling sederhana, kecil, dan murah.
PROM (Programmable ROM) mirip dengan ROM kecuali bahwa dia dapat diprogram setelah proses pembuatah chip. Beberapa variasi dari PROM adalah EPROM, OTP, dan EEPROM.

EPROM (Erasable PROM) dapat dihapus dengan menyinarinya dengan cahaya ultraviolet. Mikrokontroler yang EPROM-nya bisa dihapus memiliki jendela kecil tempat proses penyinaran dilakukan. Jumlah proses penghapusan yang diijinkan terbatas tergantung pada beberapa tipe. Prosedur khusus digunakan untuk meprogram informasi ke dalam memori EPROM. Kebanyakan mikrokontroler yang memiliki EPROM menggunakan tegangan +12 volt DC saat operasi penulisan EPROM. CPU tidak dapat menulis data ke lokasi EPROM seperti halnya penulisan yang dilakukan pada RAM. Beberapa mikrokontroler memiliki rangkaian penulis EPROM yang built-in.

OTP (One Time Programming) adalah EPROM yang tidak dilengkapi dengan jendela untuk penyinaran ultraviolet. Walaupun isi dari OTP adalah sama dengan EPROM yang memiliki jendela penghapusan, OTP tidak dapat dihapus karena tidak menyediakan jendela. OTP dipasarkan karena harganya lebih murah daripada EPROM yang berjendela.

EEPROM (Electrically EPROM) dapat dihapus secara elektris dengan perintah yang ada dalam mikrokontroler. Agar dapat diprogramkan harga baru ke lokasi memori ini, pertama proses penghapusan harus dilakukan kemudian baru dilaksanakan beberapa langkah pemrograman. Walaupun mirip dengan RAM, tetapi EEPROM tetap memiliki sifat non-volatile dari ROM yang tidak hilang datanya walaupun daya hilang.

I/O Sebagai Tipe Memori
Informasi status dan kontrol dari I/O adalah suatu tipe dari lokasi memori yang mengijinkan sistem komputer untuk mendapatkan informasi dari dan ke dunia luar. Tipe lokasi memori ini tidak seperti memori pada umumnya karena informasi yang ada dapat berubah karena pengaruh selain dari CPU.
Jenis paling sederhana dari lokasi memori I/O adalah port input dan port output sederhana. Dalam mikrokontroler 8-bit, port input sederhana terdiri dari delapan kaki yang dapat dibaca oleh CPU. Port output sederhana terdiri dari delapan kaki yang dapat dikontrol oleh CPU. Dalam kenyataannya, port output sederhana diimplementasikan dengan delapan latch dan jalur feedback yang memungkinkan CPU untuk membaca kembali apa yang sebelumnya ditulis ke port output.

Gambar di bawah memperlihatkan rangkaian ekuivalen dari satu bit RAM, satu bit port input, dan satu bit port output yang umum dan memiliki kemampuan membaca kembali. Dalam mikrokontroler nyata, rangkaian ini ada delapan untuk membentuk delapan bit RAM, port input, dan port output. Saat snyal clock high, data dari input D menuju output Q. Saat input clock low, data ditahan pada kaki output Q.




Saat CPU menyimpan informasi ke dalam RAM dalam gambar (a), sinyal WRITE diaktifkan untuk menahan data dari jalur data bus ke dalam flip-flop [1]. Latch ini akan terus mengingat data yang telah diberikan sampai terjadi proses penulisan kembali atau jika daya dihilangkan. Saat CPU membaca data dalam RAM ini, sinyal READ diaktifkan, yang kemudian mengaktifkan multiplekser [2]. Multiplekser ini membuat data dari output latch muncul kembali ke jalur data bus.
Saat CPU membaca data dari port input seperti pada gambar (b), sinyal READ diaktifkan, yang akan mengaktifkan multiplekser [3]. Multiplekser ini akan mengirimkan data yang ada dalam buffer ke jalur data bus. Sinyal write tidak mempunyai pengaruh dalam rangkaian ini.
Saat CPU menyimpan data ke port output seperti pada gambar (c), sinyal WRITE diaktifkan untuk menahan data dari data bus menuju ke flip-flop [4]. Output dari latch ini, yang di-buffer oleh buffer driver [5], muncul sebagai harga digital pada kaki output. Saat CPU akan membaca data dari port output, sinyal READ diaktifkan, yang akan mengaktifkan multiplekser [6]. Multiplekser ini akan menyalurkan data dari output flip-flop ke jalur data bus.

Register Kontrol dan Status Internal
Register kontrol dan status internal adalah lokasi memori I/O yang spesial. Di samping aksi sensor dan pengontrolan kaki eksternal, register ini juga melakukan aksi sensor dan pengontrolan sinyal level logika internal. Lihat gambar dan bandingkan antara RAM dengan port output. Perbedaan yang tampak hanyalah bahwa port output memiliki buffer untuk menghubungkan state dari flip-flop ke kaki eksternal. Dalam kasus bit kontrol internal, output dari buffer terhubung dengan sinyal kontrol internal tertentu. Suatu bit status internal mirip dengan bit port input tetapi bit status ini hanya melakukan aksi sensor terhadap sinyal register internal.

Mikrokontroler M68HC05 memiliki kaki-kaki I/O paralel. Arah jalur dari setiap kaki dapat diprogram dengan bit kontrol melalui software. Gambar di bawah menggambarkan I/O dua arah (bi-directional) dengan latch output dan bit kontrol arah data. Kaki suatu port dikonfigurasi sebagai output jika bit DDR (Data Direction Register) yang bersesuaian diset menjadi logika satu. Suatu kaki dikonfigurasi sebagai input jika bit DDR yang bersesuaian diset menjadi logika nol. Saat pertama kali dihidupkan atau saat reset, semua bit DDR dinolkan, sehingga konfigurasi semua kaki port adalah sebagai input. DDR ini dapat ditulis dan dibaca oleh prosesor.




Peta Memori
Karena terdapat ribuan dan bahkan lebih lokasi memori dalam suatu sistem mikrokontroler, menjadi penting untuk memiliki cara yang enak untuk menangani alamat masing-masing data dalam memori. Suatu peta memori adalah penggambaran yang mewakili semua spasi dalam memori mikrokontroler. Gambar di bawah adalah peta memori umum yang menggambarkan memori dalam MC68HC705K1.

Empat digit heksadesimal yang terletak pada bagian kiri dari gambar di bawah adalah alamat yang dimulai pada $0000 di atas dan terus bertambahsampai $03F di bagian bawah. Alamat $0000 berhubungan dengan awal lokasi memori sedangkan alamat $03FF berhubungan dengan lokasi memori akhir. Sedangkan ketrangan dalam kotak menunjukkan macam tipe dari memori dan isinya (RAM, EPROM, register I/O, dan sebagainya). Beberapa daerah, seperti register I/O, perlu dijelaskan lebih detail karena penting untuk mengetahui nama dari setiap lokasi. Setiap lokasi memori sebanyak 1024 ini memiliki delapan bit data.



Lokasi memori 256 pertama ($0000-$00FF) dapat diakses oleh komputer dengan cara khusus yang sebut dengan mode pengalamatan langsung (direct addressing mode). Register I/O on-chip dan 32 byte RAM terletak dalam area $0000-$00FF. Dalam peta memori pada gambar di bawah terlihat konfigurasi penempatan pada area ini yang dipaparkan dalam kotak yang terletak di sebelah kanan.


Konsep Mikrokontroler

Pendahuluan
Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan output spesifik berdasarkan inputan yang diterima dan program yang dikerjakan.
Seperti umumnya komputer, mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer.




Sistem Input Komputer

Piranti input menyediakan informasi kepada sistem komputer dari dunia luar. Dalam sistem komputer pribadi, piranti input yang paling umum adalah keyboard. Komputer mainframe menggunakan keyboard dan pembaca kartu berlubang sebagai piranti inputnya. Sistem dengan mikrokontroler umumnya menggunakan piranti input yang jauh lebih kecil seperti saklar atau keypad kecil.
Hampir semua input mikrokontroler hanya dapat memproses sinyal input digital dengan tegangan yang sama dengan tegangan logika dari sumber. Level nol disebut dengan VSS dan tegangan positif sumber (VDD) umumnya adalah 5 volt. Padahal dalam dunia nyata terdapat banyak sinyal analog atau sinyal dengan tegangan level yang bervariasi. Karena itu ada piranti input yang mengkonversikan sinyal analog menjadi sinyal digital sehingga komputer bisa mengerti dan menggunakannya. Ada beberapa mikrokontroler yang dilengkapi dengan piranti konversi ini, yang disebut dengan ADC, dalam satu rangkaian terpadu.
Sistem Output Komputer
Piranti output digunakan untuk berkomunikasi informasi maupun aksi dari sistem komputer dengan dunia luar. Dalam sistem komputer pribadi (PC), piranti output yang umum adalah monitor CRT. Sedangkan sistem mikrokontroler mempunyai output yang jauh lebih sederhana seperti lampu indikator atau beeper. Frasa kontroler dari kata mikrokontroler memberikan penegasan bahwa alat ini mengontrol sesuatu.
Mikrokontroler atau komputer mengolah sinyal secara digital, sehingga untuk dapat memberikan output analog diperlukan proses konversi dari sinyal digital menjadi analog. Piranti yang dapat melakukan konversi ini disebut dengan DAC (Digital to Analog Converter).


CPU (Central Processing Unit)

CPU adalah otak dari sistem komputer. Pekerjaan utama dari CPU adalah mengerjakan program yang terdiri atas instruksi-instruksi yang diprogram oleh programmer. Suatu program komputer akan menginstruksikan CPU untuk membaca informasi dari piranti input, membaca informasi dari dan menulis informasi ke memori, dan untuk menulis informasi ke output.
Dalam mikrokontroler umumnya hanya ada satu program yang bekerja dalam suatu aplikasi. CPU M68HC05 mengenali hanya 60 instruksi yang berbeda. Karena itu sistem komputer ini sangat cocok dijadikan model untuk mempelajari dasar dari operasi komputer karena dimungkinkan untuk menelaah setiap operasi yang dikerjakan.


Clock dan Memori Komputer

Sistem komputer menggunakan osilator clock untuk memicu CPU mengerjakan satu instruksi ke instruksi berikutnya dalam alur yang berurutan. Setiap langkah kecil dari operasi mikrokontroler memakan waktu satu atau beberapa clock untuk melakukannya.
Ada beberapa macam tipe dari memori komputer yang digunakan untuk beberapa tujuan yang berbeda dalam sistem komputer. Tipe dasar yang sering ditemui dalam mikrokontroler adalah ROM (Read Only Memory) dan RAM (Random Access Memory). ROM digunakan sebagai media penyimpan program dandata permanen yang tidak boleh berubah meskipun tidak ada tegangan yang diberikan pada mikrokontroler. RAM digunakan sebagai tempat penyimpan data sementara dan hasil kalkulasi selama proses operasi. Beberapa mikrokontroler mengikutsertakan tipe lain dari memori seperti EPROM (Erasable Programmable Read Only Memory) dan EEPROM (Electrically Erasable Programmable Read Only Memory). 


Program Komputer

Program digambarkan sebagai awan karena sebenarnya program adalah hasil imajinasi seorang programmer. Komponen utama dari program adalah instruksi-instruksi dari instruksi set CPU. Program disimpan dalam memori dalam sistem komputer di mana mereka dapat secara berurutan dikerjakan oleh CPU.


Sistem Mikrokontroler

Setelah dipaparkan bagian-bagian dari suatu sistem komputer, sekarang akan dibahas mengenai mikrokontroler. Digambarkan sistem komputer dengan bagian yang dikelilingi oleh garis putus-putus. Bagian inilah yang menyusun mikrokontroler. Bagian yang dilingkupi kotak bagian bawah adalah gambar lebih detail dari susunan bagian yang dilingkupi garis putus-putus. Kristal tidak termasuk dalam sistem mikrokontroler tetapi diperlukan dalam sirkuit osilator clock.
Suatu mikrokontroler dapat didefinisikan sebagai sistem komputer yang lengkap termasuk sebuah CPU, memori, osilator clock, dan I/O dalam satu rangkaian terpadu. Jika sebagian elemen dihilangkan, yaitu I/O dan memori, maka chip ini akan disebut sebagai mikroprosesor.

Pengertian Bus, bit, dan byte


Pengertian Bus, bit, dan byte
Pada motherboard terdapat saluran-saluran penghubung yang menghubungkan satu komponen dengan komponen lainnya. Saluran penghubung ini berupa garis-garis yang tercetak pada PCB motherboardMelalui saluran-saluran inilah data, informasi, dan instruksi-instruksi yang diberikan pada komputer ditransfer/melintas dari komponen satu ke komponen lainnya. Data dan instruksi tersebut diangkut dalam wujud sinyal-sinyal elektronis yang mempunyai makna tertentu.Sekelompok saluran yang mempunyai fungsi yang sama disebut jalur atau bus. Saluran-saluran penghubung tadi disebut pula dengan istikah konduktor.
Pada permukaan bagian bawah prosesor Intel Pentium 4 socket 478, terdapat kaki-kaki berupa pin. Jumlah pin keseluruhan sebanyak 478 buah, itulah sebabnya disebut soket 478. Pin-pin ini bertugas sebagai lintasan yang menyalurkan data atau instruksi dari motherboard ke processor atau sebaliknya. Dengan demikian, di dalam sebuah prosesor juga ada saluran-saluran tempat lalulintas data/informasi/instruksi-instruksi yang harus diolah/diproses dan dikirim kembali ke motherboard. Pin-pin pada prosesor adalah salah satu contoh nyata yang secara fisik terlihat sebagai saluran tempat lalu lintas data/informasi/instruksi. Sekelompok saluran yang mempunyai fungsi yang sama juga disebut jalur atau bus. Hal yang sama juga ada di video card atau periferal lainnya. Bus-bus atau jalur-jalur pada prosesor secara garis besar dapat dibagi menjadi data bus (jalur data), address bus (jalur adres), dan control bus (jalur kontrol). Control bus disebut juga dengan istilah signal bus.

Pengertian jalur tidak sama dengan saluran. Dalam hal ini, jalur adalah kata jamak dari saluran. Pahamilah penjelasan berikut ini:

Jalur data (data bus) terdiri dari beberapa (sejumlah) saluran data
Jalur adres (address bus) terdiri dari beberapa (sejumlah) saluran adres
Jalur kontrol (control bus) terdiri dari beberapa (sejumlah) saluran kontrol

Seperti telah dijelaskan sebelumnya, bahwa data/informasi/instruksi disalurkan dalam wujud sinyal-sinyal elektronis. Hal ini dapat dijelaskan sebagai berikut:

Setiap satu saluran (satu kawat) pada saat-saat tertentu hanya dapat berada dalam satu kondisi, yaitu ada tegangan atau tidak ada tegangan. Dikatakan ada tegangan jika tegangannya berkisar 2,5 Volt hingga 5,5 Volt. Dikatakan tidak ada tegangan jika tegangannya berkisar 0 Volt hingga 0,8 Volt. Keadaan ada tegangan disimbolkan dengan angka 1 dan disebut dengan istilah ‘high’, keadaan tidak ada tegangan disimbolkan dengan angka 0 dan disebut dengan istilah ‘low’.

Berdasar penjelasan ini, dapat dikatakan bahwa setiap saluran selalu berkeadaan biner (dua kemungkinan), yaitu dalam keadaan ‘0’ atau dalam keadaan ‘1’. Simbol angka yang hanya bernotasi ‘0’ dan ‘1’ ini disebut dengan istilah notasidigit biner, dalam bahasa Inggris disebut binary digit yang disingkat dengan istilah ’bit’.
Misalkan jalur data (data bus) sebuah prosesor terdiri dari 8 saluran, setiap saluran berada dalam kondisi ‘0’ atau ‘1’, maka akan terjadi banyak kemungkinan kombinasi bilangan biner yang menyimbulkan kondisi tegangan seperti berikut ini:
saluran
Total kombinasi bilangan biner yang mungkin terjadi adalah 28 = 256 macam kombinasi.

Mungkin pola tegangan : 0 0 0 0 0 0 0 1 akan membentuk huruf (karakter) A
sedangkan pola tegangan: 0 0 0 0 0 0 1 1 akan membentuk angka (karakter) 1
Demikian seterusnya hingga tercipta 256 karakter (notasi) yang berbeda.
character
Kumpulan dari 8 bilangan biner (bit) yang membentuk pola urutan (kombinasi) tertentu ini disebut byte. Sehingga dapat disebut 1 byte = 8 bit. 1 byte nilainya setara dengan 1 karakter.
Byte ini akhirnya dipakai sebagai satuan, misalnya untuk menyatakan kapasitas sebuah media simpan (harddisk, disket, flash disk, CD, dan lainnya), kapasitas memory dan lain-lainnya. Dikenal pula satuan kilo byte, mega byte, giga byte, dan terra byte dengan kesetaraan nilai sebagai berikut:

1 kilo bayte (KB) = 1024 byte
1 mega byte (MB) = 1024 x1024 byte
1 giga byte (GB) = 1024 x1024 x1024 byte
1 terra byte (TB) = 1024 x1024 x1024 x1024 byte
alu
Gambar 1. Ilustrasi bus pada prosesor.
Sampai saat ini teknologi prosesor terus berkembang. Pada awalnya, Intel memproduksi prosesor 4 bit, kemudian prosesor 8 bit, 16 bit, 32 bit dan sekarang ini 64 bit. Sebuah prosesor dikatakan prosesor 4 bit jika bekerja menggunakan data 4 bit, artinya jalur datanya (data bus-nya) terdiri dari 4 saluran data. Dengan demikian, prosesor 64 bit menggunakan 64 saluran untuk jalur datanya (data bus-nya terdiri dari 64 saluran).

INTERKONEKSI BUS


PENGERTIAN BUS DAN SISTEM BUS
Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih perangkat komputer. Karakteristik penting sebuah bus adalah bahwa bus merupakan media transmisi yang dapat digunakan bersama. Sejumlah perangkat yang terhubung ke bus dan suatu sinyal yang ditransmisikan oleh salah satu perangkat ini dapat ditermia oleh salah satu perangkat yang terhubung ke bus. Bila dua buah perangkat melakukan transmisi dalam waktu yang bersamaan, maka sinyal-sinyalnya akan bertumpang tindih dan menjadi rusak. Dengan demikain, hanya sebuah perangkat saja yang akan berhasil melakukan transimi pada suatu saat tertentu.
Umumnya sebuah bus terdiri dari sejumlah lintasan komunikasi atau saluran. Masing-masing saluran dapat mentransmisikan sinyal yang menunjukkan biner 1 dan biner 0. Serangkaian digit biner dapat ditransmisikan melalui saluran tunggal. Dengan mengumpulkan beberapa saluran dari sebuah bus, dapat digunakan mentransmisikan digit biner secra bersamaan (paralel). Misalnya sebuah satuan data 8 bit dapat ditransmisikan melalui bus delapan saluran.
Sistem komputer terdiri dari sejumlah bus yang berlainan yang menyediakan jalan antara dua buah komponen pada bermacam-macam tingkatan hirarki sisterm komputer. Sebuah bus yang menghubungkan komponen-komponen utama komputer (CPU, memori, input/output) disebut bus sistem. Struktur interkoneksi komputer yang umum didasarkan pada penggunaan satu bus sistem atau lebih.
STRUKTUR BUS
Sebuah bus sistem terdiri dari 50 hingga 100 saluran yang terpisah. Masing-masing saluran ditandai dengan arti dan fungsi khusus. Walaupun terdapat sejumlah rancangan bus yang berlainan, fungsi saluran bus dapat diklasifikasikan menjadi tiga kelompok, yaitu saluran data, saluran alamat, dan saluran kontrol. Selain itu, terdapat pula saluran distribusi daya yang memberikan kebutuhan daya bagi modul yang terhubung.
A. Saluran Data
Saluran data memberikan lintasan bagi perpindahan data antara dua modul sistem. Saluran ini secara kolektif disebut bus data. Umumnya bus data terdiri dari 8, 16, 32 saluran, jumlah saluran diakitakan denang lebar bus data. Karena pada suatu saat tertentu masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat dipindahkan pada suatu saat. Lebar bus data merupakan faktor penting dalam menentukan kinerja sistem secara keseluruhan. Misalnya, bila bus data lebarnya 8 bit, dan setiap instruksi panjangnya 16 bit, maka CPU harus dua kali mengakses modul memori dalam setiap siklus instruksinya.
B. Saluran Alamat
Saluran alamat digunakan untuk menandakan sumber atau tujuan data pada bus data. Misalnya, bila CPU akan membaca sebuah word data dari memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus alamat akan menentukan kapasitas memori maksimum sistem. Selain itu, umumnya saluran alamat juga dipakai untuk mengalamati port-port input/outoput. Biasanya, bit-bit berorde lebih tinggi dipakai untuk memilih lokasi memori atau port I/O pada modul.
C. Saluran Kontrol
Saluran kontrol digunakan untuk mengntrol akses ke saluran alamat dan penggunaan data dan saluran alamat. Karena data dan saluran alamat dipakai bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaannya. Sinyal-sinyal kontrol melakukan transmisi baik perintah maupun informasi pewaktuan diantara modul-modul sistem. Sinyal-sinyal pewaktuan menunjukkan validitas data dan informasi alamat. Sinyal-sinyal perintah mespesifikasikan operasi-operasi yang akan dibentuk. Umumnya saluran kontrol meliputi : memory write, memory read, I/O write, I/O read, transfer ACK, bus request, bus grant, interrupt request, interrupt ACK, clock, reset.
ELEMEN-ELEMEN RANCANGAN BUS
JENIS BUS
Saluran bus dapat dipisahkan menjadi dua tipe umum, yaitu dedicated dan multiplexed. Suatu saluran bus didicated secara permanen diberi sebuah fungsi atau subset fisik komponen-komponen komputer.
Sebagai contoh dedikasi fungsi adalah penggunaan alamat dedicated terpisah dan saluran data, yang merupakan suatu hal yang umum bagi bus. Namun, hal ini bukanlah hal yang penting. Misalnya, alamat dan informasi data dapat ditransmisikan melalui sejumlah salurah yang sama dengan menggunakan saluran address valid control. Pada awal pemindahan data, alamat ditempatkan pada bus dan address valid control diaktifkan. Pada saat ini, setiap modul memilki periode waktu tertentu untuk menyalin alamat dan menentukan apakah alamat tersebut merupakan modul beralamat. Kemudian alamat dihapus dari bus dan koneksi bus yang sama digunakan untuk transfer data pembacaan atau penulisan berikutnya. Metode penggunaan saluran yang sama untuk berbagai keperluan ini dikenal sebagai time multiplexing.
Keuntungan time multiplexing adalah memerlukan saluran yang lebih sedikit, yang menghemat ruang dan biaya. Kerugiannya adalah diperlukannya rangkaian yang lebih kompleks di dalam setiap modul. Terdapat juga penurunan kinerja yang cukup besar karena event-event tertentu yang menggunakan saluran secara bersama-sama tidak dapat berfungsi secara paralel.
Dedikasi fisik berkaitan dengan penggunaan multiple bus, yang masing-masing bus itu terhubung dengan hanya sebuah subset modul. Contoh yang umum adalah penggunaan bus I/O untuk menginterkoneksi seluruh modul I/O, kemudian bus ini dihubungkan dengan bus utama melalui sejenis modul adapter I/O. keuntungan yang utama dari dedikasi fisik adalah throughput yang tinggi, harena hanya terjadi kemacetan lalu lintas data yang kecil. Kerugiannya adalah meningkatnya ukuran dan biaya sistem.
METODE ARBITRASI
Di dalam semua sistem keculai sistem yang paling sederhana, lebih dari satu modul diperlukan untuk mengontrol bus. Misalnya, sebuah modul I/O mungkin diperlukan untuk membaca atau menulis secara langsung ke memori, dengan tanpa mengirimkan data ke CPU. Karena pada satu saat hanya sebuah unit yang akan berhasil mentransmisikan data melalui bus, maka diperlukan beberapa metodi arbitrasi. Bermacam-macam metode secara garis besarnya dapat digolongkan sebagi metode tersentraslisasi dan metode terdistribusi. Pada metode tersentralisasi, sebuah perangkat hardware, yang dikenal sebagai pengontrol bus atau arbitrer, bertanggung jawab atas alokasi waktu pada bus. Mungkin perangkat berbentuk modul atau bagian CPU yang terpisah. Pada metode terdistribusi, tidak terdapat pengontrol sentral. Melainkan, setiap modul terdiri dari access control logic dan modul-modul bekerja sama untuk memakai bus bersama-sama. Pada kedua metode arbitrasi, tujuannya adalah untuk menugaskan sebuah perangkat, baik CPU atau modul I/O, bertindak sebagai master. Kemudian master dapat memulai transfer data (misalnya, membaca atau menulis) dengan menggunakan perangkat-perangkat lainnya, yang bekerja sebagai slave bagi pertukaran data yang khusus ini.
Donlot Full Makalah

SISTEM DASAR MIKROPROSESOR


Sistem Mikroprosesor


Sistem Mikroprosesor dapat dipahami dari dua kata pembangunnya yaitu :

* Sistem adalah gabungan dari beberapa elemen atau komponen yang membangun suatu fungsi tertentu.
* Mikroprosesor adalah sebuah komponen rangkaian terintegrasi (IC) mikroelektronika dalam paduan skala yang sangat besar yang di disain bekerja sebagai pusat pengolah data digital yang lebih dikenal dengan sebutan Central Processing Unit (CPU).

Jadi Sistem Mikroprosesor adalah gabungan dari beberapa komponen dalam hal ini Memory Unit, Input, Output Unit, dan CPU yang bekerja sebagai pengolah data elektronik digital. Sebuah mikroprosesor agar dapat berfungsi memerlukan sebuah sistem yang disebut sistem mikroprosesor.

Komponen utama sebuah sistem mikroprosesor tersusun dari lima unit pokok : unit mikroprosesor atau Microprocessor Unit ( MPU) atau CPU, unit memori baca atau Read Only Memory (ROM), unit memori baca tulis atau Read Write Memory (RWM), unit masukan keluaran terprogram atau Programmable Input Output(PIO) dan unit detak/Clock.



MPU adalah sebuah CPU yang tersusun dari tiga bagian pokok yaitu :

* Control Unit (CU)
* Arithmetic Logic Unit (ALU)
* Register Unit (RU)

Sebagai CPU, MPU bekerja dan melakukan fungsi dasar yaitu fungsi logika dan aritmetika. Fungsi logika antara lain fungsi AND, OR, XOR, CPL, dan NEG. Sedangkan fungsi Aritmetika antara lain : ADD, SUB, ADC, SBC, INC, dan DEC.

Disamping fungsi pengolahan aritmetika dan logika MPU juga melakukan fungsi pengalihan data dengan menggunakan perintah MOV, atau LOAD, EXCHANGE, PUSH, dan POP. Untuk menyimpan program dan data yang digunakan pada sistem mikroprosesor harus dilengkapi dengan Memori. Jadi memori mutlak diperlukan dalam sistem mikroprosesor. Tanpa ada memori sistem mikroprosesor tidak dapat bekerja terutama memori program dalam ROM.

I/O unit dipersiapkan untuk menghubungkan MPU dengan alat-alat input-output luar seperti keyboard. Monitor, Printer, Mouse, dan sebagainya.

Sistem Bus

Mikroprosesor berkomunikasi dengan unit memori, unit I/O menggunakan saluran yang disebut dengan BUSS. Setiap mikroprosesor dilengkapi dengan tiga bus sebagai berikut:



Alih data diantara MPU dengan komponen luar berlangsung pada Bus Data. 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.

Untuk menetapkan kemana data itu dikirim atau dari mana data itu diambil digunakan bus alamat. Bus alamat bertugas menetapkan dan memilih satu lokasi memori atau satu lokasi I/O yang hendak diakses.
Bus Kendali adalah seperangkat bit pengendali yang berfungsi mengatur: (1) Penyerempakan memori, (2) Penyerempakan I/O, (3) Penjadualan MPU, Interupsi, DMA , (4) Pembentuk clock, dan reset.



Perkembangan Mikroprosesor

Mikroprosesor sebagai komponen utama dalam sistem mikroprosesor dapat dikelompokkan menurut : (a) Teknologi yang digunakan ; (b) Jumlah Bit Data ; (c) Kemampuan atau Karakteristik Mikroprosesor. Tabel berikut menunjukkan pengelompokan perkembangan mikroprosesor.



Disamping teknologi PMOS (Metal-Oxide Semiconductor kanal P) dan teknologi NMOS (Metal-Oxide Semiconductor kanal N) yang paling banyak digunakan sebagai teknologi pembuatan mikroprosesor masih ada teknologi lain yaitu :

* Teknologi CMOS (Complementary Metal-Oxide Semiconductor )
* Teknologi CMOS-SOS (teknologi CMOS menggunakan subtrat Sphir- Silicon – On – Sapphire)
* Teknologi bipolar jenis ECL (Emitter – Coupled – Logic)
* Teknologi Bipolar jenis Schottky
* Teknologi Bipolar jenis I2L (Integrated – Injection – Logic)

Mengingat makin banyaknya macam dan jenis mikroprosesor yang ada sampai saat ini, maka sebagai pemakai kita perlu menentukan macam komponen yang paling sesuai dengan keperluan kita. Dalam memilih komponen mikroprosesor beberapa hal pertimbangan perlu dikaji misalnya:

* Pertimbangan Sistem meliputi karakteristik sistem, jumlah supplier, harga, dan ketersediaan.
* Pertimbangan hardware meliputi jumlah bit data, macam, kemampuan dan waktu instruksi dan macam bahasa.

Clock

Merupakan bagian dari sistem mikroprosesor yang mengatur denyut kerja MPU. Sehingga frekuensi clock berkaitan dengan kecepatan kerja komputer. Beberapa jenis MPU ada yang menggunakan detak sistem tunggal dan ada juga sistem ganda (dua fase). Detak dapat dibangkitkan menggunakan sistem diskrit atau IC khusus. Intel memperkenalkan IC 8224 untuk penggerak detak..

Pengendalian Sistem Mikroprosesor

MPU dalam suatu sistem mikroprosesor dalam fungsinya sebagai pengendali sistem bekerja sebagai :

* Pengendali sistem
* Pengendali bus/saluran
* Dikendalikan oleh alat luar.
Pada Tabel berikut digambarkan ekivalensi sinyal-sinyal kendali beberapa jenis mikroprosesor:


Penyerempakan memori dan penyerempakan I/O pada pokoknya analogis. Digunakan prosedur jabat tangan. Dalam operasi “baca” suatu status sinyal “siap’ (ready) akan menunjukkan tersedianya data. Kemudian data dialihkan ke bus data. Pada beberapa alat I/O dibangkitkan suatu sinyal “pengakuan” (ackowledge) untuk memberitahukan penerimaan data. Pembangkitan sinyal pengakuan ini menggunakan sistem tak serempak (Asinkron). Pada sistem sinkron tidak diperlukan adanya pembangkitan sinyal pengakuan.

Ciri dari sistem sinkron adalah :

* Kecepatan yang lebih tinggi
* Jumlah saluran bus pengendali lebih sedikit
* Pembatasan kecepatan pada alat-alat I/O.

Pada sistem asinkron tercirikan adanya :

* Jumlah saluran bus pengendali lebih banyak
* Memungkinkan penggunaan piranti berkecepatan berbeda dalam satu sistem yang sama.


ShoutMix >>> Lengkapi Nama; Blog or Web Kamu Yah


ShoutMix chat widget

Alexa