Archive for the ‘SISTEM MIKROPOSESOR’ Category

Fungsi dan Operasional PPI 8255 dengan Mikrokontroler 8051


2011
03.20

PPI ( Peripheral Programmable Interface ) adalah interface yang bisa diprogram dan memiliki kelebihan yaitu dapat digunakan sebagai input maupun output ataupun keduanya. PPI 8255 dibuat oleh Intel.Co untuk digunakan bersama dengan mikroprosesor buatan Intel.Co pula.

PPI memiliki 3 port 8 terminal yaitu port A, B dan C ( port C dapat terbagi atas 2 yaitu port C upper 4 terminal dan port C lower 4 terminal ). Masing-masing port ini dapat berfungsi sebagai Input atau Output, termasuk port C upper dan lower difungsikan sama atau beda. Port A dan Port C dari PC7 sampai PC4 tergabung dalam Group Kontrol A, sedang  Port B dan Port C dari PC3 sampai PC0 tergabung dalam Group Kontrol B. PPI 8255 ini dapat dioperasikan dalam 3 mode, yaitu Mode 1, Mode 2 dan Mode 3. Selain itu di dalam PPI 8255 masih terdapat 2 blok berlabel Data Bus Buffer dan Read-Write Control Logic. Kedua bus tersebut berfungsi menghubungkan antara CPU dan PPI 8255, sedangkan masing-masing port memiliki buffer dan sifat latch sehingga data yang dikeluarkan ke output port akan dijaga tetap keadaannya selama tidak diubah atau direset. Konfigurasi fungsi dari 8255 adalah diprogram oleh sistem software sehingga tidak diperlukan komponen gerbang logika eksternal untuk perangkat peripheral interface.

Deskripsi fungsi 8255

1. Data bus buffer

Buffer bidirectional theree state ini digunakan untuk antar muka 8255 ke sistem bus data,data dikirim dan diterima oleh buffer berdasarkan eksekusi input atau output dari CPU. Kata kontrol dan status informasi juga dikirimkan melalui buffer data bus.

2. Read/Write dan kontrol logik.

Fungsi dari blok ini adalah untuk mengatur semua pengiriman baik internal maupun eksternal dari data dan kata kontrol. Blok ini menerima input dari alamat CPU dan bus kontrol dan selanjutnya blok ini mengirimkan perintah ke kedua group kontrol.

3. Chip Select

Chip Select, logika low pada pin input ini maka komunikasi antara 8255 dan CPU akan enable.

4. Read

Read,logika low pada pin input ini maka 8255 akan mengirimkan data atau status informasi ke CPU pada bus data.

5. Write

Logika low pada pin input ini maka CPU dapat menulis data atau kata kontrol ke 8255

6. A0 dan A1

Port select 0 dan port select 1,sinyal input ini berhubungan dengan input RD dan WR, mengontrol pemilihan satu dari tiga port atau register kontrol pin tersebut umumnya dihubungkan ke least significant bus dari bus addres (A0 dan A1)

7. Reset

Logika high pada pin input ini akan menyebabkan reset pada register kontrol dan semua port (A,B,C) akan berfungsi dalam mode input.

8. Port A,B dan C

8255 terdiri dari tiga buah port 8 bit (A,B dan C). semuanya dapat dikonfigurasikan dalam berbagai variasi fungsi bergantung pada sistem software yang diberikan.

Port A. 8 bit data Output latch buffer dan 8 bit data input latch.

Port B. 8 bit data Output latch buffer dan 8 bit data input latch.

Port C. 8 bit data Output latch buffer dan 8 bit data input latch.

Tiap 4 bit port terdiri dari 4 bit latch dan dapat digunakan untuk sinyal output kontrol dan sinyal input status.

Deskripsi Operasional PPI 8255

Ada tiga mode operasi yang dapat dipilih oleh sistem perangkat lunak untuk mengoperasikan PPI 8255 yaitu:

Mode 0 – Basic Input/Output

  • Mode ini digunakan untuk input/output sederhana langsung ke port I/O.Peralatan luar yang dihubungkan selalu siap untuk mengirimkan/menerima data, sehingga mode ini tidak tergantung pada waktu.
  • Semua port A, B dan C bisa bekerja pada mode ini. Port-port PPI hanya bisa digunakan sebagai port input atau port output dari sistem mikroprosesor. Port A dan port B masing-masing dapat digunakan sebagai 8 bit masukan saja atau 8 bit keluaran saja. Sedangkan port C dapat digunakan sebagai empat (4) bit masukan atau empat (4) bit keluaran seperti port A dan port B.

Mode 1 – Strobe Input/Output

Mode ini digunakan untuk peralatan luar yang mempunyai data valid pada saat – saat tertentu, sehingga diperlukan sinyal-sinyal pemicu (strobe) pada I/O agar data segera dapat dikirim, sehingga mode ini tergantung pada waktu.

  • Pada mode ini port A dan port B bisa ditentukan sebagai port masukan atau keluaran data, sedangkan port C berfungsi sebagai pembawa sinyal status.Transfer data mode ini merupakan sinyal terprogram bersyarat.

Mode 2 – Bidirectional Bus

  • Mode ini mampu mengrim/menerima data dalam dua arah (bidirectional handshake data transfer).
  • Mode ini menyebabkan port A bisa berfungsi sebagai masukan sekaligus keluaran yang dilengkapi dengan sinyal jabat tangan 5 bit dari port C sebagai kontrol port A. Mode ini tidak tersedia untuk port B.

Kata Kendali (Control Word) merupakan pendefinisian mode dan port yang akan digunakan dan prosesnya dilakukan oleh perangkat lunak.

Dari Tabel pemakaian PPI 8255 dan gambar di atas maka inisialisasi PPI 8255 adalah seperti yang ditunjukkan berikut ini

Keterangan
- D0 : PC0 – PC3 (port Clowwer), logika 0 = output
- D1 : PB0 – PB7 (port B), logika 1 = input
- D2 : Mode untuk port B, logika 0 = Mode 0
- D3 : PC4 – PC7 (port Cupper), logika 1 = input
- D4 : PA0 – PA7 (port A), logika 0 = output
- D5, D6 : Mode untuk port A, logika 0 = Mode 0
- D7 : Mode Set Flag, logika 1 = Aktif

Konfigurasi dari 24 jalur I/O ini bisa digunakan untuk masukan, keluaran, ataupun biderectional ( dua arah ). Pada I/O yang dikontrol secara software akan lebih mudah bila dibandingkan dengan pengontrolan secara hardware. Untuk memilih port 8255 digunakan dua buah address pin, yaitu A1 dan A0, dengan kombinasi sebagai berikut :

A1=0; A0=0; ==> memilih port A

A1=0; A0=1; ==> memilih port B

A1=1; A0=0; ==> memilih port C

A1=1; A0=1; ==> memilih Control Word ( CW )

CS harus dibuat rendah pada saat pembacaan atau penulisan pada PPI ini. Sinyal reset bila aktif akan membersihkan seluruh register internal PPI dan membuat PPI berfungsi dalam mode masukan ( mode input ). Pemilihan konfigurasi port masukan atau keluaran pada IC 8255 ini dilakukan dengan cara mengirim control word melalui D7 s/d D0 pada saat A1 dan A0 masing-masing berlogic 1. Tabel operasi 8255 adalah sebagai berikut :

Berdasarkan inisialisasi PPI 8255 yang diberikan dan tabel operasi dasar PPI 8255 di atas serta desain pendekodean alamat diperoleh alamat untuk masing-masing port seperti tabel di bawah ini

Jadi kesimpulannya port A dialamati dengan nilai (011 0001 1100)bin atau 31CH, port B dialamati dengan nilai (011 0001 1101) bin atau 31DH, port C dialamati dengan nilai (011 0001 1110)bin atau 31EH, port Control word dialamati dengan nilai (011 0001 1111)bin atau 31FH.

Laporan Praktikum 1


2011
03.12

A. EDSIM51

EdSim51 merupakan sebuah software berbasis java yang berfungsi sebagai simulator microcontroller dari keluarga AVR, yaitu khusus pada seri AT89C51. Simulator ini juga digunakan untuk memproses list program yang kita buat dengan menggunakan bahasa Assembly untuk mikrokontroler.

Terdapat beberapa bagian yang perlu di ketahui :

  • Kotak kiri atas memberikan akses pengguna ke semua register 8051, memori data dan memori kode.
  • Di tengah adalah teks di mana pengguna baik beban program perakitan (dari disk lokal) atau menulis kode secara langsung. Ditunjukkan di atas adalah program yang tunggal-melangkah (eksekusi saat ini di 002CH lokasi dalam memori kode – maka yang line disorot).
  • Di sebelah kanan adalah daftar dari 32 pin port dan apa yang masing-masing terhubung ke. Nilai saat ini pin port akan ditampilkan di sini.
  • Panel bawah menunjukkan semua peripheral yang terhubung ke 8051.

1. Syntax Highlighting

Perakitan kode yang ditulis dalam EdSim51 secara otomatis sintaks akan disorot. Instruksi-instruksi berwarna biru, assembler arahan (seperti ORG, USING, dll) berwarna ungu, aliases (misalnya, assembler menggantikan TMOD dengan alamat TMOD) yang berwarna oranye dan komentar yang berwarna hijau.
jika anda ingin mematikan sintaks highlight, cukup klik kanan di mana saja di jendela kode perakitan.

2. Change the System Clock Frequency

Awalnya, simulator itu berjalan dengan frekuensi clock sistem 12 MHz. Sekarang pengguna dapat memasukkan nilai untuk frekuensi jam sistem dalam MHz. Nilai-nilai yang dapat diterima berada di kisaran 0.001 MHz ke 999 MHz.

3. UART

UART eksternal hanya menular teks – apapun pengguna mengetik di bidang Tx itu ditransmisikan ke 8051. Sekarang, satu set nomor 8-bit (ditulis dalam HEX) dapat menular. Untuk melakukannya, pengguna membungkus ditetapkan dalam kurung kurawal, setiap angka dipisahkan dengan tanda koma, seperti yang ditunjukkan dalam gambar berlawanan. Ketika teks ditransmisikan, jika diakhiri oleh 0DH. Dalam contoh yang ditunjukkan sebaliknya, empat nomor 56, 3a, 23 dan E7 yang dikirim, tidak lebih. Jika pengguna ingin mengirim {56, 3a, 23, E7} sebagai teks daripada satu set nomor 8-bit, teks tersebut akan melarikan diri dengan menggunakan karakter \. Oleh karena itu, \ {56, 3a, 23, E7} di bidang Tx akan menghasilkan {56, 3a, 23, E7} diikuti oleh 0DH sedang dikirim ke 8051.

4. LED dan LCD module

Sebuah simulasi dari modul LCD Hitachi HD44780 populer telah diterapkan untuk Simulator EdSim51. Pengguna dapat beralih antara tampilan LED dan layar LCD dengan mengklik pada tombol biru di atas layar.

5. Zoom

Untuk monitor resolusi tinggi, klik pada tombol zoom. Tombol zoom terletak di bawah tombol Keluar merah.

6. Keypad Mode

Pengguna dapat memilih dari tiga mode operasi:
* Standar – sejumlah kunci bisa ditutup pada waktu yang sama.
* Pulse – sekali tombol mouse dilepas kuncinya dibuka kembali.
* Radio – dalam modus radio hanya satu kunci pada suatu waktu bisa ditutup.

7. Intel HEX Reader/Writer

Pengguna  dapat menyimpan kode sumber dalam format Intel HEX. Atau Anda dapat menulis kode C untuk 8051 menggunakan salah satu dari banyak tersedia 8.051 compiler C, kemudian mengimpor kode HEX ke Simulator EdSim51.

8. External UART Baud Rate Selector

Awalnya UART Baud eksternal tingkat yang ditetapkan sebesar 62.500. Sekarang pengguna dapat memilih dari daftar tarif Baud. Hal ini memungkinkan untuk bereksperimen dengan tingkat Baud yang berbeda dan untuk mempelajari bagaimana port serial 8051′s, Timer 1 dan bit SMOD yang digunakan bersama-sama untuk menghasilkan Baud rate yang diperlukan.

9. Simulator Window Update

Menggunakan Freq Update. drop down menu (ditampilkan berlawanan) pemrogram dapat memilih seberapa sering layar harus diperbarui. Pilihannya adalah: update layar setelah setiap pelaksanaan instruksi (default), setelah instruksi 100, 1000, 10.000 atau 50.000 dieksekusi.
Atau, jika tidak ada pilihan ini adalah tepat, pengguna dapat mengetik dalam jumlah, lalu tekan Enter. Frekuensi update dapat berubah saat program pengguna sedang berjalan.

10. The Microcontroller Panel

Sebuah screenshot dari panel mikrokontroler. Hal ini memberikan akses pengguna ke semua register pada 8051 dan memori data.
Kotak yang putih dapat diedit langsung. Tetapi yang abu-abu tidak bisa. Sebagai contoh, port latch bit dapat diedit langsung oleh user, tetapi pin port dikendalikan oleh periferal eksternal dan port mengunci dan tidak dapat diedit. Selain itu, program counter tidak dapat diedit.
Bila pointer mouse kiri untuk mengarahkan kursor ke salah satu label register, alamat register yang muncul, sebagai berlawanan ditunjukkan untuk register PCON.

11. The Bitfield

Pada gambar di atas, bit-bit akumulator individu untuk ditampilkan (ACC). Pengguna dapat memasukkan nama alamat atau SFR di kotak biru (menggantikan ACC) dan bit untuk itu alamat yang diberikan maka akan ditampilkan.

Bitfield ini dapat digunakan untuk melihat pola bit alamat di RAM (0 sampai 7FH) dengan mengetikkan alamat di kotak biru.

12. Data dan Memori Kode

Secara default, data memori akan ditampilkan. Alamat dalam RAM (00H untuk 7FH) dapat diubah dengan memasukkan alamat di kotak biru (berlabel addr) dan kemudian memasukkan nilai yang diinginkan di kotak sebelah kanan (nilai berlabel).

13. Menampilkan Memori Kode

Kode memori juga dapat diperiksa dan diedit. Untuk beralih antara memori data dan memori kode pengguna mengklik pada tombol yang bertuliskan Memory Data saat data memori ditampilkan dan Memori Kode bila memori kode ditampilkan.
Yang 127 byte pertama dari memori kode akan ditampilkan. Untuk melihat bidang lain memori kode, masukkan alamat mulai di kotak biru. The 127 byte dari alamat awal dan seterusnya maka akan ditampilkan. Sekali lagi, seperti memori data, alamat yang ditentukan di kotak biru addr dapat diubah dengan memasukkan nilai pada kotak nilai. Namun, perlu dicatat bahwa ini akan menghasilkan kode mesin dan program perakitan yang berbeda.

14. The Assembly Code Panel

Sebuah program perakitan sederhana ditampilkan di panel kode assembly ke kiri. Program ini berjalan dalam sebuah loop terus menerus, menampilkan angka 0 sampai 9 dan kembali ke 0 pada layar 7-segmen pertama. Potret pelaksanaannya akan ditampilkan ke kanan.
Bila latar belakang kode area perakitan teks putih itu diedit. Programer dapat menulis kode secara langsung di sini, atau dapat memuat program dari file menggunakan tombol Load (dibahas dalam bagian berikutnya).
Ketika program sudah siap untuk pengujian, pengguna bisa mengklik pada Langkah tombol untuk mengeksekusi instruksi satu per satu, atau pada tombol Run untuk menjalankan program secara terus menerus. Either way, program yang pertama akan dirakit. Jika kesalahan dalam kode ditemukan, sebuah pesan akan ditampilkan dalam kotak pesan di atas kode assembly (dengan latar belakang merah) dan garis dengan kesalahan disorot dalam kode di merah.
Jika kode kesalahan merakit tanpa perubahan latar belakang area teks terhadap cahaya abu-abu. Kode tidak dapat diedit pada saat ini.
Jika Anda ingin kembali ke mengedit kode Anda, cukup klik pada tombol Reset.

15. Load and Save

Pengguna dapat menulis kode secara langsung ke dalam kotak teks bila dalam mode edit, atau program yang ada dapat di-load dari file menggunakan tombol Load. Demikian pula, kode pada kotak teks yang dapat disimpan ke file menggunakan tombol Simpan.

Ada dua jenis file ditangani. Yang pertama adalah plain-text. Majelis program disimpan sebagai file plain-text biasa (sering disebut teks saja) dan biasanya dengan ekstensi asm. file. Secara default, ini adalah format yang digunakan saat menyimpan kode sumber Anda di Simulator EdSim51.

Jenis file yang lain adalah Intel HEX. Pengguna dapat memilih untuk menyimpan file dalam format HEX .

Untuk membuat simulator yang lebih user-friendly, saat pengguna membuka kotak dialog file dengan mengklik baik Load atau Save tombol, kotak dialog secara otomatis akan membuka di direktori terakhir dikunjungi.

16. Copy and Paste

Anda dapat memilih kode dalam area teks perakitan dan salin ke clipboard sistem menggunakan tombol Copy, sama seperti yang Anda lakukan dalam paket pengolah kata Anda. Ini kemudian dapat disisipkan di tempat lain di area perakitan teks, menggunakan tombol Paste (jika area teks dapat diedit – latar belakang putih – jika tidak, klik Reset). Atau Anda dapat menyisipkan teks yang dipilih ke dalam beberapa aplikasi lain (seperti pengolah kata Anda). Demikian pula, Anda dapat menyalin teks dari aplikasi lain dan paste ke dalam area teks perakitan.

17. Debugging

Terlepas dari apakah kode sedang berjalan atau sedang melangkah, setelah kode tersebut merakit tanpa kesalahan, alamat setiap instruksi ditampilkan ke kiri.
Ketika melangkah melalui kode tersebut, instruksi itu hanya dieksekusi ditampilkan dalam kotak abu-abu di atas, bersama-sama dengan alamat instruksi’s
(contoh ditampilkan: Eksekusi 0x2A: MOV 90H, A).
Instruksi selanjutnya akan dieksekusi, alamat disorot. (002CH).

18. The Peripheral Panel

The peripheral – with ADC and 7 sebment displays active

The peripheral-with comparator and LCD active

The peripherals are:

  • ADC
  • Comparator
  • Four 7-segment LED Displays
  • LCD Module
  • UART
  • Keypad
  • LED Bank
  • DC Bi-directional Motor
  • Switch Bank
  • DAC (output displayed on oscilloscope)

19. Modul LCD

Modul LCD adalah simulasi dari Hitachi HD44780 dan dihubungkan ke 8051 dalam mode 4-bit. P1.7 melalui P1.4 yang terhubung ke DB7 melalui db4, sedangkan P1.3 dihubungkan ke pin mendaftar-pilih dan P1.2 dihubungkan ke pin memungkinkan. Perhatikan baca-tulis pin tersambung ke tanah – modul hanya dapat ditulis.
Rincian fungsi pin dan petunjuk untuk modul LCD diberikan di bawah ini. Untuk rincian tentang bagaimana berkomunikasi dengan modul, lihat HD44780.pdf dan beberapa program sampel.
- Membaca: Instruksi untuk membaca dari modul belum dilaksanakan.
- Interrupt Keypad: tombol interupsi tidak dapat digunakan bersama dengan layar 7-segmen karena keduanya P3.3 saham. Namun, seperti dapat dilihat dalam diagram logika di sini, modul LCD tidak menggunakan P3.3. Oleh karena itu, tombol interupsi dapat digunakan pada saat yang sama dengan modul LCD.
- Karakter Berkedip: Karena simulator tidak berjalan secara real-time, akan sulit untuk mengetahui apakah modul itu berkedip. Oleh karena itu, jika programmer set modul untuk berkedip (lihat Display on / off instruksi kontrol di bawah), karakter posisi kursor bergantian antara teks berwarna biru dengan latar belakang merah dan teks merah dengan latar belakang biru. Dengan cara ini programmer mengetahui sekilas jika modul dalam modus berkedip (jika tidak berkedip modus, semua karakter yang hitam dengan latar belakang abu-abu).

20. Fungsi Set Salah

Programmer harus mengatur modul untuk 4-bit, 2-line, 5 X 8 font. HD44780 simulasi tersebut diterapkan untuk 4-bit, 2-line, 5 X 8 font saja. Namun, programmer masih diharapkan untuk menulis kode yang menetapkan modul pada mode ini. Jika mode tidak diatur dengan benar, pesan kesalahan yang menyatakan seperti ditampilkan, seperti yang ditunjukkan di sini. Programmer itu harus reset simulator, memodifikasi kode tersebut dan coba lagi.

21. Modul LCD Instruction Set

- CGRAM (Charakter Generator RAM) : berisi ASCII set karakter. Contoh kode ASCII untuk W yaitu 87, jadi W  akan disimpan di lokasi 87 pada RAM. Hal ini memudahkan untuk menulis teks pada layar.

- MOV A,’W’ : Sebuah subrutin yang mengirim data dalam A ke modul LCD DDRAM yang ketika DDRAM menerima karakter, pola yang sesuai dari ROM akan ditampilkan.

Catatan di set ASCII, tujuh lokasi pertama digunakan untuk karakter kontrol, karakter ini tidak berlaku untuk modul LCD, sehingga lokasi ini disediakan untuk CGRAM sebagai penggantinya. Ketika sebuah nilai dalam jangkauan 0-7 dikirim ke DDRAM, bukannya menampilkan karakter dari ROM, melainkan karakter yang sesuai dari CGRAM.

Ini berarti pengguna dapat membuat delapan karakter buatan. Karakter yang diprogram ke dalam CGRAM dengan menunjuk ke CGRAm ( bukan DDRAM ) dan kemudian mengirim data ke modul yang sama seperti ketika mengirim data ke DDRAM.

Jika anda perhatikan, anda akan melihat Set CGRAM Addresse Instruction yaitu catatan alamat enam bit. Perhatikan pula, hanya ada satu instruksi untuk menulis modul. Untuk menulis CGAM, anda harus terlebih dahulu memastikan AC (Adresse Counter) menunjuk ke CGRAM. Anda dapat melakukannya dengan memanggil alamt instruksi CGRAM. Seperti tertulis pada DDRAM, AC bertambah (atau dekremen tergantung pada penambahan  / pengurangan pengaturan) setelah masing-masing menulis CGRAM.

Disebutkan diatas bahwa ROM berisi ASCII. Hal ini tidak sepenuhnya benar. Ada kasus dimana karakter di Rom tidak sesuai ASCII. Di lokasi 92 anda harapkan untuk melihat simbol ‘\’ sebaliknya yang muncul adalah simbol ¥.

22. Kunci / Switch Bouncing

Jika Kunci / Switch Bouncing dipilih, seperti yang terlihat pada gambar berlawanan, maka tombol dan switch akan memantul ketika tertutup (keypad hanya memantul jika mode tombol diatur ke standar). Sehingga user mengetahui saklar memantul, warna berganti antara merah (saklar terbuka) dan gelap merah (saklar tertutup). Setelah beralih selesai mental, warna abu-abu kembali ke gelap. Panjang mental switch 30 ms.
Catatan: switch hanya akan memantul ketika sebuah program sedang berjalan. Jika pengguna jeda program berjalan, maka mental switch juga jeda.

23. Kunci Mengubah / Label Switch

Anda dapat mengubah label tombol di keypad atau switch di bank beralih dengan mengklik kanan pada saklar / kunci dan memasukkan karakter baru.
Label hanya dapat satu karakter panjangnya.

24. Panel Motor

Sensor motor, yang diterapkan pada P3.5, pergi rendah sekali setiap revolusi (di simulator, setiap kali garis poros motor dengan sensor, sensor perubahan dari hitam ke merah dan P3.5 pergi ke logika 0). P3.5 adalah sumber clock eksternal untuk timer 1. Oleh karena itu, kode dapat ditulis bahwa, dengan menggunakan timer 1, jumlah revolusi motor.
Kecepatan motor dapat bervariasi secara manual (menggunakan slider ke kanan motor – melihat pada screenshot hardware di atas). Ini akan membuat rev tersebut. program menghitung lebih menarik.
Catatan: Kontrol motor baris berbagi dan garis TXD RXD untuk port serial internal 8051 itu. Seperti dapat dilihat pada diagram logika ekstrak di atas, baris ini juga terhubung ke UART eksternal. Karena itu, ketika berolahraga motor, pesan sampah dapat muncul di jendela penerima UART itu. Fungsi UART eksternal dijelaskan di bawah ini.
Motor bisa dinonaktifkan dengan mengklik tombol Motor Diaktifkan.

B. PENGENALAN Modul DT-51 Trainer Kit

1. DT51 Development Tools

DT51 merupakan development tools yang terdiri dari 2 bagian terintegrasi yaitu perangkat keras dan perangkat lunak. Komponenen utama perangkat keras DT51 adalah mikrokontroler 89C51 yang merupakan salah satu turunan keluarga MCS-51 Intel dan telah menjadi standar industri dunia.

Selain mikrokontroler, DT51 dilengkapi pula dengan EEPROM yang memungkinkan DT51 bekerja dalam mode stand alone (bekerja sendiri tanpa computer). Selain komponen-komponen tersebut masih banyak fungsi-fungsi lain : timer, counter, RS-232 serial port, Programmable Peripheral Interface (PPI) serta LCD port.

Perangkat lunak DT51 terdiri dari Downloader DT51L dan Debugger DT51D. Downloader berfungsi untuk mentransfer user program dari PC (Portable Computer) ke DT51, sedangkan debugger akan membantu user untuk melacak kesalahan program.

Blok Diagram DT51 menggambarkan beberapa bagian dari DT51

2. Bagian-bagian tersebut antara lain :

  • Mikrokontroler 89C51

Mikrokontroler 89C51 adalah komponen utama dari DT51, Instruksi dan pinout 89C51 kompatibel dengan standar industri MCS-51. 89C51 mempunyai spesifikasi standar sebagai berikut :

  • CPU 8 bit yang optimasi untuk aplikasi kontrol.
  • 4 Kbytes Flash Programmable and Erasable Read Only Memory (PEROM).
  • 128 bytes Internal RAM.
  • 2 buah 16 bit Timer/Counter.
  • Serial Port yang dapat deprogram.
  • 5 sumber interrupt dengan 2 level prioritas.
  • On-chip oscillator.
  • 32 jalur input output yang dapat diprogram.
  • 64K Program Memory.
  • 64K Data Memory.

4 Kbytes PEROM pada 89C51 digunakan untuk menyimpan kernel downloader dan debugger serta rutin-rutin lain.

  • Demux (Demultiplexer)

Pada 89C51 jalur data 8 bit di-multipleks dengan 8 bit jalur alamat bagian bawah (low order byte address), sehingga memakai pin yang sama. Sistem multipleks ini sering dijumpai pula pada arsitektur mikrokontroler lain dengan tujuan untuk menghemat jumlah pin sehingga bentuk fisik mikrokontroler menjadi lebih kecvil. Untuk itu diperlukan demultiplekser yang akan memisahkan jalur data dan jalur alamat bagian bawah. Jalur alamat bagian bawah bersama-sama dengan jalur alamat bagian atas (high order address byte) membentuk jalur alamat 16 bit (address bus), sehinggga mampu mengalamati memori sampai kapasitas 64 Kbytes.

  • Address Decoder

Sistem berbasis mikroprossesor atau mikrokontroler pada umumnya mempunyai lebih dari satu device/peripheral seperti memori, input output, Analog to Digital Converter (ADC), dan lain-lain. Masing-masing device ini perlu diberi alamat, sama seperti rumah kita yang mempunyai alamat unik untuk tiap-tiap rumah. Bayangkan apa yang terjadi kalau rumah-rumah itu tidak diberi alamat, pastikita akan kebingungan untuk menuju rumah tertentu. Demikian pula dengan mikrokontroler, supaya dapat mengakses suatu device maka mikrokontroler tersebut harus mengetahui alamat device yang tidak diakses. Address decoder akan memberikan alamat untuk tiap device. Pada DT51, address decoder memberikan alamat pada memori eksternal dan Programmable Peripheral Interface (PPI) serta menyiapkan beberapa alamat lagi untuk device-device lain bila ditambahkan.

  • Memori Eksternal

Selain PEROM dan internal RAM yang terdapat p[ada 89C51, DT51 juga mempunyai memori eksternal berjenis EEPROM (Electrically Erasable Programmable Read Only Memory) dengan kapasitas 8 Kbytes untuk menyimpan ‘user program’ yang didownload dari PC atau data. Sesuai dengan namanya maka EEPROM dapat ditulis dan dihapus secara elektrik, mirip seperti RAM namun bersifat volatile sehingga data yang tersimpan dalam EEPROM tidak hilang meskipun catu daya dimatikan.

  • Programmable Peripheral Interface (PPI)

PPI berfungsi sebagai I/O expander yang dapat deprogram. PPI yang digunakan mempunyai 24 bit jalur input output yang dapat dihubungkan dengan peralatan atau device lain. 24 bit I/O ini dibagi menjadi 3 port, yaitu Port A, Port B, Port C.

  • TTL ↔ RS 232 Converter

DT51 berkomunikasi dengan PC secara serial. Proses download dan debugging dilakukan melalui sebuah serial port. 89C51 mempunyai sebuah serial port dengan level standar RS 232, maka diperlukan converter level TTL ↔ RS 232.

  • LCD Port

LCD (Liquid Crystal Display), Port ini disiapkan untuk men-drive LCD melalui Port 1 mikrokontroler 89C51. Rutin untuk keperluan LCD sudah tersedia pada PEROM 89C51 sehingga user tinggal memakainya.

  • Data, Address dan Control Bus

DT51 mempunyai data bus dengan lebar 8 bit, serta address bus 16 bit. Sedangkan control bus yang digambarkan pada blok diagram DT51 terdiri dari beberapa sinyal control, antara lain : RD, WR,PSEN, ALE serta chip select yang dihasilkan oleh address decoder.

DT51 dapat bekerja dalam dua mode yaitu download dan stand alone. Pada mode download, user dapat men-download program dari PC ke DT51 dengan program download DT51L. Setelah proses download selesai, user program otomatis langsung bekerja. Sedangkan mode stand alone digunakan apabila program sudah sempurna (tidak terdapat kesalahan). Pada mode ini program yang terakhir di-download otomatis berjalan sendiri saat catu daya dihidupkan. Mikrokontroler 89C51 merupakan mikrokontroler CMOS 8 bit dengan 4 Kbytes Flash Programmable Memory. Arsitektur dapat dilihat pada Gambar 2.

3.  Prosedur pemasangan

a. Masukkan CD program ke CD-ROM

b. Bukalah DOS Prompt dan ubahlah drive ke dr ive CD-ROM

c. Ubahlah direktori ke direktori program DT-51:

- DT51MS (untuk DT-51 MinSys ver 3.3)

- DT51F (untuk DT-51 PetraFuz)

d. Jalankan program instalasi dengan mengetik: install [source drive:]

e. [destination drive:], misalkan: “install d: c:”.

f. Ikuti petunjuk yang ditampilkan pada layar monitor.

g. Trafo 9V AC dihubungkan dengan konektor 9VAC pada board DT-51.

h. Hubungkan kabel serial, konektor DB9 Male ke board DT-51 dan DB9.

i. Female ke komputer (COM1 / COM2).

j. Jumper reset RES SLCT berada pada posisi download [1-2].

k. Periksa sekali lagi apakah semua hubungan sudah betul, jika sudah hubungkan trafo dengan tegangan AC yang sesuai. Lampu merah indikator akan menyala.

4. Spesifikasi DT-51

Spesifikasi DT-51 sebagai berikut :

· Berbasis mikrokontroler AT89S51 yang ber standar industri.

· Serial port interface standar RS-232 untuk komunikasi antara computer dengan board DT-51.

· 8 Kbytes non-volatile memory (EEPROM) untuk menyimpan program dan data.

· 4 por t input output (I/O) dengan kapas itas 8 bit tiap por tnya.

· Port Liquid Crystal Display (LCD) untuk keperluan tampilan.

· Konektor ekspansi untuk menghubungkan DT-51 dengan add-on board yang kompatibel dari Innovative Electronics.

5. Tata Letak DT51 I2C ADDA

Tata letak DT51 I2C ADDA ditunjukkan pada gambar 2.

Detail urutan masing-masing konektor ekspansi sebagai berikut:

6. Peta Memori DT-51


Peta Memori DT51 menunjukkan alamat masing-masing bagian komponen seperti yang tercantum pada gambar berikut:

a. 8Kb pertama (0000-1FFFH) digunakan untuk internal 4K PEROM yang berisi kernel code, sedangkan 4K sisanya reserved.

b. 8Kb kedua (2000H – 3FFF) digunakan untuk PPI 8255 dan hanya terpakai 4 alamat :

· 2000H – Port A

· 2001H – Port B

· 2002H – Port C

· 2003H – Control Word Register.

c. 8Kb ketiga (4000H -5FFFH) digunakan oleh EEPROM untuk menyimpan User Code. CS3-CS7 (6000H – FFFFH) disediakan untuk ekspansi.

7. Pemasangan DT-51

Berikut ini akan dibahas langkah- langkah pemasangan DT-51.

a. Perlengkapan DT-51

Setiap kemasan DT-51 terdiri dari :

-       1 buah board DT-51

-       1 buah kabel serial

-       1 CD program

-       1 buku manual

b. Sistem yang Dibutuhkan

Perangkat keras :

· PC XT / AT / PentiumTM IBM Compatible, dengan port serial (COM1 /COM2).

· CD-ROM.

· Hard Disk dengan kapasitas minimum 500 Kbytes.

· Trafo 9V AC 500mA.

Perangkat lunak :

· Sistem Operasi MS-DOSTM atau PC-DOSTM (vers i 6.2 ke atas).

· File-file yang ada pada CD program.

C. HASIL PENGAMATAN PROGRAM :

0000| CLR SM0                                              ; |Clear ( Instruksi ini akan mereset data akumulator menjadi 00H ) dengan serial mode 0.

0002| SETB SM1                                            ; |Set Bit (Instruksi untuk mengaktikan atau memberikan logika 1 pada sebuat bit data )pada serial port mode bit 1 atau menempatkan SM 1 untuk diletakkan di serial port mode bit 1

0004| MOV A, PCON                                    ; |Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyalin PCON (Power Control) pada A

0006| SETB ACC.7                                        ; |Set Bit (Instruksi untuk mengaktikan atau memberikan logika 1 pada sebuat bit data )  dengan membuat bit ke-7 pada akumulator menjadi set

0008| MOV PCON, A                                    ; |Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) pada  PCON (Power Control) , mengeset SMOD yang merupakan bit yang ada pada register PCON yang mana bila nilainya di set (1) maka kecepatan data (baud rate) akan dikalikan 2.

000A| MOV TMOD, #20H                            ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyimpan isi Kontrol Mode Timer/.Counter dengan 20H.

000D| MOV TH1, #243                                  ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyimpan isi TH1 (Timer/Counter 1 high byte) dengan 243.

0010| MOV TL1, #243                                   ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyimpan isi TL1 (Timer/Counter 1 Low byte) dengan 243.

0013| SETB TR1                                             ; Set Bit (Instruksi untuk mengaktikan atau memberikan logika 1 pada sebuat bit data ) dengan  menjalankan timer 1

0015| MOV 30H, #’a'                                      ; | Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyimpan 61H, bentuk ASCII bagi char a pada RAM lokasi 30H

0018| MOV 31H, #’b'                                     ; | Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyimpan 62H, bentuk ASCII bagi char b pada RAM lokasi 31H

001B| MOV 32H, #’c'                                     ; | Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / menyimpan 63H, bentuk ASCII bagi char c pada RAM lokasi 32H

001E| MOV 33H, #0                                     ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / data null ditransmisikan, jadi ketika akumulator bernilai 0 tidak ada data yang dikirimkan

0021| MOV R0, #30H                                    ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / memindahkan alamat data pertama 30H ke alamat R0

again:                                                        ; melakukan pengulangan

0023| MOV A, @R0                                      ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / memindahkan data dari yang ditunjuk oleh R0 ke akumulator A

0024| JZ finish                                                ; Jump if Accumulator Zero (Instruksi ini akan memeriksa isi A. Jika dia 00, maka program akan melompat ke alamat yang ditunjuk )/ jika akumulator berisi 0, tidak ada data yang akan dikirimkan, maka program akan berhenti mengulang

0026| MOV C, P                                            ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain ) / selain itu, memindahkan bit yang sama ke carry

0028| MOV ACC.7, C                                    ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain) / memindahkan data yang ada di carry ke akumulator ke-7 yaitu akumulator MSB

002A| MOV SBUF, A                                    ; Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain) /  mentransmisikan data yang dikirim ke serial port

002C| INC R0                                                 ; Increment (Instruksi ini akan menambahkan isi memori dengan 1 dan menyimpannya pada alamat tersebut) menambah R0 dengan satu untuk menunjuk pada byte yang selanjutnya dari data yang dikirimkan

002D| JNB TI, $                                             ; Jump if Not Bit Set (Instruksi ini akan membaca data per satu bit, jika data tersebut adalah 0 maka akan menuju ke alamat kode dan jika 1 tidak akan menuju ke alamat kode ) / menunggu TI dikirim, mengindikasikan bahwa serial port sudah menyelesaikan pengiriman

0030| CLR TI                                                  ; Clear ( Instruksi ini akan mereset data akumulator menjadi 00H ) / menghapus TI

0032| JMP again                                  ; Jump to Address ( Instruksi untuk memerintahkan loncat kesuatu alamat kode tertentu) / memerintahkan loncat untuk mengirim byte selanjutnya

finish:                                                        ; memberhentikan program

0034| JMP $                                        ; Jump to Address ( Instruksi untuk memerintahkan loncat kesuatu alamat kode tertentu) / tidak melakukan apapun

=======================================================================

Hasil Pengamatan :

0000| CLR SM0                      ; | tidak ada perubahan

0002| SETB SM1                    ; | PC menjadi 0×0002

0004| MOV A, PCON            ; | PC menjadi 0×0004, SCON menjadi 0×40

0006| SETB ACC.7                ; | PC menjadi 0×0006

0008| MOV PCON, A            ; | PC menjadi 0×0008, ACC menjadi 0×80, PSW menjadi 0×01

000A| MOV TMOD, #20H     ; PC menjadi 0x000A

000D| MOV TH1, #243          ; PC menjadi 0x000D, PCON menjadi 0×80, TMOD menjadi 0×20

0010| MOV TL1, #243            ; PC menjadi 0×0010, TH1 menjadi 0xF3

0013| SETB TR1                     ; PC menjadi 0×0013, TL1 menjadi 0xF3

0015| MOV 30H, #’a'              ; | PC menjadi 0×0015, TCON menjadi 0×40

0018| MOV 31H, #’b'             ; | PC menjadi 0×0018, TL1 menjadi 0xF5

001B| MOV 32H, #’c'             ; | PC menjadi 0x001B, TL1 menjadi 0xF7

001E| MOV 33H, #0                          ; | PC menjadi 0x001E, TL1 menjadi 0xF9

0021| MOV R0, #30H            ; |PC menjadi  0×0021, TL1 menjadi 0xFB

again:

0023| MOV A, @R0               ; | PC menjadi 0×0023, TL1 menjadi 0xFC

0024| JZ finish                        ;| PC menjadi 0×0024, TL1 menjadi 0xFD, ACC menjadi 0×61

0026| MOV C, P                    ; | PC menjadi 0×0026, TL1 menjadi 0xFF

0028| MOV ACC.7, C            ; | PC menjadi 0×0028, TCONmenjadi 0xC0, TL1 menjadi 0xF3

002A| MOV SBUF, A            ; | PC menjadi 0x002A, TL1 menjadi 0xF5, ACC menjadi 0xE1

002C| INC R0                         ; | PC menjadi 0x002C, TL1 menjadi 0xF6,  ACC menjadi 0xE1, W/O menjadi 0xE1

002D| JNB TI, $                      ; | PC menjadi 0x002D, TL 1 menjadi 0xF7

0030| CLR TI                          ; | TL1 menjadi 0xF9

0032| JMP again                      ; | TL1 menjadi 0xFB

finish:                                          ; | TL1 menjadi 0xFD

0034| JMP $                            ; | TL1 menjadi 0xFF

Rancangan Sistem Mirkroprosesor 8080


2011
03.04

Rancangan Sistem Mirkroprosesor 8080 dengan 2 buah RAM 4kB mulai alamat 1400H, 2 buah ROM 4kB mulai alamat 4700H, 2 Port Input 50H dan 55H, 2 buah Port Output 70H dan 71H

1. Peta Memori

ALAMAT 8 bit
0000H

13FFH

Belum digunakan

1400H

23FFH

RAM 1

(4 kbyte)

2400H

33FFH

RAM 2

(4 kbyte)

3400H

46FFH

Belum digunakan

4700H

56FFH

ROM 1

(4 kbyte)

5700H

66FFH

ROM 2

(4 kbyte)

6700H

FFFFH

Belum Digunakan

2. Peta I/O

50H

55H

Port Input

70H

71H

Port Output

3. Daftar Memori

4. Daftar Piranti I/O

KOM-

PONEN

ALAMAT

(HEKSA)

SALURAN BUS ALAMAT (BINER)
A7 A6 A5 A4 A3 A2 A1 A0
PORT INPUT

50H

55H

0

0

1

1

0

0

1

1

0

0

0

1

0

0

0

1

PORT OUTPUT 70H

71H

0

0

1

1

1

1

1

1

0

0

0

0

0

0

0

1

5. Dekoder Memori


Rancangan Sistem Mikroprosesor Z-80


2011
03.04

Rancang Mikroprosesor Z-80 dengan RAM 4KB, ROM 6KB, Input 1 port, Ouput 1 port, alamat bebas

1. Peta Memori

ALAMAT 8 bit
0000H

14FFH

Belum digunakan
1500H

24FFH

RAM

(4 kbyte)

2500H

54FFH

Belum digunakan
5500H

72FFH

ROM

(6 kbyte)

7300H

FFFFH

Belum Digunakan

2. Peta I/O

50H Port Input
80H Port Output

3. Daftar Memori


4. Daftar Piranti I/O

KOM-

PONEN

ALAMAT

(HEKSA)

SALURAN BUS ALAMAT (BINER)
A7 A6 A5 A4 A3 A2 A1 A0
PORT INPUT 50H 0 1 0 1 0 0 0 0
PORT OUTPUT 80H 1 0 0 0 0 0 0 0

5. Dekoder Memori

MIKROPROSESOR


2011
02.24

a4-apple-chip-top-1-microprocessor

Mikroprosesor adalah gabungan 2 kata yaitu mikro dan prosesor. Jadi, mikroprosesor adalah sebuah alat yang berukuran kecil yang digunakan untuk  memproses data secara digital. Mikroprosesor adalah sebuah chip atau IC = Integrated Circuits yang di dalamnya terkandung rangkaian ALU (Arithmetic Logic Unit), rangkaian CU (Control Unit) dan register-register. Mikroprosesor disebut juga prosesor atau unit mikroprosesor (MPU) atau juga CPU (Central Processing Unit) merupakan alat pengolah pusat yang dikenal sebagai “otak komputer”. Istilah mikroprosesor yang sering ditulis dengan simbol µp atau uP , serta memiliki bentuk yang kecil, bisa terdiri dari 10 juta transistor dan terbuat dari lempengan silikon.

Mikroprosesor juga terdiri dari area kerja yang dikenal dengan register-register yang merupakan media penyimpanan yang memiliki kemampuan penyimpanan tidak lebih dari beberapa byte. Register-register ini menangani instruksi dan data dalam kecepatan yang sangat tinggi dan digunakan untuk berbagai macam fungsi pemrosesan. Satu register yang disebut dengan instruction register berisi instruksi untuk dieksekusi.

Prosesor adalah chip yang sering disebut “Microprosessor” yang sekarang ukurannya sudah mencapai Gigahertz (GHz). Ukuran tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasaran adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel.

Fungsi – fungsi mikroprosesor adalah sebagai berikut :

1. Mengambil instruksi dan data dari memori.

2. Memindah data dari dan ke memori.

3. Mengirim sinyal kendali dan melayani sinyal interupsi.

4. menyediakan pewaktuan untuk siklus kerja sistem mikroprosesor.

5. Mengerjakan fungsi – fungsi operasi logika dan aritmetika.

Dalam pelaksanaan fungsi – fungsi tersebut, terdapat bagian – bagian mikroprosesor yang mengerjakannya yaitu antara lain:

  • Pengendalian dan Pewaktuan (control and Timing)

Bagian pewaktuan dan pengendalian memiliki fungsi utama untuk mengambil dan mendekodekan instruksi dari memori program dan membangkitkan sinyal kendali yang diperlukan oleh bagian lain dari mikroprosesor untuk melaksanakan instruksi tersebut. Pada bagian pengendalian, mengirimkan sinyal kendali eksternal untuk dikirim ke elemen system mikroprosesor yang lain. Bagian pengendalian juga berfungsi untuk menerima sinyal kendali dari elemen lain dalam sistem mikroprosesor.

  • ALU (Arithmetic and Logical Unit)

Bagian mikroprosesor yang berfungsi mengerjakan perintah – perintah logika dan operasi aritmetika adalah ALU. Instruksi dalam operasi ini melibatkan satu atau dua operand. Operasi ALU menghasilkan juga sinyal status yang dikirim ke register, yaitu sinyal untuk mengubah status bit – bit flag sesuai hasil operasi suatu instruksi.

  • Register

Fungsi register digunakan untuk menyimpan data, alamat, kode instruksi dan bit status berbagai hasil operasi mikroprosesor. Prinsip dari register – register pada berbagai mikroprosesor adalah sama, namun memiliki perbedaan dalam struktur registernya.

Karakteristik Mikroprosesor

Berikut adalah karakteristik penting dari mikroprosesor :

1.     Ukuran bus data internal (internal data bus size): Jumlah saluran yang terdapat dalam mikroprosesor yang menyatakan jumlah bit yang dapat ditransfer antar komponen di dalam mikroprosesor.

2.     Ukuran bus data eksternal (external data bus size): Jumlah saluran yang digunakan untuk transfer data antar komponen antara mikroprosesor dan komponen-komponen di luar mikroprosesor.

3.     Ukuran alamat memori (memory address size): Jumlah alamat memori yang dapat dialamati oleh mikroprosesor secara langsung.

4.     Kecepatan clock (clock speed): Rate atau kecepatan clock untuk menuntun kerja mikroprosesor.

5.     Fitur-fitur spesial (special features): Fitur khusus untuk mendukung aplikasi tertentu seperti fasilitas pemrosesan floating point, multimedia dan sebagainya.

Prinsip Kerja

Pada sistem mikroprosesor prinsip kerjanya adalah mengolah suatu data masukan, yang kemudian hasil olahan tersebut akan menghasilkan keluaran yang dikehendaki. Proses pengolahan datanya dapat difungsikan sesuai dengan instruksi yang diprogramkan. Masing-masing mikroprosesor memiliki bahasa pemrograman yang berbeda-beda. Namun secara prinsip, dasar dari tiap mikroprosesor adalah sama. Tiap Mikroprosesor memiliki satu bus data, satu bus alamat dan satu bus kendali. Dalam mikroprosesor terdapat suatu unit untuk mengerjakan fungsi-fungsi logika dan aritmetika, register-register untuk menyimpan data sementara dan unit pengendalian .

Dalam sistem kerjanya mikroprosesor didukung oleh unit memori (untuk menyimpan program tetap/sementara dan menyimpan data), unit masukan dan keluaran yang berfungsi sebagai antar muka dengan dunia luar.