UAS

 

APLIKASI PHOTODIODA DAN PHOTOTRANSISTOR



1. Tujuan [kembali]

a. Merangkai dan menguji output pada photodioda dan phototransistor
b. Merangkai dan menguji input pada photodioda dan phototransistor
c. Merangkai dan menguji I/O pada phodioda dan phototransistor

2. Alat dan Bahan [kembali]
  1. Power 0.5 V
  2. Photodioda
  3. Torch ldr
  4. Op Amp
  5. Transistor
  6. Motor dc
  7. Voltmeter
  8. Ground
3. Aplikasi Photodioda [kembali] 

         Photodiode merupakan perangkat semiconductor, dengan PN-juction, yang mampu mengalirkan arus pada saat ada cahaya. Arus tersebut dialirkan ketika photon diserap oleh photodiode, meski begitusejumlah kecil arus tetap dapat dialirkan pada saat tanpa cahaya. Saat ada cahaya yang mengenai photodiode, akan mengakibatkan adanya electron-hole.
Photodiode bekerja pada reverse bias, dimana terdapat peningkatan kebocoran arus sebanding dengan intensitas cahaya yang mengenai bagian junction.
Bila dibandingkan dengan dua jenis sensor cahaya lainnya, photodiode memiliki waktu tanggap yang lebih cepat. Photodiode dapat digunakan pada aplikasi pencacah barang juga pada luxmeter, untuk mengukur intensitas cahaya. Dalam aplikasinya photodiode membutuhkan penguat amplifier.

Dioda Photo Didesain Untuk Memberikan Logika HIGH Pada Saat Menerima Cahaya




            Dengan konfigurasi rangkaian dioda photo seperti diatas maka rangkaian akan memberikan logika LOW pada saat dioda photo menerima pancaran cahaya. Proses tersebut terjadi pada saat dioda photo menerima cahaya dan dioda photo menjadi konduk (ON) sehingga basis TR1 mendapat bias tegangan dan transistor ON dimana terminal output diambil pada terminal kolektor transistor TR1 sehingga terminal output dihubungkan ke ground oleh TR1 melalui kolektor dan emitornya. Begitu sebaliknya pada saat dioda photo tidak menerima cahaya maka basis transistor tidak mendapat bias sehingga transistor TR1 OFF dan terminal output mendapat sumber tegangan dari VCC melalui RL sehingga berlogika HIGH.


               Rangkaian diatas akan memberikan logika HIG pada saat dioda photo mendapat atau menerima intensitas cahaya. Kondisi tersebut disebabkan oleh dioda photo dipasang menghubungkan basis transistor TR1 ke VCC dan output diambil pada titik emitor transistor TR1. Pada saat dioda photo menerima intensitas cahaya maka dioda photo akan menghantar dan basis TR1 mendapat bias basis sehingga titik output yang terhubung ke VCC melalui kolektor dan emitor transistor TR1 sehingga berlogika HIGH begitu sebaliknya saat dioda photo tidak menerima cahaya maka basis TR1 tidak mendapat bias sehingga terminal output tidak mendapat sumber tegangan dari VCC dan terhubung keground melalui RL sehingga berlogika LOW.



          Kelebihan Photodioda :
1. Arus output sangat linier sebagai fungsi sinar datang
2. Respon spektral luas dan panjang gelombang lebih panjang daripada bahan semikonduktor lain
3. noise rendah dan tahan lama
4. efisiensi kuantum tinggi hingga mencapai 80%
5. tidak embutuhkan tegangan tinggi serta biaya murah 

         Kelemahan Photodioda :
1. area kecil
2. tidak ada penguatan internal
  

4. Simulasi Rangkaian [kembali] 

 



Grafik Respon Sensor :


     



5. Prinsip Kerja [kembali] 

                     Prinsip kerja dari rangkaian ini adalah apabila menrima cahaya konduktifitasnya semakin baik. Sifat dari photodioda adalah jika semakin banyak cahaya yang diterima ,maka nilai resitansi diodanya semakin kecil dan tegangan output nya akan semakin besar . Dari video yang telah dibuat sebelumnya disitu akan tampak bahwa saat torch ldr didekatkan pada sensor photodioda itu sendiri tegangan output nya akan semakin besar dan mengakibatkan pergerakan dari motor dc akan semakin  cepat.

               Dari rangkaian diatas terdapat 2 op amp yang berguna untuk melakukan penguatan dan feedback pada saat rangkaian dijalankan, saat simulasi dijalankan output yang keluar dari op amap tadi akan bersifat negatif karena masuk nya ke kaki negatif op amp tersebut. Output negatif tadi akan terbaca oleh motor dc dan langsung ada nilai keluarannya. Sedangkan pada voltmeter akan mengukur tegangan dari op amp nya. Jika pada saat torch ldr dijauhkan dari sensor itu maka yang akan terjadi adalah perputaran dari motor dc akan melambat dan mengakibatkan tegangan output akan semakin kecil dan sebaliknya jika torch ldr tersebut didekatkan pada photodioda maka perputaran dari motor dc akan semakin bcepat dan tegangan output yang terbaca pada voltmeter akan semakin besar . 


6. Video Rangkaian [kembali] 




6. Link Download [kembali] 

Data sheet  :  [DATA SHEET]

File Rangkaian :
https://drive.google.com/open?id=1amc-PLv4Zo7gECno7JcuBTyPB-vuTDXF

Simulasi Rangkaian : 
https://www.youtube.com/watch?v=NnRL_6ABYDU


Video Rangkaian :
https://www.youtube.com/watch?v=S2iG6tWbshs



  .
[menuju awal]

Sensor Cahaya

Sensor cahaya ini menggunakan komponen sensor Torch_LDR pada aplikasi Proteus. Komponen pendukung sensor cahaya ini yaitu potensiometer yang mengatur tegangan masuk dari VCC.

Gambar 1 Rangkaian lengkap Sensor Cahaya dengan LDR


 IC ADC 0804 mempunyai dua input analog, Vin(+) dan Vin(-), sehingga dapat menerima input diferensial. Input analog sebenarnya (Vin) sama dengan selisih antara tegangan-tegangan yang dihubungkan dengan ke dua pin input yaitu Vin = Vin(+) – Vin(-). Apabila input analog berupa tegangan tunggal, tegangan ini harus dihubungkan dengan Vin(+), sedangkan Vin(-) digroundkan. Untuk operasi normal, ADC 0804 menggunakan Vcc = +5 Volt sebagai tegangan referensi. 
Gambar 2 Torch_LDR

Gambar 3 Potensiometer

Gambar 4 ADC0804

ADC 0804 merupakan salah satu Analog to Digital Converter yang banyak digunakan untuk menghasilkan data 8 bit. Dengan metode pengukur aras tegangan sampling dan mengubahnya ke dalam sandi biner menggunakan metode pengubahan dengan tipe pembanding langsung atau successive approximation


Gambar 5 IC 4511

IC 4511 merupakan ic decoder BCD ke penampil 7 segmen Fungsi dari dekoder BCD ke 7 penampil 7 segmen ini adalah untuk mengubah data digital dalam format BCD untuk ditampilkan dalam format angka desimal secara visual. Keluaran sistem digital pada umumnya berupa kode BCD, agar dapat menampilkan nilai kode biner tersebut ke dalam tampilan desimal maka diperlukan dekoder BCD ke tujuh segmen untuk menyalakan masing-masing segmen pada penampil.
Pada dekoder 4511 dilengkapi dengan fasilitas Lamp Test (), Blanking Input () dan Enable Latch () yang fungsinya adalah sebagai berikut.
1. Lamp Test () berfungsi untuk menyalakan semua peraga tujuh segmen tanpa terpengaruh oleh perubahan data masukan saat pada terminal Lamp Test () diberikan logika rendah (logika 0).
2. Blanking Input () berfungsi untuk memadamkan semua peraga tujuh segmen tanpa terpengaruh data masukan saat pada terminal Blanking Input () diberikan logika rendah (logika 0).
3.  Enable Latch () berfungsi untuk menahan tampilan peraga tujuh segmen saat pada terminal Enable Latch () diberikan logika rendah (logika 0) walaupun terjadi perubahan data masukan.

Prinsip Kerja rangkaian sensor cahaya : 
Saat photodioda dipasang dengan VCC, maka ketika cahaya mengenai photodioda maka maka tegangan akan mengalir ke kaki input ADC 0804 (+Vin). Saat  tegangan masuk maka ADC 0804 mengukur aras tegangan sampling dan mengubahnya ke dalam sandi biner menggunakan metode pengubahan dengan tipe pembanding langsung atau successive approximation. Keluaran ADC 0804 8bit yang dihubungkan dengan ic 4511 akan mengubah keluaran tersebut yang berupa bilangan biner ke bilangan desimal yang kemudian ditampilkan dengan 7 segmen. 

Simulasi rangkaian dapat dilihat pada video di bawah.





  .
[menuju awal]

Photodioda & Phototransistor


1. Dasar Teori [kembali]

  A. Phototransistor


Photo Transistor adalah Transistor yang dapat mengubah energi cahaya menjadi listrik dan memiliki penguat (gain) Internal. Penguat Internal yang terintegrasi ini menjadikan sensitivitas atau kepekaan Photo Transistor terhadap cahaya jauh lebih baik dari komponen pendeteksi cahaya lainnya seperti Photo Diode ataupun Photo Resistor.
Photo Transistor dirancang khusus untuk aplikasi pendeteksian cahaya sehingga memiliki Wilayah Basis dan Kolektor yang lebih besar dibanding dengan Transistor normal umumnya. Bahan Dasar Photo Transistor pada awalnya terbuat dari bahan semikonduktor seperti Silikon dan Germanium yang membentuk struktur Homo-junction.
Photo Transistor pada umumnya dikemas dalam bentuk transparan pada area dimana Photo Transistor tersebut menerima cahaya.


2. Prinsip Kerja [kembali]
Cara kerja Photo Transistor atau Transistor Foto hampir sama dengan Transistor normal pada umumnya, dimana arus pada Basis Transistor dikalikan untuk memberikan arus pada Kolektor. Namun khusus untuk Photo Transistor, arus Basis dikendalikan oleh jumlah cahaya atau inframerah yang diterimanya. Oleh karena itu, pada umumnya secara fisik Photo Transistor hanya memiliki dua kaki yaitu Kolektor dan Emitor sedangkan terminal Basisnya berbentuk lensa yang berfungsi sebagai sensor pendeteksi cahaya.
Pada prinsipnya, apabila Terminal Basis pada Photo Transistor menerima intensitas cahaya yang tinggi, maka arus yang mengalir dari Kolektor ke Emitor akan semakin besar.


3. Struktur PhotoTransistor [kembali]
Photo Transistor dirancang khusus untuk aplikasi pendeteksian cahaya sehingga memiliki Wilayah Basis dan Kolektor yang lebih besar dibanding dengan Transistor normal umumnya. Bahan Dasar Photo Transistor pada awalnya terbuat dari bahan semikonduktor seperti Silikon dan Germanium yang membentuk struktur Homo-junction.
Namun seiring dengan perkembangannya, Photo Transistor saat ini lebih banyak menggunakan bahan semikonduktor seperti Galium Arsenide yang tergolong dalam kelompok Semikonduktor III-V sehingga membentuk struktur Hetero-junction yang memberikan efisiensi konversi lebih tinggi. Yang dimaksud dengan Hetero-junction atau Heterostructure adalah Struktur yang menggunakan bahan yang berbeda pada kedua sisi persimpangan PN.

4. Kelebihan & Kelemahan PhotoTransistor [kembali]

Kelebihan PhotoTransistor
  • Photo Transistor menghasilkan arus yang lebih tinggi jika dibandingkan dengan Photo Diode.
  • Photo Transistor relatif lebih murah, lebih sederhana dan lebih kecil sehingga mudah untuk diintegrasikan ke berbagai rangkaian elektronika.
  • Photo Transistor memiliki respon yang cepat dan mampu menghasilkan Output yang hampir mendekati instan.
  • Photo Transistor dapat menghasilkan Tegangan, sedangkan Photoresistor tidak bisa.
Kelemahan PhotoTransistor
  • Photo Transistor yang terbuat dari Silikon tidak dapat menangani tegangan yang melebihi 1000Volt
  • Photo Transistor sangat rentan terhadap lonjakan listrik yang mendadak (electric surge).
  • Photo Transistor tidak memungkin elektron bergerak sebebas perangkat lainnya (contoh: Tabung Elektron).
B. Photodioda
Photodiode merupakan perangkat semiconductor, dengan PN-juction, yang mampu mengalirkan arus pada saat ada cahaya. Arus tersebut dialirkan ketika photon diserap oleh photodiode, meski begitusejumlah kecil arus tetap dapat dialirkan pada saat tanpa cahaya. Saat ada cahaya yang mengenai photodiode, akan mengakibatkan adanya electron-hole.
Photodiode bekerja pada reverse bias, dimana terdapat peningkatan kebocoran arus sebanding dengan intensitas cahaya yang mengenai bagian junction.
Bila dibandingkan dengan dua jenis sensor cahaya lainnya, photodiode memiliki waktu tanggap yang lebih cepat. Photodiode dapat digunakan pada aplikasi pencacah barang juga pada luxmeter, untuk mengukur intensitas cahaya. Dalam aplikasinya photodiode membutuhkan penguat amplifier.

Dioda Photo Didesain Untuk Memberikan Logika HIGH Pada Saat Menerima Cahaya




Dengan konfigurasi rangkaian dioda photo seperti diatas maka rangkaian akan memberikan logika LOW pada saat dioda photo menerima pancaran cahaya. Proses tersebut terjadi pada saat dioda photo menerima cahaya dan dioda photo menjadi konduk (ON) sehingga basis TR1 mendapat bias tegangan dan transistor ON dimana terminal output diambil pada terminal kolektor transistor TR1 sehingga terminal output dihubungkan ke ground oleh TR1 melalui kolektor dan emitornya. Begitu sebaliknya pada saat dioda photo tidak menerima cahaya maka basis transistor tidak mendapat bias sehingga transistor TR1 OFF dan terminal output mendapat sumber tegangan dari VCC melalui RL sehingga berlogika HIGH.



Rangkaian diatas akan memberikan logika HIG pada saat dioda photo mendapat atau menerima intensitas cahaya. Kondisi tersebut disebabkan oleh dioda photo dipasang menghubungkan basis transistor TR1 ke VCC dan output diambil pada titik emitor transistor TR1. Pada saat dioda photo menerima intensitas cahaya maka dioda photo akan menghantar dan basis TR1 mendapat bias basis sehingga titik output yang terhubung ke VCC melalui kolektor dan emitor transistor TR1 sehingga berlogika HIGH begitu sebaliknya saat dioda photo tidak menerima cahaya maka basis TR1 tidak mendapat bias sehingga terminal output tidak mendapat sumber tegangan dari VCC dan terhubung keground melalui RL sehingga berlogika LOW.
 

5. Rangkaian Simulasi [kembali]
simulasi 1 :
  
simulasi 2 :




6. Video Rangkaian [kembali]

simulasi 1 :



 7. Link Download [kembali]

simulasi 2 :  https://youtu.be/Uue2e82i-jk

Sensor Suhu & LCD


 

Sensor suhu dan LCD

 

1. Tujuan [Kembali]

Mempelajari bagaimana cara interface Keypad & LCD menggunakan Mikroprosesor 8086 dan cara kerjanya serta programmnya. 

2. Alat dan Bahan [kembali]

2.1 Mikroprosesor 8086.

2.2 Keypad

2.3 Reisistor

2.4 7-Sensor suhu LM-35

3. Dasar Teori [kembali]

3.1. Mikroprosesor 8086

Mikroprosesor atau CPU adalah “otak” yang merupakan pengendali utama semua operasi dalam sistem komputer. Mikroprosesor mengambil instruksi biner dari memori, menerjemahkannya menjadi serangkaian aksi dan menjalankannya. Aksi tersebut bisa berupa transfer data dari dan ke memori, operasi aritmatika dan logika, atau pembangkitan sinyal kendali. Intel 8086 adalah mikroprosesor 16 bit, di mana dia dapat bekerja secara internal menggunakan operasi 16 bit dan secara eksternal dapat mentransfer data 16 bit melalui bus data.

3.1.1 Arsitektur Mikroprosesor 8086

Prosesor 8086 dapat dihubungkan dengan bus alamat yang berukuran 20 bit, sehingga mampu mengalamati memori maksimal 220 = 1.048.576 byte (1 MB). Diagram blok arsitektur 8086 dapat dilihat pada Gambar. Mikroprosesor 8086 terbagi atas 2 unit, yaitu unit antarmuka bus (bus interface unit, BIU) dan unit pengeksekusi (execution unit, EU).
Unit Antarmuka Bus (BIU)
Unit ini merupakan bagian yang berhubungan langsung dengan “pihak luar”: bus alamat dan bus data. BIU mengirim alamat ke bus alamat, mengambil instruksi (fetch) dari memori, membaca data dari port dan memori, serta menulis data ke port dan memori (menangani transfer data antara bus dan unit eksekusi).
BIU tersusun atas:
1. Instruction Stream Byte Queue (ISBQ). 
BIU memfetch instruksi dari memori sebanyak-banyaknya 6 buah instruksi ke depan. Hal ini dilakukan agar eksekusi progam menjadi lebih cepat. Instruksi yang sudah diambil ini ditaruh di ISBQ yang berupa 6 buah register first-in-first-out. BIU dapat melakukan fetching selagi EU menerjemahkan dan mengeksekusi instruksi yang tidak membutuhkan penggunaan bus (misalnya operasi matematis menggunakan register internal). Ketika EU selesai melaksanakan suatu instruksi, maka dia tinggal mengambil perintah berikutnya di ISBQ, tanpa harus mengirim alamat ke memori untuk mengambil instruksi berikutnya, sehingga eksekusi akan lebih cepat. Kegiatan fetching instruksi berikutnya selagi menjalankan suatu instruksi disebut sebagai: pipelining. Pada mikroprosesor yang lebih baru, ukuran ISBQ tidak hanya 6 byte tetapi mencapai 512 byte, ini efektif untuk program yang mempunyai banyak kalang (struktur program yang berulang).
2. Register segmen.
BIU berisi 4 buah register segmen 16 bit, yaitu: code segment (CS), data segment (DS), extra segment (ES), dan stack segment (SS). Sistem komputer 8086 mempunyai bus alamat 20 bit, tetapi ukuran register - termasuk register alamat (memory address register) – yang dimilikinya hanya 16 bit, lantas bagaimana cara mengatasinya. Cara pemberian alamat 20 bit dilakukan menggunakan 2 komponen alamat: segmen dan offset, yang masing-masing berukuran 16 bit. BIU akan menggeser ke kiri nilai segmen sebanyak 4 bit (mengalikan dengan 16), kemudian menambahkan offset untuk memperoleh alamat fisik memori yang dikirimkan melalui bus alamat. Untuk lebih jelasnya, diberi contoh untuk memberi alamat fisik $38AB4( ) 3 , segmen dapat diisi dengan angka $348A, dan offset diisi dengan angka $4214, lihat Gambar. Cara penulisan kombinasi segmen dan offset adalah:
segment:offset

Sehingga untuk contoh ini, penulisannya adalah $348A:$4214. Perlu diingat bahwa kita bisa menggunakan kombinasi nilai segmen dan offset yang bervariasi untuk memberi alamat fisik yang sama, misalnya $38AB:$0004, $3800:$0AB4, dsb.

Secara umum, suatu program terdiri atas 4 bagian: segmen code yang berisi instruksi; segmen data, berisi data yang telah dialokasikan sebelumnya (statik); segmen ekstra, untuk variabel dinamik; serta segmen stack yang dipakai untuk menyimpan informasi pada saat pemanggilan subrutin. Informasi segmen disimpan dalam keempat register segmen sesuai dengan namanya.
3. Instruction Pointer (IP)
, adalah register berisi informasi offset yang bersama-sama CS menunjuk posisi dalam memori di mana instruksi berikutnya berada.

Unit Eksekusi (EU)
Unit ini memberitahu BIU di mana mengambil instruksi dan data, menerjemahkan kode instruksi, dan menjalankannya. EU tersusun atas:
1. Dekoder instruksi
, yang mengambil urut-urutan instruksi dari ISBQ kemudian menerjemahkannya ke runtutan aksi yang harus dikerjakan oleh EU.
2. Sistem kontrol
, merupakan rangkaian yang mengendalikan kerja mikroprosesor berdasarkan instruksi yang telah diterjemahkan oleh dekoder instruksi tadi.
3. Arithmetic Logic Unit (ALU)
, yaitu bagian dari mikroprosesor yang dapat melakukan operasi matematis (misalnya operasi penjumlahan, pengurangan, perkalian, dan pembagian) dan logika (misalnya operasi AND, OR, XOR, geser, dan rotasi) 16 bit.
4. Register flag (bendera)
, yaitu register flip-flop 16 bit yang menunjukkan kondisi yang dihasilkan oleh eksekusi suatu operasi oleh EU. Selain itu flag juga mengatur beberapa operasi tertentu. Terdapat 9 flag dalam register flag 8086, seperti terlihat pada Gambar


Sebanyak 6 buah flag merupakan flag kondisi yang menunjukkan keadaan setelah eksekusi suatu instruksi, yaitu: Carry Flag (CF), Parity Flag (PF), Auxiliary Carry Flag (AF), Zero Flag (ZF), Sign Flag (SF), dan Overflow Flag (OF). Sedangkan, 3 buah flag sisanya berupa flag kontrol yang mengendalikan operasi tertentu, yaitu: Single Step Trap Flag (TF), Interrupt Flag (IF), dan String Direction Flag (DF).
5. Register serbaguna
, merupakan register yang dapat digunakan untuk menyimpan data yang akan diolah atau hasil suatu operasi oleh ALU. Terdiri atas 8 buah register 8 bit, yaitu AH, AL, BH, BL, CH, CL, DH, dan DL. Register-register ini juga dapat digunakan secara berpasangan sehingga membentuk register 16 bit, yaitu; AX (gabungan dari AH dan AL), BX, CX, dan DX. AX biasanya digunakan untuk menyimpan hasil operasi, sehingga disebut akumulator. CX biasanya digunakan untuk pencacah untuk keperluan perulangan/kalang (loop), sehingga disebut counter. BX dan DX biasanya digunakan sebagai offset dari alamat data di memori (dengan segmen DS).
6. Register pointer dan indeks
, terdiri atas Stack Pointer (SP), Base Pointer (BP), Source Index (SI), dan Destination Index (DI). Stack (tumpukan) adalah bagian dari memori yang digunakan untuk menyimpan informasi alamat program yang ditinggalkan pada saat terjadi pemanggilan subrutin/subprogram. Demikian juga apabila subrutin tersebut berupa fungsi yang menggunakan parameter, maka data parameter akan disimpan pula di stack. Alamat tumpukan terluar dari stack ditunjuk oleh SS:SP. Sedangkan BP digunakan sebagai offset yang menunjuk ke parameter-parameter fungsi yang dipanggil. SI dan DI biasanya digunakan sebagai offset (masing-masing berpasangan dengan ES dan DS) yang menunjuk ke suatu variabel/data untuk operasi string (larik data).

3.1.2 Bahasa Mesin dan Bahasa Assembly

Instruksi yang difetch dari memori untuk kemudian diseksekusi oleh mikroprosesor berformat biner (kombinasi angka 0 dan 1), yang disebut bahasa mesin. Sebagai contoh, perintah untuk memindahkan data dalam register BX ke register CX adalah 10001011 11001011 ($8B CB), sedangkan bahasa mesin untuk menjumlahkan data dalam register AL dengan angka 7 adalah 00000100 00000111 ($04 07), dan perintah membaca dari port 5 diberikan dengan 11100100 00000101 ($E4 05).
Seperti terlihat pada ketiga contoh di atas, bahasa mesin tidak mudah untuk dimengerti dan dihapalkan oleh seorang programer, apalagi jumlah instruksi yang tersedia berkisar ribuan perintah. Di samping itu, akan mudah sekali terjadi kesalahan ketika menuliskan angka-angka biner yang tersusun atas angka 0 dan 1 yang banyak sekali. Oleh karena itu biasanya kita tidak memprogram komputer langsung dalam bahasa mesin, namun dalam bahasa assembly.
Dalam bahasa assembly, setiap instruksi diberi kata (mnemonic) yang sesuai dengan maksud perintah itu, sehingga dapat membantu pemrogram dalam mengingat instruksi kepada mikroprosesor tersebut. Kata yang dipakai biasanya berupa singkatan atau beberapa huruf awal dari kata dalam bahasa Inggris untuk perintah tersebut. Misalnya, mnemonic untuk perintah penjumlahan adalah ADD, untuk perintah pengurangan adalah SUB (dari kata subtract), dan untuk memindahkan data( ) 4 dari suatu register atau memori ke lokasi lain adalah MOV (dari kata move). Sebagian besar instruksi terdiri atas mnemonic dan operand yang merupakan parameter dari instruksi tersebut, yang dituliskan di belakang mnemonic tersebut. Contoh bahasa assembly dari perintah-perintah dengan bahasa mesin di atas diberikan dalam Tabel

3.1.3 Pin Diagram Mikroprosessor 8086



Mikroprosesor 8086 mempunyai 40 kaki (pin) yang masing-masing digunakan untuk melewatkan sinyal tertentu. Setiap pin sinyal diberi nama berupa mnemonic yang sesuai dengan fungsinya. Sistem komputer 8086 mempunyai bus data selebar 16 bit dan bus alamat selebar 20 bit, sehingga dapat mengalamati memori sampai dengan 220 atau 1 Mb. Untuk menghemat jumlah pin, maka antara pin untuk data dan pin untuk alamat digabungkan dengan diberi nama AD0-AD15 (dari kata address data), sedangkan 4 bit alamat sisanya diberi nama A16-A19 (pin-pin ini juga digunakan untuk sinyal status).
Terdapat juga pin-pin untuk catu daya yang disuplaikan, yaitu VCC dan GND, masing-masing untuk tegangan catu daya dan pentanahan. Untuk dapat bekerja, selain membutuhkan catu daya, mikroprosesor 8086 juga memerlukan sinyal detak (clock) secara eksternal dengan frekuensi sampai 10 MHz. Sinyal clock ini dilewatkan ke pin CLK yang ada pada kaki nomor 19.
Pin-pin lainnya digunakan untuk sinyal kendali. Mikroprosesor 8086 dapat digunakan dalam 2 mode, minimum dan maksimum, yang masing-masing menggunakan pin kendali secara berbeda. Mode ini ditentukan dengan memberi nilai pada pin MXMN/ ( ) 1 , nilai 1 (dihubungkan dengan Vcc) untuk mode minimum dan nilai 0 (ditanahkan) untuk mode maksimum. Kebanyakan aplikasi menggunakan mode minimum. Pada mode ini, nama pin yang dipakai pada kaki nomor 24 sampai dengan 31 adalah yang berada di dalam tanda kurung (sebelah kanan)
Sinyal RESET digunakan untuk memerintah mikroprosesor agar melakukan inisialisasi dengan cara memberi nilai 0 pada register DS, SS, ES, IP, dan flag; serta nilai $FFFF untuk CS( ) 2 . Pin INTR dan NMI digunakan untuk menginterupsi kerja mikroprosesor. Jika ada sinyal pada kedua pin itu, maka mikroprossor akan menghentikan eksekusi program yang sedang dijalankannya, kemudian menjalankan subrutin sesuai yang dikehendaki, dan setelah selesai kembali ke tempat semula di mana program diinterupsi. Sinyal INTR (interrupt) berupa permintaan untuk melakukan interupsi yang dapat dianulir /tidak dipenuhi jika flag IF direset, sedangkan sinyal NMI (non maskable interrupt) tidak dapat ditutup/ditolak, artinya interupsi harus dilakukan. Pin INTA (interrupt acknowledge) digunakan oleh mikroprosesor untuk menjawab bahwa permintaan interupsi dari sinyal INTR dapat diterima/dijalankan
Pin IO M/ (memory/IO), RD (read), dan WR (write) digunakan untuk mengendalikan memori dan port pada saat pemindahan data. Sinyal IO M/ digunakan untuk memilih apakah memori atau port yang akan diakses oleh mikroprosesor. Jika hendak menghubungi memori, maka mikroprosesor memberi nilai tinggi (1) pada sinyal ini dan jika port yang hendak diakses maka sinyal ini diberi nilai rendah (0). Sinyal RD akan diaktifkan (bernilai rendah) jika operasi yang dilakukan adalah membaca, yaitu transfer data dari memori/port ke mikroprosesor. Sementara sinyal WR digunakan untuk menulis, tranfer data dari mikroprosesor ke memori/port, jika aktif. Sinyal-sinyal lain adalah R DT/ (data transmit/receive), DEN (data enable), ALE (address latch enable), dan BHE (bus high enable) yang akan dibahas kemudian.

3.2. IC Latch 74273

Untuk menghubungkan address ke memori atau I-O maka diperlukan pemisahan address rendah yang multiplek dengan data dengan memakai rangkaian latch. Rangkaian latch akan selalu aktif dengan terhubungnya ke ground kaki LE maka untuk bekerjanya IC latch ini diperlukan sinyal kontrol yang di-input-kan ke kaki –OE. Pin -OE mendapat input dari pin ALE yang merupakan sinyal kontrol yang artinya pin ini akan aktif setiap mikroprosesor meng-output-kan address.

3.3. IC Decoder 74154

IC 74154 merupakan salah satu keluarga TTL yang dimana fungsi dari IC ini adalah sebagai dekoder/demultiplexter 4-16 saluran. Tiap decoder 4-saluran-ke 16-saluran monolit ini menerapkan rangkaian TTL untuk mengubah 4 input biner menjadi 16 jalur keluar, bila kedua input E1 dan E2 adalah rendah. Setiap komponen I-O harus diberi address. Misalkan, ada tiga komponen I-O yang yaitu PPI 8255, PIT 8253 dan PIC 8259 seperti maka untuk membedakannya dapat dibuatkan rangkaian decoder dengan memakai IC decoder 74154 yang keluarannya ada 16 .

3.4. PPI (Programmable Pheriperal Interface)

Untuk hubungan input-output, mikroprosesor memerlukan suatu rangkaian interface. Interface menggunakan IC Programmable Peripheral Interface (PPI) 8255 yang mempunyai 3 port dengan masing-masing berkapasitas 8-bit. Jika dalam merancang sistem minimum 8088 ternyata memerlukan interface lebih dari 3 port maka dapat ditambahkan IC PPI 8255 sesuai kebutuhan dengan menambahkan rangkaian decoder-nya

3.5 7-Segment.

Untuk penjelasan mengenai 7-Segment dapat dilihat pada Teori mengenai Interface 7-Segment Mengunakan PIC 16F877A. 

3.5 Keypad.

Untuk penjelasan mengenai Keypad dapat dilihat pada Teori mengenai Interface Dot Matrix Mengunakan PIC 16F877A. karena keypad prinsipnya sama dengan dot matrix

4. Gambar rangkaian [kembali]

5. Listing Program [kembali]

; PROGGRAM9.ASM DIGUNAKAN UNTUK MENAMPILKAN INPUT KEYPAD 
; DAN DATA  SENSOR SUHU KE LCD DAN MENGONTROL SUHU
; Data LCD: Port A
; E : PC0
; RS : PC1
; Data ADC : Port B17 s/d Port B10, kontrol PC10, 
; PC11 dan PC14
; Data DAC : dari Port A17 s/d Port A10

CODE_SEG SEGMENT 
        ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CODE_SEG
        ORG 100H 

start: jmp mulai        

porta equ 00h          
portb equ 01h          
portc equ 02h          
cw equ 03h

port1a equ 10h          
port1b equ 11h          
port1c equ 12h          
cw1 equ 13h

DISPCLR EQU 00000001B
FUNCSET EQU 00111000B
ENTRMOD EQU 00000110B
DISPON EQU 00001100B

awal db ?
kolom db ?
data db ?
data_teks db ?
data_keypad1 db ?
data_keypad2 db ?
data_keypad3 db ?
ratusan db ?
puluhan db ?
satuan  db ?
setting db ?
ADC :
keypad_ke db ?
status db ?
data_setting db ?
dataADC db ?
dataDAC db ?
akhir   db ?

mulai:
   Mov AX, CS  
   Mov DS, AX          
   Xor AX, AX       
        Mov ES, AX   
        Mov SS, AX   
        Lea SI, Awal 
        Lea CX, Akhir    
        Mov DI, SI       
        Sub CX, SI    
        Cld     
        Rep Movsb
        Mov SP,800h   
        Xor AX,AX     
        Mov DS,AX    
        Mov al,82h ;Port A dan Port C = output dan 
; Port B = input
      mov dx,cw
      out dx,al

mov al,82h ;Port A dan Port C = output dan Port B 
; = input
mov dx,cw1
      out dx,al

call initialisasi_LCD
balik:
call display_set
call display_hasil
;-------------------------
;Tekan Tombol ke-1
;--------------------------
tombol1:
mov al,8Bh
mov data,al
call control_out
call tombol_ditekan
je tombol1
in al,dx
and al,00001111B
call konversi_keypad_to_bin
mov data_keypad1,al
mov ah,0
add ax,30h
mov data,al
call data_out
subanta:
call tombol_dilepas
je subanta

;-------------------------
;Tekan Tombol ke-2
;--------------------------
Tombol2:
mov al,8Ch
mov data,al
call control_out
call tombol_ditekan
je tombol2
in al,dx
and al,00001111B
call konversi_keypad_to_bin
mov data_keypad2,al
mov ah,0
add ax,30h
mov data,al
call data_out
subanta2:
call tombol_dilepas
je subanta2
jmp tombol3
baliak_ka_muko:
jmp balik

;-------------------------
;Tekan Tombol ke-3
;--------------------------
tombol3:
mov al,8Dh
mov data,al
call control_out
call tombol_ditekan
je tombol3
in al,dx
and al,00001111B
call konversi_keypad_to_bin
mov data_keypad3,al
mov ah,0
add ax,30h
mov data,al
call data_out
subanta3:
call tombol_dilepas
je subanta3
;----------
;Cek status
;---------
cek:
call tombol_ditekan
je cek

in al,dx
and al,00001111B
call konversi_keypad_to_bin
mov status,al
subanta4:
call tombol_dilepas
je subanta4
 
mov al,status
cmp al,32 ; tombol * ditekan?
je baliak_ka_muko

cmp al,40 ; tombol # ditekan?
je tampil
jne cek

tampil:
xor ax,ax
mov al,data_keypad1
mov bl,100
mul bl
mov ratusan,al

xor ax,ax
mov al,data_keypad2
mov bl,10
mul bl
mov puluhan,al

xor ax,ax
mov al,data_keypad3

xor bx,bx
mov bl,puluhan
add ax,bx
xor bx,bx
mov bl,ratusan
add ax,bx

mov dx,port1a
out dx,al
mov data_setting,al
looping:
call delay
call read_ADC
call display_ADC

call ceksuhu
ja looping
call onmotor
call delay
jmp looping

;--------------
; on motor
;-------------
Onmotor proc near
Mov dx,port1a
Mov al,0ffh
Out dx,al
ret
onmotor endp

;--------------
; cek suhu
;--------------
Ceksuhu proc near
Mov al,data_setting
Mov bl,dataADC
Cmp al,bl
ret
ceksuhu endp

;---------------
; Test tombol ditekan
;------------
tombol_ditekan proc near
mov dx,portb
in al,dx
and al,128
cmp al,128
ret
tombol_ditekan endp

;------------
;Tes tombol dilepas
;-------------------

tombol_dilepas proc near
mov dx,portb
in al,dx
and al,128
cmp al,0
ret
tombol_dilepas endp

konversi_keypad_to_bin proc near
cmp al,1
jne keypad2
mov al,1
ret
keypad2:
cmp al,2
jne keypad3
mov al,2
ret
keypad3:
cmp al,3
jne keypad4
mov al,3
ret
keypad4:
cmp al,4
jne keypad5
mov al,4
ret
keypad5:
cmp al,5
jne keypad6
mov al,5
ret
keypad6:
cmp al,6
jne keypad7
mov al,6
ret
keypad7:
cmp al,7
jne keypad8
mov al,7
ret
keypad8:
cmp al,8
jne keypad9
mov al,8
ret
keypad9:
cmp al,9
jne keypad0
mov al,9
ret
keypad0:
cmp al,10
jne keypadb
mov al,0
ret
keypadb:
cmp al,11
jne keypadg
mov al,2ah
ret
keypadg:
cmp al,12
jne keluar
mov al,23h
ret
keluar:
ret
konversi_keypad_to_bin endp

; -------
; Baca ADC
; -------------
read_ADC proc near
mov dx,port1c
mov al,3
out dx,al
call delay_lcd

mov al,1
out dx,al
call delay_lcd

mov al,3
out dx,al
call delay

mov al,2
out dx,al
call delay_lcd

mov dx,port1b
in al,dx
mov dataADC,al
call delay_lcd

mov dx,port1c
mov al,3
out dx,al
call delay_lcd
ret
read_ADC endp

;-----------
; Tampil data AD di LCD
;---------------------
display_ADC proc near
xor ax,ax
mov al,dataADC
mov bl,10
mov satuan,ah
mov ah,0
mov bl,10
div bl
mov puluhan,ah
mov ratusan,al

mov data,0CAh
call control_out
xor ax,ax
mov al,ratusan
add ax,30h
mov data,al
call data_out

mov data,0CBh
call control_out
xor ax,ax
mov al,puluhan
add ax,30h
mov data,al
call data_out

mov data,0CCh
call control_out
xor ax,ax
mov al,satuan
add ax,30h
mov data,al
call data_out
ret
display_ADC endp

;-------------------------
;  control instruction
;-------------------------
; E : PC0
; RS : PC1
control_out proc near
mov dx,portc
mov al,00000000b ; E = 0, RS = 0
out dx,al
call delay_lcd

mov dx,portc
mov al,00000001b ; E = 1, RS = 0
out dx,al
call delay_lcd

mov dx,porta
mov al,data
out dx,al
call delay_lcd

mov dx,portc
mov al,00000000b ; E = 0, RS = 0
out dx,al
call delay_lcd
ret
control_out endp

;-------------------------
;  data instruction
;-------------------------
; E : PC0
; RS : PC1

data_out proc near
mov dx,portc
mov al,00000010b ; E = 0, RS = 1
out dx,al
call delay_lcd

mov dx,portc
mov al,00000011b ; E = 1, RS = 1
out dx,al
call delay_lcd

mov dx,porta
mov al,data
out dx,al
call delay_lcd

mov dx,portc
mov al,00000010b ; E = 0, RS = 1
out dx,al
call delay_lcd
ret
data_out endp

;--------------------
;  inisialisasi LCD
;--------------------
initialisasi_LCD proc near
mov data,DISPCLR
call control_out
call delay_lcd

mov data,FUNCSET
call control_out
call delay_lcd

mov data,ENTRMOD
call control_out
call delay_lcd

mov data,DISPON
call control_out
call delay_lcd
ret
initialisasi_LCD endp

;---------------
; Tulis teks di baris pertama
;-------------------
baris1 proc near
mov ah,0
mov al,kolom
add ax,80h
mov data,al
call control_out

mov al,data_teks
mov data,al
call data_out
ret
baris1 endp

;---------------
; Tulis teks di baris ke-2
;-------------------
Baris2 proc near
mov ah,0
mov al,kolom
add ax,0C0h
mov data,al
call control_out

mov al,data_teks
mov data,al
call data_out
ret
baris2 endp

;----------
; Ambil data teks baris pertama ke memori LCD
;----------------
display_set proc near
mov kolom,0
xor bx,bx
lea bx,setting
mov cx,16
lagi1:
mov dl,[bx]
mov data_teks,dl
call baris1
inc bx
inc kolom
loop lagi1
ret
display_set endp
 ;----------
; Ambil data teks baris ke-2 ke memori LCD
;----------------
display_hasil proc near
mov kolom,0
xor bx,bx
lea bx,akhir
mov cx,16
lagi2:
mov dl,[bx]
mov data_teks,dl
call baris2
inc bx
inc kolom
loop lagi2
ret
display_hasil endp

delay_lcd proc near              
  push cx
        mov cx,07fffh          
        loop $               
        pop cx               
        ret                  
delay_lcd endp  

delay proc near             
  push cx
        mov cx,0ffffh      
        loop $             
        pop cx             
        ret                
delay endp                 
        ORG 40F0H      
        DB 0EAH        
        DW 0100H       
        DW 0FBF0H      

CODE_SEG ENDS           
        END START 

6. Flowchart [kembali]

7. Video Rangkaian [kembali]

 

8. Link Download [kembali]