Showing posts with label Bahasa Pemrograman. Show all posts
Showing posts with label Bahasa Pemrograman. Show all posts

Monday, July 4, 2011

BELAJAR ASSEMBLY DENGAN MIDE-51

Pada materi lalu kita telah belajar membuat SIMULASI MIKROKONTROLER MENGGUNAKAN BAHASA PEMROGRAMAN ASSEMBLY DENGAN PROTEUS 7.7 SP2 + mide-51. Selanjutnyakita akan belajar membuat bahasa pemrograman assembly dengan software mide-51.
Sebelum bekerja dengan MIDE-51 ini install software yang telah di download, double click software midepack02511.exe. Ikuti semua langkah yang ada pada saat instalasi software ini. Setelah semua selesai buka software MIDE-51. Start>MIDE-51 package>MIDE-51, dan tampilan software tersebut seperti gambar dibawah ini.
Tampilan awal MIDE-51
Buka project baru dengan cara click File>New  
Pilih device yang akan digunakan click Device>Select, misalnya ingin bekerja dengan mikrokontroler AT89C51 maka pilih 89C51AC2, selanjutnya click OK
.
Selanjutnya tulislah source code bahasa assembly seperti berikut :
Kemudian Untuk membuat program  assembler  maka  click  File>Save as  dan buat file dengan  extension  asm (*.asm), misalnya coba.asm
Tampilan akan berubah seperti gambar berikut
Untuk meng-compile program yang telah kita buat, click Build>Build /
Setelah di-compile, maka kita telah membuat file berekstensi *.hex.
Selanjutnya kita bisa mensimulasikan file tersebuat dalam rangkaian mikro dengan proteus. Untuk rangkaian dengan menggunakan AT89c51 telah kita pelajari pada materi SIMULASI MIKROKONTROLER MENGGUNAKAN BAHASA PEMROGRAMAN ASSEMBLY DENGAN PROTEUS 7.7 SP2 + mide-51. Jika simulasi berhasil maka pada pin ic 0.0 s/d 0.4 yang dihubungkan dengan lampu led akan menyala.
Penjelasan
Clr P0.0 ;(adalah memberikan logika 0 ke kaki 0.0, yang mengakibatkan led menyala)

Selanjutnya cobalah membuat dengan source code di bawah ini.
org 0h
start: Setb P0.0
      Setb P0.1
      Setb P0.2
      Setb P0.3
      Setb P0.4
end
Apa yang terjadi? Selamat mencoba.

Monday, June 20, 2011

SIMULASI MIKROKONTROLER MENGGUNAKAN BAHASA PEMROGRAMAN ASSEMBLY DENGAN PROTEUS 7.7 SP2 + mide-51


Pada pembahasan ini kita akan belajar mengaplikasikan bahasa pemrograman asembly dengan hardware, yaitu ic mikrokontroler AT89c51. Bahasa pemrograman kita buat dengan software mide-51. Sedangkan untuk rangkaian mikro serta simulasinya kita pakai proteus 7.7 SP2.
  1. PEMBUATAN PROGRAM DENGAN mide-51

  • Langkah awal siapkan file *.hex yang telah kita buat dengan software mide-51. Pembahasan mengenai software ini akan kita bahas pada materi selanjutnya. File *.hex bisa download di sini.

  1. PEMBUATAN RANGKAIAN MIKROKONTROLER DENGAN PROTEUS

  • Bukalah program proteus 7.7

  • Pada tampilan awal proteus, bukalah  “library” – “pick device/symbol” pada jendela pick devices masukkan keywords “89c51” klik AT89c51 pada bagian result kemudian “ok”

  • Akan muncul jendela sebagai berikut

  • Klik pada AT89c51 kemudian klik 2x pada area kerja, sehingga ic akan nampak pada area kerja seperti berikut

     

  • bukalah  “library” – “pick device/symbol” pada jendela pick devices masukkan keywords “resistor” klik RESISTOR pada bagian result kemudian “ok”

  • bukalah  “library” – “pick device/symbol” pada jendela pick devices masukkan keywords “led green” klik LED-GREEN pada bagian result kemudian “ok”

  • IC, RESISTOR, LED-GREEN telah tampil di lembar proteus, jika belum tampil di lembar kerja, klik pada komponen yang diinginkan dan klik 2x pada lembar kerja. Sehingga tampak tampilan berikut

  • Langkah selajutnya adalah memberi catu/tegangan pada rangkaian tersebut, denga cara klik kanan pada area kerja – place – terminal - power

  • Kemudian hubungkan semua komponen seperti gambar berikut

  • Pada komponen R1 tertera nilai 10k, ubahlah ke nilai 470 denga cara klik 2x pada komponen, kemudian  pada jendela Edit Komponen, ubahlah nilai pada Resistance (Ohm) dengan angka 470, “ok”

  • Rangkaian utama telah selesai

  1. MEMPROGRAM RANGKAIAN

  • Klik kanan pada ic AT89c51 kemudian - edit propertis

  • Pada jendela edit component, isilah “program file” dengan file *.hex yang telah kita persiapkan di langkah pertama

     

  • Kemudian “ok”

  1. SIMULASI  RANGKAIAN

  • Tekan tombol “play” pada bagian bawah tampilan proteus

  • Jika berhasil maka lampu led akan berkedip dengan nyala hijau

Friday, June 10, 2011

SIMULASI DASAR MIKROKONTROLER DENGAN PROTEUS 7.7 SP2


Pada pembahasan lalu kita telah Belajar Membuat Program Lampu Led Pada Atmega-8 dengan CodeVisionAVR. Selanjutnya kita akan belajar mensimulasikan program tersebut pada ic mikrokontroler atmega8. Sebelumnya pastikan software proteus telah terinstal di PC, dapat dilihat pada panduan Instalasi Proteus 7.7 Sp2 + Patch.

  1. PEMBUATAN PROGRAM DENGAN CODEVISIONAVR

  1. PEMBUATAN RANGKAIAN MIKROKONTROLER DENGAN PROTEUS

  • Bukalah program proteus 7.7

  • Pada tampilan awal proteus, bukalah  “library” – “pick device/symbol” pada jendela pick devices masukkan keywords “atmega8” klik ATMEGA8 pada bagian result kemudian “ok”

  • Akan muncul jendela sebagai berikut

  • Klik pada ATMEGA8 kemudian klik 2x pada area kerja, sehingga ic akan nampak pada area kerja seperti berikut

  • bukalah  “library” – “pick device/symbol” pada jendela pick devices masukkan keywords “resistor” klik RESISTOR pada bagian result kemudian “ok”

  • bukalah  “library” – “pick device/symbol” pada jendela pick devices masukkan keywords “led green” klik LED-GREEN pada bagian result kemudian “ok”

  • IC, RESISTOR, LED-GREEN telah tampil di lembar proteus, jika belum tampil di lembar kerja, klik pada komponen yang diinginkan dan klik 2x pada lembar kerja. Sehingga tampak tampilan berikut

  • Langkah selajutnya adalah memberi catu/tegangan pada rangkaian tersebut, denga cara klik kanan pada area kerja – place – terminal - power

  • Kemudian hubungkan semua komponen seperti gambar berikut

  • Pada komponen R1 tertera nilai 10k, ubahlah ke nilai 470 denga cara klik 2x pada komponen, kemudian  pada jendela Edit Komponen, ubahlah nilai pada Resistance (Ohm) dengan angka 470, “ok”

  • Rangkaian utama telah selesai

  1. MEMPROGRAM RANGKAIAN

  • Klik kanan pada ic atmega8 kemudian - edit propertis

  • Pada jendela edit component, isilah “program file” dengan file *.hex yang telah kita persiapkan di langkah pertama

  • Kemudian “ok”

  1. SIMULASI  RANGKAIAN

  • Tekan tombol “play” pada bagian bawah tampilan proteus

  • Jika berhasil maka lampu led akan menyala hijau

INSTALASI PROTEUS 7.7 SP2 + PATCH

INSTALASI PROTEUS 7.7 SP2 + PATCH

Sebelum menginstal program ini, pastikan anda telah memiliki master dari proteus 7.7 SP2 disertai dengan patchnya.  Simpanlah folder master proteus pada folder misal MyDocuments, selanjutnya langkah-langkahnya adalah sebagai berikut :
  1. Jalankan pro-setup77
  2. “Next”
  3. “Next”akan tampil jendela berikut
  4. Tekan “browse for key file”
  5. Carilah key pada folder misal C:\Documents and Settings\xp\My Documents\Proteus 7.7 SP2 Pro\Patch Proteus 7.7 SP2 v1.1 dengan nama file LICENCE.lxk (letak key tergantung dimana folder master proteus disimpan)
  6. Tekan “open”, akan tampil jendela berikut
  7. Tekan “instal” kemudian “yes” akan tampak jendela berikut
  8. Tekan “close”
  9. Pastikan bahwa lisensi akan valid sampai 01/01/2030 kemudian tekan “next”
  10. Lanjutkan proses instal dengan tekan tombol “next” hingga program selesai diinstal
  11. Tekan “finish”
  12. Bukalah folder  “Patch Proteus 7.7 SP2 v1.1” yang ada pada folder master program proteus, dan jalankan file Proteus Pro 7.7 SP2 v1.1.exe
  13. Tekan “update” hingga muncul pesan update installed successfully “ok” dan “close”
  14. Program telah berhasil diinstal
  15. Untuk memastikan program proteus 7.7 SP2 berhasil diinstal bukalah Start – all program – Proteus 7 Professional – ISIS 7 Professional , akan tampil jendela sebagai berikut
  16. Sebaiknya beri centang pada “don’t show this dialogue again ?” dan tekan “no”
  17. Proteus siap digunakan

Monday, April 18, 2011

LastError $

Menunjukkan cara menggunakan "LastError $" makro yang menampilkan error sistem yang didefinisikan string terkait dengan GetLastError () fungsi API.
Penjelasan Source Code

Tugas !

Jelaskan fungsi source kode di bawah ini !
  1. fclose NULL                        
  2. invoke SendMessage,0,0,0,0         
  3. invoke RegisterClassEx,ADDR wc  

Thursday, April 14, 2011

Belajar Membuat Program Lampu Led Pada Atmega-8 dengan CodeVisionAVR

Bukalah program CodeVisionAVR dengan tampilan default sperti ini :
Klik File – New – Project – OK - yes,  sampai muncul tampilan berikut :
Pada Tab Chip, ubah pada posisi Atmega8 dan Clock pada 1 Mhz
Pada Tab Ports,  klik pada Port D
Pada Data Direction Bit 0 s/d Bit 7 ubah pada posisi “out” dengan cara klik pada kotak ” in” hingga berubah menjadi out
Kemudian File – Generate, Save and Exit  akan muncul tampilan sbb:
Simpan pada folder Anda, dengan nama terserah, misal  “coba”
Penyimpanan dilakukan 4 kali yaitu untuk file tipe:
  1. C Compiler files (*.c),
  2. Poject files (*.prj), dan
  3. C Compiler source files (*.c)
  4. CodeWizardAVR project files (*.cwp)
Simpanlah dengan nama file yang sama
Setelah semua selesai disimpan, akan muncul jendela berikut
Analisislah code yang telah dibuat:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date    : 4/15/2011
Author  : NeVaDa
Company :
Comments:
Chip type               : ATmega8
Program type            : Application
AVR Core Clock frequency: 1.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/
#include <mega8.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
while (1)
     {
     // Place your code here
     };
}
Teks program di atas adalah code yang dibuat dengan wizard secara otomatis (port, clock, tipe ic, input dan output, diatus secara otomatis), kita tinggal memasukkan code utama pada  “// Place your code here

Karena diawal kita telah mensetting port D sebagai output, maka kita akan coba membuat progam lampu pada port D. Maksudnya, lampu LED yang kita kendalikan adalah lampu LED yang tersambung pada port D pada kaki-kaki ic Atmega8.

Masukkan Kode
PORTD = 0b11110000; (tanpa petik) pada “// Place your code here”  sehingga hasilnya adalah sbb:

while (1)
     {
     PORTD = 0b11110000;
     };
}
Kemudian Project – Build All, akan muncul tampilan berikut sebagai tanda bahwa proses compiler sukses
Bukalah pada folder tempat penyimpanan file yang telah dibuat , buka folder “exe” dan cari file bertipe (*.hex) dan (*.rom)

Apabila kedua file tersebut belum ada berarti program yang kita buat masih belum berhasil, perlu diketahui saat kita mendownload program ke dalam ic atmega8, file yang dibutuhkan adalah file bertipe .hex

Thursday, April 7, 2011

TEORI MIKROPROSESOR & MIKROKONTROLLER

MIKROPROSESOR
    Sebuah mikroprosesor (sering dituliskan: µP atau uP) adalah sebuah central processing unit (CPU) elektronik komputer yang terbuat dari transistor mini dan sirkuit lainnya dalam sebuah sirkuit terintegrasi (IC)semikonduktor
    Mikroprosesor bersifat general purpose (fungsi umum, fleksibel). Sehingga berisikan sepaket chip yang hanya berfungsi sebagai pengolah data (terdiri dari ALU, PC, SP, register, clock, interrupt, data/address bus) dari memory. Dan dikarenakan tidak memiliki fitur terintegrasi sebagaimana mikrokontroler maka untuk menjadikannya dapat beroperasi kita perlu menambahkan lagi RAM, I/O, dan berbagai device/periferal lain (tergantung tujuan penggunaannya). Implementasinya misal seperti yang selama ini kita kenal dengan processor Intel dan AMD untuk PC adalah termasuk jenis ini.
    • Kemasan Mikroprosesor

      Ada empat jenis bentuk kemasan Mikroprosesor:
      1. PDIP: Pastic Dual Inline Package
      2. PLCC: Plastic J-Lieded Chip Carrier
      3. TQFP: Plastic Gull Wing Quad Flat Package
      4. SOIC: Plastic Gull-wing Small Outline.
      Ket :
      1. PDIP: Kemasan IC bahan dari plastik kaki/pin dalam dua jalur
      2. PLCC: Kemasan IC bahan dari plastik kaki/pin dalam 4 sisi mengarah    masuk
      3. TQFP: Kemasan IC bahan dari plastik dengan pin bentuk sayap di 4 sisi
      4. SOIC:  Kemasan IC bahan dari plastik dengan pin bentuk sayap di 2 sisi
      • Sistem Mikroprosesor

        Dalam prosesnya mikroprosesor adalah kesatuan sebuah sistem yang yang tidak bisa bekerja sendiri. Komponen utama sebuah sistem Mikroprosesor tersusun dari lima unit pokok:
        1. mikroprosesor atau Microprocessor Unit ( MPU) atau CPU, yang terdiri dari
        • Control Unit (CU)
        • Arithmetic Logic Unit (ALU)
        • Register Unit (RU)
        1. unit memori baca atau Read Only Memory (ROM),
        2. unit memori baca tulis atau Read Write Memory (RWM),
        3. unit masukan keluaran terprogram atau Programmable Input Output(PIO) dan
        4. unit detak/Clock.
        Gambar  Blok Diagram Sistem Mikroprosesor
        MPU adalah sebuah CPU yang tersusun dari tiga bagian pokok yaitu:
        1. Control Unit (CU)
        2. Arithmetic Logic Unit (ALU)
        3. 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 Sistim Mikroprosesor. Tanpa ada memori Sistim 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.

        ALU berfungsi sebagai bagian yang melakukan operasi aritmatik dan logika dalam memproses data. Bagian ini yang melakukan operasi bagian dalam mikroprosesor

        Sedangkan Register berfungsi untuk menyimpan data sementara hasil proses oleh mikroprosesor. Fungsinya hampir sama dengan piranti memori mikroprosesor dengan perbedaan bahwa: Memori berada diluar mikroprosesor sedangkan register berada didalam mikroprosesor, Memori diidentifikasi dengan alamat sedangkan register diidentifikasi oleh nama register oleh mikroprosesor.

        Bagian Timing & Control Unit berfungsi sebagai pembangkit daur-waktu untuk antarmuka dengan peripheral pada bus alamat, data dan kontrol. Selain itu mengendalikan bus-bus tambahan lainnya seperti interupsi, DMA dan lain sebagainya, tergantung arsitektur mikroprosesor itu sendiri.

        Sistim Bus
        Mikroprosesor berkomunikasi dengan unit memori, unit I/O menggunakan saluran yang disebut dengan BUSS. Setiap Mikroprosesor dilengkapi dengan tiga bus sebagai berikut:
        Tabel Sistem Bus
        • Nama Bus

        • Sifat
        • Arah Datadari CPU

        • Jumlah Saluran
        • Bus Data
        • Dua arah
        • Masuk dan Keluar
        • 8 bit
        • Bus Alamat
        • Satu arah
        • Keluar
        • 16 bit
        • Bus Kendali
        • Satu arah
        • Masuk dan Keluar
        • 10–12 bit
        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 di gunakan bus alamat. Bus alamat bertugas menetapkan dan memilih satu lokasi memori atau satu lokasi I/O yang hendak di akses.
        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.
        Gambar Blok Diagram Sistem Bus


        MIKROKONTROLLER
          Mikrokontroller/Pengendali mikro (Inggris: microcontroller) adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O.
          Mikrokontroler bersifat specific purpose (fungsi khusus, terbatas). Sehingga berisikan sepaket chip lengkap yang terdiri dari fitur-fitur pengolah data yang juga terdapat dalam mikroprosesor, ditambah RAM, ROM, I/O, dan fitur terintegrasi lain di dalamnya. Implementasinya dapat ditemui pada berbagai macam perangkat rumah tangga, telekomunikasi, otomotif, mesin industri, elektronik, dan perangkat-perangkat lain yang memiliki ‘otak’ (embedded system) di dalamnya.
          Diagram blok sebuah mikrokontroler
          • Kemasan Mikrokontroler

            Ada empat jenis bentuk kemasan Mikrokontroler:
            1. PDIP: Pastic Dual Inline Package
            2. PLCC: Plastic J-Lieded Chip Carrier
            3. TQFP: Plastic Gull Wing Quad Flat Package
            4. SOIC: Plastic Gull-wing Small Outline.
                • Sistem Mikrokontroler

                  Ada perbedaan yang cukup penting antara Mikroprosesor dan Mikrokontroler. Jika Mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung dari sebuah komputer, maka Mikrokontroler umumnya terdiri dari CPU, Memori , I/O tertentu dan unit pendukung, misalnya Analog to Digital Converter (ADC) yang sudah terintegrasi di dalam mikrokontroler tersebut. Kelebihan utama dari Mikrokontroler ialah telah tersedianya RAM dan peralatan I/O Pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Terdapat berbagai jenis mikrokontroler dari berbagai vendor yang digunakan secara luas? di dunia. Diantaranya yang terkenal ialah dari Intel, Maxim, Motorolla , dan ATMEL.
                  Salah satu Contoh IC mikrokontroler AT89C51:
                  IC AT89C51 mempunyai 40 pin yang sesuai dengan mikrokontroler 8031, dengan susunan kaki seperti Gambar 2 .



                  Gambar 2 Nama Pin-pin AT89C51

                  Jika kita lihat diagram blok mikrokontroler ini, terlihat jelas kesempurnaan dari fasilitas yang diberikannya. Gambar 3 merupakan diagram blok IC tersebut :

                  Gambar 3 Diagram blok AT89C51
                  Pada Gambar 3 terlihat bahwa terdapat 4 port untuk input output data, serta tersedia pula akumulator, register, RAM, stack pointer , Arithmetic Logic Unit (ALU), pengunci (latch) dan rangkaian osilasi yang membuat 89C51 dapat beroperasi hanya dengan 1 keping IC. 

                  PERBEDAAN MIKROPROSESOR & MIKROKONTROLLER
                    Jadi begini. Secara kasat mata, keduanya berupa IC. Berupa chip. Benda kecil hitam, persegi, dengan banyak kaki. Namanya saja IC, integrated circuit, jadi dia itu sebenarnya rangkaian elektronik yang sangat rumit, tapi dijadikan kecil sekali dan kompak (integrated?).

                    Jadi kalau ada yang tanya persamaan mikroprosesor dengan mikrokontroler, ya secara umum keduanya dikemas dalam bentuk IC :p

                    Nah sekarang perbedaannya. Mikroprosesor itu ya mikroprosesor. Sedangkan mikrokontroler itu adalah benda (IC) yang memiliki mikroprosesor di dalamnya, plus bonus-bonus lain, seperti periferal input/output dan memori, baik RAM maupun Flash.

                    Secara asal-usul kenapa keduanya dibuat, nah mikroprosesor itu sifatnya adalah umum. Dia semacam bisa digunakan untuk "apa saja", mulai dari untuk jadi otak komputer pribadi, sampai ke otak untuk mesin cuci. Lalu, mikrokontroler itu sifatnya lebih khusus. Dia sengaja dirancang untuk tugas "
                    pengendalian". Jaga-jaga kalau kalian belum memperhatikan, kata-kata kontroler dalam mikrokontroler artinya ya "controller", pengendali, pengatur, pengontrol.Sifat "pengendali" itu ternyata penting sekali lho. Terbukti, banyak sekali peralatan yang butuh mikrokontroler. TV, remote TV, mobil (sistem pengapian, panel digital, ABS, dll), mesin cuci, jam tangan digital, HP, Ipod, duh, banyak sekali. Dan sifatnya hampir tidak kelihatan. Lha iya, lha wong memang bentuknya kecil, ramping, dikemas dalam bentuk berupa sebuah IC... Dan katanya nih, konon mikrokontroler itu tugasnya sangat khusus dan spesifik untuk satu pekerjaan saja. Gak boleh ganti2. Ya boleh sih, tapi.... intinya, mikrokontroler dirancang untuk tugas tertentu, dan "ditanam" dalam perangkat lain sehingga "tidak kasat mata". Inilah pengertian mikrokontroler digunakan dalam sebuah embedded system.

                    Sedangkan mikroprosesor, selain tertanam dalam logic rangkaian sebuah mikrokontroler, sebenarnya secara istilah lebih merujuk ke chip komputer,
                    sih. Komputer yang besar, maksudnya. Yang bisa dipakai untuk apa-apa itu lho. General purpose, istilahnya. Bisa dipakai untuk nge-game, untuk nge-net, untuk kerja

                    microprocessor --> unit pengolah logika dan aritmatika
                    microcontroller --> micro-computer --> microprocessor + memory + I/O device + peripherals lainnya
                    Jadi dalam microcontroller itu mengandung microprocessor.

                    Secara terjemahan kasar,
                    microprocessor=pengolah,
                    mikrocontroller=pengendali.
                    Dari sini mungkin kita sudah bisa memperkirakan perbedaannya.


                    Diolah dari berbagai sumber :

                    Monday, April 4, 2011

                    pertemuan 2





                    Ubahlah teks yang bergaris bawah merah sesuai nama kamu dan teks bergaris bawah biru dengan bilangan yang lain,,,selamat mencoba.

                    Penjelasan dari kode di atas adalah :

                    ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
                        include \masm32\include\masm32rt.inc
                    ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

                    comment * -----------------------------------------------------
                                            Build this  template with
                                           "CONSOLE ASSEMBLE AND LINK"
                            ----------------------------------------------------- *

                        .code

                    start:
                      
                    ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

                        call main

                        exit

                    ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

                    main proc

                        LOCAL cloc  :DWORD
                        LOCAL wcnt  :DWORD
                        LOCAL fname :DWORD
                        LOCAL txt   :DWORD
                        LOCAL hFile :DWORD

                        sas fname,"MyFile.txt"              ; assign strings to local variables
                        sas txt,"1234567890"

                        push esi
                        mov esi, 50                         ; use ESI as a loop counter

                        .if rv(exist,fname) != 0            ; test if file exists
                          mov hFile, fopen(fname)           ; open it if it does
                        .else
                          mov hFile, fcreate(fname)         ; otherwise create a new file
                        .endif

                        mov cloc, fseek(hFile,0,FILE_END)   ; set the file pointer to the end

                      @@:
                        fprint hFile,txt
                        sub esi, 1
                        jnz @B

                        fclose hFile

                        pop esi
                        ret

                    main endp

                    ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

                    end start

                    Mari Belajar Assembly 32 Bit dengan masm32 di windows

                    Oke seperti janji saya sebelumnya, di tutorial kali ini kita akan belajar sedikit…. Dasar-dasar pemrograman assembly 32 bit secara otodidak dan menggunakan referensi dari berbagai macam sumber yang bisa kita dapatkan di internet. Saya rasa jikalau teman-teman mau berikut beberapa alamat situs yang bias dijadikan sumber referensi pemrograman assembly khusus 32 bit baik itu di platform windows maupun di linux :
                    -          http://203.148.211.201/iczelion/index.html >>> bagus nih buat belajar assembly di platform windows dengan menggunakan compiler masm32 beserta librarynya.
                    -          http://www.ilmuhacking.com/programming/belajar-assembly-di-linux/ >>> belajar assembly di platform linux dengan compiler nasm
                    -          Dst… cari di google bro…. “:D
                    Sebelumya saya juga adalah seorang pemula, dan saya baru sangat sedikit mengenal bahasa pemrograman mesin ini, tapi hal itu tidak bisa menghalangi saya untuk setidaknya mempublish dan membagikan kepada siapa saja yang tertarik membaca artikel dari saya, dan editor sendiri merasa banyak kekurangan serta perlu pembenahan dari berbagai suhu… :D
                    Oke hal yang pertama yang perlu kita pelajari adalah pengenalan itu sendiri, dan tanpa banyak basa-basi dan tanpa membuang waktu untuk menulis ulang hal yang sebenarnya sudah mubasir jika ditulis ulang untuk menghemat waktu maka ada baiknya untuk pengenalan tentang assembly 32 bit boleh teman teman langsung baca dari artikel kang Rizki Wicaksono editor dari ilmuhacking.com di alamat http://www.ilmuhacking.com/programming/belajar-assembly-di-linux/ artikel yang sangat bagus dan sangat bermanfaat menurut saya thanks bro tutorialnya :D .
                    Nah karena kang rizky sudah memberikan tutor dalam platform linux, maka kali ini kita akan belajar bersama-sama di platform windows dengan kompiler dan library yang disediakan oleh masm32.
                    Pertama kalinya kita DOWNLOAD dulu program masm32 kemudian langsung di install
                    DOWNLOAD MASM32
                    Kerangka dasar dari penulisan program assembly di platform windows menggunakan masm32 seperti ini :

                    .386
                    .MODEL Flat, STDCALL
                    .DATA
                    <inisialisasi data anda>
                    .DATA?
                    <data anda yang tidak akan diinisialisasi>
                    .CONST
                    <deklarasi konstan anda>
                    .CODE
                    <label>
                    <kode program anda>
                    end <label>
                    Mari kita analisa kerangka dasar diatas :
                    .386 ; adalah jenis CPU yang kita gunakan, dimasa nenek saya mulai megang komputer  CPU jenis 80286 masih banyak ditemui, tapi di masa sekarang CPU jenis ini jarang di temui coi… jadi di kesempatan ini kita konsentrasi saja di CPU jenis 80386, dan ini juga menjelaskan tentang kode .386 di awal penulisan kode, bahwa kita menggunakan CPU jenis 80386
                    .MODEL Flat, STDCALL ; .MODEL memberitahukan spesifikasi model memori program anda, dan di windows 32 bit hanya menggunakan model “Flat” ini menjelaskan penggunaan kode .MODEL Flat.
                    STDCALL ; memberitahukan kepada kompiler (masm) tentang bagaimana proses kerja dan cara kompiler melewati setiap parameter dalam kode program, seperti kiri ke kanan atau kanan ke kiri.
                    .DATA ;di bagian ini anda menaruh data-data pada kode program anda yang akan di inisialisi.
                    .DATA? ;dibagian ini anda menaruh data-data program yang tidak akan diinisialisasi program anda, misalnya anda ingin mengalokasikan memory program tanpa menginisialisasinya, seperti contoh jika anda mengalokasikan memory sebesar 10.000 byte di bagian .DATA? program anda, ukuran program anda tidak akan sampai 10.000 byte juga, bagian ini hanya menyampaikan ke kompiler berapa banyak ruang memory  yang diperlukan saat program  dimuat ke dalam memory. Ini menjelaskan kegunaan dari bagian .DATA?
                    .CONST ;bagian ini anda meletakkan deklarasi yang akan digunakan oleh program anda, dan bagian ini adalah bagian yang tidak akan pernah bisa di modivikasi dari program anda, bagian ini “konstan”.
                    .CODE ; di bagian ini kode program anda.
                    <label> ; digunakan untuk member spesifikasi kode anda, semua kode yang di tulis harus diantara <label> dan end <label>
                    Simple Message Box :
                    ini adalah source code messagebox kita :
                    .386
                    .model flat,stdcall
                    option casemap:none
                    include \masm32\include\windows.inc
                    include \masm32\include\kernel32.inc
                    includelib \masm32\lib\kernel32.lib
                    include \masm32\include\user32.inc
                    includelib \masm32\lib\user32.lib

                    .data
                    MsgBoxCaption  db “Iczelion Tutorial No.2″,0
                    MsgBoxText       db “Win32 Assembly is Great!”,0

                    .code
                    start:
                    invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
                    invoke ExitProcess, NULL
                    end start
                    Sebelumnya kita simpan dulu source code kita di C:\masm32\bin\ dengan nama messagebox.asm
                    Mari kita analisa bersama  kode yang baru dan asing diatas:
                    Option casemap:none ; memberitahukan kepada masm bahwa dia akan membedakan penulisan huruf besar dan kecil pada label, jadi contoh label : start akan berbeda dengan label : Start
                    include ; memberitahukan kepada masm untuk menggunakan library-library yang di butuhkan oleh program kita, di ikut sertakan dengan alamat include yang ingin kita gunakan.
                    MsgBoxCaption ; adalah inisialisasi data untuk border window program kita,
                    NULL (0) dan MB_OK ; setiap penggunaan karakter ANSI di WINDOWS harus di ikuti dengan nilai NULL atau “0” dalam bilangan hexadecimal sebagai nilai untuk mlakukan “terminated” program dan penggunaan kedua system call ini adalah default library masm di folder include/windows.inc, disinilah perbedaan library punya om masm32 dengan beberapa kompiler yang berhubungan langsung dengan mesin, di masm32 kita tidak pelu memanggil syscall yang langsung ke library mesin, dan juga tidak harus memanggil dengan inisialisasi angka, cukup dengan inisialisasi “nama” yang sudah terdapat dalam library windows.inc di masm yang kita gunakan
                    MsgBoxText ; inisialisasi untuk text dalam program kita
                    addr ; adalah perintah yang kita gunakan untuk menggantikan peranan perintah “offset” dimana kita mengasumsikan menggunakan perintah “addr” untuk memanggil variable lokal (MsgBoxCaption, MsgBoxCaption ) dalam “masm” dan tentunya akan berbeda jika kita menggunakan variable global yang tidak di inisialisasi secara lokal sebelumnya. (mungkin agak membingungkan tapi yakinlah sejalan proses pembelajaran anda akan segera mengerti dengan cepat)
                    <invoke atau call> ; Pada saat eksekusi program, eksekusi dimulai dari <label> sampai di end <label>, proses eksekusi akan terus di proses termasuk melakukan proses saat menemukan perintah – perintah control seperti MOV, CALL, ADD, JMP, JNE dll… dan untuk meng akhiri proses program hingga keluar ke window kita akan memanggil fungsi API bernama “ExitProcees” dengan perintah “call ExitProcess” atau “Invoke ExitProcess”
                    nah mari kita uji program kita,
                    pertama – tama kita buka masm editor yang berletak di C:\masm32\qeditor.exe kemudian kita buka program kita tadi (messagebox.asm).

                    kemudian kita langsung compile cukup dengan memilih menu –> Project –> Assemble & Link, kalau tidak ada error maka di folder C:\masm32\bin kita mendapatkan 2 file baru bernama “messagebox.obj” dan “messagebox.exe”
                    hore… ahirnya  program GUI pertama kita yang di tulis dalam bahasa assembly berhasil di buat, coba eksekusi file “messagebox.exe” yang sudah kita buat tadi, dan hasilnya adalah sebuah program “message box” yang sederhana.
                    Demikianlah tutorial cupu dari seorang pemula ini, yang kurang lebih bukanlah asli dari otak saya namun mengkopi habis-habisan tutorial yang bertebaran di internet, kemudian mencoba dan melakukan share ulang ke teman-teman semua dan begitulah ilmu pengetahuan, belajar dari guru dan mengembangkannnya berdasarkan penafsiran pribadi serta membagikan ulang meski tulisannya tampak seperti hasil “google translate” he he he tapi setidaknya editor sudah turut menganalisa kok :D .
                    Banyak kekurangan di tulisan pertama saya tentang pemrograman assembly ini, namun lebih dan kurangnya tolong… di maafkan, saya hanyalah orang biasa yang juga perlu belajar.
                    Tak lupa terima kasih kepada sumber referensi utama saya :
                    http://203.148.211.201/iczelion/ , http://www.ilmuhacking.com/programming/belajar-assembly-di-linux/, dan http://translate.google.com yang sudah banyak membantu dalam perbaikan kata-kata dan pengertian bahasa asingnya :D

                    sumber: http://blackpolri.wordpress.com/2010/08/27/mari-belajar-assembly-32-bit-secara-otodidak-dengan-masm32-di-windows/

                    MY LINK