Jumat, 25 Mei 2012

mikrokomputer dan antar muka

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