AT89S52 Interfacing

advertisement
Lab Elektronika Industri
Mikrokontroler 1
DESIGN INTERFACE PADA AT89S52
8k Byte In-System Programmable 8bit Mikrokontroler
I. FITUR UTAMA
Perancangan interface terkait dengan fasilitas
port yand ada pada mikrokontroler. AT89S52
memiliki fasilitas :
a. 4 paralel port dua arah (input/output) yaitu
P0, P1, P2 dan P3 masing-masing 8 bit yang
bisa diakses secara byte maupun bit.
b. 1 serial port dengan standart USART
(Universal
Synchronous-Asynchronous
Recever-Transmitter) yang beroperasi secara
full-duplex. Serial port mempunyai saluran
RXD dan TXD.
c. 3 timer/counter T0, T1 dan T2 dengan
berbagai mode operasi.
d. 8 sumber interupsi: 2 sumber eksternal RST,
INT0, INT1 dan 5 sumber interupsi internal:
2 karena receive dan transmit UART, 3
timer/counter overflow.
e. Mendukung memori program eksternal
hingga 64KB
f. Mendukung memori data eksternal hingga
64KB.
I. PORT PARALEL
P0, P1, P2 dan P3 mempunyai rangkaian internal seperti gambar di bawah. Port 0 tidak
dilengkapi dengan resistor pull-up internal sedang port-port lainnya telang dilengkapi dengan
resistor pull-up internal. Adanya resistor pull-up ini, setiap bit di masing-masing port bisa
mengeluarkan arus, walaupun sangat kecil kecil, ketika port diberikan logika tinggi. Semua bit
di masing-masing port bisa menarik arus cukup besar ketika port diberi logika rendah. Khusus
port 0, setiap bit harus ditambahkan resistor pull-up eksternal sebesar 4k7 – 10k ohm. Tabel di
bawah menjelaskan kemampuan setiap port untuk menarik arus maupun ketika mengeluarkan
arus.
Iwan B Pratama Mei 2008
Lab Elektronika Industri
Mikrokontroler 2
Logika 0
Logika 1
Port 0
≤ 20mA
≤ -800µA
Port 1
≤ 10mA
≤ -50µA
Logika 0
Logika 1
Port 2
≤ 10mA
≤ -50µA
Port 3
≤ 10mA
≤ -50µA
Kondisi ini membawa konsekuensi sebagai berikut:
1. Port paralel P0, P1, P2 dan P3 sebaiknya dibuat aktif logika rendah karena bisa menangani
arus yang jauh lebih besar dibanding jika aktif pada logika tinggi.
2. Pada saat aktif logika rendah, port-port bisa langsung menghidupkan LED yang diseri
dengan R = 330Ω.
3. Sebagai port input, data baru bisa dibaca masuk ke LATCH jika sebelumnya port diberi
logika tinggi lebih dulu.
Catatan: saat reset semua port akan diberi logika tinggi semua.
Setiap output port yang aktif logika rendah bisa langsung menghidupkan LED, opto-transistor,
driver transistor PNP, atau opto-triac seperti rangkaian gambar di bawah.
Port bisa langsung menghidupkan LED, display 7 segment, atau LED pada opto-coupler. Cara
menghubungkan ke optocoupler transistor (4N35, TIL111) seperti rangkaian ke-2 sering dipakai
jika ingin antara mikrokontroler dengan aktuator terisolasi secara listrik. Alasan lain
menggunakan opto-transistor adalah karena bagian aktuator memakai tegangan kerja yang jauh
lebih besar dari 5V.
Diperlukan interface/driver transistor PNP (BD140) seperti rangkaian ke-3 jika beban yang
digerakkan memerlukan arus dan tegangan kerja yang lebih besar. Beban yang bisa digerakkan
oleh transistor misalnya: speaker, relay, lampu DC, motor-motor DC kecil, motor stepper kecil
dll. Dibagian beban bisa diganti dengan rangkaian transistor lagi untuk menangani daya yang
lebih besar.
Iwan B Pratama Mei 2008
Lab Elektronika Industri
Mikrokontroler 3
Rangkaian ke-4 sering dipakai untuk interface dengan beban yang bekerja dengan listrik AC
dengan opto-triac (MOC3021, MOC3041). Di bagian output bisa disambungkan ke TRIAC yang
lebih besar untuk menangani daya yang lebih besar.
Jika logika rendah dituliskan ke port maka LED dirangkaian 1, 2 dan 4 akan menyala karena port
akan bertegangan 0V sehingga akan timbul arus dari +5V – lewat LED – lewat R 330 – masuk
ke port. Persamaannya menjadi:
5V – VLED (=2V) – I.R – 0V = 0
atau
I = 3V/330Ω = 9mA
Perhatikan, 0V di persamaan ini karena tadi menganggap bahwa tegangan port adalah 0V. Dalam
praktek tegangan port akan sedikit lebih tinggai, misal 0.1V, sehingga arus yang muncul sedkit
lebih kecil.
Dirangkaian ke-3, jika port diberi logika rendah transistor akan menghantarkan arus lewat beban
(keadaan ON). Hal ini karena, misal beban berupa motor DC 5V dengan resistansi 60Ω dan
transistor BD140 dengan hfe = 50, akan muncul arus basis dari 5V – lewat motor – kaki EB
transistor – lewat R 330 – masuk ke port. Karena terjadi arus basis maka akan muncul arus
kolektor yang besarnya, IC = hfe x IB dan arus IE = IB + IC = IB + hfe.IB = IB (hfe + 1).
5V – IE.RMOTOR – VEB – IB.R330 – 0V = 0
5V – IB(50+1)(60Ω) – 0.7V – IB.330 = 0
IB = 1.27mA sehingga
IC = 63.4mA
Jika port diberi logika 1 maka tegangan port adalah 5V sehingga LED atau transistor di
rangkaian atas akan mati. Hal ini karena tidak akan muncul arus yang lewat LED maupun arus
I B.
Port Aktif Logika Tinggi
Adakalanya dalam pengendalian diinginkan agar port aktif pada logika tinggi. Untuk ini
rangkaian interface yang sering digunakan adalah seperti gambar dibawah.
Rangkaian ke-1 menggunakan transistor MOSFET tipe N misalnya IRF540. Transistor ini
mampu mengalirkan arus hingga 15A dengan tegangan hingga 60V. Kelebihan lain dari mosfet
adalah resistansi ON yang ekstra rendah (RON < 0.05Ω). Kelebihan ini membuat Mosfet sangat
cocok untuk berbagai kendali aktuator, kendali motor dengan PWM, motor steper, servo motor
dll. Dengan mosfet tidak membutuhkan penyerap panas yang besar seperti halnya transistor
bipolar. Kekurangan dari mosfet adalah pada harga yang mahal.
Iwan B Pratama Mei 2008
Lab Elektronika Industri
Mikrokontroler 4
Rangkaian kedua menggunakan IC yang berisi transistor darlington seperti ULN2003 atau
ULN2803. IC ULN2803 misalnya berisi 8 transistor darlington yang masing-masing bisa
mengalirkan arus hingga 500mA pada tegangan hingga 50V. Masing-masing transistor
darlington bisa diparalel agar bisa menangani arus yang lebih besar.
Pada interface mode ini, jika diberikan logika 1 pada port, transistor akan ON dan arus bisa lewat
ke beban yang menjadi hidup. Dan jika logika 0 diberikan ke port maka transistor akan OFF
demikian juga beban akan mati. Pengguna harap hati-hati, karena semua port AT89S52 akan
diisi logika 1 pada saat reset sehingga dengan software segera mematikan port dengan memberi
logika 0 ke port. Jika tidak dilakukan, setelah reset semua peralatan yang aktif logika tinggi akan
menyala dan bisa berbahaya.
Model interface seperti ini cocok untuk mengendalikan beban dengan arus yang relatif besar
(>100mA hingga 10A) pada tegangan yang relatif besar (<50V). Interface ini bisa untuk beban
seperti motor DC, motor stepper, solenoid dll.
Interface Tidak Benar
Rangkaian ke-1 tidak benar karena menghubungkan LED langsung dari 5V ke port.
Kesalahannya adalah ketika port diberi logika 0, maka seharusnya port akan bertegangan 0V.
Tetapi karena tegangan drop LED ketika menyala hanya 2V, maka sekarang masih ada tegangan
3V yang harus dihilangkan. Rangkaian ini bisa merusak LED maupun merusak circuit internal di
port.
Rangkaian ke-2 tidak benar karena kita mencoba menyalakan LED dengan aktif logika tinggi.
Saat port diberi logika tinggi, kita berharap LED akan menyala, tetapi tidak menyala. Ingat saat
diberi logika tinggi, port AT89S52 hanya bisa mengalirkan arus keluar sebesar 50µA yang tidak
cukup untuk menyalakan LED.
Rangkaian ke-3 salah karena saat port diberi logika tinggi berharap transistor akan OFF, tetapi
tidak. Saat port diberi logika tinggi, tegangan port adalah 5V, sedangkan tegangan rangkaian
transistor adalah 15V, sehingga masih akan terjadi arus IB yang akan memunculkan arus IC, jadi
transistor selalu ON.
Iwan B Pratama Mei 2008
Lab Elektronika Industri
Mikrokontroler 5
Instruksi Assembler
Port P0, P1, P2 dan P3 bisa diakses secara paralel maupun secara bit per bit. Secara paralel
berarti ke delapan jalur port (bit7 hingga bit0) ditulisi atau dibaca secara bersamaan. Sedangkan
secara bit berarti masing-masing bit dalam port bisa ditulisi atau dibaca sendiri-sendiri.
Instruksi assembler untuk akses secara paralel misalnya:
Mov P0,#11101110b
;mengaktifkan P0.4 dan P0.0 sedang lainnya mati
Mov P0,27h
;
Mov P0,R0
;
Mov P0,@R0
;
Mov
Mov
A,P1
R1,P2
;membaca dari port 1 dan hasilnya disimpan di A
Catatan: untuk bisa membaca port dengan benar, sebelum instruksi baca sebaiknya port diberi
logika satu dulu.
Instruksi assembler untuk akses secara bit per bit misalnya:
Setb P0.4
;membuat P0.4 = 1 dan yang lain tidak diubah
Clr
P1.2
;membuat P1.2 = 0 dan yang lain tidak diubah
Cpl
P2.7
;membuat complement P2.7 sebelumnya
Instruksi berikut membaca status port tanpa menyimpan hasilnya (test)
Jb
P2.0,bacaswitch
Jnb
P3.3,switchoff
Hubungan Paralel Port dengan Chip lain
Port AT89S52 bisa langsung dihubungkan dengan IC-IC lain dengan standard TTL (TransistorTransistor Logic) yaitu standar 0V dan 5V. Jenis IC TTL ada banyak sekali misalnya seri 74xxx,
74Sxxx, 74LSxxx, 74ASxxx, 74HCxxx, 74HCTxxx dan IC TTL lain.
Bagian output AT89S52 port 1, port 2 dan port 3 masing-masing telah dilengkapi dengan
internal resistor pull-up sehingga langsung bisa dihubungkan dengan IC-IC TTL lain. Sedang
untuk output AT89S52 port 0 harus ditambahkan resistor pull-up eksternal seperti rangkaian di
bawah ini:
II. PORT SERIAL
AT89S52 mempunyai port serial dengan standard USART (Universal Synchronous/
Asynchronous Receiver Transmitter). Port serial berguna untuk saling menukar data antara dua
mikrokontroler atau antara mikrokontroler dengan komputer. Data dikirim dan bisa diterima
hanya dengan 3 sambungan kabel yaitu kabel RxD, TxD dan GND (ground). Terdapat beberapa
standar komunikasi serial seperti ini:
1. Standard level TTL
2. Standard RS232
3. Standard RS485
4. Standard RS422
III.
Iwan B Pratama Mei 2008
Download