Pertama tama pengertian apa itu multiplexer? multiplexer adalah suatu alat atau komponen elektronika yang digunakan untuk memilih 2 sampai banyak input atau masukan untuk diteruskan ke bagian output atau keluaran. Pemilihan ini ditentukan oleh bagian kontrol atau select.
Intinya Multiplexer terdiri dari:
- Lebih dari satu input
- Output (Jumlahnya kurang dari input)
- Select/pemilih input
- Enable/Strobe (untuk mengatur output semua LOW apapun inputnya atau output sesuai dengan input yang dipilih oleh select)
Ilustrasi Multiplexer:
Agar lewat ke jalur output maka pin select memilih jika S0=0 S1=0 maka output=input1 dan jika S0=1 S1=0 maka output=input2 dan seterusnya. Itu jika enable bernilai 0. Jika enable bernilai 1 atau High maka apapun pin selectnya output=0 (selalu low).
Contoh ic multiplexer yang sering dimanfaatkan, contoh ic ini jenis ic TTL yang sering dipakai didunia mikrokontroler, karena dalam ic ada jenis TTL, CMOS, H-CMOS. IC TTL sendiri juga ada beberapa jenis. untuk detailnya bisa dibahas di bagian lainnya kapan2, berikut ic multiplexer:
74LS157 = 2 input (4 buah)
untuk detail keterangan bisa dicek langsung di datasheetnya
74LS153 = 4 input (2 buah)
untuk detail keterangan bisa dicek langsung di datasheetnya
74LS151 = 8 input (1 buah)
untuk detail keterangan bisa dicek langsung di datasheetnya
74LS150 = 16 input (1 buah)
ntuk detail keterangan bisa dicek langsung di datasheetnya
IC Multiplexer 74LS157
kita akan bahas ic 74LS157 atau bisa disebut QUAD 2-INPUT MULTIPLEXER
Keterangn ini berdasarkan datasheetnya, seperti dengan namanya ic multiplexer ini terdiri dari 2-input sebanyak QUAD atau 4 buah.
Karena input hanya 2 maka pin selectnya hanya 1 pin, jika select=0 maka output memilih input 1 dan jika select bernilai 1 maka memilih input 2.
Karena ic ini ic ttl sehingga supply voltage atau VCC minimal 4.5 VDC s/d 5.5VDC
Berikut diagram koneksinya (TOP VIEW/tampak dari atas)
Nama pin:
S Common Select Input
E Enable (Active LOW) Input
I0a–I0d Data Inputs from Source 0
I1a–I1d Data Inputs from Source 1
Za–Zd Multiplexer Outputs
Keterangan:
S= pin select
E= pin enable (aktif low atau 0 )
I0a–I0d = Input ke 1
I1a–I1d = Input ke 2
Za–Zd
karena 4 buah dengan masing-masing 2 input dan 1 output maka agar tidak bingung digunakan penanda a,b,c,d
kelompok a:
10a=Input 1 kelompok a
11a=Input 2 kelompok a
Za=Output kelompok a
kelompok b:
10b=Input 1 kelompok b
11b=Input 2 kelompok b
Zb=Output kelompok b
kelompok c:
10c=Input 1 kelompok c
11c=Input 2 kelompok c
Zc=Output kelompok c
kelompok d:
10d=Input 1 kelompok d
11d=Input 2 kelompok d
Zd=Output kelompok d
Berikut tabel kebenarannya:
Keterangan:
Jika Enable bernilai low atau 0 dan S atau select bernilai 0 maka output tiap kelompok (a,b,c,d) akan meneruskan input 1 (Io) ke output, jadi saat itu apapun nilai input 2 akan diabaikan .
Jika Enable bernilai low atau 0 dan S atau select bernilai 1 maka output tiap kelompok (a,b,c,d) akan meneruskan input 2 (I1) ke output, jadi saat itu apapun nilai input 1 akan diabaikan .
Tapi jika enable bernilai high apapun nilai selectnya baik 0 atau 1 dan apapun nilai inputnya, nilai outpunya akan low atau 0.
Ic Multiplexer 74LS151
Secara garis besar ic multiplexer ini terdiri dari 8input, otomatis karena 8 input (Io-I7) maka pin select terdiri 3 pin(maksimal 8 kombinasi) dengan simbol S0-S2. Ada pin enable (E) dan 1 Output dengan Simbol Z, dan Z Komplemen (kebalikan dari Z) dengan tanda garis diatasnya. Maksutnya jika Z=0 maka Z Komplemen=1 dan jika Z=1 maka Z komplemen=0.
Seperti ic sebelumnya karena ic ini ic ttl sehingga supply voltage atau VCC minimal 4.5 VDC s/d 5.5VDC
Berikut diagram koneksinya (TOP VIEW/tampak dari atas)
Keterangan:
S0–S2 = Select Inputs
E = Enable (Active LOW)
I0-I7 = Input Multiplexer Inputs
Z = Multiplexer Output
Z Komplemen= Complementary Multiplexer Output
Keterangan:
S0-S2 = pin select teridiri dari S0, S1 dan S2
E= pin enable (aktif low atau 0 )
I0-I7 = Input Multiplexer 8 buah terdiri dari I0, I1, I2, I3, I4, I5, I6 dan I7
Z = Multiplexer Output
Z Komplemen= Kebalikan dari Multiplexer Output
Tidak seperti 74LS157 yang 2 input (4 buah), 74LS151 ini 8 input (1 buah)
Berikut tabel kebenarannya:
Keterangan:
Jika Enable bernilai low atau 0 dan S0 atau select ke-1 bernilai 0, S1 atau select ke-2 bernilai 0, dan S2 atau select ke-3 bernilai 0 maka output (Z) akan meneruskan input 1 (Io) ke output dan Z komplemen akan bernilai terbalik dari Z, jadi saat itu apapun nilai input 2 s/d 8 akan diabaikan .
Jika Enable bernilai low atau 0 dan S0 atau select ke-1 bernilai 1 atau High, S1 atau select ke-2 bernilai 0, dan S2 atau select ke-3 bernilai 0 maka output (Z) akan meneruskan input 2 (Io) ke output dan Z komplemen akan bernilai terbalik dari Z, jadi saat itu apapun nilai input 1,3 s/d 8 akan diabaikan .
Tapi jika enable bernilai high apapun nilai selectnya (S0-S2) baik 0 atau 1 dan apapun nilai inputnya, nilai output (Z) akan low atau 0 dan Z komplemen akan bernilai kebalikan dari Z yaitu 1 atau High terus.
Pemanfaatan ic Multiplexer dalam mikrokontroler
Biasanya dimanfaatkan misal ic atmega 8 bagian serialnya hanya 1 buah yang terdiri dari TX untuk mengirim dan RX untuk Menerima data dari luar. Jika menginkan pin RX menerima masukan lebih dari 1 serial misal 2 serial dari luar karena terbatasnya pin RX maka digunakan multiplexer.
Simulasi pemanfaatan ic multiplexer dengan program simulasi proteus
atau dengan nama lain
Simulation 2 Input Serial To Microcontroller With IC Multiplexer 74LS157
2 Input serial ttl dari alat lain misal dari pc1 dan Pc2 ingin mengontrol 2 led pada ic mikrokontroler atmega 8, karena terbatasnya serial pada atmega 8 yang hanya 1 buah, RX dan TX. maka diperlukan ic lain yaitu ic multiplexer untuk mengontrol serial yang aktif apakah serial dari PC1 atau dari PC2.
Simulasi dibuat dengan software proteus versi 8.6 dan program menggunakan bahasa c dengan software developmen Codevison Avri 2.05
Wiring
- Input switch dihubungkan dengan PINC.2 mikro.
- Pin select pada ic multiplexer dihubungkan dengan mikro yaitu pada PORTD.2.
- Pin TX serial pada PC1 dihubungkan dengan input source 1 multiplexer kelompok A.
- Pin TX serial pada PC2 dihubungkan dengan input source 2 multiplexer kelompok A .
- Output Multiplexer kelompok A yaitu Y dihubungkan dengan pin RX Mikro Atmega 8 yaitu pada pin PIND.0.
- Led 1 sebagai indikator output dihubungkan dengan PORTB.0 pada mikro.
- Led 2 sebagai indikator output dihubungkan dengan PORTB.1 pada mikro
- input source 1 dan 2 pada multiplexer kelompok lain (B, C,D) bisa dihubungkan dengan vcc(5V) bisa juga tidak dihubungkan dengan apapun.
- Pin enable pada ic multiplexer dihubungkan dengan 0v, sehingga aktif terus.
- Pada simulasi tidak terlihat pin vcc dan gnd yang dihubungkan dengan mikro dan ic multiplexer. karena secara default di simulasi pin tersebut sudah terhubung.
Prinsip kerja
jika data serial yang masuk pada mikro yaitu
karakter ‘a’ maka menyalakan led 1
karakter ‘b’ maka menyalakan led 2
karakter ‘c’ maka mengoffkan led 1
karakter ‘d’ maka mengoffkan led 2
Jika input switch posisi terbuka maka yang diaktifkan hanya serial pc 1, jadi apapun data serial yang dikirimkan dari PC2 maka tidak akan masuk ke serial mikro.
Jika input switch posisi tertutup maka yang diaktifkan hanya serial pc 2, jadi apapun data serial yang dikirimkan dari PC1 maka tidak akan masuk ke serial mikro.
Keterangan program atau source code
maksut dari define yaitu memudahkan dalam pemrograman saja. PORTD.2 dinamakan lain dengan select dst
#define select PORTD.2
#define led1 PORTB.0
#define led2 PORTB.1
#define switch PINC.0
unsigned char data_serial;//membuat variabel yang berfungsi menampung data serial
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
data_serial=data;
//mengatifkan fitur interupt serial sehingga saat ada serial yang masuk maka langsung dieksekusi/diprioritaskan
//mengisialisasi register input output dan diesekusi sekali saat mikro pertama kali dinyalakan
PORTB=0x00;
DDRB=0x03;//led1 dan led 2 sebagai output
PORTC=0x01;//internal pullup input switch, agar logika awal saat terbuka= 1 (high)
DDRC=0x00;
PORTD=0x00;
DDRD=0x04;//select sebagai output
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
// Global enable interrupts
asm(“sei”)
while (1)//program yang dijalankan terus menerus
{
if(switch==1)//switch posisi buka
{
select=0;//mengaktifkan serial 1
}
else if(switch==0)//switch posisi tutup
{
select=1;//mengaktifkan serial 2
}
if(data_serial==’a’)led1=1;//jika data serial yang diterima karakter a maka led 1 ON
else if(data_serial==’b’)led2=1;//jika data serial yang diterima karakter b maka led 2 ON
else if(data_serial==’c’)led1=0;//jika data serial yang diterima karakter c maka led 1 OFF
else if(data_serial==’d’)led2=0;//jika data serial yang diterima karakter d maka led 2 OFF
}
Video simulasi dan program
File program dan simulasi
Untuk program dan file simulasi protus lengkapnya bisa didapatkan disini
Semoga bermanfaat. Jika ada yang kurang jelas atau saran dan kritik bisa langsung hubungi kami lewat kontak di web ini
Terima kasih.
Musbikhin.com