POST-TITLE-HERE

Posted by Author On Month - Day - Year

POST-SUMMARY-HERE

POST-TITLE-HERE

Posted by Author On Month - Day - Year

POST-SUMMARY-HERE

POST-TITLE-HERE

Posted by Author On Month - Day - Year

POST-SUMMARY-HERE

POST-TITLE-HERE

Posted by Author On Month - Day - Year

POST-SUMMARY-HERE

POST-TITLE-HERE

Posted by Author On Month - Day - Year

POST-SUMMARY-HERE

On 19.43 4 komentar
Microcontroller AT89S51 Microcontroller AT89S51 Microcontroller AT89S51
Microcontroller AT89S51 Microcontroller AT89S51 Microcontroller AT89S51

Tak kenal maka ta`aruf,karena seperti kata pepatah TAK KENAL MAKA TAK SAYANG.., kenalkan nama saya Agus Triariyanto lulusan STM N 1 Surakarta Teknik Elektronika tahun ajaran 2008/2009.
Selamat datang di Blog saya, kurangassem.com
Blog anak stm yang akan menularkan sedikit ilmu yang telah dipelajarinya
tentang Microcontroller type AT89S51, karena dengan ditularkan “kaya virus aja”
ilmu itu tidak akan habis, insya allah malah akan bertambah dan bermanfaat..amin…
Karena saya juga pemula dalam belajar microcontroller, bila ada salah kata atau
dalam pembahasan, mohon kritik dan bimbingannya.,

--------------------------------------------------------------------------------------
1. MICROCONTROLLER AT89S51
Sebelum pembahasan kita mulai mari kita awali dengan membaca BASMALAH
dalam hati terlebih dahulu.
BISMILLAHIRROHMANIRROHIIM…
Mari kita belajar bersama-sama mengenal microcontroller.
Microcontroller yang akan kita bahas kali ini adalah microcontroller dengan type AT89S51.
Microcontroller 89S51 adalah Microcontroller yang memiliki 40 pin
merupakan salah satu turunan keluarga MCS51 keluaran ATMEL dan telah menjadi
salah satu standart dunia industri.

ATMEL mempermudah penggunaan microcontroller ini,
karena microcontroller ini dilengkapi dengan teknologi ISP (In Sistem Programing),
yang dapat diprogram secara serial, langsung dari computer anda dengan bantuan
rangkaian DOWNLOADER yang akan menghubungkan antara computer anda dengan IC Microcontroller.
Rangkaian downloader ini dapat anda buat sendiri, dengan biaya yang sedikit
dan mudah dalam pembuatannya.
Pembuatan rangkaian downloader ini akan kita bahas nanti,pada bab pembuatan downloader
microcontroller_sabar lulu eaaa…

Gambar block diagram microcontroller AT89S51





Konfigurasi pin mikrokontroler


[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]


FUNGSI-FUNGSI PIN DALAM MCS51

• RST (RESET)
RST terdapat pada pin 9 yang merupakan reset, jika pada pin ini diberi
logika tinggi selama 2 siklus maka register-register internal akan berisi
nilai default setelah direset.

• EA (External Acces)
EA terdapat pada pin 31. EA harus dihubungkan dengan ground (0) jika ingin
mengakses program dari memori luar, sedangkan jika ingin mengakses program
internal maka pin EA harus dihubungkan dengan VCC (1).

• ALE (Addres Latch Enable)
ALE merupakan suatu pulsa keluaran untuk mengaktifkan byte bawah dari alamat
selama mengakses memori luar.

• PSEN (Program Store Enable)
Pin ini berfungsi sebagai pulsa pengaktif untuk membaca program memori luar.
Saat Microcontroller melaksanakan instruksi dari program memori luar,
PSEN akan diaktifkan dua kali tiap siklus mesin,
kecuali pada saat mengakses data memori luar.

• ON-Chip Oscillator
Microcontroller AT89S51 telah memiliki on-chip OSC yang dapat bekerja dengan
menggunakan kristal external yang dapat dihubungkan ke pin XTAL1 dan XTAL2.
tambahan kapasitor diperlukan untuk menstabilkan system. Nilai kristal yang
bisa digunakan adalah 4 MHz sampai 24 MHz. on-chip OSC juga dapat menggunakan
eksternal oscillator yang cukup dihubungkan pada pin XTAL1.

• Konektor Catu
Keluarga MCS51 beroperasi pada tegangan 5 Volt terdapat pada pin 40 untuk VCC
dan pin 20 untuk Ground.


PARALEL PORT
Pada microcontroller AT89S51 terdapat 4 port (P0-P3). Masing-masing port
terdiri dari 8 bit yaitu dari 0 sampai dengan 7, dan menempati lokasi memory
pada alamat 80H untuk Port 0,
90H untuk Port 1, A0H untuk Port 2, dan B0H untuk Port 3.


• Port 0 (P0)
Port 0 merupakan port parallel 8 bit yang bersifat dua arah (bidiretional)
yaitu bisa sebagai masukan ataupun keluaran tergantung program yang dikehendaki.
Contoh penggunaan P0 sebagai out put, misalnya mengeluarkan data 01 (hex),
instruksinya MOV P0,#01H atau MOV 80H,#01H.
pembahasan tentang instruksi-instruksi pada microcontroller AT89S51 lebih lengkapnya
dan lebih detailnya akan kita bahas pada bab selanjutnya..

• Port 1 (P1) dan Port 2 (P2)
Port 1 dan Port 2 sama halnya dengan port 0 sifatnya bideretional berfungsi
sebagai port masukan maupun keluaran.

• Port 3 (P3)
Port 3 juga merupakan port parallel 2 arah namun memiliki fungsi khusus yakni:
? P3.0 memiliki fungsi khusus: RXD (masukan port serial “UART”)
? P3.1 memiliki fungsi khusus: TXD (keluaran port serial “UART”)
? P3.2 memiliki fungsi khusus: INT0 (masukan interupsi luar 0)
? P3.3 memiliki fungsi khusus: INT1 (masukan interupsi luar 1)
? P3.4 memiliki fungsi khusus: T0 (masukan luar timer / counter 0)
? P3.5 memiliki fungsi khusus: T1 (masukan luar timer / counter 1)
? P3.6 memiliki fungsi khusus: WR (pulsa penulisan data memori luar)
? P3.7 memiliki fungsi khusus: RD (pulsa pembacaan data memori luar)


--------------------------------------------------------------------------------------

2. PEMBAHASAN PROGRAM
2.1 Pengenalan bahasa assembly
Bahasa assembly atau bahasa rakitan adalah merupakan singkatan-singkatan ataupun
istilah-istilah dari instruksi pada microcontroller.
$MOD51 adalah merupakan assembler control. ASM51 membutuhkan MOD51 agar ASM51
dapat mengenali semua register milik 89S51.
MOD51 harus selalu disertakan dalam Liting program
dengan cara menuliskan $MOD51 diawal program.

2.2 Instruksi-instruksi MCS51
Secara keseluruhan MCS51 memiliki 255 macam instruksi yang dibentuk
dan instruksi tersebut dikelompokkan sebagai berikut:

-> Kelompok instruksi transfer data
Instruksi dasar untuk kelompok ini adalah MOV yang artinya memindahkan
atau dengan kata lain memindahkan data. Contoh:

MOV A,60H ; artinya salin isi lokasi memory 60H ke register A
MOV A,P1 ; artinya salin isi latch port 1 ke register A

-> Kelompok instruksi aritmatik
Kelompok instruksi aritmatik selalu melibatkan register Akumulator (register A)
dan hanya beberapa yang melibatkan register lain. Instruksi aritmatik dikelompokkan
menjadi beberapa kelompok,antara lain: Penjumlahan (ADD), Pengurangan (SUBB),
Perkalian (MUL), Pembagian (DIV), Penambahan 1 atau increment (INC),
dan Pengurangan 1 atau decrement (DEC). contoh:

ADD A,#23H ; jumlahkan langsung isi akumulator dengan sebuah bilangan 23H
ADD @R0 ; jumlahkan A dengan isi lokasi memory yang ditunjuk R0
SUBB A,#23H ; kurangkan isi reg A dengan data23H secara langsung
SUBB A,@R1 ; kurangkan isi reg A dengan isi lokasi memory yang ditunjuk R1
MUL AB ; register A dikali dengan reg B
DIV AB ; register A dibagi dengan reg B
DEC A ; reg A – 1
INC A ; reg A + 1
INC #50H ; hasilnya 51H

-> Instruksi percabangan (jumping)
Dengan instruksi ini kita dapat “loncat” dari satu alamat ke alamat yang
lain sesuai dengan kebutuhan program.
Loncat Bersyarat (Jumping Conditional)
Instruksi loncat bersyarat ini akan dilaksanakan jika syaratnya terpenuhi.
Contoh;

JZ ; (Jumping Zero) jika reg A=0 maka instruksi
loncat ke alamat yang dituju
JNZ ; (Jumping No Zero) jika reg A=1 maka instruksi loncat ke alamat yang dituju

Instruksi-instruksi lainnya akan segera kami upload..

-> Instruksi sub rutin
-> Instruksi addressing modes


--------------------------------------------------------------------------------------

3. PEMBUATAN DOWNLOADER MICROCONTROLLER
Rangkaian downloader ini komponen utamanya adalah IC MICROCONTROLLER AT89S51,
yang cukup banyak dijumpai dipasaran dengan kisaran harga sekitar 15-ribuan.
Pada microcontroller MCS51 terdapat 4 buah port (p0-p3) masing-masing selebar 8 bit.
Untuk mengatur kondisi keluarannya dapat digunakan perintah-perintah MOV, CLR, SETB.
Disini juga dipasang sebuah kristal 12 MHz, . sebab pada microcontroller
MCS51 satu siklus mesin membutuhkan waktu 12 periode clock.

Berikut gambar rangkaian downloader microcontroller:



Petunjuk Penggunaan Rangkaian Down-loader :
1. Buatlah sebuah folder dikomputer anda dan berilah nama Mikrokontroler.
2. Copy-lah semua isi folder "Program compiler' yang terdiri dari
ASM.EXE, $MOD51, dan AEC_ISP.EXE ke dalam folder "Mikrokontroler"
yang sudah anda buat tadi. Program-program compiler dapat anda download di
http://www.aec-elektronics.co.nz



--------------------------------------------------------------------------------------

4. TATA CARA MEMBUAT PROGRAM PADA MCS51
-> Petunjuk Pembuatan Program Edit menjadi Format Heksa :

(catatan: sebuah Mikrokontroler hanya dapat diprogram/ditulisi dengan
menggunakan file dengan format Biner/Heksa atau sering disebut sebagai bahasa Mesin.
Untuk mengubah file bahasa manusia (file edit) menjadi file bahasa Mesin (file Heksa)
maka digunakan sebuah COMPILER atau program Compiler.
Tata cara pengunaan program Compiler dapat dilihat pada keterangan dibawah ini :

1. Buatlah sebuah program sederhana dengan menggunakan layar Edit "Notepad"
dari Windows 98, Windows ME atau Windows XP. Kemudian simpanlah (dengan perintah Save As)
ke dalam folder "Mikrokontroler" yang ada dalam komputer anda dengan
sebuah nama (maksimal 8 karakter) dan diberi ekstensi .ASM "
(sebagai contoh : latihan1.ASM) kemudian simpan dengan type All files
2. Bukalah program Asm51.exe (Application) dalam folder "Mikrokontroler"
yang ada dalam komputer anda untuk meng-Compiler program Edit,
kemudian masukkan nama file Edit yang sudah anda buat tadi kemudian di-enter
(sebagai contoh : latihan1.ASM).
Setelah di-Compiler maka akan dihasilkan 2 buah file hasil kompilasi, yaitu:
latihan1.HEX dan latihan1.LST. Lihatlah kesalahan (error) yang terdapat
dalam program Edit anda dengan cara melihat jumlah error yang ditampilkan pada
layar program Compiler (Asm51). Jika masih terdapat error, maka lihatlah error tersebut
dengan cara membuka file latihan1.LST menggunakan program "WordPad" yang ada dalam
Windows 98, Windows ME, atau Windows XP pada komputer anda. Perbaiki error dalam
program Edit anda dan simpanlah (dengan perintah Save As) dengan nama yang berbeda
(contoh: latihan2.ASM) kemudian kompilasi lagi dengan menggunakan program Compiler (Asm51)
, lihatlah error yang masih terdapat pada file program Edit yang kedua tesebut.
Jika sudah tidak ditemukan error dalam program Edit anda
(ditandai dengan 0 error pada layar program Compiler),
maka anda bisa langsung masuk ke langkah 3.
(catatan : program Asm51 digunakan untuk merubah program Edit menjadi file Heksa).

3. Bukalah program AEC_ISP dalam folder "Mikrokontroler" yang ada
dalam komputer anda untuk men-download file Heksa ke dalam IC Mikrokontroler.


-> Petunjuk Pengisian File Heksa ke dalam IC Mikrokontroler :

1. Bukalah program AEC_ISP dalam folder "Mikrokontroler" yang ada dalam komputer
anda untuk men-download file Heksa ke dalam IC Mikrokontroler. Setelah tampil layar
dari program AEC_ISP kemudian ikuti langkah-langkah dibawah ini.
2. Sorotlah "(J) Setup" lalu tekan enter, atur semua parameter pemrograman
IC Mikrokontroler termasuk tipe IC mikrokontroler yang akan diprogram,
kemudian sorotlah "(S) Save setup" lalu tekan enter untuk menyimpan parameter pemrograman.
3. Sorotlah "(A) Load HEX file to Flash buffer" lalu tekan enter untuk
memasukkan file Heksa yang akan diisikan ke dalam IC Mikrokontroler.
4. Masukkan file Heksa yang akan diisikan ke dalam Mikrokontroler,
lalu tekan enter (sebagai contoh: latihan1.HEX).
5. Sorotlah "(I) Reset ------------ Low" lalu tekan enter untuk mereset Mikrokontroler.
6. Sorotlah "(E) Program" lalu tekan enter untuk memprogram IC Mikrokontroler.
7. Sorotlah "(I) Reset ------------ Low" lalu tekan enter untuk
mengembalikan Mikrokontroler ke posisi normal (run).
8. Matikan catu daya dari rangkaian, kemudian lepaslah
hubungan Kabel Data dari komputer ke rangkaian, dan Mikrokontroler
telah siap digunakan untuk aplikasi



-------------------------------------------------------------------------------------

Contoh Sederhana Rangkaian Aplikasi dengan Microcontroller AT89S51
1. Menyalakan Led.
Rangkaian dan program berikut merupakan dasar untuk menyalakan led.


[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]


Gambar 1.1. Menyalakan led dengan menggunakan port paralel


• Rangkaian 1. Menyalakan led secara keseluruhan.
Mengacu pada Gambar 1.1.

1: ; --------------------------------------------------------
2: ; - program untuk menyalakan led secara keseluruhan -
3: ; - Gambar 1.1. nama file : Satu-1.ASM -
4: ; --------------------------------------------------------
5: $MOD51
6: ORG 00h ; alamat awal program utama
7: MOV P1, #00000000b ; semua led pada Port-0 menyala
8: ulang: NOP ; tanpa operasi
9: JMP ulang ; kembali ke alamat dengan label ulang
10: END ; selesai

Penjelasan program:
Baris 6 menandakan bahwa lokasi awal program berada pada memory
program alamat 00h. Led hidup aktif low, sehingga untuk menyalakan led maka
Port-0 harus diberi logika 0. Perintah pada baris 7 dapat diganti dengan
perintah MOV P1, #00h. Setelah itu mikrokontroler akan mengerjakan perintah
tanpa operasi (baris 8).
Program pada rangkaian 1 akan menyebabkan semua led pada Port-0 menyala.
Untuk membuat nyala led sesuai dengan keinginan, maka kita tinggal mengubah nilai
data langsung pada Port-0 dengan catatan: led akan hidup jika diberi logika 0.

• Rangkaian 2. Menyalakan led melalui Port paralel.
Mengacu pada Gambar 1.1.

1: ; ---------------------------------------------------------
2: ; - program untuk menyalakan led melalui Port paralel -
3: ; - Gambar 1.1. nama file : Satu-2.ASM -
4: ; ---------------------------------------------------------
5: $MOD51
6: ORG 00h ; alamat awal program utama
7: MOV P1, #10101010b ; led genap menyala & led ganjil padam
8: ulang: NOP ; tanpa operasi
9: JMP ulang ; kembali ke alamat dengan label ulang
10: END ; selesai


• Rangkaian 3. Menyalakan led dengan perintah CLR.
Mengacu pada gambar 1.1.

1: ; ---------------------------------------------------------
2: ; - program untuk menyalakan led dengan perintah CLR -
3: ; - Gambar 1.1. nama file : Satu-3.ASM -
4: ; ---------------------------------------------------------
5: $MOD51
6: ORG 00h ; alamat awal program utama
7: CLR P0.0 ; led pada P0.0 menyala
8: CLR P0.3 ; led pada P0.3 menyala
9: CLR P0.7 ; led pada P0.7 menyala
10: ulang: NOP ; tanpa operasi
11: JMP ulang ; kembali ke alamat dengan label ulang
12: END ; selesai

Penjelasan program:
Program pada rangkaian 3 diatas menggunakan perintah CLR.
Perintah pada baris 7 dapat diganti dengan perintah CLR 80h,
seperti terlihat pada rangkaian 4 dibawah ini. Program pada rangkaian 4
merupakan operasi bit pada mikrokontroler (ingat kembali tentang ruang
teralamati-bit pada peta memory RAM internal dan SFR dari mikrokontroler AT89S51)

• Rangkaian 4. Menyalakan led dengan operasi bit.
Mengacu pada Gambar 1.1.

1: ; ---------------------------------------------------------
2: ; - program untuk menyalakan led dengan operasi bit -
3: ; - Gambar 1.1. nama file : Satu-4.ASM -
4: ; ---------------------------------------------------------
5: $MOD51
6: ORG 00h ; alamat awal program utama
7: CLR 80h ; led pada P0.0 menyala
8: CLR 83h ; led pada P0.3 menyala
9: CLR 87h ; led pada P0.7 menyala
10: ulang: NOP ; tanpa operasi
11: JMP ulang ; kembali ke alamat dengan label ulang
12: END ; selesai

Setelah kita sudah bisa menyalakan led dengan berbagai macam
variasi perintah (program), tentunya tidaklah asyik kalau kita tidak dapat
membuat nyala dari led itu menyala secara berkedip-kedip.
Dibawah ini akan diberikan beberapa contoh program untuk menyalakan
led secara berkedip-kedip dengan memanfaatkan RAM internal sebagai tundaan (delay).

• Rangkaian 5. Menyalakan led secara berkedip-kedip.
Mengacu pada Gambar 1.1.

1: ; ------------------------------------------------------
2: ; - Program untuk menyalakan Led secara berkedip -
3: ; - Gambar 1.1 nama file: Satu-5.ASM -
4: ; ------------------------------------------------------
5: $MOD51
6: ORG 00h
7: ulang: MOV P0, #00h ; semua led pada Port-0 menyala
8: CALL tunda ; panggil sub-program tunda
9: MOV P0, #0FFh ; semua led pada port-0 padam
10: CALL tunda ; panggil sub-program tunda
11: JMP ulang ; kembali ke alamat ulang
12: ; -------------------------------------------------------
13: tunda: MOV R5, #20d ; awal program tunda
14:tunda1: MOV R6, #100d ; register-5 diisi data 100 desimal
15:tunda2: MOV R7, #250d
16: DJNZ R7, $ ; 2 x 250 = 500 uS
17: DJNZ R6, tunda2 ; 500 uS x 100 = 50.000 uS = 50 mS
18: DJNZ R5, tunda1 ; 50 mS x 20 = 1.000 mS = 1 S
19: RET ; kembali ke program utama
20: ; --------------------------------------------------------
21: END ; selesai

Penjelasan program:
Baris 7 akan membuat semua led pada Port-0 menyala.
Baris 8 akan memanggil sub-program tunda. Program akan diawali dengan mengisi R5
(Register serbaguna) dengan data langsung, kemudian terjadi pengurangan nilai pada R7
(baris 16) sampai nilai pada R5 menjadi nol. Setelah itu program akan kembali
lagi ke program utama yang sebelumnya ditinggalkan, ditandai dengan instruksi RET (return).
Pengerjaan instruksi pada baris 16 memerlukan 2 cycle,
dimana 1 cycle sebesar 1 uS, sehingga total waktunya adalah 2 x 1 uS x 250 = 500 uS.

2. Penggunaan Push Button (saklar) sebagai masukan
Rangkaian dan contoh programnya akan segera kami
| edit post

    BTricks

    Facebook Fans