DAFTAR ISI
BAB I. Dasar Antarmuka................................................................................. 1
BAB II. Pengkondisi
Sinyal............................................................................... 5
BAB III. ADC
DAC........................................................................................... 10
BAB IV. Dasar
Mikrokontroler......................................................................... 15mikrokomputer dan antar muka
BAB V. Teknik Perantaraan
Mikrokontroler LED............................................. 21
BAB VI. Antar Muka Sensor
dengan Mikrokontroler........................................ 23
BAB VII. Dasar I-O
Komputer.......................................................................... 25
BAB VIII. Jenis Instruksi
dan Bahasa Pemograman Delphi............................... 30
BAB IX. Dasar Komunikasi Port
Paralel........................................................... 38
BAB X. Antar Muka dengan
Port Paralel.......................................................... 41
BAB XI. Antar Muka ADC
dengan Paralel Port................................................ 45
BAB XII. Antar Muka ADC
dengan DAC Paralel Port...................................... 49
BAB XIII. Antar Muka LED
dengan Serial........................................................ 53
BAB XIV. Antarmuka
Terapan......................................................................... 59
Modul 1 :
Dasar antarmuka
Tujuan :
Menjelaskan prinsip dasar
antarmuka sensor/tranduser
Materi :
Antarmuka (interface) dapat diartikan sebuah bagian atau sirkuit di
beberapa subsistem yang mengirim atau menerima sinyal ke atau dari subsistem
lainnya. Secara sederhana
bisa digambarkan dengan blok diagram berikut :
Gambar 1. Blok diagram interface
Sensor merespon besaran fisik
yang ada di lingkungan dan kemudian mengubahnya dalam bentuk besaran elektrik (arus
atau tegangan). Keluaran dari sensor tersebut
tidak bisa langsung digunakan untuk mengendalikan sistem yang lain (beban)
mengingat besar sinyal yang dihasilkan masih lemah, bentuk sinyal yang berbeda
serta terkadang masih mengandung gangguan-gangguan (noise) yang tidak
diinginkan. Oleh karena itu di perlukan bagian antarmuka yang menjembatani
(menyesuaian) antara keluaran sensor/tranduser dengan perangkat beban.
Sebagai contoh, sebuah ruangan
dilengkapi dengan alat pengendali suhu dengan beban berupa AC dan heater.
Sensor suhu dari alat tersebut akan
mendeteksi besaran suhu yang ada di ruangan tersebut. Sensor akan merespon
kenaikan suhu ruangan tersebut menjadi kenaikan tegangan yang dihasilkan.
Tegangan dari sensor ini tidak akan mungkin digunakan untuk mengendalikan AC
atau heater secara langsung, karena masih lemah . Oleh karenanya perlu ada
perangkat antarmuka yang menjembatani sensor dengan komponen pengolah
(computer, mikroprosesor, mikrokontroler) yang akan mengolah keluaran dari
sensor tersebut sehingga mampu menggerakkan AC dan heater.
Blok diagram yang lebih lengkap
tentang antarmuka ditunjukkan dalam berikut.
Gambar 2.
Blok diagram perangkat antarmuka
Gambar di atas
menunjukkan bagian-bagian dari sebuah sistem yang meliputi antarmuka didalamnya
dalam sebuah loop tertutup. Penjelasan singkat dari masing-masing blok yaitu :
·
External System
Sistem luar berupa lingkungan dari perangkat yang dimaksud. Sistem luar
ini memiliki besaran-besaran fisis yang bisa dipantau/diukur besarnya, seperti
suhu, kelembaban, tekanan, dll
·
Energy Convertion
Pada bagian ini terjadi pengubahan energi dari bentuk fisis dari sistem
luar menjadi tegangan analog. Tegangan yang diperoleh dari proses pengubahan
ini relative masih kecil. Besarnya nilai tegangan sebanding dengan bearan fisis
yang direspon oleh sensor.
·
Isolation
Isolation berfungsi untuk mengisolasi bagian luar dengan perangkat
antarmuka dan seterusnya.
·
Scalling / Amplification
Rangkaian ini berfungsi untuk menyesuaikan sinyal keluaran dari sensor
dengan sinyal yang diperlukan untuk diproses. Penyesuaian dapat berupa
penguatan/pelemahan atau penyesuaian bentuk sinyal.
·
Protection
Rangkaian ini berfungsi sebagai pengaman, pelindung rangkaian utama
(computer) dari kesalahan-kesalahan bagian sebelumnya.
·
ADC
Untuk bisa diproses oleh computer maka sinyal analog dari sensor yang
telah dikuatkan tersebut perlu diubah ke bentuk digital yang sebanding.
Pengubahan bentuk ini dilakukan oleh ADC (analog to digital converter).
·
Computer
Computer merupakan perangkat pengolah data digital. Program dalam
computer ini akan menentukan apa yang perlu dilakukan oleh sistem terkait
sinyal yang diperoleh sensor dari lingkungan luar.
·
DAC
DAC (digital to analog converter) mengubah data digital hasil pengolahan
computer menjadi tegangan analog. Hal ini diperlukan mengingat untuk
menjalankan actuator (beban) seperti motor dan lainnya, yang diperlukan adalah
tegangan analog, bukan digital.
·
Scalling / Amplification
Tegangan analog hasil pengubahan DAC relative masih kecil sehingga tidak
bisa secara langsung digunakan untuk mengendalikan actuator. Oleh karena itu
diperlukan rangkaian penguat atau penyesuai sinyal.
·
Isolation
Isolasi diperlukan untuk mengisolasi bagian antarmuka dengan lingkungan
luar.
·
Energy Convertion
Bagian ini merupakan bagain yang mengubah tegangan analog menjadi besaran
fisik lain melalui actuator. Actuator merupakan perangkat yang dikendalikan.
Contoh actuator yaitu motor yang mengubah tegangan analog menjadi
gerakan/putaran.
Sumber :
o
Fraden, Jacob. 2003. Handbook Of Modern
Sensors : Physics, Designs, And Applications, USA : Springer
o
Toncich, 1994 Computer Architecture and
Interfacing to Mechatronic Systems, Australia :
Chrystobel Engineering
Modul 2 :
Pengkondisi Sinyal
Tujuan :
Menjelaskan prinsip
pengkondisi sinyal : pengoreksi bentuk gelombang, penyesuai/penguat sinyal dan
rangkaian filter.
Materi :
Rangkaian pengkondisi
sinyal secara umum dapat dibagi menjadi beberapa kelompok tergantung pada
sinyal yang dimasukkan dan sinyal keluaran yang diharapkan. Kelompok tersebut
mencakup :
1.
Waveform
Correction Circuit
Fungsi
dari rangkaian pengoreksi gelombang adalah untuk memperbaiki bentuk gelombang
input menjadi gelombang keluaran (khususnya digital) menjadi mendekati bentuk
ideal. Dalam aplikasi digital hal tersebut dapat diperoleh dengan dua macam,
yakni :
a.
Schmitt
Trigger
Rangkaian
ini bekerja atas dua batas amplitudo sinyal, upper trip point (UTP) dan lower
trip point (LTP). Jika sinyal input pada kondisi tertentu melebihi batas UTP
maka dia akan naik secara tajam sampai maksimal (dalam digital disebut logika
high) dan jika sinyal masukan kurang dari LTP maka akan turun tajam sampai
minimal (dalam digital disebut logika low). Simbol schmit trigger dan proses
pembentukan gelombang ditunjukkan dalam gambar berikut.
Gambar 1.
Simbol Schmitt Trigger
Gambar 2. Proses
pembentukan gelombang kotak dengan Schmitt Trigger
b.
Debouncing
circuit
Rangkaian
’debounce’ diperlukan dalam aplikasi digital khususnya untuk menangani
saklar-saklar mekanik. Ketika saklar ditekan kemudian dilepaskan maka selama
waktu tertentu saklar tersebut mengalami osilasi yang berakibat kondisi belum
stabil (tidak menentu antara off dan on). Untuk mengatasi hal tersebut
diperlukan penundaan waktu selama beberapa saat sebelum data dari saklar
tersebut dibaca. Fungsi inilah yang dilakukan oleh rangkaian debouncing.
Gambar 3. Rangkaian Debouncing dengan RS Flip Flop
2.
Scalling
Circuit
Pengkondisi
sinyal yang paling umum digunakan adalah penyesuaian tegangan sinyal (scalling).
Penyesuaian ini dapat dilakukan dengan dua cara, yaitu :
·
Penguatan
(amplification)
Fungsi
penguatan sinyal dilakukan oleh rangkaian amplifier (penguat). Dalam aplikasi
analog, rangkaian penguat bisa berupa transistor atau yang lebih banyak
digunakan adalah chip operational amplifier (op amp).
Gambar 4a. Inverting Op amp
4b. Non
Inverting Op Amp
Dalam
aplikasi digital, rangkaian penguat dapat diwujudkan dengan rangkaian pulse
width modulation (PWM). Konsep PWM dapat ditunjukkan oleh gambar 5.
Dalam
PWM hanya ada dua nilai tegangan yakni saat on (nilai maksimal) dan saat off
(nilai minimal). Tegangan keluaran diperoleh dari rata-rata tegangan on dan
off. Penentu besar tegangan yaitu perbandingan waktu on terhadap waktu off atau
yang dikenal dengan dutycycle(D). D =
(waktu on / (waktu on + waktu off) ) x 100 %. PWM biasa digunakan dalam
aplikasi saklar-saklar digital, power suplly dan komputer.
Gambar 5. Proses
PWM
·
Transformasi
(transformation)
Fungsi
penyesuaian sinyal ini dilakukan dengan transformator. Menggunakan
transformator sinyal masukan dapat disesuaiakan dengan sinyal keluaran yang
dikehendaki. Komponen ini merupakan komponen pasif. Penggunaan transformator
memungkinkan adanya kerugian arus dan respon frekuensi yang terbatas dibanding
dengan rangkaian amplifier.
3.
Filtering
Circuit
Fungsi
dari rangkaian ini adalah untuk membuang/menghilangkan sinyal-sinyal gangguan
yang tidak diinginkan. Dalam aplikasi sinyal analog filter dapat berupa :
a)
LPF (Low
Pass Filter)
Low pass filter (LPF) berfungsi meneruskan sinyal input yang
frekuensinya berada dibawah frekuensi tertentu, diatas frekuensi tersebut
(frekuensi cut off) sinyal akan diredam.
b)
HPF (High Pass Filter)
High pass filter (HPF) berfungsi meneruskan sinyal di atas
frekuensi cut off sedangkan yang berada dibawah frekuensi cut off
diredam.
c)
BPF (Band Pass Filter)
Band pass filter (BPF) berfungsi meneruskan sinyal input yang
berada diantara dua frekuensi tertentu saja.
d)
BSF/BRF (Band Stop Filter/Band Reject Filter)
Band stop filter (BSF) atau band reject filter (BRF) adalah
kebalikan dari band pass filter yaitu menghilangkan frekuensi yang ada
diantara dua buah frekuensi tertentu
Gambar 6. Respon
frekuensi macam-macam filter
Sumber :
o
Budiharto, Widodo.
2004, Interfacing Komputer dan Mikrokontroler, Jakarta : Elex Media
Komputindo
o
Toncich, 1994 Computer Architecture and
Interfacing to Mechatronic Systems, Australia
: Chrystobel Engineering
DAC merupakan
piranti yang mampu menghasilkan tegangan sebuah analog yang setara dengan data
digital yang diberikan kepadanya. DAC sederhana dapat dibuat dari tangga R-2R
seperti gambar berikut :
Gambar 1. DAC
dari susunan tangga R-2R
Susunan tangga
R-2R 8 bit akan membagi nilai tegangan 0-5 Volt dalam 255 tingkatan, sehingga
satu tingkatan akan bernilai 5/255 Volt (19,5 mV). Maka jika data 31H (51
desimal) tegangan yang dihasilkan adalah 51 x 19,5 = 994,5mV = mendekati 1
volt.
Penggunaan IC DAC 0808 akan
lebih memudahkan dalam memperoleh tegangan analog dari data digital yang ada.
Konfigurasi pin DAC 0808 sebagai berikut :
Gambar 2.
Konfigurasi pin DAC 0808
Contoh rangkaian DAC dengan
memanfaatkan DAC 0808 diperlihatkan pada gambar berikut :
Gambar 3.
Rangkaian DAC dengan DAC 0808
Pada gambar
tersebut, R5MW dihubungkan
dari Vref ke Vcc, ini berarti arus maksimal yang mengalir 5V/5 MW = 1 mA. Tegangan keluaran diperoleh dari pengalian
arus ini dengan resistansi umpan balik op amp sehingga 1mAx5MW = 5 Volt. Oleh karena DAC memiliki lebar data 8 bit
maka bilangan maksimalnya 255 (0FFH). Dengan demikian jika ada data 100 maka
hasilnya adalah 100x5/255=1,96V
ADC adalah
piranti yang mampu menghasilkan data digital dari sebuah tegangan analog. ADC
dapat dibuat dari susunan paralel beberapa komparator (tegantung lebar data
yang diinginkan), namun pemrosesannya tidak sesederhana pada DAC. Berikut ini
adalah contoh DAC 3 bit.
Gambar 4.
Rangkaian ADC 3 bit dengan komparator paralel
Penggunaan IC
ADC 0804 mempermudah aplikasi ADC. Berikut ini gambar susunan pin ADC0804.
Gambar 5.
Susunan pin ADC0804
Deskripsi singkat pin-pin ADC0804 adalah sebagai
berikut :
·
CS : chip select
·
RD : read
·
WR : write
·
CLK
IN : clock
·
INTR : interupt
·
Vin
(-) : tegangan masukan analog (-)
·
Vin
(+) : tegangan masukan analog (+)
·
AGND : Ground analog
·
Vref/2 : Tegangan referensi yang lain (±)
·
DGND : Digital Ground
·
DB0...DB7:
Data keluaran bit 0 ... bit 7
·
CLK
R : sambungan R eksternal untuk clock
·
Vref : tegangan catu, tegangan referensi
primer
Dalam
penerapannya ADC0804 dapat di konfigurasi dalam beberapa macam, yang paling
biasa digunakan adalah mode free running. Mode tersebut ditunjukkan dalam
gambar berikut ini.
Gambar 6.
Konfigurasi fre running ADC 0804
Untuk menguji kerja ADC0804
perlu dibuat rangkaian sederhana seperti di bawah ini.
Gambar 7.
Rangkaian uji ADC 0804
Modul
4 : Dasar
Mikrokontroler
Tujuan :
a. Menjelaskan prinsip dasar
mikrokontroler
b. Menjelaskan cara kerja
mikrokontroler
Materi :
Mikrokontroler merupakan chip IC (Integrated
Circuit) yang dibuat untuk keperluan khusus terkait dengan
pengendalian/kontrol. Berbeda dengan
mikrokprosesor yang hanya merupakan chip pemroses data, mikrokontroler sudah
dilengkapi dengan berbagai komponen pendukung seperi ROM, RAM, port I/O dan
fungsi lain seperti timer.
Mikrokontroler AT89S51
merupakan mikrokontroler dari keluarga MCS-51. Mikrokontroler ini dapat bekerja
dengan tegangan catu 4,0 Volt – 5,5 Volt. Beberapa fitur mikrokontroler adalah
:
a. Flash memory 8 Kb yang dapat dihapus dan
ditulis ulang sebanyak 1000 kali
b.
RAM internal 128 x 8 bit
c. Jalur I/O yang dapat deprogram
sebanyak 32 jalur
d.
Sumber interupsi sebanyak 6 buah
e.
Memiliki 2 timer/counter 16 bit
f.
Sebuah port serial UART full duplex
Gambar
2. Pin-pin AT89S51
Mikrokontroler AT89S51 memiliki 40 pin dengan
kemasan DIP (Dual In line Package). Susunan pin pada Mikrokontroler AT89S51 ditunjukkan gambar di atas.
Masing-masing pin pada Mikrokontroler AT89S51 memiliki fungsi sebagai berikut :
a.
Pin 1 – 8 (Port 1)
Pin 1 sampai pin 8 merupakan
port 1 dari AT89S52. yakni port masukan keluaran 8 bit yang dapat bekerja dua
arah (bidirecional) dengan pull up internal.
b.
Pin 9 (RST/Reset)
Pin RST atau reset
berfungsi untuk mereset CPU. Proses reset terjadi manakala pin RST tersebut
diberikan masukan tegangan logika tinggi selama minmal 2 siklus mesin.
c.
Pin 10 – 17 (Port 3)
Pin 10 – 17 merupakan port 3 AT89S51 yakni port masukan keluaran 8 bit
dua arah (bidirectional)pull up internal. Beberapa pin diport 3 memiliki
fungsi alternatif seperti ditunjukkan tabel. dengan resistor
d.
Pin 18 (XTAL 2)
Pin 18 merupakan pin XTAL 2
yang digunakan sebagai masukan resonator rangkaian clock internal. Pin 18 ini tidak digunakan keika
mikrokonroler menggunakan clock eksternal.
e.
Pin 19 (XTAL 1)
Pin 19 merupakan pin XTAL 1
yang digunakan sebagai masukan resonator rangkaian clock internal bersama dengan pin 18. Rangkaian
resonator yang digunakan berupa sebuah kristal 3 – 24 MHz. dan 2 buah kapasitor
masing-masing besarnya 30 pF. Pin 19 ini menjadu saluran masukan ketika mikrokontroler menggunakan clock
eksternal.
f.
Pin 20 (GND)
Pin 20 merupakan pin GND yang
selalu terhubung dengan ground dari catu daya.
g.
Pin 21 – 28 (Port 2)
Pin 21 – 28 merupakan port 2
dari AT89S52 yakni port masukan keluaran 8 bit dua arah dengan resistor pull
up internal.
h.
Pin 29 (PSEN)
Pin 29 merupakan pin PSEN (Program Strobe Enable) yakni pin yang
berfungsi sebagai sinyal pengontrol untuk eksekusi program dari luar masuk ke
bus selama proses pemberian/pengambilan instruksi.
i.
Pin 30 (ALE/)
Pin 30 merupakan pin
yang berfungsi sebagai ALE dan PROG. ALE (Address Lacth Enale) digunakan
untuk mengancing bit rendah (low bit) alamat selama mengakses memori
dari luar. PROG (the program pulse input) digunakan sebagai masukan
program selama dilakukan pemrograman flash.
j.
Pin 31 (EA/Vpp)
Pin 31 merupakan pin
yang berfungsi sebagai EA dan VPP. EA (External Access Enable) digunakan
untuk mengeksekusi program. Pin ini perlu dihubungkan ke ground jika menginginkan mikrokontroler dapat
mengeksekusi program dari luar. Pin ini dihubungkan ke Vcc jika menginginkan
mikrokontroler dapat mengakses program secara internal. Pin ini berfungsi juga
seagai Vpp yang selalu dihubungkan ke sumber tegangan 12 V ketika melakukan
pemrograman flash.
k.
Pin 32 – 39 (Port 0)
Pin 32 – 39 merupakan port 0
yang berupa port masukan keluaran 8 bit dua arah dengan resistor pull up internal.
l.
Pin 40 (Vcc)
Pin 40 merupakan pin Vcc yang
harus selalu dihubungkan dengan sumber catu +5 V agar mikrokontroler dapat
bekerja.
Mikrokontroler dapat
bekerja setelah di dalamnya diberikan serangkaian instruksi yang disusun dalam
sebuah program. Instruksi-instruksi tersebut dapat berupa bahasa mesin yang
berisikan kode-kode biner. Salah satu bahasa yang dapat digunakan untuk
memudahkan dalam memfungsikan mikrokontroler melalui sebuah program adalah bahasa Assembly. Bahasa Assembly
memuat banyak instruksi bagi mikrokontroler. Instruksi-instruksi tersebut
antara lain :
a.
Penyalinan Data
Instruksi untuk menyalin data adalah MOV. Contoh instruksi menyalin data
yaitu :
MOV A,30h : salin isi
lokasi memori 30H ke akumulator
MOV A,P2 : salin isi Port
2 ke akumulator
MOV P1,A : salin isi
akumulator ke Port 1
b.
Aritmatika
Insruksi arimatika
merupakan instruksi yang terkait dengan perhitungan-perhitungan yang biasanya
melibatkan akumulator. Beberapa instruksi yang termasuk dalam instruksi
aritmatika yaitu :
1.
DEC
Insruksi DEC (Decrement)
digunakan untuk menurunkan nilai akumulator atau regiser atau nilai langsung
atau nilai tak langsung dengan besar penurunan 1. Contoh instruksi DEC tersebut
adalah :
DEC A : berarti isi Akumulator
dikurangi 1 (A-1)
DEC #30H : berarti 30Hdikurangi 1 sama dengan 2FH
2.
INC
Insruksi INC (Increment)
digunakan untuk menaikkan nilai akumulator atau regiser atau nilai langsung
atau nilai tak langsung dengan besar penaikan 1. Contoh instruksi INC tersebut adalah :
INC A : berarti isi Akumulator dinaikkan
1 (A+1)
INC #30H : berarti 30H ditambah 1 sama dengan 31H
c.
Pengalamatan
Pengalamatan merupakan
cara untuk mengisi lokasi memori tertentu. Contoh mode pengalamatan
yaitu :
·
Pengalamatan segera
Pengalamatan segera (immediate
addressing) digunaikan untuk mengisi lokasi memori yang dituju dengan nilai
konstanta tertentu yang sudah disebukan dalam instruksinya. Contoh instruksi pengalamatan segera yaitu
MOV A,#01H : mengisi Akumulator dengan nilai 1 H
·
Pengalamatan langsung
Pengalamatan langsung (direct
addressing) merupakan cara mengisi memori dengan nilai tertentu yangberada
dalam lokasi memori tertentu. Contoh instruksi pengalamatan langsung :
MOV A,35H : berarti bahwa mikrokonroler akan membaca
RAM internal dengan alama 35H dan menyimpan isinya ke dalam Akumulator.
d.
Percabangan / Lompatan
Instruksi percabangan
atau lompatan (jump) merupakan instruksi yang digunakan untuk melompat
dari satu alamat ke alamat yang lain. Instruksi ini dibagi dalam dua macam yaitu
lompatan tak bersyarat (unconditional jump) dan lompatan bersyarat (conditional
jump). Contoh lompatan tak bersyarat
adalah Sjmp (short jump) dan Ljmp (Long jump). Contoh
lompatan bersyarat yaitu JZ (Jump Zero)(Jump not Zero),
JB (Jump Bit) dan JNB (Jump not Bit), CJNE (Compare and Jump
not Equal) dan DJNZ (Decreace and Jump not Zero). dan JNZ
1) Instruksi JB berarti jika nilai
pada bit yang ditunjuk adalah ‘1’ maka program akan melompat ke alamat yang
ditunjukkan.
Contoh :
JB P2.0,ulang
: berarti jika nilai P2.0
adalah ‘1’ maka program akan melompat ke alamat ULANG
2) Instruksi CJNE berarti membandingkan nilai, jika nilai pada
bit yang ditunjuk adalah tidak sama dengan nilai yang dimaksud maka program
akan melompat ke alamat yang ditunjukkan.
Contoh :
CJNE A,#08, ulang : berarti jika nilai A tidak sama dengan 08H
maka program akan melompat ke alamat ULANG
3) Instruksi DJNZ berarti mengurangi
nilai sebuah register dengan satu dan jika nilai yang dikurangi tersebut belum
mencapai nol maka program akan melompat ke alamat yang ditunjukkan.
Contoh :
DJNZ R3,ulang
: berarti jika nilai dalam register R3
belum ‘0’ maka program akan melompat ke alamat ULANG
e.
Pemanggilan
Intruksi pemanggilan
digunakan untuk masuk ke dalam program sub rutin. Sub rutin merupakan kelompok
dari instruksi program yang akan dieksekusi secara berulang manakala ia
dipanggil. Sub rutin ini diadakan untuk mempermudah dalam pembuatan program.
Contoh intruksi pemanggilan ini adalah CALL.
CALL TUNDA :
berarti mikrokontroler diminta untuk memanggil dan mengerjakan program sub
rutin TUNDA.
Untuk kembali dari sub
rutin digunakan instruksi RET.
Sumber :
·
Agfianto.
2006, Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi), Yogyakarta
: Gava Media
·
www.atmel.com
Modul 5 : Teknik perantaraan dengan
mikrokontroler
Tujuan :
Menjelaskan teknik perantaraan
dengan mikrokontroler AT89s51
Materi :
Mikrokontroler
AT89S51 mempunyai 4 (empat) buah port yang biasa digunakan untuk pengantarmuka
dengan perangkat eksernal. Port tersebut diberi nama Port 0 (P0), Port 1 (P1),
Port 2 (P2) dan Port 3 (P3). Masing-masing port memiliki 8 bit saluran port
yang di beri indeks nama 0 – 7 , misalnya P0.0, P0.1, P0.2 ... P0.7. Letak
masing-masing port tersebut di tunjukkan gambar berikut :
Gambar 1. Letak port-port
AT89S51
Keempat
port tersebut merupakan port bidirectional (dua arah) yakni bisa
berfungsi sebagai input maupun output (port I/O). Masing-masing port memiliki pengunci (lacth),
penggerak keluaran (output driver) dan penyangga masukan (input
buffer).
Port
paralel dalam AT89S51 dapat difungsikan sebagai input atau ouput dengan cara
berikut :
Port paralel
sebagai input,
yaitu menerima masukan sinyal digital dari luar mikrokontroler memiliki dua
macam cara dalam menggunakannya :
a)
Port
membaca data digital pada seluruh bit nya (bit 0 – bit 7) kemudian disimpan
dalam akumulator. Contoh instruksi : MOV A,P3
b)
Port
membaca data digital pada salah satu bit nya kemudian disimpan dalam
akumulator. Contoh instruksi : JNB P1.3,$
Port paralel
sebagai ouput,
yaitu mengeluarkan data digital dari mikrokontroler juga memiliki dua macam
cara dalam menggunakannya :
a)
Port
mengeluarkan data melalui seluruh bit nya (bit 0 - bit 7) dengan cara
memberikan instruksi ke keseluruhan port. Misal : MOV P0,#FFH
b)
Port
mengeluarkan data melalui salah satu bit nya (bit 0) dengan cara memberikan
instruksi ke bit port yang bersangkutan. Misal : SETB P0.3
Berikut
contoh antarmuka mikrokontroler dengan LED display :
Sumber :
Agfianto. 2006, Belajar Mikrokontroler
AT89C51/52/55 (Teori dan Aplikasi), Yogyakarta : Gava Media
Modul 6 : Antarmuka Sensor Dengan
Mikrokontroler
Tujuan :
Membuat contoh aplikasi
perantaraan sensor suhu dengan mikrokontroler
Materi :
Gambar 1. Skema prototipe sistem pengendali berbasis
A89S51
Listing program untuk
flow chart di atas dengan bahasa assembly seperti berikut ini :
org 00h
;out_heater = p0.0 output pemanas
;out_blower = p0.1 output
ac
;adc_intr = p1.0 pembacaan
ADC
mulai:
;data suhu
mov 40h,#10h ;set suhu batas
bawah
mov 41h,#16h ;set suhu batas
atas
clr p1.0 ;mulai konversi
nop ;tunda sesaat
nop
setb p1.0
call tunda ;menunggu proses
konversi selesai (100uS)
baca_suhu:
mov a,p2 ;baca data hasil
konversi
subb a,40h ;bandingkan dengan
batas bawah
ac_on:
;suhu <
data ==> c=1
jnc heater_on ;jika suhu >
batas bawah,cek batas atas
setb p0.0 ;jika suhu <
batas bawah matikan ac
clr p0.1 ;hidupkan heater
call tunggu ;menunggu
respon relay
jmp baca_suhu ;kembali baca
suhu
heater_on:
jc baca_suhu ;jika suhu <
batas atas,cek suhu lagi
clr p0.0 ;jika suhu >
batas atas hidupkan ac
setb p0.1 ;matikan heater
call tunggu ;menunggu
respon relay
jmp baca_suhu ;kembali baca
suhu
tunggu:
mov r2,#25
ulang2:
mov r1,#200
ulang1:
mov r0,#200
ulang:
call tunda
djnz r0,ulang
djnz r1,ulang1
djnz r2,ulang2
ret