Minggu, 25 September 2011

MEMBUAT PROGRAM LED BERJALAN DENGAN BAHASA ASSEMBLY PADA MIKROKONTROLER MCS-51(AT89S52)

Sebelumnya kita mengenal terlebih dahulu mikrokontroler MCS-51 yang dimana kali ini kita menggunakan AT89S52. Berikut fitur-fitur yang dimiliki Mikrokontroler AT89S52 :

Sebuah CPU ( Central Processing Unit ) 8 Bit.

256 byte RAM ( Random Acces Memory ) internal

Empat buah port I/O, yang masing masing terdiri dari 8 bit

Osilator internal dan rangkaian pewaktu.

Dua buah timer/counter 16 bit

Lima buah jalur interupsi ( 2 buah interupsi eksternal dan 3 interupsi internal).

Sebuah port serial dengan full duplex UART (Universal Asynchronous Receiver Transmitter).

Mampu melaksanakan proses perkalian, pembagian, dan Boolean.

EPROM yang besarnya 8 KByte untuk memori program.

Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5 μs pada frekuensi clock 24 MHz. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 MHz, maka kecepatan pelaksanaan instruksi adalah 1 μs



















 Gambar Mikrokontroller AT89S52 (MCS-51)

KONFIGURASI PIN




Mikrokontroler AT89S52 mempunyai 40 pin dengan catu daya tunggal 5 Volt. Ke-40 pin
tersebut digambarkan sebagai berikut :



Fungsi dari masing-masing pin AT89S52 adalah :
1.      Pin 1 sampai 8 (Port 1) merupakan port pararel 8 bit dua arah (bidirectional)  yang    dapat digunakan untuk berbagai keperluan ( general purpose).
2.      Pin 9 merupakan pin reset, reset aktif jika mendapat catuan tinggi.
3.      Pin 10 sampai 17 (Port 3) adalah port pararel 8 bit dua a rah yang memiliki fungsi pengganti sebagai berikut :
     P3.0 (10) : RXD (port serial penerima data)
     P3.1 (11) : TXD (port serial pengirim data)
     P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)
     P3.3 (13) : INT1 (input interupsi ekstrernal 1, a ktif low)
     P3.4 (14) : T0 (eksternal input timer / counter 0)
     P3.5 (15) : T1 (eksternal input timer / counter 1)
     P3.6 (16) : WR (Write, aktif low) Sinyal kontrol penulisan data dari port 0 ke memori data dan input-output eksternal.
•   P3.7 (17) : RD (Read, aktif low) Sinyal kontrol pembacaan memori data input -      output eksternal ke port 0.
4.      Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.
5.      Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung pada kristal.
6.      Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
7.      Pin 21 sampai 28 (Port 2) adalah port pararel 8 bit dua arah. Port ini mengirim byte alamat bila pengaksesan dilakukan pada memori eksternal.
8.      Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan untuk membaca, memindahkan program memori eksternal (ROM / EPROM) ke mikrokontroler (aktif low).
9.      Pin 30 sebagai ALE (Address Latch Enable) untuk menahan alamat bawah selama mengakses memori eksternal. Pin ini juga berfungsi s ebagai PROG (aktif low) yang diaktifkan saat memprogram internal flash memori pada mikrokontroler (on chip).
10.  Pin 31 sebagai EA (External Accesss) untuk memilih memori yang akan digunakan, memori program internal (EA = Vcc) atau memori program eksterna l (EA = Vss),   juga berfungsi sebagai Vpp (programming supply voltage) pada saat memprogram   internal flash memori pada mikrokontroler.
11.  Pin 32 sampai 39 (Port 0) merupakan port pararel 8 bit dua arah. Berfungsi sebagai alamat bawah yang dimultipleks den gan data untuk mengakses program dan data memori eksternal.
12.  Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.
13.  Berikut cara Menghubungkan Rangkaian Led Dengan Mikrokontroler Mcs-51 :
 
 
Gambar Rangkaian Led dengan Mikrokontroler
Berikut program led berjalan yang akan kita buat menggunakan bahasa
assembler dengan asumsi kita menggunakan crystal 12 MHZ :
1.      Buka program notepad / text editor anda kemudian ketikkan listing program dibawah ini :



                          $MOD51 
                          ORG 0000h

MULAI :             MOV P1, #01h    ; mengisi P1 dengan 1

                          CALL TUNDA     ; memanggil subfungsi TUNDA

                          MOV P1, #02h     ; mengisi P1 dengan 2

                          CALL TUNDA    

                          MOV P1, #04h    ; mengisi P1 dengan 4

                          CALL TUNDA

                          MOV P1, #08h    ; mengisi P1 dengan 8

                          CALL TUNDA

                          MOV P1, #10h    ; mengisi P1 dengan 16

                          CALL TUNDA

                          MOV P1, #20h     ; mengisi P1 dengan 32

                          CALL TUNDA

                          MOV P1, #40h    ; mengisi P1 dengan 64

                          CALL TUNDA

                          MOV P1, #80h    ; mengisi P1 dengan 128

                          CALL TUNDA

                          AJMP MULAI
TUNDA :

                          MOV R1, #2         ; 1 siklus mesin

T1:                     MOV R2, #244    ; 1 siklus mesin

T2:                     MOV R3, #255     ; 1 siklus mesin

T3:                     DJNZ R3, T3         ; 2 siklus mesin * 255

                          DJNZ R2, T2         ; 2 siklus mesin * 244

                          DJNZ R1, T1         ; 2 siklus mesin * 2

                          ; = 1+((1+((1+(2*256))*(2*244))*(2*2)))

                          ; = 1001381 mikrosecond

                          RET
                          End



2.      Simpan proyek anda dengan eksistensi .asm contoh led.asm, di dalam satu folder dengan program ASM51.
3.      Buka Command Prompt dan masukkan direktori folder tempat menyimpan ASM51, contoh : D:\assembler\asm51
4.      Langkah selanjutnya ketik nama file program assembler anda tadi contoh : led.asm. kemudian enter dan perhatikan jika tidak ada kesalahan akan muncul ASSEMBLY COMPLETE, 0 ERROR FOUND.
5.      SELAMAT MENCOBA..!!!

0 komentar:

Poskan Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More