sponsor blogku

Tampilkan postingan dengan label elektronika. Tampilkan semua postingan
Tampilkan postingan dengan label elektronika. Tampilkan semua postingan

Jumat, 28 Mei 2010

Program sumber assembly mikrokontroler

Program sumber assembly merupakan program yang ditulis oleh pembuat program berupa kumpulan baris-baris perintah dan biasanya disimpan dengan extension .ASM. program sumber assembly terdiri atas beberapa bagian yaitu Label, Mnemonic, Operand, dan Komentar.
1. Label
berguna dalam pemberian nama pada alamat-alamat yang dituju, karena pemberian label pada suatu alamat lebih bersifat relatif. Selain itu, label juga digunakan sebagai catatan diri alur program. Untuk membuat label, ada beberapa persyaratan yang harus dipenuhi, dimana persyaratan ini kadang-kadang juga bergantung pada program assembler yang digunakan,
yaitu :
-Harus diawali dengan huruf.
-Tidak diperbolehkan adanya label yang sama dalam satu program assembly.
-Maksimal 16 karakter.
-Tidak diperbolehkan adanya karakter spasi dalam label.
2. Mnemonic
Mnemonic atau bisa juga disebut kode operasi adalah kode-kode yang akan dikerjakan oleh program assembler yang ada pada mikrokontroller merupakan perintah-perintah atau instruksi-instruksi yang sangat bergantung dengan jenis mikrokontroller yang digunakan. Contoh, untuk keluarga MCS51 digunakan MOVX, MOV, ADD dan lain-lain.
3. Operand
Operand merupakan pelengkap dari mnemonic, jumlah operand yang dibutuhkan oleh satu mnemonic tidak selalu sama, sebuah mnemonic dapat memiliki tiga, dua, satu atau bahkan tidak memiliki operand sama sekali.
4. Komentar
Bagian komentar tidak mutlak ada dalam sebuah program, namun bagian ini sangat berguna untuk menjelaskan proses-proses kerja ataupun catatan-catatan tertentu pada bagian-bagian program. Bahkan pembuat program seringkali membutuhkannya untuk mengingat kembali jalannya program rancanganya

Rabu, 26 Mei 2010

Set Instruksi pada mikrokontroler AT89C51

Ada beberapa instruksi yang dikenal oleh mikrokontroler AT89C51 yaitu:
Instruksi aritmetika
Intruksi aritmetika mencakup penambahan (ADD), pengurangan (SUBB), perkalian (MUL),  dan pembagian (DIV).
1. Penambahan (ADD)
Instruksi ini menjumlahkan suatu data dengan isi akumulator dan hasilnya disimpan dalam  akumulator.
Operasi ADD : A←A+data
2. Pengurangan (SUBB)
Instruksi ini mengurangkan isi akumulator dengan isi carry flag dan isi data.
Operasi SUBB : A←A-C-data
3. Perkalian (MUL)
Instruksi ini mengalikan isi akumulator dengan isi register B.
Operasi MUL : AB←A*B
4. Pembagian (DIV)
Instruksi ini akan membagi isi register akumulator dengan isi register B.
Operasi DIV : AB←A/B
5. Penambahan satu (INC)
Proses ini menambahkan satu pada isi suatu register atau memori.
Operasi INC A : AB←A+B
6. Pengurangan Satu (DEC)
Proses ini kebalikan dari proses pengurangan satu.
Instruksi Logika Dengan Manipulasi Bit
1. Logika AND (ANL)
Instruksi ini melakukan proses logika AND antara suatu register dengan register, register dengan data, carry flag dengan suatu alamat, dan lain- lain.
format instruksi AND :
ANL A, @Rr
ANL A, #data
ANL alamat data, A
ANL alamat, #data
2. Logika OR (ORL)
Instruksi ini melakukan logika OR antara suatu register dengan register, register dengan data, carry flag dengan isi suatu alamat bit.
Format instruksi OR:
ORL A, @Rr
ORL A, #data
ORL alamat data, A
ORL A, alamat data
3. Logika NOT (CPL)
Instruksi ini melakukan proses logika NOT pada suatu register, carry flag, atau isi suatu alamat bit.
Format instruksi NOT:
CPL A
CPL alamat bit
4. Logika EXOR (XRL)
Instruksi ini melakukan proses logika exlusive-OR antara register dengan register, register dengan data, dan lain-lain.
5. Manipulasi Pengesetan (CLR)
Instruksi ini menyebabkan suatu bit menjadi reset atau nol
Format instruksi CLR :
CLR A
CLR alamat bit
6. Manipulasi Bit Pengesetan (SETB)
Instruksi ini akan mengeset bit yang dimaksud (atau 1)
Format instruksi SETB :
SETB C
SETB bit
7. Manipulasi Bit Pengisian (MOV)
Instruksi ini akan mengisi suatu data dalam bentuk byte
Format instruksi MOV :
MOV @Rr, A
MOV A, @Rr
MOV @Rr, #data
MOV @Rr, alamat data
MOV A, alamat data
8. Manipulasi Lompat
Program counter akan meloncat ke alamat yang dikehendaki
Format instruksinya :
JC alamat kode
JNC alamat kode
Instruksi Transfer Data
Kelompok instruksi ini digunakan untuk memindahkan data antara:
1. register-memori
2. antarmuka-register
3. antarmuka-memori
Contoh :
MOV A, R0 : Pindahkan isi register R0 ke akumulator.
MOV A, @R0 : Pindahkan isi memori yang alamatnya ditunjukkan oleh register R0 ke akumulator.
MOV A, P3 : Pindahkan isi port 3 ke akumulator.
Instruksi Percabangan
Instruksi percabangan ini dibagi dua yaitu percabangan dengan syarat dan percabangan tanpa syarat. 
Percabangan dengan syarat terdiri atas :
CJNE
Instruksi ini akan membandingkan isi register atau isi memori dengan suatu data. Bila hasil perbandingan itu sama, instruksi selanjutnya yang akan dituju. Bila tidak sama, instruksi yang ditunjuk oleh label yang akan dilaksanakan.
Format instruksi CJNE :
CJNE A, @Rr
DJNZ
Instruksi ini akan mengurangi isi register atau memori dengan satu. Bila sudah 0, instruksi selanjutnya akan dilaksanakan dan bila belum 0 instruksi dilanjutkan ke label.
Format instruksi DJNZ :
DJNZ Rr, alamat kode
DJNZ alamat data, alamat kode
JBC
Instruksi ini akan menguji suatu alamat bit. Apabila alamat bit berisi 1 (set) bit tersebut akan diclear dan selanjutnya program menuju tabel. Bila alamat bit berisi 0, instruksi selanjutnya yang akan dieksekusi.
Format instruksi JBC :
JBC alamat bit, alamat kode
Percabangan tanpa syarat meliputi :
Long Jump (LJMP) 
Format instruksi Long Jump :
LJMP alamat kode
Short Jump (SJMP)
Format instruksi Short Jump :
SJMP alamat kode

Selasa, 25 Mei 2010

Memori Eksternal mikrokontroler AT89C51

Selain PEROM dan internal RAM yang terdapat pada mikrokontroler AT89C51, DT51 juga mempunyai memori eksternal berjenis EEPROM (Electrically Erasable Programmable Read Only Memory). Sesuai dengan namanya maka EEPROM dapat ditulis dan dihapus secara elektrik, mirip seperti RAM namun bersifat non volatile sehingga data yang tersimpan dalam EEPROM tidak hilang meskipun catu daya dimatikan. AT28C64B adalah suatu memori eksternal seperti yang digunakan sebagai tambahan dalam menyimpan program dan data. Pada pengaksesannya baik dalam menulis dan membaca, memori ini tidak membutuhkan komponen luar. Didalamnya terdiri dari suatu halaman register 64 byte untuk penulisan. Memori AT28C64B memiliki 28 pin yang terdiri dari 13 pin pengalamatan, 8 pin I/O data dan 3 pin inisialisasi, serta 2 pin untuk Vcc dan ground, sedangkan 2 pin lainnya tidak dihubungkan.

           
Electrically-Erasable and Programmable Read Only
Memory (EEPROM) AT28C64B.
Untuk penggunaan memori ini seperti telah disinggung diatas, dilakukan dari mikrokontroler. Sebagai memori program, pengaturan dilakukan dari mikrokontroler pada pin ALE, pin dan pin . Pin ALE sebagai pengunci alamat, pin berfungsi untuk menentukan pengambilan instruksi. Jika disambung pada Vcc, maka mikrokontroler mengambil instruksi dari memori internal, dan bila tersambung pada ground maka pengambilan instruksi dari memori eksternal.

Senin, 24 Mei 2010

Organisasi Memori Mikrokontroller AT89C51

AT89C51 yang merupakan versi EEPROM dari 8051yang program memorinya dapat diprogram dan dihapus secara elektrik. AT89C51 mempunyai lokasi alamat yang terpisah untuk program memori dan data memori


Pemisahan memori program dan data tersebut membolehkan memori data diakses dengan alamat 8 bit, sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi oleh CPU 8 bit. Namun demikian, alamat memori data 16-bit bisa juga dihasilkan melalui register DPTR.
Blok Diagram Inti Dari AT89C
Memori Program
Memori program hanya bisa dibaca saja karena bersifat sebagai ROM. Memori ini disimpan dalam Flash PEROM. Memori program yang bisa diakses langsung hingga 64 Kbyte. Pada gambar memori program terdapat strobe (tanda) untuk akses memori program eksternal melalui sinyal (Program Strobe Enable). Mikrokontroler AT89C51 mempunyai 4 Kbyte memori program internal. Bila memakai memori program eksternal, maka pin ` ’ diberi logika Low. Apabila ingin memakai emori program internal pin diberi logika High.
Memori Data
Memori data menempati ruang alamat terpisah. Memori eksternalnya dapat diakses secara langsung hingga 64 Kbyte. CPU akan memberikan sinyal baca dan tulis selama mengakses memori data eksternal.Perincian ruang memori data internal dibagi menjadi tiga blok yaitu, 128 lower, 128 upper, dan Register Fungsi Khusus (Special Function Register = SFR). Pengaksesan langsung dengan alamat diatas 7FH mengakses suatu memori, sedangkan pengaksesan tak langsung dengan alamat di atas 7FH mengakses ruang memori lain yang berbeda. Pada memori data internal 128 byte lower terdapat empat bank dan delapan register (Ro...R7).

Pengalamatan langsung dari 80H sampai FFH tergolong dalam SFR. Berikut fungsi yang terdapat dalam SFR. 1. Program Status Word (PSW) PSW berisi bit-bit status yang berkaitan dengan kondisi CPU saat itu. PSW terletak dalam ruang SFR pada lokasi D0H.

1. Akumulator
ACC atau akumulator menempati lokasi E0H dan digunakan sebagai register untuk penyimpanan data sementara dalam program.
2. Register B
Register B terletak pada lokasi F0H. Register ini digunakan selama operasi perkalian dan pembagian. Saat intstruksi MUL AB terjadi perkalian antara akumulator dengan data yang tersimpan dalam register B dan hasilnya 16 bit disimpan dalam register B dan akumulator (A). Instruksi DIV AB melakukan pembagian antara akumulator dengan data yang tersimpan dalam register B.
3. Stack Pointer (SP)
Register SP terletak pada lokasi 81H. SP merupakan register dengan panjang 8 bit dan digunakan dalam proses simpan dan ambil dari/ke stack.
4. Data Pointer
Register Data Pointer atau DPTR mengandung byte tinggi (DPH) dan byte rendah (DPL) masing masing berada di lokasi 83H dan 82H. DPTR dapat dimanipulasi sebagai dua register 8 bit yang terpisah.
5. Port 0, Port 1, Port 2, Port 3
P0, P1, P2, P3 masing-masing menempati lokasi 80H, 90H, A0H, dan B0H.
6. Register Kontrol (Control Register)
Pada register kontrol terdapat TMOD sebagai pewaktu.
7. Timer Register
Timer register merupakan register pencacah 16 bit. Timer 0 high dan timer 0 low terdapat pada masing-masing 8CH dan 8AH. Timer 1 high dan Timer 1 low terdapat dilokasi 8DH dan 8BH.



Mikrokontroller AT89C51

Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di dalamnya. Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Mikrokontroler AT89C51 ialah mikrokomputer CMOS 8 bit dengan 4 KB Flash PEROM (Programmable and Erasable Only Memory) yang dapat dihapus dan ditulisi sebanyak 1000 kali. Mikrokontroler ini diproduksi dengan menggunakan teknologi high density non-volatile memory Atmel. Flash PEROM on-chip tersebut memungkinkan memori program untuk diprogram ulang dalam sistem (in-system programming) atau dengan menggunakan programmer non-volatile memory konvensional. Kombinasi CPU 8 bit serba guna dan Flash PEROM, menjadikan mikrokontroler AT89C51 menjadi microcomputer handal yang fleksibel. Karakteristik lainya dari mikrokontroler AT89C51 sebagai berikut :
- Low-power
- 32 jalur masukan/keluaran yang dapat diprogram
- Dua timer counter 16 bit
- RAM 128 byte
- Lima interrupt Arsitektur perangkat keras 89C51 mempunyai 40 kaki, 31 kaki digunakan untuk keperluan 4 buah port pararel. 1 port terdiri dari 8 kaki yang dapat di hubungkan untuk interfacing ke pararel device, seperti ADC, sensor dan sebagainya, atau dapat juga digunakan secara sendiri setiap bitnya untuk interfacing single bit septerti switch, LED, dll.
Fungsi dari mikrokontroler AT89C51 secara keseluruhan dapat digambarkan yaitu sebagai berikut :
Pin 1 sampai 8
Adalah kelompok pin untuk port 1. Port 1 ini merupakan port I/O dua arah yang digunakan untuk penghubungan dengan peralatan luar.
Pin 9
Adalah masukan reset. Dimana ketika ada masukan sinyal dalam waktu tertentu pada pin ini, mikrokontroler akan di reset.
Pin 10 sampai 17
Adalah port 3 yang juga merupakan port I/O.Port 3 terdiri dari  pin-pin yang diperlihatkan tabel dibawah ini.

Pin 18
Adalah XTAL 2 yaitu untuk keluaran dari inverting oscillator amplifier. XTAL 2 digunakan untuk pewaktuan mikrokontroler
Pin 19
Adalah XTAL 1 yaitu masukan untuk inverting oscillator amplifier dan masukan untuk rangkaian sumber detak (clock).
Pin 20
Adalah ground dan diberi simbol gnd. Pin ini terhubung dengan jalur netral/ground dari rangkaian pengatur daya.
Pin 21 sampai 28
Adalah port 2 yang juga sebagai port I/O.
Pin 29
Adalah Program Store Enable ( ), yaitu masukan sinyal baca untuk memori program eksternal agar masuk ke dalam bus selama proses pemberian/pengambilan instruksi (fetching).
Pin 30
Adalah Address Latch Enable (ALE) yaitu keluaran yang menghasilkan pulsa-pulsa untuk mengancing byte rendah alamat selama mengakses eksternal. Selain itu pin ini juga berfungsi sebagai atau masukan pulsa program selama pemograman.
Pin 31
Adalah External Acces Enable ( ) yang merupakan sinyal kontrol untuk pembacaan memori program. Apabila diset rendah (L) maka mikrokontroler akan melaksanakan seluruh instruksi dari memori program eksternal, sedangkan jika diset tinggi (H) maka mikrokontroler akan melaksanakan instruksi dari memori program internal ketika isi program kurang dari 4096. Port ini juga berfungsi sebagai tegangan pemograman (Vpp = + 12V) selama proses pemograman.
Pin 32 sampai 39
Adalah merupakan port 0 dan berfungsi sebagai I/O.
Pin 40
Adalah Vcc atau sumber tegangan. Pin ini dihubungakan dengan jalur positif dari rangkaian pengatur daya

Sign up for PayPal and start accepting credit card payments instantly.

click here