Selasa, 03 September 2024

Rangakaian Aplikasi Dot Matrik




Rangakaian Aplikasi Dot Matrik

1. Tujuan
[Kembali]

Membuat rangkaian dot matrik 5x7 pada Proteus bertujuan untuk:

  1. Menampilkan Karakter atau Simbol: Dot matrik 5x7 biasanya digunakan untuk menampilkan karakter huruf, angka, atau simbol grafis sederhana. Dengan menggunakan mikrokontroler, kita dapat mengirim data yang mengontrol titik-titik LED di dalam matrik ini.

  2. Belajar Pemrograman Tampilan: Dengan merancang dan memprogram rangkaian dot matrik, kita dapat mempelajari bagaimana cara mengendalikan display menggunakan kode, seperti bagaimana mengaktifkan setiap LED dengan pola tertentu untuk menampilkan informasi.

  3. Simulasi Sebelum Implementasi: Proteus memungkinkan simulasi rangkaian elektronik tanpa perangkat keras fisik. Simulasi dot matrik 5x7 di Proteus membantu memastikan bahwa rangkaian dan program bekerja sesuai harapan sebelum memproduksi perangkat fisiknya.

  4. Mengembangkan Proyek Mikrokontroler: Penggunaan dot matrik dalam simulasi ini sering kali menjadi bagian dari proyek berbasis mikrokontroler (misalnya, menggunakan Arduino atau PIC). Proyek-proyek ini bisa melibatkan berbagai aplikasi seperti jam digital, running text, atau penunjuk status.

  5. Pemahaman tentang Teknik Multiplexing: Dot matrik menggunakan teknik multiplexing untuk mengurangi jumlah pin kontrol. Dengan merancang rangkaian ini, kita dapat belajar bagaimana cara mengelola beberapa baris dan kolom dengan cara yang efisien.

  6. Eksperimen Visualisasi Data: Dot matrik dapat digunakan untuk menampilkan data secara visual. Misalnya, rangkaian ini bisa diaplikasikan untuk menampilkan informasi sensor, output dari sistem tertentu, atau bahkan animasi sederhana.


2. Alat dan Bahan [Kembali]
  • Arduiono
  • LED
  • Capacitor

  • Resistor
  • dot matrik


3. Dasar Teori [Kembali]

Dot Matrik

Dot matrik 8x8 adalah satu dot matrik yang berukuran 8 kolom x 8 baris susunan LED. Jadi 1 dot matrik terdapat 35 buah LED seperti gambar 22. Dengan dot matrik 8x8 dapat ditampilkan berbagai macam karakter angka, husuf maupun simbol.

Prinsip kerja dot matrik disini menggunakan proses scanning kolom. Scanning kolom adalah mengaktifkan setiap kolom secara bergantian.

Proses pergantian pengaktifan kolom dari kolom 1 sampai kolom 8 begitu cepat dan berulang-ulang sehingga misalkan huruf "A" yang terdiri dari 8 kolom tampak nyala secara bersamaan. Apabila proses scanning kolom dipelankan maka akan terlihat pergeseran penyalaan kolom per kolom.


Gambar 22 Rangkaian dasar dot matrik

4. Prosedur Percobaan  [Kembali]

Prosedur Percobaan

1. Membuka Proteus dan Membuat Proyek Baru

  • Buka Proteus.
  • Pilih opsi New Project.
  • Beri nama proyek Anda dan tentukan direktori tempat menyimpan proyek.
  • Klik Next dan pilih Create Schematic from Scratch.

2. Menambahkan Komponen Dot Matriks 8x8

  • Cari komponen LED Matrix atau Dot Matrix 8x8 di library Proteus.
  • Tambahkan komponen ke area kerja.

3. Menambahkan Mikrokontroler

  • Pilih jenis mikrokontroler yang akan digunakan (misalnya, Arduino UNO atau PIC).

  • Tambahkan mikrokontroler ke area kerja.

  • Jika menggunakan Arduino UNO:

    • Pilih Arduino UNO dari library.
    • Tempatkan di area kerja.
  • Jika menggunakan PIC atau mikrokontroler lain:

    • Pilih model mikrokontroler yang sesuai dari library.

4. Menambahkan Resistor (Opsional)

  • Jika rangkaian membutuhkan resistor sebagai pembatas arus untuk tiap LED, tambahkan resistor antara pin keluaran mikrokontroler dan dot matrik.

5. Membuat Koneksi

  • Hubungkan setiap baris dan kolom dari dot matrik ke pin digital pada mikrokontroler. Misalnya:
    • Kolom dot matrik terhubung ke pin digital D2 hingga D8 pada Arduino.
    • Baris dot matrik terhubung ke pin digital D9 hingga D15.
  • Pastikan semua pin dihubungkan dengan benar sesuai dengan skema yang diinginkan.

6. Menulis Program (Kode)

  • Jika menggunakan Arduino:
    • Buka Arduino IDE.
    • Tulis kode untuk mengontrol dot matrik 8x8. Kode ini akan mengatur pola bit untuk mengaktifkan LED pada matrik, sesuai dengan karakter atau pola yang diinginkan.
    • Berikut adalah contoh kode sederhana untuk menampilkan huruf A pada dot matrik:
#include <mega32.h>
#include <delay.h>
#include <string.h>

unsigned int i,j,x,y,z;
unsigned int angka;
char urut;
char kolom[8];

//Baris = PORTB
//KOLOM = PORTC

void nyala_led()//fungsi untuk menyalakan baris
{
     if (angka==0)
      {
      if (urut==0){urut=~(0x3E);}
      if (urut==1){urut=~(0x51);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x45);}
      if (urut==4){urut=~(0x3E);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}  
      if (urut==8){urut=~(0x00);}  
      }
   
     else if (angka==1)
      {
      if (urut==0){urut=~(0x00);}
      if (urut==1){urut=~(0x21);}
      if (urut==2){urut=~(0x7F);}
      if (urut==3){urut=~(0x01);}
      if (urut==4){urut=~(0x00);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }

      else if (angka==2)
      {
      if (urut==0){urut=~(0x27);}
      if (urut==1){urut=~(0x49);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x31);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }
   
      else if (angka==3)
      {
      if (urut==0){urut=~(0x22);}
      if (urut==1){urut=~(0x41);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x36);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }

      else if (angka==4)
      {
      if (urut==0){urut=~(0x0C);}
      if (urut==1){urut=~(0x14);}
      if (urut==2){urut=~(0x24);}
      if (urut==3){urut=~(0x7F);}
      if (urut==4){urut=~(0x04);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }
 
      else if (angka==5)
      {
      if (urut==0){urut=~(0x72);}
      if (urut==1){urut=~(0x51);}
      if (urut==2){urut=~(0x51);}
      if (urut==3){urut=~(0x51);}
      if (urut==4){urut=~(0x4E);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }

      else if (angka==6)
      {
      if (urut==0){urut=~(0x1E);}
      if (urut==1){urut=~(0x29);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x46);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }
   
      else if (angka==7)
      {
      if (urut==0){urut=~(0x41);}
      if (urut==1){urut=~(0x42);}
      if (urut==2){urut=~(0x44);}
      if (urut==3){urut=~(0x48);}
      if (urut==4){urut=~(0x70);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }

      else if (angka==8)
      {
      if (urut==0){urut=~(0x36);}
      if (urut==1){urut=~(0x49);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x36);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }
     
      else if (angka==9)
      {
      if (urut==0){urut=~(0x30);}
      if (urut==1){urut=~(0x49);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x4A);}
      if (urut==4){urut=~(0x3C);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      if (urut==8){urut=~(0x00);}  
      }
}

void main(void)
{
PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0xFF;

PORTC=0x00;
DDRC=0xFF;

PORTD=0x00;
DDRD=0x00;

y=0;
PORTC=~(0xFE);

while (1)
                   
{
angka=9;
kolom[0]=~(0xFE);
kolom[1]=~(0xFD);
kolom[2]=~(0xFB);
kolom[3]=~(0xF7);
kolom[4]=~(0xEF);
kolom[5]=~(0xDF);
kolom[6]=~(0xBF);
kolom[7]=~(0x7F);
kolom[8]=~(0x8F);

for (z=0;z<10;++z)
{
  //for (x=0;x<10;++x) //untuk menggeser (non aktif)
  //{  
    for (i=0;i<100;++i)
    {
    y=x;
        for (j=0;j<8;++j)
        {
        //angka=0;
         PORTC=kolom[j];
         urut=y;
         nyala_led();
         PORTB=urut;
         delay_ms(1);
         y=y+1;
        //PORTC=kolom[j+1];    
            if (y==8)
            {
            y=0;
            }      
        }
    PORTC=~(0xFE);
    }
   //}
//PORTB=0xFF;
angka=angka-1;
delay_ms(1000);
  };
 }
}

Unggah kode ke Arduino UNO dalam Proteus dengan memilih file hex dari hasil compile di Arduino IDE.
7. Menambahkan Sumber Tegangan
  • Hubungkan sumber tegangan virtual dari Proteus ke pin Vin dan GND mikrokontroler (jika diperlukan).

8. Simulasi

  • Klik tombol Run di Proteus untuk menjalankan simulasi.
  • Lihat apakah LED pada dot matrik menyala sesuai dengan pola yang diinginkan (misalnya, huruf A).
  • Jika ada kesalahan, periksa kembali koneksi atau kode yang digunakan.

9. Observasi dan Analisis

  • Amati pola nyala LED pada dot matrik 8x8.
  • Jika sesuai dengan karakter atau pola yang diinginkan, percobaan berhasil.
  • Jika hasil belum sesuai, lakukan debugging baik di bagian koneksi maupun program hingga rangkaian berfungsi dengan baik.

10. Modifikasi (Opsional)

  • Setelah percobaan berhasil, coba tampilkan pola atau karakter lain dengan mengubah kode atau menambahkan fitur seperti animasi.

5. Rangkaian Simulasi dan Prinsip Kerja [Kembali]




Kaki reset pada AT Mega berguna untuk mengulangi proses pembacaan program pada AT Mega, (AT Mega terlebih dahulu diberi program yang sudah dibuat di CV AVR).

Kaki XTAL1 dan XTAL2 dihubungkan ke crystal yang gunanya untuk memberikan clock ekstenal yang stabil nilainya. dan kaki kaki pada PORT B dan PORT C digunakan sebagai output yang akan ditampilkan ke DOT Matrix 8x8. Jadi rangkaian tersebut sudah diisi dengan program untuk menampilkan angka desimal dimulai dari 9 sampai 0, dan setelah sampai ke 0 akan terjadi looping, mengulang dari angka 9 lagi.

6. Video Simulasi [Kembali]




7. Download File [Kembali]

download file [html]
download file [rangkaian]

Gambar.15 Rangkaian Memori dan decoder memori




Gambar 15 Rangkaian Memori dan decoder memori

1. Tujuan [Kembali]

  1. Membuat Rangkaian Memori dan decoder memori

  2. memahami bagaimana cara menjalankan rangkaian Memori dan decoder memori.


2. Alat dan Bahan [Kembali]

  • IC27128

  • IC 74LS138

  • 6116

  • 6264

  • LOGICSTATE


  • DIPSW2



3. Dasar Teori [Kembali]

  • IC 27128

Prinsip Kerja IC 27128:

  1. Struktur Dasar:

    • IC ini menggunakan array sel memori berbasis transistor yang mampu menyimpan data biner (0 atau 1) pada masing-masing sel memori.
    • Setiap sel memori tersusun dalam bentuk matriks baris dan kolom yang diakses melalui pin alamat.
  2. Penulisan Data:

    • Untuk memprogram IC ini, tegangan program khusus diperlukan (biasanya lebih tinggi dari tegangan operasi normal, seperti 12-14V).
    • Data ditulis pada sel memori dengan memanipulasi tegangan di terminal data, kemudian menyimpannya di dalam sel memori menggunakan mekanisme floating-gate transistor.
    • Penulisan dilakukan byte per byte sesuai dengan urutan alamat.
  3. Penghapusan Data:

    • IC ini memiliki kemampuan penghapusan data yang dilakukan secara elektrik. Tegangan penghapus tinggi diaplikasikan untuk mereset semua sel memori ke kondisi kosong (nilai logika 1).
    • Pada EEPROM tipe lama seperti ini, penghapusan sering kali dilakukan menggunakan sinar UV (melalui jendela kuarsa di bagian atas IC) sehingga kadang disebut juga sebagai UV-EPROM.
  4. Pembacaan Data:

    • Saat IC dioperasikan pada tegangan normal (biasanya 5V), data dapat dibaca melalui pin data. Data pada sel memori diakses dengan memberikan alamat tertentu, dan kemudian keluaran data akan muncul di pin keluaran data.
    • Pembacaan ini tidak membutuhkan tegangan yang lebih tinggi seperti pada proses penulisan.
  5. Pin Utama:

    • Pin Alamat (Address Pins): Digunakan untuk memilih sel memori yang akan diakses.
    • Pin Data (Data I/O Pins): Digunakan untuk memasukkan atau mengambil data dari IC.
    • Pin Control: Terdiri dari pin CE (Chip Enable), OE (Output Enable), dan WE (Write Enable), yang mengatur fungsi pengoperasian IC, seperti pembacaan, penulisan, dan penghapusan.

  • IC 74LS138

Prinsip Kerja IC 74LS138:

  1. Input:

    • Tiga Input Alamat (A, B, C): IC ini memiliki tiga input alamat (A, B, C) yang menentukan output mana yang akan diaktifkan. Input ini adalah representasi biner 3-bit, sehingga dapat menghasilkan kombinasi dari 000 hingga 111 (total 8 kombinasi).
    • Tiga Input Pengendali (G1, G2A, G2B):
      • G1 (Enable) adalah input aktif tinggi, artinya IC hanya bekerja jika G1 diberi logika 1.
      • G2A dan G2B adalah input aktif rendah (logika 0). IC hanya bekerja jika kedua pin ini diberi logika 0. Jika salah satu dari G2A atau G2B diberi logika 1, semua output akan tetap dalam keadaan tidak aktif (logika 1).
      • Jadi, untuk membuat IC berfungsi, kondisi yang harus dipenuhi adalah G1 = 1, G2A = 0, dan G2B = 0.
  2. Output:

    • IC ini memiliki delapan output (Y0 hingga Y7). Pada setiap saat, hanya satu output yang akan aktif rendah (logika 0), tergantung pada nilai input biner yang diberikan pada pin alamat A, B, dan C.
    • Output yang dipilih sesuai dengan kode biner input. Misalnya:
      • Jika A = 0, B = 0, C = 0, maka Y0 akan menjadi aktif rendah (logika 0), dan Y1 hingga Y7 tetap dalam keadaan aktif tinggi (logika 1).
      • Jika A = 0, B = 0, C = 1, maka Y1 akan menjadi aktif rendah, dan Y0 serta Y2-Y7 tetap aktif tinggi.
      • Dan seterusnya hingga kombinasi A = 1, B = 1, C = 1, yang akan mengaktifkan Y7.
  3. Fungsi Enable:

    • Fungsi pengendali (G1, G2A, G2B) memungkinkan IC ini untuk diaktifkan atau dinonaktifkan secara eksternal. Jika IC dinonaktifkan, semua output akan berada dalam keadaan tidak aktif (logika 1) terlepas dari nilai input A, B, dan C.
  4. Operasi Dekoder/Demultiplexer:

    • Sebagai decoder, IC ini menerima input biner 3-bit dan menghasilkan satu output aktif rendah yang sesuai. Hal ini sering digunakan dalam sistem digital untuk memilih satu dari delapan perangkat atau memori.
    • Sebagai demultiplexer, IC 74LS138 dapat digunakan untuk mendistribusikan satu sinyal input ke salah satu dari delapan saluran output tergantung pada kode input biner.
contoh tabel kebenarannya:

  • 6116

            IC memori 6116 merupakan salah satu RAM statik berkapasitas 16.384 bit atau 2 kbyte. IC 6116 mempunyai 8 jalur data (D0-D7) dan 11 jalur alamat (A0-A10). Untuk menulis data digunakan sinyal W (aktif LOW) dan untuk membaca data digunakan sinyal G (aktif LOW). Kaki E (aktif LOW) digunakan untuk mengijinkan memori menulis atau membaca data pada jalur data. Kaki 12 dihubungkan ke GND dan kaki 24 dihubungkan ke +5V.

RAM 6116 yang dipakai didalam sistem minimum mempunyai pin CS (Chip Select) untuk mengaktifkan IC tersebut, pin OE (Output Enable) sebagai pin sinyal kontrol RD untuk membaca data dan pin WE (Write Enable) sebagai pin sinyal kontrol WR untuk menulis data seperti gambar 2. Selain itu,  terdapat pin-pin untuk addresing A0-A10, pin data D0-D7 untuk masukan dan keluaran data 8 bit. Sisa bus address mulai A11-A19 dipergunakan untuk rangkaian decoding bagi RAM yang bersangkutan. 

Kombinasi dari ketiga pin-pin tersebut dapat dilihat fungsinya seperti pada tabel 1.
Tabel 1 Fungsi pin-pin CS, OE dan WE pada RAM 6116
-CS
-OE
-WE
Mode
Pin–pin I-O
1
X
X
Non aktif
High Z
0
0
1
Read
Out
0
1
0
Write
In

Dari tabel fungsi diatas dapat dilihat bahwa pin CS memegang peranan utama dalam kerja RAM statis 6116. Bila pin Chip Select aktif low maka operasi read dan write dapat dilaksanakan. Untuk mengaktifkan pin CS dapat diberikan input low dari output decoding I-O.
Urutan langkah-langkah yang dilaksanakan mikroprosessor dalam melaksanakan instruksi  read atau write pada RAM adalah sebagai berikut:
a. Address dari memori yang akan dituju diload oleh mikroprosesor ke bus address setelah terdapat sinyal ALE.
b. Chip Select yang dari RAM yang dituju akan aktif low sehingga RAM me-input-kan address dari bus address misalnya A0-A10 seperti pada RAM 6116.
c. Kemudian mikroprosessor mengirim sinyal kontrol RD atau WR pada RAM.
d. RAM melakukan pernbacaan atau penulisan sesuai dengan kombinasi sinyal control yang diterima seperti tabel 1 diatas.

  • 6264
IC memori 6264 adalah sebuah RAM statik berkapasitas 256 bit atau 32 kbyte. IC ini memiliki 16 jalur data (D0-D15) dan 16 jalur alamat (A0-A15). Selain itu, terdapat pin-pin untuk addresing A0-A15, pin data D0-D15 untuk masukan dan keluaran data 16 bit. Sisa bus address mulai A16-A19 dipergunakan untuk rangkaian decoding bagi RAM yang bersangkutan. IC RAM 6264 juga memiliki pin-pin CS (Chip Select) untuk mengaktifkan IC, pin OE (Output Enable) sebagai pin sinyal kontrol RD untuk membaca data, dan pin WE (Write Enable) untuk menulis data




  • LOGICSTATE
Logic state pada proteus berguna untuk memberikan logika 1 atau 0 pada sebuah jalur, jika pada logic statenya bertanda 1 maka ada arus yang mengalir melewati jalur pada logic state tersebut sedangkan jika angka 0 tidak ada arus yang mengalirinya.

  • DIPSW2

Prinsip Kerja DIP Switch 2 (DIPSW2):

  1. Struktur dan Fungsi Dasar:

    • DIP Switch terdiri dari dua saklar individual yang dapat diubah posisinya menjadi ON atau OFF secara manual.
    • Setiap saklar pada DIP Switch ini mewakili jalur sinyal yang dapat dihubungkan atau diputuskan dalam suatu rangkaian.
    • Saklar pada posisi ON menghubungkan dua pin di dalamnya, sehingga memungkinkan aliran arus listrik.
    • Saklar pada posisi OFF memutuskan jalur tersebut, sehingga tidak ada aliran arus listrik.
  2. Konstruksi Fisik:

    • DIP Switch biasanya berbentuk persegi panjang dengan dua baris pin yang terhubung ke papan sirkuit cetak (PCB). Setiap saklar terhubung ke dua pin: satu untuk input dan satu untuk output.
    • Saklar biasanya diberi label angka (misalnya 1 dan 2 untuk DIPSW2), yang menunjukkan saklar pertama dan kedua dalam modul.
  3. Pengoperasian:

    • Posisi ON: Ketika saklar diatur ke posisi ON, ini memungkinkan sambungan listrik antara dua pin yang sesuai. Arus listrik bisa mengalir melalui saklar, sehingga sinyal atau tegangan diteruskan dalam rangkaian.
    • Posisi OFF: Ketika saklar diatur ke posisi OFF, sambungan listrik diputuskan, menghentikan aliran arus listrik, sehingga sinyal tidak diteruskan atau konfigurasi tertentu dinonaktifkan.
  4. Penggunaan Umum:

    • DIP Switch sering digunakan dalam pengaturan konfigurasi manual di perangkat keras elektronik. Contohnya termasuk pengaturan mode operasi pada motherboard, perangkat komunikasi, atau kontrol sistem mikrokontroler.
    • DIPSW2 dengan dua saklar dapat digunakan untuk memilih salah satu dari empat konfigurasi biner (00, 01, 10, 11) dalam sirkuit digital. Dengan ini, DIP Switch dapat menggantikan kebutuhan jumper atau koneksi solder manual dalam mengubah pengaturan hardware.
  5. Keuntungan:

    • Sederhana dan Praktis: DIP Switch memungkinkan pengguna untuk mengubah konfigurasi sirkuit tanpa harus memutuskan sambungan fisik atau memprogram ulang perangkat.
    • Menghemat Ruang: Dengan banyak saklar dalam satu modul (seperti DIPSW2 yang memiliki dua saklar), Anda bisa membuat konfigurasi yang efisien dalam ruang yang relatif kecil.
  6. Contoh Aplikasi:

    • Konfigurasi Alamat pada Bus Data: DIPSW2 dapat digunakan untuk mengatur alamat perangkat pada bus data atau protokol komunikasi, seperti pada I2C atau SPI.
    • Pengaturan Mode Operasi: Pada beberapa perangkat mikrokontroler, DIP Switch digunakan untuk memilih mode pengoperasian, seperti mode debug, mode normal, atau boot mode.

 4.Percobaan[kembali]


Prinsip Kerja :

Mikroprosesor yang akan berhubungan dengan RAM atau ROM dipisahkan oleh rangkaian decoder IC 74LS138. Jika mikroprosesor berhubungan dengan RAM maka mikroprosesor akan mengeluarkan address RAM yang masuk ke IC decoder 74LS138 dan decoder akan meng-output-kan Y0 aktif (sesuai rancangan, address A17, A18, A19  di-input-kan ke A, B, C dari IC decoder) rendah ke –CS RAM 6116 seperti terlihat pada gambar 15. Dan sebaliknya jika mikroprosesor berhubungan dengan ROM maka mikroprosesor akan mengeluarkan address ROM yang masuk ke IC decoder 74LS138 dan decoder akan meng-output-kan Y7 aktif (sesuai rancangan, address A17, A18, A19  di-input-kan ke A, B, C dari IC decoder) rendah ke –CS ROM 27128 Perancangan decoder untuk memori akan dibahas pada bab aplikasi.

Untuk dapat mengakses address dari PPI-0 8255 (4 B) menggunakan pin A0 dan A1 dan PPI-1 8255 (4 B) menggunakan pin A0 s/d A1,  PPT 8253 (4 B) menggunakan pin A0 s/d A1, sedangkan untuk PIC 8259 (2 B) menggunakan pin A0. Dalam membedakan alamat dari keempat komponen I-O tersebut seperti peta I-O diatas maka digunakan address A2 s/d A19. PPI-0 dengan PPI-1 dibedakan dari A4, jika A4 berlogika 0 maka merupakan akses address PPI-0 dan jika A4 berlogika 1 maka merupakan akses address PPI-1. PIT dapat dibedakan dari komponen I-O yang lain dari pin address A5, jika A5 berlogika 1 dan yang lain (A2 s/d A19) berlogika 0 maka address ini merupakan address PIT. Untuk PIC yang membedakan address-nya dengan komponen lain adalah pin address A6. Rangkaian decoder dapat dirancang untuk membedakan PPI-0, PPI-1,

PIT dan PIC menggunakan A4, A5 dan A6 seperti rangkaian pada gambar 3.







4. Prosedur Percobaan  [Kembali]

Komponen yang Terlibat

  1. Memori (misalnya, RAM atau ROM): Komponen ini digunakan untuk menyimpan data.
  2. Decoder Memori: Digunakan untuk memilih lokasi memori tertentu berdasarkan input alamat.
  3. Mikrokontroler atau Mikroprosesor: Mungkin digunakan untuk mengirim alamat dan data ke memori.
  4. Saklar dan LED: Digunakan untuk masukan manual dan indikasi output.

Langkah-langkah Prosedur Percobaan

Berikut adalah langkah-langkah umum yang dapat diikuti untuk melakukan simulasi rangkaian memori dan decoder memori di Proteus:

  1. Membuka Proteus dan Membuat Proyek Baru:

    • Buka software Proteus dan buat proyek baru. Beri nama proyek sesuai dengan kebutuhan.
  2. Menambahkan Komponen ke Skema:

    • Cari dan tambahkan komponen-komponen seperti memori (RAM atau ROM), decoder, mikroprosesor, saklar, dan LED dari library komponen Proteus.
    • Letakkan komponen-komponen tersebut di skema proyek.
  3. Menghubungkan Komponen:

    • Hubungkan pin output dari mikrokontroler ke pin input dari decoder memori.
    • Hubungkan output dari decoder ke input alamat dari memori.
    • Pasangkan saklar ke pin data input memori jika diperlukan untuk input manual.
    • Hubungkan LED ke output data memori untuk indikasi visual.
  4. Mengatur Konfigurasi Memori dan Decoder:

    • Konfigurasikan memori dengan menentukan ukuran dan tipe (misalnya, RAM atau ROM).
    • Atur decoder memori untuk menerima input alamat dan memilih lokasi memori yang sesuai.
  5. Menulis Program (Jika Menggunakan Mikrokontroler):

    • Jika menggunakan mikrokontroler, tulis kode yang mengontrol pengiriman data dan alamat ke memori.
    • Program ini mungkin ditulis dalam bahasa seperti Assembly atau C.
  6. Menjalankan Simulasi:

    • Setelah semua komponen terhubung dan program diunggah (jika ada), jalankan simulasi.
    • Amati bagaimana data dikirim ke dan dari memori, dan bagaimana decoder memori memilih lokasi memori yang benar berdasarkan input alamat.
  7. Menguji dan Mengamati Output:

    • Gunakan saklar untuk memasukkan alamat atau data yang berbeda.
    • Amati LED atau alat ukur lain untuk memastikan bahwa memori dan decoder berfungsi dengan benar sesuai dengan yang diharapkan.
  8. Menganalisis Hasil Simulasi:

    • Catat hasil simulasi dan analisis apakah perilaku rangkaian sesuai dengan teori yang diharapkan.
    • Jika ada masalah, lakukan debugging untuk menemukan dan memperbaiki kesalahan.

5. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


1. Memori (RAM atau ROM):

  • Memori adalah perangkat penyimpanan yang digunakan untuk menyimpan data dan instruksi. Dalam konteks rangkaian ini, memori bisa berupa RAM (Random Access Memory) atau ROM (Read-Only Memory).
  • RAM adalah tipe memori yang bisa dibaca dan ditulis, yang berarti data bisa disimpan dan dimodifikasi selama perangkat aktif.
  • ROM hanya bisa dibaca, artinya data disimpan secara permanen dan tidak bisa diubah oleh mikrokontroler setelah pemrograman awal.
  • Memori ini diakses melalui alamat tertentu. Setiap alamat memori memiliki sel memori yang berisi data.

2. Decoder Memori:

  • Decoder adalah komponen yang digunakan untuk mengontrol akses ke lokasi memori tertentu. Decoder menerima input alamat dari mikrokontroler atau mikroprosesor dan mengaktifkan salah satu outputnya sesuai dengan alamat yang diberikan.
  • Jika rangkaian memori menggunakan lebih dari satu chip memori, decoder ini akan memilih chip memori yang benar untuk akses berdasarkan alamat yang diberikan.
  • Misalnya, jika alamat terdiri dari 4 bit, decoder akan memiliki 16 (2^4) output, masing-masing terhubung ke satu lokasi memori atau chip.

3. Mikrokontroler atau Mikroprosesor:

  • Mikrokontroler atau mikroprosesor bertindak sebagai pengontrol utama dalam rangkaian ini. Komponen ini menghasilkan sinyal alamat yang menentukan lokasi memori yang ingin diakses dan sinyal data untuk ditulis atau dibaca dari memori.
  • Saat mikrokontroler ingin membaca data dari memori, ia akan mengirimkan alamat yang diinginkan ke decoder. Decoder kemudian memilih lokasi memori yang sesuai dan mengaktifkan jalur untuk membaca data dari alamat tersebut.
  • Sebaliknya, untuk menulis data, mikrokontroler mengirimkan alamat dan data yang ingin ditulis ke lokasi memori yang dipilih.

4. Interaksi dan Aliran Data dalam Rangkaian:

  • Alamat dari Mikrokontroler: Mikrokontroler mengirimkan sinyal alamat ke input decoder memori. Sinyal alamat ini menunjukkan lokasi memori yang akan diakses.
  • Pemilihan Lokasi Memori oleh Decoder: Decoder memori menerima sinyal alamat dan mengaktifkan salah satu outputnya sesuai dengan alamat yang diberikan. Output aktif ini akan menentukan lokasi memori tertentu yang diakses.
  • Akses Data: Setelah lokasi memori dipilih, data dapat ditulis ke atau dibaca dari memori.
    • Membaca Data: Jika operasi yang diminta adalah membaca, data dari alamat yang dipilih di memori akan dikirim kembali ke mikrokontroler melalui jalur data.
    • Menulis Data: Jika operasi yang diminta adalah menulis, mikrokontroler akan mengirim data yang akan disimpan ke alamat memori yang dipilih melalui jalur data.
  • Pengindikasian melalui LED atau Output Lain: Output data atau status operasi dapat ditunjukkan melalui LED atau perangkat lain untuk memberikan indikasi visual tentang aktivitas yang terjadi di dalam rangkaian.


6. Video Simulasi [Kembali]




7. Download File
[Kembali]

download file [rangkaian]
download file [html]

Selasa, 27 Agustus 2024

Gambar 79. Contoh Rangkaian Aplikasi Port 379H





Gambar 79. Contoh Rangkaian Aplikasi Port 379H

1. Tujuan
[Kembali]

  1. Memahami mengenai rangkaian interface
  2. Dapat membuat rangkaian aplikasi port 379H

2. Aalat dan Bahan [Kembali]

  • IC 74LS138


  • IC 8225A
  • 74LS32 (Gerbang Logika OR)


  • IC 74LS245


  • LED


  • Resistor


  • Switch


3. Dasar Teori [Kembali]

Gambar 68 Rangkaian Interface input
Contoh programnya:
MOV DX,300h ; alamat interface input 300H
IN DX,AL ; kondisi saklar disimpan di reg. AL
Soal:
a) Rancanglah rangkaian interface output dengan address 31AH dan interface input dengan address 30CH.
b) Ulangi rancangan dengan memakai slot PCI.

Programmable I/O
Rangkaian interface yang bisa diprogram dengan memakai IC 8255. IC ini adalah suatu Programmable Peripheral Interface (PPI), yang Input atau Output-nya dapat diprogram sesuai dengan keinginan pemakai. Dengan demikian akan didapatkan suatu fleksibilitas yang cukup tinggi. Adapun blok diagram Programmable I/O seperti gambar 2.
PPI 8255 memiliki 24 buah pin I/O yang terbagi dalam 3 buah port yang bisa diprogram secara individual dalam dua group dan 3 buah mode operasi. Group A yang meliputi port A (8 bit) dan port C upper (4 bit) sedangkan group B terdiri dari port B (8 bit) dan port C lower (4 bit). Konfigurasi pin PPI 8255 dapat dilihat pada gambar 1.

Gambar 1  Konfigurasi pin PPI 8255
Adapun fungsi pin-pin PPI 8255 adalah:
a.   D0 – D7 berfungsi sebagai data bus 3 state 2 arah yang dihubungkan ke data bus sistem komputer.
b.   Chip Select (CS) aktif rendah yang berfungsi untuk mengaktifkan PPI 8255.
c.   Read (RD) aktif rendah yang berfungsi untuk menandakan bahwa CPU akan membaca data dari PPI.


Gambar 2  Blok diagram Programmable I/O

d.   Write (WR) aktif rendah yang berfungsi mengizinkan CPU untuk menulis datke dalam PPI.
e.   Port Select (A0 dan A1). Pin ini digunakan untuk memilih port yang akan digunakan.
f.     Reset yang berfungsi untuk me-reset seluruh port I/O menjadi input dengan kondisi high pada seluruh pin.

Dalam pengoperasian PPI, dapat dibedakan atas 3 mode operasi dasar yang dapat dipilih melalui software, yaitu :
a)     Mode 0 (Basic I/O)
             Konfigurasi operasi ini menyediakan operasi-operasi sederhana untuk input dan output bagi ketiga buah port yang ada. Tidak ada sinyal handshaking yang bisa diberikan ataupun diterima, melainkan data secara sederhana dikirim dan dibaca dari port.
b)     Mode 1 (Basic I/O)
             Konfigurasi operasi ini menyediakan fasilitas untuk transfer data I/O dari dan ke port tertentu dengan dilengkapi oleh sinyal handshaking. Dalam hal ini port A dan port B digunakan sebagai transfer data, sedangkan port C sebagai pembangkit sinyal handshaking.
c)     Mode 2 (Strobed bidirectional I/O)
             Konfigurasi operasi ini menyediakan fasilitas untuk komunikasi data 8-bit dua arah dengan peralatan luar. Tersedia sinyal-sinyal untuk handshaking dan interrupt dengan fungsi enable dan disable-nya.

          Ketika PPI mendapat sinyal reset, maka semua port di-set menjadi mode input (ke 24 jalur menjadi high impedance). Setelah dilakukan inisialisasi pasa IC 8255 tersebut, maka port-port tersebut dapat berfungsi sebagai input atau output sesuai nilai CW.
          Inisialisasi pada IC 8255 dapat dilakukan dengan mengirimkan Control Word (CW) yang mempunyai format seperti gambar 3. Inisialisasi dilakukan untuk menentukan mode PPI sekaligus fungsi dari tiap port, apakah sebagai input atau output.      
          Dalam program, penulisan alamat port-port dan CW dari IC 8255 adalah sebagai berikut :
                                       Port A         equ   300h
Port B         equ   301h
Port C         equ   302h
Port CW     equ   303h



Contoh program inisialisasi adalah:
                   MOV          AL, 10011001b
                   MOV DX,303h
                   OUT DX,AL       
Dari inisialisasi PPI 8255 diatas artinya sebagai mode 0, dengan port A dan Port C sebagai input serta Port B sebagai outputControl Word yang harus dikirim supaya IC 8255 dapat berfungsi demikian, diberikan  seperti pada gambar 4.


Gambar 3  Control Word pada IC 8255


Gambar 4  Contoh Control Word untuk IC 8255
         
          Kemudian program dapat dilanjutkan dengan melakukan pembacaan pada port A, misalnya, atau bisa juga memberikan output ke port B. Berikut ini contoh instruksi untuk melakukan pembacaan input dari port A.
                   MOV DX,301h
                   IN      AL,DX

          Didalam program tersebut terlihat instruksi-instruksi IN dan OUT yang memegang peranan penting dalam pengiriman data ke dalam dan ke luar sistem komputer. Instruksi OUT DX,AL berarti mengirimkan data yang berada di register AL ke alamat port yang tersimpan di DX. Dan IN AL,DX berarti membaca data dari port yang alamatnya tersimpan di DX kemudian menyimpan data tersebut di register AL.

Ada 3 contoh rangkaian yang dibedakan pada rangkaian decodernya.
1.   Memakai decoder gerbang nand seperti pada gambar 5.
Secara singkat prinsip kerjanya adalah pertama-tama mikroprosesor mengirimkan alamat interface seperti pada gambar rangkaian dapat dirancang untuk alamat 300H, 310H, 308H dan 318H dengan mengkombinasikan switch yang terhubung ke pin Slot ISA pada A3 dan A4. Jika salah satu alamat tersebut dikirim oleh mikroprosesor maka IC 7430 akan aktif ‘0’ yang diumpankan ke CS dari IC 8255 untuk mengaktifkannya dan ke E dari IC 74LS245 untuk mengaktifkan IC ini. Sebagai contoh misalnya mikroprosesor ingin mengirimkan data ke Port A dari rangkaian interface. Misal memakai alamat 300H maka untuk mengakses Port A dikirimkan alamat 300H dengan sendirinya CS dari IC 8255 dan E dari IC 74LS245 aktif lalu mikroprosesor mengirimkan data misal 80H dan bersamaan dengan itu mengirimkan sinyal kontrol WR ke IC 8255 dan dengan sendirinya sinyal kontrol RD dalam kondisi logika ‘0’ maka pin DIR dari IC  74LS245 menerima logika ‘1’ yang artinya akan melewatkan dari 8-bit A ke 8-bit B. Begitu juga sebaliknya, jika membaca data di  suatu port maka sinyal kontrol RD yang berlogika ‘0’ sehingga pin DIR berlogika ‘0’ yang artinya data dilewatkan dari 8-bit B ke 8-bit A. 
1.   Memakai decoder Nand Gate IC 74LS30

Gambar 5  Rangkaian interface dengan decoder nand
 
2.   Memakai decoder IC 74LS138

Gambar 6  Rangkaian interface dengan decoder 74LS138

Port Paralel

Nama lain dari port paralel adalah port printer karena memang dirancang untuk melayani pencetak paralel. Data port paralel 8-bit hanya dirancang untuk mengirim data (pencetak).
Nama-nama port parallel, seperti Tabel 6:
– LPT1 dan LPT2 untuk port printer
– LPT0 untuk video adapter

PC (Printer control):
a) Bit 0 : Strobe, sunsang
b) Bit 1 : Autofeed, sunsang
c) Bit 2 : Init, normal
d) Bit 3 : Select in, sunsang
e) Bit 4 s/d 7 : tidak dipakai

PS (Printer status):
a. Bit 0 s/d 2 : Tidak dipakai
b. Bit 3 : Error, normal
c. Bit 4 : Select, normal
d. Bit 5 : Paper end, normal
e. Bit 6 : Acknowledge (ACK), normal
f. Bit 7: Busy, sunsang
Port paralel dapat difungsikan sama seperti IC 8255 untuk interfacing, tetapi setiap port-nya hanya dapat difungsikan sebagai input atau output saja, seperti penjelasan pin-pin pada Tabel 7.
Port paralel sama halnya dengan printer, hanya memanfaatkan port data (DP/Data Port) 8-bit yaitu DP0 s/d DP7 sebagai output, Port Control (PC/Printer Control) 4-bit yaitu PC0 s/d PC3 sebagai output dan Port Status (PS/Printer Status) 5-bit (PS3 s/d PS7) sebagai input yang berturut-turut LPT1 dengan alamat 378h, 379h, dan 37Ah. Untuk menguji data yang dikeluarkan sebagai data ke printer maka harus dilakukan komunikasi PS dan PC seperti pada gambar 77.
Gambar 77 Plug uji untuk uji LPT
Contoh rangkaian mengirim dan menerima data dari/ke port printer, diperlihatkan pada gambar 78, 79 dan, 80.

Gambar 78 Contoh rangkaian aplikasi Port 378H
Gambar 79 Contoh rangkaian aplikasi Port 379H
Gambar 80 Contoh rangkaian aplikasi Port 37AH
Contoh program :
Program dirancang memakai bahasa tingkat tinggi yaitu Visual Basic (VB). VB tidak bisa mengakses hardware secara langsung sehingga digunakan file io.dll yang dikopikan ke system32.
Pada VB digunakan modul sebagai berikut :
Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)
Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As Byte
a) Menggunakan Port 378H

Listing program :
Dim i, data As Integer
Private Sub running_Click()
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
i = 0
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Call PortOut(&H378, data)
data = 2 ^ i
i = i + 1
If i > 7 Then i = 0
End Sub

b) Menggunakan Port 379H

Listing Program :
Dim data, data7, data3456 As Integer
Private Sub baca_Click()
data = PortIn(&H379)
data = data And &HF8
data3456 = data And &H78
data7 = data And &H80
data7 = Not data7
data7 = data7 And &H80
data = data7 Or data3456
Text1.Text = Int(data)
End Sub
Private Sub hapus_Click()
Text1.Text = ""
End Sub
Private Sub exit_Click()
Unload Me
End Sub

c) Menggunakan Port 37AH

Listing Program :
Dim data, d24567, d013 As Integer
Private Sub tulis_Click()
data = Val(Text1.Text)
data = data And &HF
d24567 = data And &H4
d013 = data And &HB
d013 = Not d013
d013 = d013 And &HB
data = d24567 Or d013
Call PortOut(&H37A, data)
End Sub

4. Prosedur Percobaan  [Kembali]

Prosedur Percobaan:

  1. Mempersiapkan Komponen:

    • Pastikan Anda memiliki komponen yang diperlukan seperti mikroprosesor (misalnya 8086), port paralel (LPT), dan perangkat output (seperti LED atau tampilan 7-segmen) yang terhubung ke port paralel.
    • Komponen ini dapat ditemukan di pustaka komponen Proteus.
  2. Membuat Rangkaian:

    • Buatlah rangkaian di dalam Proteus dengan menempatkan komponen sesuai dengan diagram pada Gambar 79.
    • Hubungkan mikroprosesor ke port paralel (379H). Port ini akan berfungsi sebagai pengontrol untuk perangkat output.
    • Sambungkan perangkat output (misalnya LED atau 7-segmen) ke port paralel untuk menampilkan hasil dari data yang dikirim melalui Port 379H.
  3. Menulis Program Kontrol:

    • Tulis kode atau program yang akan dikompilasi dan diunggah ke mikroprosesor. Program ini akan mengatur bagaimana data dikirim ke Port 379H.
    • Program ini dapat ditulis dalam bahasa Assembly atau bahasa tingkat tinggi lainnya (seperti C) tergantung pada jenis mikroprosesor yang digunakan.
  4. Mensimulasikan Rangkaian:

    • Setelah semua komponen dan program telah siap, jalankan simulasi di Proteus.
    • Observasi bagaimana perangkat output bereaksi terhadap sinyal yang dikirim oleh mikroprosesor melalui Port 379H.
  5. Mengamati dan Menganalisis Hasil:

    • Amati status dari perangkat output (misalnya LED menyala/mati atau angka yang muncul di tampilan 7-segmen) untuk memastikan bahwa data yang dikirim melalui Port 379H sesuai dengan ekspektasi.
    • Analisis hasilnya untuk menentukan apakah program kontrol dan koneksi rangkaian berfungsi dengan benar.
  6. Pemecahan Masalah (Debugging):

    • Jika hasil simulasi tidak sesuai dengan yang diharapkan, lakukan debugging pada program kontrol atau periksa kembali koneksi rangkaian untuk memastikan semuanya terhubung dengan benar.
    • Ulangi simulasi hingga mendapatkan hasil yang diinginkan.

5. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


Prinsip Kerja Rangkaian Aplikasi Port 379H

  1. Konfigurasi Port Paralel (Port 379H):

    • Port 379H adalah alamat port yang umum digunakan untuk port paralel pada komputer. Dalam konteks ini, port paralel berfungsi sebagai antarmuka untuk mengirim data digital dari komputer atau mikrokontroler ke perangkat eksternal.
    • Port paralel memiliki beberapa pin yang dapat dikonfigurasi sebagai input atau output. Pin ini digunakan untuk mengirim atau menerima sinyal digital.
  2. Koneksi Perangkat Output:

    • Perangkat output, seperti LED atau tampilan 7-segmen, dihubungkan ke pin output port paralel. Misalnya, jika kita menghubungkan LED, salah satu pin LED terhubung ke pin data port paralel, dan pin lainnya terhubung ke ground melalui resistor pembatas arus.
    • Setiap pin data pada port paralel dapat dikontrol secara independen untuk mengirim sinyal logika '1' (tegangan tinggi) atau '0' (tegangan rendah) ke perangkat output.
  3. Pengendalian Melalui Program:

    • Program kontrol ditulis dalam bahasa pemrograman yang sesuai (misalnya Assembly, C, atau lainnya) untuk mengatur kondisi pin pada port paralel.
    • Program ini memuat data ke port 379H yang diterjemahkan menjadi sinyal digital yang dikirim ke perangkat output. Misalnya, program dapat mengirimkan data '00000001' untuk menyalakan LED yang terhubung ke bit pertama port paralel.
    • Proses penulisan data ke port paralel ini diatur oleh instruksi input/output pada program kontrol yang dikompilasi dan diunggah ke mikrokontroler atau komputer yang digunakan.
  4. Operasi Rangkaian:

    • Ketika simulasi dimulai di Proteus, program kontrol mulai menulis data ke port paralel (Port 379H).
    • Data yang dikirim ke Port 379H menentukan status perangkat output. Misalnya, jika data '00000001' dikirim, maka LED yang terhubung ke bit pertama akan menyala, sementara LED lain tetap mati.
    • Dengan mengubah data yang dikirim ke port, kita dapat mengontrol perangkat output seperti menyalakan atau mematikan LED, atau menampilkan angka tertentu pada tampilan 7-segmen.
  5. Observasi dan Umpan Balik:

    • Pengguna dapat mengamati status perangkat output selama simulasi untuk memastikan bahwa perangkat tersebut berfungsi sesuai dengan program yang telah ditulis.
    • Jika hasilnya tidak sesuai dengan yang diharapkan, pengguna dapat melakukan debugging pada program atau memeriksa koneksi rangkaian untuk memastikan semuanya terhubung dan berfungsi dengan benar.

6. Video Simulasi [Kembali]




7. Download File [Kembali]

klik download [file rangkaian]
klik download [html]

Entri yang Diunggulkan

TB UpUc

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan 2. Alat dan Bahan 3. Dasar Teori 4. Prosedur Percobaan 5. Rangkaian Si...