Anda di halaman 1dari 18

1

Sistem minimum AT89S52 dengan Output LED



1. Alat-Alat Yang Digunakan
Alat-alat yang digunakan dalam melakukan komunikasi serial ini adalah sebagai berikut.
1. PC ( Laptop )
2. Downloader
3. Rangkaian Sistem Minimum AT89S52
Komponen terdiri dari :
IC AT89S52 1 buah
Kapasitor 22pF 2 buah
Kapasitor 0,1F 1 buah
LED 8 buah
Kristal 16.000 MHz 1 buah
Saklar Push Button 1 buah
Resistor 10K 1 buah
Resistor 680 8 buah
Socket 40 Pin 1 buah
Pin Header Single Secukupnya
4. Rangkaian Catu Daya 5 Volt
Komponen terdiri dari :
Dioda Bridge 1 buah
IC 7805 1 buah
Transistor TIP3055 1 buah
Kapasitor 2000 F 1 buah
Kapasitor 300 F 1 buah
Resistor 680 1 buah
Led 1 buah
Jumper






2


2. Teori Dasar
2.1 Mikrokontroler
2.1.1.1 Deskripsi
Mikrokontroler AT89S52 adalah sebuah mikrokontroler buatan ATMEL.
Mikrokontroler ini masih termasuk dalam keluarga mikrokontroler MCS-51 yaitu merupakan
versi yang dilengkapi dengan ROM tersendiri (internal). Mikrokontroler AT89S52 adalah
mikrokontroler dengan konsumsi power yang rendah dan performa yang tinggi ( low power -
high performance ) CMOS 8-bit dengan 8K bytes dari ISP (In Serial Programming) Flash
memory. IC mikrokontroler ini sesuai dengan standar MCS-51. Baik dari instruksi maupun
pin-pinnya dapat diaplikasikan sebagai Embedded Controller.

Fitur yang disediakan oleh Mikrokontroler AT89S52 ini adalah:
1. Kompatibel dengan produk MCS-51.
2. 8K byte In Serial Programmable Flash Memory
Dapat dilakukan pemrograman 1000 tulis dan hapus.
3. Range catu daya 4,0V s/d 5,5V.
4. Operasi statis: 0 Hz s/d 33 MHz.
5. Tiga Tingkat Program memory lock.
6. 256 x 8 bit RAM internal.
7. 32 Programmable Jalur I/O.
8. Dua 16 bit Timer/ Counter.
9. Enam Sumber Interupsi.
10. Full Duplex Serial Channel.
11. Low Power Idle dan Mode Power Down.
12. Watch Dog Timer.
13. Dual Data Pointer.
14. Power Off Flag.
15. Waktu pemograman cepat (Fast Programming Time).
16. Fleksibel ISP programming.

2.1.1.2 Konfigurasi Pin Mikrokontroler AT89S52

Adapun konfigurasi pin Mikrokontroler AT89S52 dapat dilihat pada gambar 2.1 dan
penjelasan fungsi tiap-tiap pin adalah sebagai berikut:
Pin 40, VCC
Merupakan pin untuk Tegangan Supply

Pin 20, GND
Pin untuk dihubungkan ke Ground atau Vss

Pin 32 s/d 39 adalah Port-0
3

Port 0, merupakan port I/O 8 bit open drain dua arah. Sebagai sebuah port, setiap pin dapat
mengendalikan 8 input TTL. Ketika logika 1 dituliskan ke port 0, maka port dapat
digunakan sebagai input dengan high impedansi. Port 0 dapat juga dikonfigurasikan untuk
multipleksing dengan address/data bus pada saat mengakses memori program atau data
eksternal. Pada mode ini P0 harus mempunyai pull up.

Pin 1 s/d pin 8 adalah Port1
Port 1 merupakan port I/0 8 bit dua arah dengan internal pull up. Buffer output port 1 dapat
mengendalikan empat TTL input. Port 1 juga menerima alamat byte rendah selama
pemrograman dan verifikasi flash.
Fungsi Alternatif Port1
P1.5 MOSI ( digunakan untuk In System Programming )
P1.6 MISO ( digunakan untuk In System Programming )
P1.7 SCK ( digunakan untuk In System Programming )

Pin 21 s/d pin 28 adalah Port2
Port 2 merupakan port I/O 8 bit dua arah (biderectional) dengan internal pull up. Buffer
output port 2 dapat mengendalikan empat TTL input. Ketika logika 1 dituliskan ke port 2,
maka port ini akan mendapatkan internal pull up untuk digunakan sebagai input.

Pin 10 s/d 17 adalah Port3
Port 3 merupakan port I/O 8 bit dua arah dengan internal pull up serta memiliki fungsi
pengganti. Fungsi pengganti meliputi TxD (Transmite Data), RxD (Receiver Data), Int0
(Interrupt 0), Int1 (Interrupt 1), T0 (timer 0), T1 (Timer 1), WR (Write), dan RD (Read). Bila
fungsi pengganti tidak dipakai, pin pin ini dapat digunakan sebagai port parallel 8 bit serba
guna (multipurpose).
Tabel 2.1 Fungsi Khusus Port 3

4


Pin9, RST
Masukan reset aktif high. Pulsa transisi dari rendah ke tinggi akan mereset AT89S52. Pin ini
dihubungkan dengan rangkaian power on reset yang terdiri dari sebuah kapasitor dan sebuah
resistor yang berfungsi sebagai pembangkit frekuensi.

Pin 30, ALE/PROG
Address Latch Enable ( ALE ) merupakan pin untuk menerima pulsa output yang akan
mengunci byte low dari alamat tertentu, selama terjadi akses memori eksternal. Pin ini juga
merupakan input pulsa pemrograman selama pemrograman flash (paralel). Pada operasi
normal, ALE mengeluarkan suatu laju clock konstan sebesar 1/6 dari frekuensi oscilator, dan
dapat digunakan untuk pewaktu eksternal.

Pin 29, PSEN
Program Store Enable. Merupakan strobe read untuk penyimpanan memori program
eksternal.

Pin 31, EA/ VPP
Eksternal Access Enable. EA harus di hubungkan ke GND untuk enable chip, guna
memasuki memori eksternal untuk alamat 0000H s/d FFFFH. Sementara untuk akses memori
internal, EA harus dihubungkan ke VCC.
Pin ini juga menerima tegangan pemrograman (VPP).

Pin 18 (XTAL 1)
Pin masukan ke rangkaian osilator internal. Sebuah osilator kristal atau sumber osilator luar
dapat digunakan.
Pin 19 (XTAL 2)
Pin keluaran ke rangkaian osilator internal. Pin ini dipakai bila menggunakan osilator kristal.


5

Gambar 2.1 (a) Konfigurasi Pin ; (b) Bentuk Fisik Mikrokontroler AT89S52

2.1.1.3 Blok Diagram

Mikrokontroller AT89S52 dibangun berdasarkan arsitektur seperti ditunjukkan pada gambar
2.2 Seluruh bagian yang digambarkan pada gambar tersebut saling berhubungan melalui
internal bus - 8bit menelusuri seluruh bagian keping. Bus tersebut kemudian dihubungkan
keluar melalui port input/output apabila memori atau ekspansi diperlukan. Setiap blok
diagram memiliki hubungan fungsi yang erat dengan blok fungsi lainnya, yang bekerja secara
sinkron sesuai dengan akses pemograman.
Adapun blok diagram Mikrokontroler AT89S52 dapat dilihat pada gambar 2.2.


Gambar 2.2 Blok Diagram Mikrokontroller AT89S52

a. ALU (Aritmatic Logic Unit)
ALU adalah suatu unit yang melaksanakan proses aritmatik dan logika seperti penjumlahan,
pengurangan, pembagian, AND, OR, X OR, rotasi, clear dan komplemen operasi
percabangan.

b. Akumulator
Akumulator adalah merupakan register aritmatika yang berfungsi sebagai penempung data
sebelum dan sesudah proses. Sebagian besar instruksi pemrosesan pada AT89S2051
menggunakan akumulator sebagai operand sumber atau tujuan pengiriman data dan ke port.
c. Register B
Register B digunakan selama operasi perkalian/pembagian 8 bit dan dapat juga digunakan
sebagai register operand sumber atau operand tujuan.

d. Stack pointer
6

Stack pointer digunakan sebagai tempat penyimpanan variabel data yang ditindih dalam
memori atau sebagai register petunjuk.

e. RAM (Random Acces Memory)
RAM adalah memori yang dapat dibaca atau ditulis. Data dalam RAM akan terhapus
(volatile) bila catu daya dihilangkan. Karena sifat RAM yang volatile ini, maka program
mikrokontroler tidak disimpan dalam RAM. RAM pada IC ini mempunyai kapasitas sebesar
128 byte x 8 bit.

f. TMP1/TMP2 (Timer/Counter)
TMP1/TMP2 berfungsi sebagai timer/counter 16 bit yang terangkai secara internal.

g. Program Address Register
Program address register merupakan alamat register dari program.

h. Buffer
Buffer pada IC ini merupakan penyangga agar data yang dipindahkan dari suatu register ke
register lain tetap atau tidak berantakan.

i. RAM Address Register
RAM address register merupakan sebagai jalan menuju RAM. Semua pengolahan data
memakai RAM harus terlebih dahulu melewati RAM address register
2.1.1.4 Organisasi Memori
Semua piranti 8051 termasuk AT89S52 mempunyai ruang alamat yang terpisah untuk
memori program dan memori data. Seperti yang ditunjukkan pada gambar 2.3, pemisahan
secara logika dari memori program dan data. Memori program ( ROM, EPROM dan FLASH
) hanya dapat dibaca, tidak dapat ditulis. Memori program dapat mencapai sampai 64K byte.
Pada AT89S52, 8K byte memori program terdapat didalam chip. Untuk membaca memori
program eksternal mikrokontroller mengirim sinyal PSEN ( program store enable ).


Gambar 2.3 Diagram organisasi memori mikrokontroller AT89S52
7

Memori data ( RAM ) menempati ruang alamat yang terpisah dari memori program. Pada
mikrokontroler AT89S52, 128 byte terendah dari memori data berada didalam chip dan RAM
eksternal maksimal sebesar 64K byte. Dalam pengaksesan RAM eksternal, mikrokontroller
mingirimkan sinyal RD (Read ) dan WR (Write). Diagram arsitektur memori mikrokontroler
famili 8051 dapat dilihat pada gambar 2.4.


Gambar 2.4 Arsitektur Memori Mikrokontroller 8051

2.1.1.5 Memori Program
Memori program atau ROM adalah tempat menyimpan data yang permanen. Memori
program bersifat nonvolatire artinya tanpa dicatu, data data tidak akan hilang. Memori
program hanya dapat dibaca saja. Gambar 2.4 menunjukkan suatu peta bagian bawah dari
memori program. Setelah reset, CPU mulai melakukan eksekusi dari lokasi 0000H.
Pada memori program ditempatkan sebuah interupsi pada alamat tertentu. Interupsi
menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu
atau sebuah label subrutin yang harus dikerjakan. Jika interupsi ini tidak digunakan, lokasi
layanan ini dapat digunakan untuk berbagai keperluan sebagai memori program.

2.1.1.6 Memori Data
Memori data atau RAM ( Random Acces Memori ) adalah tempat menyimpan data yang
bersifat sementara. Memori ini bersifat volatile, yaitu data akan hilang bila catu daya
dimatikan.Pada gambar 2.4 menunjukkan ruang memori data internal dan eksternal pada
keluarga 8051.

8


Gambar 2.5 Memori data internal


Dalam pemograman, RAM ini akan terpisah secara fisik. 128 byte RAM bagian bawah
dikelompokkan lagi menjadi beberapa blok, seperti yang ditunjukkan pada gambar 2.5. 32
byte RAM bagian bawah, dikelompokkan menjadi 4 bank yang masing-masing terdiri dari 8
register. Instruksi program untuk memanggil register-register ini dinamai sebagai R0 sampai
dengan R7. Dua bit pada Program Status Word (PSW) dapat memilih register bank mana
yang akan digunakan. Penggunaan register R0 sampai dengan R7 ini akan membuat
pemrograman lebih efisien dan singkat, bila dibandingkan pengalamatan secara langsung.

2.2 Motor DC
Motor DC merupakan jenis motor yang menggunakan tegangan searah sebagai sumber
tenaganya. Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan
berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran
motor akan terbalik pula. Polaritas dari tegangan yang diberikan pada dua terminal
menentukan arah putaran motor sedangkan besar dari beda tegangan pada kedua terminal
menentukan kecepatan motor.

Motor DC memiliki 2 bagian dasar :
1. Bagian yang tetap/stasioner yang disebut stator. Stator ini menghasilkan medan magnet,
baik yang dibangkitkan dari sebuah koil (elektro magnet) ataupun magnet permanen.
2. Bagian yang berputar disebut rotor. Rotor ini berupa sebuah koil dimana arus listrik
mengalir.

Gaya elektromagnet pada motor DC timbul saat ada arus yang mengalir pada penghantar
yang berada dalam medan magnet. Medan magnet itu sendiri ditimbulkan oleh megnet
permanen. Garis-garis gaya magnet mengalir diantara dua kutub magnet dari kutub utara ke
9

kutub selatan. Menurut hukum gaya Lourentz, arus yang mengalir pada penghantar yang
terletak dalam medan magnet akan menimbulkan gaya. Gaya F, timbul tergantung pada arah
arus I, dan arah medan magnet B.




Belitan stator merupakan elektromagnet, dengan penguat magnet terpisah F1-F2. Belitan
jangkar ditopang oleh poros dengan ujung-ujungnya terhubung ke komutator dan sikat arang
A1-A2. Arus listrik DC pada penguat magnet mengalir dari F1 menuju F2 menghasilkan
medan magnet yang memotong belitan jangkar. Belitan jangkar diberikan listrik DC dari A2
menuju ke A1. Sesuai kaidah tangan kiri jangkar akan berputar berlawanan jarum jam.
Gaya elektromagnet pada motor DC timbul saat ada arus yang mengalir pada penghantar
yang berada dalam medan magnet. Medan magnet itu sendiri ditimbulkan oleh megnet
permanen. Garis-garis gaya magnet mengalir diantara dua kutub magnet dari kutub utara ke
kutub selatan. Menurut hukum gaya Lourentz, arus yang mengalir pada penghantar yang
terletak dalam medan magnet akan menimbulkan gaya. Gaya F, timbul tergantung pada arah
arus I, dan arah medan magnet B. Arah gaya F dapat ditentukan dengan aturan tangan kiri
seperti pada gambar berikut.




Gambar Konstruksi Motor DC

10

Gambar Penentuan Arah Gaya Pada Kawat Berarus Listrik Dalam Medan Magnet




Gambar Contoh jenis-jenis Motor DC



11

2.3 Driver Motor DC L293D
Rangkaian driver motor yang menggunakan IC L293D ini sangatlah sederhana, karena hanya
membutuhkan 1 IC saja, langsung dihubungkan ke motor DC.

Berikut ini adalah contoh rangkaiannya :
Untuk merubah kecepatan motor, kita bisa
menggunakan PWM yang kemudian dihubungkan dengan kaki 1 dan 9


keterangan :
) untuk mengendalikan motor kiri :
A--> high, B--> high maka Motor Kiri --> berhenti
A--> high, B--> low maka Motor Kiri -->maju
A--> low, B--> high maka Motor Kiri -->mundur
A--> low, B--> low maka Motor Kiri -->mundur
) untuk mengendalikan motor kanan :
C--> high, D--> high, maka Motor Kanan --> berhenti
C--> high, D--> low, maka Motor Kanan --> maju
C--> low, D--> high, maka Motor Kanan --> mundur
C--> low, D--> low, maka Motor Kanan --> mundur







12

Langkah Percobaan
a. Buat rangkaian Sistem Minimum AT89S52 dan rangkaian Catu daya 5 volt.















(A)

Tataletak Komponenya









(C)
13

Gambar 1. Rangkaian Sistem Minimum AT89S52 Dengan Output LED 8 Bit
b. Buat rangkaian driver motor DC menggunakan IC L293D

Layout Rangkaian

Tata Letak Rangkaian
14



b. Untuk dapat menjalankan percobaan tersebut, buatlah program pada bascom 8051 yang
sesuai dengan percobaan yang dilakukan.

Gambar 2 Kode Program untuk Mikrokontroler AT89S52 pada Bascom 8051
c. Setelah program selesai, program harus di download atau flash ke IC AT89S52 dengan
menggunakan downloader. Software yang digunakan untuk mendownload adalah prog
ISP

15

Gambar 3. Tampilan software Prog ISP
Kode Program di ambil dalam File berbentuk HEX
d. Setelah Selesai, maka selanjutnya akan dilakukan pengetesan agar program berjalan
sebagaimana mestinya.

3. Hasil Percobaan

a. Rangkaian Sismin AT89S52


b. Rangkain Driver Motor DC L293D





16





c. Downloader





Pada percobaan yang dilakukan ini adalah pengujian rangkaian sistem minimum
AT89S52 dengan keluaran output motor DC di port 3
Adapun langkah pengujian pada rangkain Sistem minimum AT89S52 dengan led
sebagai output, Sebagai berikut :
1. Lakukan percobaan program/simulasi menggunakan software ISIS Proteus


Gambar simulasi motor DC


2. Apabila program telah benar, lalu Masukan program bascom 8051 yang telah diprogram
sebelumnya dalam bentuk .hex
17


d. Gambar Percobaan Rangkaian Sismin dan Motor DC

3. Tekan tombol reset pada mikrokontroler agar program motor dapat beroperasi dengan
baik.

4. Analisa
IC L293D biasa digunakan untuk mengendalikan 2buah motor DC. IC ini juga sering
disebut H-bright driver motor DC. IC L293D dirancang untuk mengendalikan 2 motor DC
dengan 2 arah putaran dan kecepatan putar motor.
Prinsip kerja driver menggunakan IC L293D adalah Pin EN1 adalah pin untuk
mengenablekan motor 1 (ON / OFF) biasanya Pin EN1 dihubungkan dengan PWM untuk
mengontrol kecepatan motor. Sementara untuk EN2 fungsinya sama dengan EN1 bedanya
EN2 untuk mengontrol motor DC 2.
Sementara untuk mengontrol arah putar motor saya tamplikan dalam table seperti
berikut:

Kondisi Motor DC 1 In1 In2
Fast Motor Stop 0 0
Putaran Searah jarum jam 0 1
Putaran berlawanan arah jarum jam 1 0
Fast Motor Stop 1 1

Kondisi Motor DC 2 In3 In4
Fast Motor Stop 0 0
18

Putaran searah jarum jam 0 1
Putaran berlawanan arah jarum jam 1 0
Fast Motor Stop 1 1

Jika IN1 diberi logik 1 dan IN2 diberi logik 0, maka motor A akan berputar kebalikan
arah jarum jam. Dan sebaliknya jika IN1 diberi logik 0 dan IN2 diberi logik 1, maka motor A
akan berputar searah jarum jam. Jika memberi logik 1 atau 0 pada IN1 dan IN2 bersamaan,
Motor A akan berhenti (Pengereman Secara Cepat). Begitu juga dengan motor B. Sementara
untuk mengatur kecepatan motor adalah dengan mengatur input dari enable 1 (pin1) dan
enable 2 (pin9) menggunakan PWM (Pulse Width Modulation)




Kesimpulan
1. Sistem minimum AT89S52 memiliki satu tombol switch button sebagai reset untuk
memulai kembali jalannya program. Saat program tidak berjalan semestinya.
2. Sistem minimum AT89S52 hanya memiliki 8bit pada masing saluran I/O.
3. IC AT89S52 mempunyai kapasitas memory 8 kb dan dapat di program sampai 1000x
4. IC AT89S52 bekerja pada tegangan 4,5 sampai 5 VDC
5. Sistem Minimum AT89S52 ini mengeluarkan logic 1 ( Positif ) pada setiap Portnya
6. Apabila In1 dan In2 diberi logic 1 atau 0 pada keduanya maka motor akan berhenti