Minggu, 12 Desember 2010

MIKROKONTROLLER

AI.            TEORI PENDAHULUAN
1.1  MIKROKONTROLLER
Adalah sebuah single chip yang  di dalam-nya sudah berisi
- CPU ( Central Processing Unit )
- RAM (Random Acces Memory)
- ROM (Read Only Memory)
- I/O (Unit Input / Output)
- Timer/Counter , Serial COM Port.

Blok Diagram MIKROKONTROLLER
Mikrokontrller diproduksi mulai  ± tahun 1976 dengan INTEL  yang produksinya type 8746 ( MCS-48) yang di dalamnya sdh ada 1 KByte EPROM, 64 Byte RAM, 27 I/O dan 8 bit Timer. <div class="fullpost">


1.2 PERANGKAT LUNAK MIKROKONTROLER MCS-51
         Sebuah mikrokontroler tidak akan dapat bekerja bila tidak diberikan program kepadanya.
         Sistem kerja mikrokontroler dapat dirubah setiap saat sesuai dengan program yang diberikan kepadanya.
         Instruksi-instruksi perangkat lunak berbeda untuk masing-masing jenis mikrokontroller.
         Sebuah mikrokontroler tidak dapat memahami instruksi-instruksi yang berlaku pada mikrokontroler jenis lain.
            Contoh:
                        Mikrokontroler buatan Intel dengan
                       mikrokontroler buatan Zilog memiliki
                        perangkat instruksi yang berbeda
         Instruksi-instruksi pada mikrokontroler dikenal sebagai bahasa pemrograman sistem mikrokontroler

1.3 berbagai Tipe Mikrokontroler
1.3.1 Mikrokontroler ATMEL
            Mikrokontroler keluaran ATMEL dapat dikatakan sebagai mikrokontroler terlaris   dan termurah saat ini. Chip mikrokontroler ini dapat diprogram menggunakan port paralel atau serial. Selain itu, dapat beroperasi hanya dengan 1 chip dan beberapa komponen dasar seprti kristal, resitor dan kapasitor

1.3.2 MikrokontrolerPIC
            PIC ialah keluarga mikrokontroler tipe RISC buatan Microchip Technology. Bersumber dari PIC1650 yang dibuat oleh Divisi Mikroelektronika General Instruments. Teknologi Microchip tidak menggukana PIC sebagai akronim,melaikan nama brandnya ialah PICmicro. Hal ini karena PIC singkatan dari Peripheral Interface Controller, tetapi General Instruments mempunyai akronim PIC1650 sebagai Programmabel Intelligent Computer.
PIC pada awalnya dibuat menggunakan teknologi General Instruments 16 bit CPU yaitu CP1600. * bit PIC dibuat pertama kali 1975 untuk meningkatkan performa sistem peningkatan pada I/). Saat ini PIC telah dilengkapi dengan EPROM dan komunikasi serial, UAT, kernel kontrol motor dll serta memori program dari 512 word hingga 32 word. 1 Word disini sama dengan 1 instruki bahasa assembly yang bervariasi dari 12 hingga 16 bit, tergantung dari tipe PICmicro tersebut.

1.3.3 Maxim
            Maxim merupakan salah satu produsen chip yang fokus pada komponen digital dan kompunikasi seperti mikrocontroler, akuisisi data dan komponen RF (Radio Frekwensi). Maxim cukup inovatif dengan meluncurkan mikrokontroler yang mendukung jaringan komputer antara lain 80C400 dengan kecepatan tinggi. untuk melihat berbagai produk dan mendownload datasheet, atau contoh aplikasi. Beberapa chip mikrokontroler juga mendukung penggunakan compiler berbasis bahsaa C antara lai softwaqre Keil yang berfungsi sebagai compiler C , macro assemblers, real-time kernels, debuggers, simulator pada lingkungan IDE (Interface Design Environment) yang bagus.

II.         TUJUAN PRAKTIKUM
1. Membuat led berjalan putar kiri dengan menggunakan Mikrokontroler Atmel AT89S51dan Bahasa Assembler.
2. Memahami pelajaran yang telah diberikan mengenai mikrokontroler
3. Membuktikan apakah program yang kita buat sesuai dengan yang kita inginkan.

III.     LANGKAH KERJA
  1. Tulis program mikrokontroler di notepad.
  2. Simpan file tersebut dengan akhiran .asm (coba.asm) pada folder yang didalamnya terdapat aplikasi asm51 + mod.
  3. Kemudian compile file tersebut dengan aplikasi asm51 yang terdapat difolder penyimpanan file program yang anda gunakan.
  4. Periksa apakah ada data yang salah dengan cara, buka file yang berakhiran .lst
  5. Jika sudah tidak ada kesalahan lagi, simulasikan data tersebut menggunakan topview simulator
  6. Mendownload data tersebut ke IC, dapat dilakukan dengan cara sebagai berikut:
a. Hubungkan DT-HiQ AT89 USB ISP ke target board.
b. Ambil kode dengan perintah “Load File”. Untuk melakukan perintah “Load File”, lakukan salah satu hal berikut:
·          Klik pada tombol Load File
·         Klik File | Load File
·         Tekan Ctrl + L dan buka file Intel-hex atau file biner.
c. Pilih dan deteksi IC target dengan perintah “Device Select”. Untuk melakukan perintah “Device Select”, klik Options | Device Select.
d. Centang semua opsi pada Options | Auto Programming Options.
e. Programlah IC target dengan perintah “Auto”. Untuk melakukan perintah “Auto”, lakukan salah satu hal berikut:
·         Klik tombol Auto Programming
·         Klik Instructions | Auto
·         Tekan Ctrl + A
f. Jika kita ingin memasukkan program ke IC maka pilih icon WRITE FLASH, dan jika kita ingin melihat apakah data sudah masuk maka klik icon READ FLASH.
g. Proses pemrograman akan ditampilkan pada status bar. Saat pemrograman sudah selesai, tulisan “Verify Complete” akan ditampilkan pada status bar. Jika terjadi masalah pada saat instalasi atau penggunaan, bacalah panduan troubleshooting pada manual terlebih dahulu untuk mencari solusinya.

IV.         TABLE KEBENARAN

time
D7
D6
D5
D4
D3
D2
D1
D0
T0
1
1
1
1
1
1
1
0
T1
1
1
1
1
1
1
0
1
T2
1
1
1
1
1
0
1
1
T3
1
1
1
1
0
1
1
1
T4
1
1
1
0
1
1
1
1
T5
1
1
0
1
1
1
1
1
T6
1
0
1
1
1
1
1
1
T7
0
1
1
1
1
1
1
1


V.     LISTING PROGRAM
Secara umum perintah dalam bahasa assembly disusun sebagai berikut:
[label:] mnemonic [operand1] [,operand2] [,operand3] [;komentar]
  • Label
Sifatnya opsional. Label digunakan sebagai penanda lokasi baris perintah. Label yang digunakan adalah kata apa saja terserah kita. Label selalu diikuti oleh titik dua (:) dan tidak boleh diawali dengan angka.

  • Mnemonic
Adalah sebuah singkatan yang mudah diingat yang menunjukkan arti perintah tertentu. Berada dengan label, mnemonic sifatnya sudah ditetapkan.

  • Operand
Adalah parameter tambahan yang mengikuti mnemonic. Jumlahnya tergantung mnemonic-nya.

  • Komentar
Sifatnya juga opsional. Bagian ini tidak akan diproses oleh assembler, tetapi berguna untuk keperluan dokumentasi agar program menjadi lebih mudah dimengerti.


Contoh Listing Program
$mod51
            org       00h
            mov     a, #11111110b
loop:    mov     P1, a
            rl          a
            mov     R7, #10
L1:       mov     R6, #255
L2:       mov     R5, #255
L3:       djnz     R5, L3
            djnz     R6, L2
            djnz     R7, L1
            sjmp     loop
            end
setiap perintah akan dilaksanakan secara urut dari atas ke bawah, terkecuali ada perintah untuk melompat.

VI.  PENJELASAN PROGRAM
Listing program:
$mod51
org       00h
mov     a, #11111110b
loop:    mov     P1, a
rl          a
mov     R7, #10
L1:       mov     R6, #255
L2:       mov     R5, #255
L3:       djnz     R5, L3
djnz     R6, L2
djnz     R7, L1
sjmp     loop
end

Penjelasan program diatas:
Perintah mov a, #11111110b →berarti: mengisi register a (accumulator) dengan bilangan 11111110b (b menunjukkan biner).
Baris ini tidak memiliki label dan diikuti oleh dua operand. Mov sendiri adalah singkatan dari move yang berarti memindahkan. Namun demikian pengertian sebenarnya bukanlah memindahkan, melainkan menyalin, yaitu: menyalin apa saja yang terdapat pada operand2 ke operand1. oleh karena itu perintah mov selalu diikuti oleh dua operand. Operand pertama adalah tujuan, sedangkan operand kedua adalah sumber.
               Perintah mov P1, a →artinya: mengirim data pada register a ke P1.
Baris perintah ini memiliki label, yaitu loop:  pemberian label pada baris perintah ini diperlukan untuk hal yang akan diterangkan nanti. Perintah ini menyebabkan LED lainnya padam. Mengapa........?...
Jawab: karena sebelum register a sudah diisi dengan bilangan 11111110b juga. Kita tahu bahwa angka 1 pada P1 menyebabkan LED padam dan angka 0 menyebabkan LED menyala. (hal ini dinamakan aktif low).
               Perintah berikutnya adalah r1 a →artinya: memutar isi register a ke kiri (rl= rotate left).
Jika sebelum perintah ini, isi register a adalah 11111110b, maka setelah perintah ini isi register a akan menjadi 11111101b. Jika kemudian dilakukan perintah rl lagi, isi register a akan menjadi 11111011b. Begitu seterusnya. Perintah rl selalu diikuti oleh sebuah operand dan selalu register a sebagai operandnya. Perintah yang mirip dengan ini adalah perintah rr a yang artinya memutar isi register a kekanan (rr = rotate right). Enam baris perintah berikutnya hanya digunakan untuk tujuan penundaan (delay).
               Perintah mov R7, #10 akan menyebabkan register R7 dengan bilangan 10.
Sedangkan perintah djnz R5, L3 berarti mengurangi register R5 dengan 1, kemudian melompat ke baris perintah yang diberikan label L3, jika isinya tidak sama dengan 0 (nol). (djnz = decrease and jump if not zero). Kita lihat bahwa baris perintah yang memiliki L3 adalah baris perintah itu sendiri.
Sedangkan baris perintah diatasnya adalah mov E5, #255 yang berarti sebelum masuk perintah djnz R5, L3, R5 berisi 255, hal ini berarti bahwa perintah akan berputar-putar pada baris itu saja sampai 255 kali sebelum turun untuk melaksanakan baris perintah dibawahnya, yaitu pada saat R5 sudah sama dengan nol (0). Anda sudah pasti bisa menebak bahwa perintah djnz R6, L2 akan mengurangi isi register R6 dengan satu dan melompat kebaris perintah yang diberikan label L2, jika isi register R6 tidak sama dengan nol (0). Baris perintah tersebut adalah baris perintah pengisian R5 yang kemudian diikuti pada perputaran pada baris perintah djnz R5, L3 sebanyak 255 kali.
Dengan demikian keenam baris ini merupakan barisperintah yang akan berptuar-putar sebanyak 255 kali putaran (menggunakan R5) dikalikan 255 kali putaran (menggunakan R6) dikalikan lagi dengan 10 kali putaran menggunakan R7. Setelah mikrokontroller menjalankan perintah yang hanya berputar-putar 255x255x10, akhirnya mikrokontroller akan bertemu dengan sjmp loop. Perintah ini akan menyebabkan urutan pelaksanaan melompat ke baris perintah yang memiliki label loop (sjmp = short jump), yaitu perintah mov P1, a. Baris terakhir adalah end. Baris ini tidak termasuk dalam baris perintah, tetapi disebut dengan direktif. Direktif end memberitahukan kepada assembler bahwa program sudah selesai.
               Arti dari keseluruhan program adalah sebagai berikut: ”Isi P1 dengan register a, kemudian putar kekiri isi register a, lakukan penundaan dan kemudian ulangi. Akan tetapi sebelum perulangan tersebut, isi register a dengan data 11111110b”.
VII.         KESIMPULAN
Setelah melalui tahap perancangan dan pengujian system maka dapat diambil kesimpulan sebagai berikut :
1. Untuk mengubah supaya perputaran kita menggunakan perintah instruksi (RL= rotate left). dan (RR= rotate right).
2. Kita dapat mengubah hidup dan matinya lampu dengan cara mengganti angka biner yang dimasukan (ex:mov a, #11111110b menjadi mov a, #11111100b).
3. Kita dapat mengatur waktu pergantian lampu, dengan cara mengubah angka pada mov R5, mov R6 dan mov R7.
4. Dengan mengggunakan mikrokontroller AT89S51 kita dapat membuat apa saja yang menggunakan program sendiri, contoh: runing texs, led putar kiri, led putar kanan dan lain-lain.



VIII.     DAFTAR PUSTAKA
  • support@innovativeelectronics.com
  • Catatan mikrokontroler
  • Powerpoint Jurusan Teknik Elektro Industri Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya 2007
  • Quick Start DT-HiQ AT89 USB ISP.pdf
  • http://akhathea.blogspot.com/2009/02/teknologi-mikrokontroler-terkini-pokok.html.
    </div>


0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More