Tuesday, January 14, 2014

Belajar Mikroprosesor

Sejarah Singkat Mikroprosesor
Mikroprosesor pertama kali diciptakan adalah Intel 4004, yang diperkenalkan tahun 1971. Prosesor ini sangat sederhana, hanya bisa melakukan operasi sebesar 4 bit per waktu. Aplikasi prosesor ini adalah untuk menyusun kalkulator elektronik portabel.
Mikroprosesor pertama yang digunakan untuk keperluan rumahan adalah Intel 8080 yang diperkenalkan pertama kali pada tahun 1974. Prosesor ini berukuran 8 bit. Digunakan pertama kali pada kit Altair. Kit buatan MITS yang diperkenalkan pada tahun 1975 inilah yang dianggap sebagai cikal bakal komputer personal yang pertama. Namun yang dinamakan PC seperti yang sekarang diperkenalkan pertama kali oleh IBM pada tahun 1982, yang disebut IBM PC. Komputer ini menggunakan prosesor Intel 8088 yang sebenarnya telah diperkenalkan pada tahun 1979.
Mikroprosesor yang digunakan pada PC dari waktu ke waktu juga berubah. Secara kronologis, prosesor-prosesor yang digunakan sampai pada tahun 2002 adalah 8088, 80286, 80386, 80486, Pentium, Pentium II, Pentium III, Pentium III, dan Pentium IV. Sebagai bahan perbandingan, prosesor pentium 4 memiliki kecepatan 5000 kali lebih cepat dari pada prosesor 8088.
CPU terdiri atas dua bagian utama yang dinamakan unit kontrol (Control Unit) dan ALU (Arithmetic and Logic Unit)
  • Unit kontrol berfungsi untuk mengendalikan seluruh komponen dalam sistem komputer, seperti layaknya otak manusia yang mengontrol seluruh syaraf dalam tubuh sehingga seluruh anggota tubuh dapat digerakkan atau dikendalikan. Pengendalian yang dilaksanakan oleh unit ini di dasarkan pada instruksi-instruksi yang terdapat pada program komputer. Setiap instruksi diterjemahkan ke dalam bentuk tindakan yang sesuai dengan maksud instruksi bersangkutan.
  • Unit aritmetika dan logika berperan dalam melaksanakan operasi-operasi perhitungan (aritmetika) seperti pengurangan, penjumlahan, dan pengalian maupun operasi pembandingan (logika) seperti membandingkan suatu nilai bernilai nol atau tidak.
Selain kedua komponen tersebut, CPU memiliki sejumlah register. Register adalah memori dalam CPU yang mempunyai kecepatan sangat tinggi, yang digunakan untuk berbagai operasi dalam CPU. Tipe register bermacam-macam, antara lain yaitu register instruksi, register alamat, dan register akumulator.
Untuk melakukan suatu operasi terhadap data yang berbeda dalam memori utama, data mula-mula disalin dari memori ke register-register dalam CPU. Unit kontrol yang menangani hal ini bisa berarti perintah atau data. Selanjutnya data diterjemahkan dan diproses. Jika terdapat operasi aritmetika atau logika, ALU segera mengambil alih peran tersebut. Hasil sementara permrosesan akan ditaruh pada akumulator dan setelah itu dapat dituangkan dalam bentuk algoritma (urutan proses) seperti berikut:
  1. LOAD nilai dari satu lokasi di memori ke sebuah register;
  2. LOAD nilai dari lokasi lain di memori ke register yang lain;
  3. ADD kedua nilai dan hasilya disimpan dalam register akumulator;
  4. STORE isi akumulator ke dalam suatu lokasi di memori.
  5. Selesai.
Mikroprosesor Superskalar
Prosesor yang dapat memproses satu instruksi dalam sebuah siklus (pulsa dari clock) biasa disebut prosesor skalar atau tradisional. Yang termasuk dalam golongan ini adalah keluarga Intel x86 (misal 80486) yang digunakan pada IBM PC dan kompatibelnya dan keluarga motorola 68000 yang digunakan pada komputer Apple. Adapun CPU yang dapat menjalankan lebih dari satu instruksi per-siklus dinamakan CPU superskalar. Yang termasuk dalam kategori ini adalah prosesor Pentium (Intel), Power PC (INM-Motorola-Apple), K5 (AMD), dan generasi berikutnya, M1 (Cyrix), dan Nx586 (NexGen).
CPU superskalar dapat menjalankan lebih dari satu instruksi per siklus disebabkan adanya lebih dari satu ALU, sebagaimana dalam gambar di bawah ini. Dengan keadaan ini, unit kontrol akan mengevaluasi dua buah instruksi secara berpasangan. Jika kedua instruksi dapat dieksekusi secara serentak maka masing-masing akan dikirim ke ALU yang berbeda. Jika tidak, masing-masing instruksi diproses pada siklus yang berbeda.
PENGANTAR ARSITEKTUR MCS-51 (AT89C51/AT89S51)
Memori Internal 89S51
Memori internal 89S51 terdiri dari 3 bagian yaitu ROM, RAM dan SFR
1.   ROM / Read Only Memory adalah memori tempat menyimpan program / source code.
Sifat ROM adalah non-volatile, data atau program tidak akan hilang walaupun tegangan supply tidak ada.
Kapasitas ROM tergantung dari tipe mikrokontroler. Untuk AT89S51 kapasitas ROM adalah 4Kbyte.
ROM pada AT89S51 menempati addres 0000 sampai dengan 0FFF.
2.      RAM / Random Access Memory adalah memori tempat penyimpanan data sementara.
Sifat RAM adalah volatile, data akan hilang jika tegangan supply tidak ada.
Kapasitas RAM tergantung pada tipe mikrokontroler. Pada AT89S51 RAM di bagi menjadi dua yaitu :
·      LOWER 128byte yang menempati address 00 sampai dengan 7F.
RAM ini dapat di akses dengan pengalamatan langsung (direct) maupun tak langsung (indirect)
Contoh :
Direct                        mov     30h, #120        ; Pindahkan data 120 ke RAM pada address 30h
Indirect                      mov     R0, #30h         ; Isi Register 0 dengan 30h
Mov     @R0, #120      ; Pindahkan data 120 ke RAM pada address sesuai isi RO.
·         UPPER 128 byte yang menempati address 80 sampai dengan FF. Address ini sama dengan address SFT meski secara fisik benar-benar berbeda.
RAM ini hanya dapat di akses dengan pengalamatan tak langsung saja.
3.      SFR / Special Function Register adalah register dengan fungsi tertentu. Misalnya, register TMOD dan TCON adalah timer control register yang berfungsi mengatur timer mikrokontroler.
SFT pada AT89S51 menempati address 80 sampai dengan FF.
Keterangan :
Gambar di atas adalah peta memori internal 89S51 yang terdiri dari RAM, SFR dan ROM
Tampak bahwa ada kesamaan address antara RAM, SFR dan ROM yaitu address 00 sampai dengan FF
Atas pertimbangan inilah maka biasanya source code ditulis setelah address 00FF yaitu 0100 pada ROM
Hal ini di maksudkan agar data RAM dan SFR tidak terisi oleh byte source code.
mikroprosessor
Mikroprosesor yang dipelajari di lab adalah mikroprosesor 8085. mikroprosesor ditanamkan kedalam trainer kit midicom intel 8085. trainer kit mikroprosesor ini memiliki : PIO(Paralel Input Output) 0 dengan address 50 dan PIO 1 dengan address 40EPROM dengan alamat
0000- 3FFFRAM 5buah dengan alamat 6000-FFFF

TIMER
MEMORYDECODER

Sebuah konektor serial RS232 digunakan untuk keyboard, dan output video dihubungkan menggunakan monitor. Terdapat tombol merah [RESET], digunakan jika trainer kit mengalami error. Kit ini memiliki super cap, yang akan digunakan untuk menjaga agar RAM dapat menyimpan data walaupun supply dimatikan. super cap ini cukup untuk menjaga data pada RAM setidaknya dalam kurun waktu 2 minggu sejak trainer kit tidak diberi catu daya.
Sebuah konektor serial RS232 digunakan untuk keyboard, dan output video dihubungkan menggunakan monitor. Terdapat tombol merah [RESET], digunakan jika trainer kit mengalami error. Kit ini memiliki super cap, yang akan digunakan untuk menjaga agar RAM dapat menyimpan data walaupun supply dimatikan. super cap ini cukup untuk menjaga data pada RAM setidaknya dalam kurun waktu 2 minggu sejak trainer kit tidak diberi catu daya.


pada bagian kanan dari trainer kit terdapat 8 buah led yang digunakan sebagai indikator output 8 bit atau 1 byte.

ketika akan melakukan coding, lalu menyimpan di memory, maka data harus disimpan di address 7000-FFFF. karena address 6000-7000 digunakan untuk sistem.

Register-register pada trainer kit diantaranya adalah :
A 8 bit
B
C
D
E
H
L
M
F
S
P
PC 16bit
register PC (Program Counter) menunjukan alamat berikutnya yang akan dieksekusi.

simulasi untuk upcounter

setelah midicom dinyalakan, tekan spacebar. tekan H pada keyboard, tekan ENTER muncul beberapa pilihan instruksi untuk kit ini. diantaranya yang akan digunakan adalah assembly. assembly ini digunakan untuk mengetahui bahasa mesin dari bahasa assembly yang kita masukan. tekan A, ENTER muncul assemble dengan address 0000. tekan ESC untuk kembali, lalu ketik A 8000, maksudnya adalah kita akan masuk ke address 8000 tempat kita akan menyimpan data upcounter kita. setelah masuk ke address 8000, ketik MVI A,00 maksudnya adalah move data 00 to register A. tekan ENTER, maka diantara ADDRESS dan bahasa assembly yang dimasukan akan muncul kode mesin 3E00 yang akan dijalankan oleh mikroprosesor. lalu ketikan OUT 50 maksudnya adalah data yang dimasukan akan dikeluarkan pada address 50 yaitu PIO 0. seperti yang disinggung diatas, address PIO 0 adalah 50. lalu akan muncul kode mesin D350 sebagai bahasa mesin untuk output pada address 50. ketikan INR A maksudnya register A datanya akan increase atau ditambah 1 setiap dieksekusi.(INR digunakan untuk menambah dengan 1, DCR digunakan untuk mengurangi dengan 1). akan muncul kode mesin 3C. selanjutnya adalah looping kode ini dengan mengetikan JMP 8002 maksudnya, kode akan diJUMP dimulai dari address 8002. juga akan muncul kode mesin untuk JMP 8002 yaitu C30280. Setelah proses coding dilakukan, selanjutnya kita akan melakukan disasemmbly, yaitu untuk melihat apakah kode yang tadi dimasukan sesuai dengan yang dikehendaki. tekan ESC, untuk kembali ke awa, lalu tekan D 8000, lalu ENTER maksudnya kita akan melakukan disasembly untuk address 8000. akan muncul address, bahasa mesin, dan bahasa assembly yang tadi dimasukan. setelah diketahui kode yang dimasukan sesuai dengan yang dikehendaki, maka akan dilakukan TRACE. yaitu proses penjejakan dari kode yang telah kita masukan tadi, sekaligus mengetahui apakah kode untuk upcounter yang tadi berjalan atau tidak. perlu diketahui bahwa kode ini akan muncul berupa kode biner pada 8 buah led yang ada pada kit midicom. tekan ESC, untuk kembali ke awal. tekan T 8000 maksudnya adalah melakukan trace pada address 8000, tempat kita menyimpan kode untuk upcounter. tekan ENTER secara terus menerus untuk menjalankan kode, sehingga LED indikator menyala sesuai dengan kode biner untuk upcounter yaitu :

0000 0000 biner untuk desimal 0
0000 0001 biner untuk desimal 1
0000 0010 biner untuk desimal 2
0000 0011 biner untuk desimal 3
0000 0100 biner untuk desimal 4
0000 0101 biner untuk desimal 5
0000 0110 biner untuk desimal 6 dan seterusnya



PRAKTEK -1
BASIC I//O P1 SEBAAGAI INPUUT


Langkahh: 
Langkahh: 
1.    Hubungkaan PORT DT551 MinSysn dengan PORRT INPUTDT‐‐51 trainer bboard. 
2.    Hubungkaan CONTROLL DT‐51 Min Sys dengan  CONTROL DDT‐51 trainer board. 
3.    Hubungkaan DT‐51 MinSys dengann PC mengguunakan kabeel serial 
4.    Hubungkaan Dt‐51 MInnSys dengannsumber teggangan 
Skema Rangkaiann 
P1 sbg innput PA sebaagai output 


PA adalah PORT tambahan (eksternal) diluar mikrokontroler, yang disediakan dari IC PPI 8255. 
Mikrokontroler dapat menggunakan PA ini dengan cara MEMPROGRAMNYA TERLEBIH DAHULU 
lewat register internal PPI 8255 yaitu register CW (control word). 
Contoh Memprogram semua Port PPI 8255 (PA, PB, PC) sebagai output, maka reg CW harus 
diberi data 80h (lihat manual PPI 8255). 
Code: 


Sumber : Prak Mikroprosesor, Arif Johar Taufiq, materi dapat didownload di http://guru.technsains.com