Minggu, 12 Januari 2014

SURYANI
11.11.2376
TI 11 B

Mikrokontroler AT89S51/52
Mikrokontroler adalah suatu semikonduktor yang mengandung banyak transistor
dalam ruang yang kecil. Mikrokontroler merupakan komponen yang dapat menyimpan
program kontrol yang digunakan untuk mengendalikan berbagai komponen sesuai dengan
tujuan pembuatannya.
Mikrokontroler AT89S51 buatan ATMEL yang merupakan pengembangan
mikrokontroler standard MCS-51 memiliki fitur:
 PEROM (Programmable Erasable Read Only Memory) 4 kbyte untuk program
 RAM internal 128 byte
 In-System Programming
 4 buah port I/O masing-masing 8 bit (P0 – P3)
 2 buah Timer/counter 16 bit
 5 buah sumber interupsi
 Sebuah port serial full duplex
 Tiga level penguncian program (menghindari pembajakan program)
 Memiliki mode operasi daya rendah



Gambar 1.1. Pin Mikrokontroler AT89S51
 
Berikut adalah penjelasan mengenai fungsi dari tiap-tiap pin (kaki) yang ada pada mikrokontroller AT89S52.
a. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada disain yang minimum (sederhana), port 0 digunakan sebagai port Input/Output (I/O).. Port 0 terdapat pada pin 32-39.
b. Port 1
Merupakan port yang hanya berfungsi sebagai port I/O (Input/Output). Port 1 terdapat pada pin 1-8.
c. Port 2
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O (Input/Output). Sedangkan pada desain lebih lanjut digunakan sebagai high byte dari address (alamat). Port 2 terdapat pada pin 21-28.
d. Port 3
Merupakan dual-purpose port. Selain sebagai port I/O (Input/Output), port 3 juga mempunyai fungsi khusus. Fungsi khusus tersebut diperlihatkan




PERCOBAAN
DISPLAY LED
TUJUAN:
1. Peserta memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan LED.
2. Peserta dapat memahami program assembly untuk menghidupkan dan mematikan LED.
3. Peserta memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RL. RR, RLC dan
RRC
4. Peserta memahami pembuatan instruksi waktu tunda
Percobaan 1.1. Instruksi RL/ RR ( Rotate Left dan Right )
Pada percobaan ini, sebuah LED akan berjalan dari kiri ke kanan dan sebaliknya, program
ini memanfaatkan instruksi RL dan RR.
Ketik program berikut ini:
ORG 0H
MAIN : MOV A,#11111110B
MOV R5,#7H
CF: MOV P1,A
CALL DELAY
RL A
DJNZ R5,CF
MOV A,#01111111B
MOV R5,#7H
CF2 : MOV P1,A
CALL DELAY
RR A
DJNZ R5,CF2
SJMP MAIN
DELAY : MOV R2,#0H
DELAY1 : MOV R3,#90H
DELAY2 : MOV R4,#1
DJNZ R4,$
DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET
END
Modul Mikrokontroler AT89S51/52
12
1. Simpanlah program yang anda ketik dan beri nama : Led01.H51
Pada Command Prompt lakukan kompilasi program dari *.H51 ke *.hex.
2. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
3. Lakukan pengamatan pada LED
4. Lakukan perubahan pada program tersebut untuk menjalankan dua buah LED kekiri dan
kekanan, tiga buah LED kekiri dan kekanan , dan seterusnya.
Percobaan 1.2. Instruksi RLC/ RRC ( Rotate Left dan Right )
Pada percobaan ini, sebuah LED akan berjalan dari kiri ke kanan dan sebaliknya dengan
bentuk Bar, program ini memanfaatkan instruksi RLC dan RRC.
Ketik program berikut ini:
ORG 0H
MAIN : MOV A,#11111111B
MOV R5,#8H
CF : CLR C
RLC A
MOV P1,A
CALL DELAY
DJNZ R5,CF
MOV R5,#8H
CF2 : SETB C
RRC A
MOV P1,A
CALL DELAY
DJNZ R5,CF2
SJMP MAIN
DELAY : MOV R2,#0H
DELAY1 : MOV R3,#0H
DELAY2 : DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET
END
1. Simpanlah program yang anda ketik dan beri nama : Led02.H51
Pada Command Prompt lakukan kompilasi program dari *.H51 ke *.hex.
2. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
3. Lakukan pengamatan pada LED
4. Lakukan perubahan pada program tersebut untuk menjalankan dua buah LED kekiri dan
kekanan, tiga buah LED kekiri dan kekanan , dan seterusnya.

          Implementasi  Program LED
Pada percobaan ini, Untuk menghubungkan pin CONTROL dari DT51 ke pin  CONTROL Trainer board kabel 1 dan 2 harus dibalik, hal ini dikarenakan posisi VCC dan GND pada DT-51 terbalik, kabel ini disebut sebagai kabel X. 
*      Port 1 sebagai input
                                  
Langkah-langkahnya:
  • Hubungkan Port 1 DT-51 dengan “PORT INPUT” Dt-51 trainer Board
  • Hubungkan Port A DT-51 dengan “PORT OUTPUT” DT-51 Trainer Board
  • Hubungkan “CONTROL” DT-51 dengan “CONTROL” DT-51 Trainer Board menggunakan kabel tipe X
  • Buat program berikut:
$mod51
                  CSEG
                  ORG   4000H
                  LJMP START
                  ORG   4100H
START:
                  MOV   SP,      30H
INIT:           MOV   DPTR, #2003H
                  MOV   A,#80H
                  MOVX   @DPTR, A
LABEL1:              JB       P1.4, DISPLAY
DISPLAY2:          MOV   DPTR,#2000H
                              MOV   A, #00H
                              MOV   @DPTR, A
                              SJMP             LABEL1
DISPLAY:             MOV DPTR, #2000H
                              MOV A, #10H
                              MOVX @DPTR, A
                              SJMP LABEL1
                              END
Jika program dijalankan, jika toggle switch  Bit 4 berlogika 0 maka semua LED akan padam (masuk ke label DISPLAY2), jika toggle switch Bit 4 berlogika 1 maka hanya LED Bit 4 yang menyala(masuk ke label DISPLAY). Sebagai catatan, penggunaan P1.4 tidak mutlak, nilai 00H dan 10H dapat diganti dengan nilai lain untuk output ke LED.
*      Penggunaan Interupsi
Langkah-langkah :
·         Hubungkan Port 1 DT-51 dengan “PORT OUTPUT” DT-51 Trainer Board
·         Hubungkan “CONTROL” DT-51 dengan “CONTROL“ DT-51 Trainer Board
·         Hubungkan “IS1” dengan “INT0” pada DT-51 Trainer Board, karena kita ingin menggunakan interrupt eksternal (pin INT0 dan INT1)
·         Buat program berikut :
$mod51
                                    CSEG
                                    ORG   4000H
                                    LJMP START
                                    ORG   4003H
                                    RL A
                                    MOV   P1, A
                                    MOV   R7, #04H
            LOOPA:         MOV   R6,#0FFH
            LOOPB:         MOV   R5, #0FFH
                                    DJNZ R5, $
DJNZ R6, LOOPB
DJNZ R7, LOOPA
RETI
ORG 4200H
                        ;inisialisasi
                        START:          MOV SP, #30H
                                                MOV TCON, #01H
                                                MOV A, #01H
                                                MOV P1, #01H
                                                MOV IE, #81H
                                                SJMP $
                                                END
Program diatas akan menampilkan nyala LED dari Bit 0 dan bergeser ke kiri setiap ada penekanan keypad “IS1”. Untuk mengunakan INT0 dengan falling edge trigger maka INT0 (TCON.0) berlogika 1, sehingga TCON bernilai 00000001b(01H). Untuk mengaktifkan interrupt, maka EX0 (IE.0) dan EA(IE.7) berlogika 1 sehingga IE bernilai 10000001b (81H), terlihat juga bahwa pada saat interupsi program melompat ke alamat vector 0003H yang oleh DT-51 langsung dipindah ke alamat 4003H. Fungsi DJNZ digunakan untuk mengurangi satu dan lompat jika hasilnya bukan nol

Pengertian Mikrokontroler


Mikrokontroler adalah komputer mikro dalam satu chip
tunggal. Mikrokontroler memadukan CPU, ROM, RWM,
I/O paralel, I/O seri, counter-timer, dan rangkaian clock
dalam satu chip tunggal. Mikrokontroler berbeda dengan
mikroprosesor dalam beberapa hal. Mikrokontroler
memadukan memori untuk menyimpan program atau
data pheriperal I/O untuk berkomunikasi dengan alat
luar. Pemanfaatan mikrokontroler saat sangat populer di
bidang kendali dan instrumentasi elektronik. Hal ini
terjadi karena mikrokontroler memiliki keunggulan dan kemudahan dalam penggunaannya. Disamping
harganya yang sangat murah dibandingkan sistim lainnya. Gambar 4 menunjukkan blok diagram sebuah mikrokontroler.