Interface Input Output 1. PROGRAMABLE PERIPERAL INTERFACE A. Deskripsi Umum Programable Periperal Interface 8255 Adalah keluarga IC Intel yang digunakan untuk banyak aplikasi industri. IC ini dapat diprogram (programmable) untuk komunikasi antara mikroprosesor dengan perangkat luar (periperal). Sebelum menjelaskan fungsi kerja, Penulis akan menjelaskan contoh aplikasi yang dapat dibuat dengan PII 8255 antara lain : Ø Aplikasi peraga LED Ø Aplikasi pengendali lampu lalu lintas Ø Aplikasi motor stepper yang diprogram untuk menggerakkan lengan (rigid body) robot Ø Aplikasi detektor suhu (thermostat) dan cahaya (light). Ø Aplikasi intelligent home controller Dan masih banyak yang lain. Itu semua tergantung dari kreatifitas kita serta tujuan penggunanya.
Gambar. 8255 diagram
B. Data Bus Buffer 8 bit data bus buffer (D0..D7) berhubungan dengan 3 state bi-directional 8 bit buffer (Port A, Port B dan Port C). Data yang diterima di data bus buffer akan disimpan di buffer (tempat penyimpanan sementara) sebelum di eksekusi oleh mikroprosesor. Control Word dan status informasi juga ditranfer melalui data bus buffer ini.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
1 dari 17 Halaman
Gambar group control C. Group Control Group Control dibagi menjadi 2 group. (Group A dan Group B). Group tsb menerima Read/Write control Group Control A digunakan: a) Mengatur Port A yang bisa diseting sebagai input/output latch/buffer b) Mengatur 4 upper bit (C4..C7) Port C sebagai input buffer atau output latch/buffer jika bekerja pada mode 0 c) Mengatur 4 upper bit (C4..C7) Port C sebagai Control Group A jika bekerja pada mode 1 atau 2. Group Control B digunakan: a) Mengatur Port B yang bisa diseting sebagai input/output latch/buffer b) Mengatur 4 lower bit (C0..C3) Port C sebagai input buffer atau output latch/buffer jika bekerja pada mode 0 c) Mengatur 4 upper bit (C0..C3) Port C sebagai Control Group B jika bekerja pada mode 1 atau 2.
D. Mode / Protokol komunikasi : Transfer data pada PPI 8255 dibagi menjadi 3 protokol komunikasi : 1. Mode 0 (Simple protokol) / Basic Input - Output Transfer data yang tidak memerlukan sinyal khusus yang menandakan apakah telah terjadi transfer data atau belum. 2. Mode 1 (Single handshaking protokol) / Strobed Input - Output Metode pentransferan data paralel dimana data tidak siap setiap saat. Untuk memberik tanda dari/ke mikroprosesor, maka PPI akan memberi sinyal "strobe" yang menyatakan
Mikroprosesor & Mikrokomputer Univ. Gunadarma
2 dari 17 Halaman
data telah siap dikirim/diterima. Transfer data semacam ini bisa kita lihat pada printer. Cara kerjanya sebagai berikut : Mikroprosesor mengeluarkan sinyal strobe ke printer seolah-olah memberitahukan "ini ada data untukmu, terimalah". Jika printer telah menerima data maka printer memberikan sinyal acknowledge ke microprosesor, seolah-olah memberitahukan "data sudah saya terima,". 3. Mode 2 (Double handshaking protokol) / Bi-directional Bus metode pentransferan data paralel yang menggunakan metode "handshaking", dimana mikrokontroller dan PPI akan saling berkomunikasi dengan memberi sinyal yang menyatakan bahwa data telah siap dikirim dan data telah diterima. Transfer data semacam ini menggunakan aturan sebagai berikut : Mikroprosesor sebagai pengirim mengeluarkan sinyal strobe low seolaholah mengatakan ke printer "Anda siap dikirimi data ?" Jika printer siap maka printer sebagai penerima data mengeluarkan sinyal acknowledge high seolah-olah mengatakan ke mikroprosesor "Ya saya siap !" Setelah ada persetujuan, mikroprosesor mengeluarkan sinyal strobe high diikuti dengan pengiriman data seolah-olah mengatakan " Ini data untukmu !" Jika data telah di transfer Printer mengeluarkan sinyal acknowledge low seolah-olah mengatakan "data sudah saya terima". Terdapat 2 format control word register, yaitu format definisi mode (mode definition format) dan format set/reset bit (bit set/reset format). Perbedaan kedua format adalah pada MSB control word register (D7). Format definisi mode apabila D7 bernilai 1, dan format set/reset bit apabila D7 bernilai 0. Format definisi mode digunakan untuk mendefinisikan mode pengoperasian port PPI. Format set/reset bit digunakan untuk memberikan nilai low atau high pada bit-bit pada port C.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
3 dari 17 Halaman
Gambar diagram control word E. Port pada Programable Periperal Interface 8255 Programable Periperal Interface 8255 terdiri dari 4 port yaitu Port A, Port B, Port C, Control Word Port. Pada mode 0, Port A, B, C adalah port yang digunakan sebagai I/O data Pada mode 1, Port A, C adalah port yang digunakan sebagai I/O data sedangkan port C bisa digunakan sebagai sinyal control (Strobe dan Acknowledge) atau sebagai I/O data. Pada mode 2, Port A, C adalah port yang digunakan sebagai I/O data sedangkan pada Port B, 5 bit pada MSB digunakan sebagai sinyal control dan 3 bit pada LSB digunakan sebagai I/O data. Control Word Port digunakan untuk inisialisasi awal yang menentukan PPI 8255 bekerja pada mode 0, 1 atau 2 dan menentukan port-port mana saja yang digunakan sebagai input dan output serta sebagai sinyal control. F. Set / Reset Bit Pada PPI 8255 terdapat port untuk set dan reset sebuah bit, dimana jika terjadi Set atau Reset hanya salah satu port pada Port C. Contoh : 1. Jika Port C saat ini datanya adalah FFH (1111 1111), jika kita akan me-reset Port C 5 (PC5 ) maka Port C hasilnya adalah BF H (1011 1111). 2. Jika Port C saat ini datanya adalah 1FH (0001 1111), jika kita akan me-set Port C 7 (PC7) maka Port C hasilnya adalah 9FH (1001 1111).
Mikroprosesor & Mikrokomputer Univ. Gunadarma
4 dari 17 Halaman
Format Data Set / Reset D7 D6 0 X
D5 X
D4 X
D3
D2 D1 Bit Selector
D0 1 = Set 0 = Reset
Penjelasan : Bit Selector adalah bit yang di inginkan untuk di set/reset. Contoh jika Set PC3 , maka Datanya adalah 0xxx 0111 (angka yang tebal artinya adalah set). G. Pengalamatan Telah dijelaskan sebelumnya bahwa PPI 8255 memiliki tiga buah port paralel yang masing masing diberi nama port A, port b dan port C. Disamping itu PPI 8255 memiliki satu register kontrol (control word register). Ketiga port dan register tsb dapat diakses dengan alamat sebagai berikut Alamat port A, B, dan C berturut-turut adalah 00h, 01h, dan 02h. Sedangkan alamat register kontrol adalah 03h. Hal ini berhubungan dengan pemberian sinyal pada kaki A0 dan A1. Dalam suatu program, alamat port A adalah 00h ditambah dengan alamat aktif. Alamat port B adalah 01h ditambah alamat aktif. Demikian pula untuk port C dan register kontrol. Misalnya, jika PPI 8255 dirancang untuk aktif pada alamat 200h, alamat ketiga port berturut-turut adalah 200h, 201h, dan 202h. Dan alamat register kontrol adalah 203h. H. Penulisan Bahasa pemrograman assembler pada mikroprocecor intel. Ø (Output data) Menulis atau Mengeluarkan data ke device Mov DX, 300h Mov AL, FFh Out DX, AL Penjelasan : Register DX mikroprosesor menunjuk alamat 300h Register AL mikroprosesor diisi data FCh atau dalam bentuk bit (1111 1100) Mikroprosesor mengeluarkan data FCh ke alamat 300h Ø (Input data) Membaca data dari device / Memasukkan data ke mikroprosesor Mov DX, 301h In AL, DX Penjelasan : Register DX mikroprosesor menunjuk alamat 301h Mikroprosesor memasukkan data dari alamat 301h
2. PROGRAMMABLE INTERVAL TIMER
Mikroprosesor & Mikrokomputer Univ. Gunadarma
5 dari 17 Halaman
Gambar dibawah ini merupakan sebuah IC yang berfungsi sebagai down counter yang dapat diprogram. Terdapat sinyal perantara mikroprosesor, sinyal ini memungkinkan mikroprosesor mengatur konfigurasi mode operasi timer, seperti : Ø Mengisi nilai counter Ø Membaca nilai counter Ø Memprogram mode yang diinginkan Fungsi PIT 8254 Beberapa fungsi dari counter/timer pada mikrokomputer yang dapat di implemetasikan oleh 8254 sebagai berikut : Ø Real time clock Ø Even counter Ø Digital one-shot Ø Programmable rate generator Ø Square wave generator Ø Binary rate multiplier Ø Complex waveform generator Ø Complex motor controller
Diagram Blok
DATA BUS BUFFER: ü 3-state, bi-directional, 8-bit buffer. ü Interfaces the 8254 to the system bus. READ/WRITE LOGIC BLOCK: v Read/Write Logic Block menerima masukan dari sistem bus dan pembangkit sinyal kontrol pada beberapa fungsi blok dari 8254. v A1 dan A0 pemilih salah satu dari tiga counter atau control word register baik pada saat membaca atau penulisan. v Pin RD=0 memberitahukan 8254 bahwa CPU melakukan proses pembacaan sebuah counter.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
6 dari 17 Halaman
v Pin WR=0 memberitahukan 8254 bahwa CPU melakukan proses penulisan salah satu dari Control Word ata Insialisasi counter v Kedua RD dan WR sebagai syarat dari CS. CONTROL WORD REGISTER: 1. Register ini merupakan pemilihan pada Read/Write Logic ketika A1,A0=11. 2. Jika CPU melakukan operasi penulisan pada 8254, data yang terdapat pada control word register dan menafsirkan pada penggunaan control word yang didefinisikan sebagai operasi dari counter 3. Register Control Word hanya dapat melakukan penulisan. Informasi status yang tersedia saat Read-Back command. COUNTERS: 1. Terdapat 3 buah Counter. Secara penuh bebas dari yang lain. Setiap counter dapat beroperasi mode yang berbeda. 2. Setiap counter mempunyai 16 bit down counter sinkronus. 3. Setelah power aktif, nilai counter dan keluaran pada semua counter tidak didefinisikan. 4. Setiap counter dapat diprogram sebelum digunakan. 5. Counter yang tidak dipakai tidak dapat diprogram. 6. Counter yang terprogram saat penulisan control word dan inisialisasi counter. 7. GATE=1 mengaktifkan counter, GATE=0 non-aktifkan counter.
SYSTEM INTERFACE Komponen IC 82C54 merupakan suatu software sistem yang terdapat beberapa device I/O port; diantaranya 3 counter dan sebuah register kontrol untuk program mode. Umumnya, masukan pilihan A0, A1 terhubung pada A0, A1 sinyal bus address dari CPU. Pin CS dapat masukan langsung dari bus address yang menggunakan metode pilihan linear. Atau dapat dihubungkan pada keluaran dari decoder.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
7 dari 17 Halaman
PROGRAMMING THE 8254: 1. Merupakan program counter dari penulisan control word dan kemudian inisialisasi counter. 2. Control Words untuk menulisa pada register control word, dimana ketika A0, A1 = 1. Control word tersebut merupakan spesifikasi sebuat counter yang di program. 3. Inisialisasi counter pada penulisan di counter, tidak pada Control word. Masukan Ao, A1 sebagai pemilih counter yang akan ditulis. 4. Format dari inisialisasi counter yang ditentukan dari penggunaan control word.
WRITE OPERATIONS: 1. Setiap Counter, Control Word harus ditulisan sebelum inisialisasi counter di tulis. 2. Pada inisialisasi counter harus mengikuti format pada Control (lsb only, msb only, or lsb then msb).
Mikroprosesor & Mikrokomputer Univ. Gunadarma
8 dari 17 Halaman
Inisialisasi counter baru dapat ditulis ke counter pada kapan saja tanpa mempengaruhi counter yang sedang berlangsung. Bagaimanapun, proses counter akan berpengaruh pada beberapa mode yang didefinisikan. READ OPERATIONS: 1. A simple READ operation: v Pilih Counter pada masukan A1, A0. v Mencegah CLK dari pilihan counter oleh penggunaan lain pada masukan Gate atau logika eksternal. v Dapat menghentikan CLK pada saat melakukan counter. 2. Counter Latch Command (does not disturb the count in progress): v Menuliskan ke register control word mana digunakan, tapi 2 bit (D5 & D4) yang akan membedakan perintah tersebut dari control word. v Memilih counter sebagai Counter's OL latches saat Counter Latch Command diterima. v Counter akan tetap pada latch selama pembacaan dari CPU. v Counter akan unlatched dengan sendirinya dan OL kembali ke "following" pada CE.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
9 dari 17 Halaman
3. Read-Back Command: v Perintah ini memperbolehkan kita untuk mengecheck nilai counter, mode program, dan bagian arus dari pin OUT dan Null Count flag dari counter yang terpilih. v Perintah ini serupa pada beberapa Counter Latch Commands, dari 1 untuk setiap counter latched.
MODE DEFINITIONS: Clk Pulse: naik, kemudian turun, pada saat perintah dari sebuah counter masukan CLK. Trigger: naik dari counter masukan GATE. Counter loading: Perubahan counter dari CR ke CE. MODE 0: INTERRUPT ON TERMINAL COUNT ⇒ Proses terjadinya counter. ⇒ Setelah Control Word di tulis, Out akan 0 dan akan selalu 0. ⇒ Ketika counter mencapai 0. Out akan 1 dan akan selalu 1 selama counter baru/control word mode 0 baru menulis counter tersebut. MODE 1: HARDWARE RETRIGGERABLE ONE-SHOT ⇒ Out akan 1. Out akan 0 pada pulsa CLK mengikuti trigger yang di tandai dengan oneshot pulse, dan akan selalu 0 selama counter mencapai 0. ⇒ Out akan 1 dan selalu 1 selama CLK setelah trigger berikutnya.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
10 dari 17 Halaman
MODE 2: RATE GENERATOR ⇒ Berfungsi divide-by-N counter dan mengunakan pembangkit Real Time Clock Interrupt. ⇒ Out didefinisikan 1. ⇒ Ketika inisialisasi counter diturunkan satu, Out akan 0 selama 1 pulsa CLK. ⇒ Out akan 1 kembali, jika akan mengcounter kembali pada inisialisasi counter dan proses di ulang kembali. ⇒ MODE 2 merupakan periode. Urutannya akan sama saat diulang sampai tak hingga. MODE 3: SQUARE WAVE MODE ⇒ Identik digunakan untuk baud rate generation. ⇒ Out akan didefinisikan 1. ⇒ Ketika separuh inisialisasi count berakhir, Out akan 0 beberapa saat pada counter. ⇒ MODE 3 merupakan periode. Urutannya akan sama saat diulang sampai tak hingga. MODE 4: SOFTWARE TRIGGERED STROBE ⇒ Out akan didefinisikan 1. ⇒ Ketika inisialisasi counter berakhir, Out akan 0 untuk 1 Pulsa CLK dan kembali 1. ⇒ Urutan Counter merupakan "triggered" pada penulisan inisialisasi counter. ⇒ Counter akan membaca CLK berikutnya diikuti penulisan Control Word dan inisialisasi Counter. MODE 5: HARDWARE TRIGGERED STROBE (RETRIGGERABLE) ⇒ Out akan didefinisikan 1. ⇒ Counter merupakan pemicu oleh tepi naik pada Gate. ⇒ Ketika inisialisasi berakhir, Out akan 0 untuk 1 pulsa CLK dan kembali 1 lagi. ⇒ Perbedaan antara Mode 4 dan Mode 5 adalah Mode 5 tidak dapat membaca kembali selama pulsa CLK setelah di picu.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
11 dari 17 Halaman
Mikroprosesor & Mikrokomputer Univ. Gunadarma
12 dari 17 Halaman
OPERATION COMMON TO ALL MODES: 1. Ketika Control Word menulis ke counter, semua Logika Kontrol akan segera di reset dan Out akan ke bagian inisialisasi. Saat itu tidak dapat mengambil CLK yang di kirimkan. 2. Masukan Gate selalu mengalami rising edge dari CLK 3. Pada salah satu Mode masukan Gate berada pada level sensitive dan juga pada salah satu rising edge. Pada salah satu Mode masukan gate dari kedua edge dan level sensitive. 4. Counter baru akan membaca dan mengcounter secara menurun pada edge turun pada CLK. 5. Bagian yang mungkin inisialisasi counter adalah 0, dan sama dengan 2^16 binar dan 10^4 BCD. 6. Counter tidak dapat dihentikan ketika mencapai 0. Pada Mode 0, 1, 4, dan 5 counter di mulai dari counter tertinggi (FFFFH atau 9999BCD). Pada Mode 2 dan 3 counter akan di ulang dengan sendirinya dan akan melanjutkan counter kembali.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
13 dari 17 Halaman
3. PROGRAMMABLE INTERRUPT CONTROLLER Keunggulan: ⊕ Interupsi terdapat 8 tingkatan ⊕ Dapat di cascaded pada konfigurasi master-slave dengan 64 level interupsi. ⊕ Terdapat prioritas internal. ⊕ Mode perbaikan prioritas dan rotasi. ⊕ Mempunyai masing-masing intrupsi maskable. ⊕ Mode dan Mask dapat dirubah-rubah. ⊕ Persetujuan IRQ, menetukan prioritas, mengecek apakah masukan prioritas > level arus, menghasilkan sinyal interupsi. ⊕ Pada mode 8085, memberikan 3 byte panggilan Intruksi. Pada Mode 8086, memberikan 8 byte nomor vektor. ⊕ Mode Polling dan vektor. ⊕ Alamat awal dari ISR atau nomor vektor program. ⊕ Tidak membutuhkan clock. Pinout Bi-directional, tristated, buffered data lines. Connected to data bus directly or through buffers RD-bar Active low read control WR-bar Active low write control A0 Address input line, used to select control register CS-bar Active low chip select Bi-directional, 3 bit cascade lines. In master mode, PIC places slave ID no. on these lines. In slave mode, the PIC CAS0-2 reads slave ID no. from master on these lines. It may be regarded as slave-select. Slave program / enable. In non-buffered mode, it is SPSP-bar / bar input, used to distinguish master/slave PIC. In EN-bar buffered mode, it is output line used to enable buffers INT Interrupt line, connected to INTR of microprocessor INTA-bar Interrupt ack, received active low from microprocessor IR0-7 Asynchronous IRQ input lines, generated by peripherals. D0-D7
Block diagram
Mikroprosesor & Mikrokomputer Univ. Gunadarma
14 dari 17 Halaman
ICW1 (Initialisation Command Word One) pada Port 20h & A0h A0 0
D7 A7
D6 A6
D5 A5
D4 1
D3 LTIM
D2 ADI
D1 SNGL
D0 IC4
D0 D1 D2
: IC4: 0=no ICW4, 1=ICW4 required : SNGL: 1=Single PIC, 0=Cascaded PIC : ADI: Address Interval. Used only in 8085, not 8086. 1=ISR's are 4 bytes apart (0200, 0204, etc) 0=ISR's are 8 byte apart (0200, 0208, etc) D3 : LTIM: level triggered interrupt mode: 1=All IR lines level triggered. 0=edge triggered D4-D7 : A5-A7: 8085 only. ISR address lower byte segment. The lower byte is A7 A6 A5 A4 A3 A2 A1 A0 of which A7, A6, A5 are provided by D7-D5 of ICW1 (if ADI=1), or A7, A6 are provided if ADI=0. A4-A0 (or A5-A0) are set by 8259 itself: ADI=1 (spacing 4 bytes) A7 A6 A5 A4 A3 A2 A1 A7 A6 A5 0 0 0 0 A7 A6 A5 0 0 1 0 A7 A6 A5 0 1 0 0 A7 A6 A5 0 1 1 0 A7 A6 A5 1 0 0 0 A7 A6 A5 1 0 1 0 A7 A6 A5 1 1 1 0 A7 A6 A5 1 1 1 0
IRQ IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
A0 0 0 0 0 0 0 0 0
IRQ IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
ADI=0 (spacing 8 bytes) A7 A6 A5 A4 A3 A2 A1 A7 A6 0 0 0 0 0 A7 A6 0 0 1 0 0 A7 A6 0 1 0 0 0 A7 A6 0 1 1 0 0 A7 A6 1 0 0 0 0 A7 A6 1 0 1 0 0 A7 A6 1 1 0 0 0 A7 A6 1 1 1 0 0
A0 0 0 0 0 0 0 0 0
ICW2 (Initialisation Command Word Two) pada Port 21h & A1h A0=1 Higher byte of ISR address (8085), or 8 bit vector address (8086). D7 A15
D6 A14
D5 A13
D4 A12
D3 A11
D2 A10
D1 A9
D0 A8
ICW3 (Initialisation Command Word Three) pada Port 21h & A1h A0=1 . Master Slave
D7 S7 0
D6 S6 0
D5 S5 0
D4 S4 0
D3 S3 0
D2 S2 ID3
D1 S1 ID2
D0 S0 ID1
Master mode: 1 indicates slave is present on that interrupt, 0 indicates direct interrupt Slave mode: ID3-ID2-ID1 is the slave ID number. Slave 4 on IR4 has ICW3=04h (0000 0100)
Mikroprosesor & Mikrokomputer Univ. Gunadarma
15 dari 17 Halaman
ICW4 (Initialisation Command Word Four) pada Port 21h & A1h A0=1 D7 0 SFNM M/S AEOI Mode
D6 0
D5 0
D4 SFNM
D3 BUF
D2 M/S
D1 AEOI
D0 Mode
: 1=Special Fully Nested Mode, 0=FNM : 1=Master, 0=Slave : 1=Auto End of Interrupt, 0=Normal : 0=8085, 1=8086
OCW1 (Operational Command Word One/Interrupt Mask Reg.) pada Ports 21h & A1h A0=1 D7 D6 D5 D4 D3 D2 D1 M7 M6 M5 M4 M3 M2 M1 IRn is masked by setting Mn to 1; mask cleared by setting Mn to 0 (n=0..7)
D0 M0
OCW2 (Operational Command Word Two/Interrupt Command Reg.) pada Ports 20h & A0h A0=0 D7 R
D6 SL
D5 EOI R 0
EOI
0
Auto rotation of priorities (L3L2L1=000)
1 1 0
Specific rotation of priorities (Lowest priority ISR=L3L2L1)
1 1 0
D4 0
D3 0
D2 L3
D1 L2
D0 L1
SL EOI Action 0 1 Non specific EOI (L3L2L1=000) Specific EOI command (Interrupt to clear given by 1 1 L3L2L1) 0 1 Rotate priorities on non-specific EOI 0 0 Rotate priorities in auto EOI mode set 0 0 Rotate priorities in auto EOI mode clear Rotate priority on specific EOI command (resets 1 1 current ISR bit) 1 0 Set priority (does not reset current ISR bit) 1 0 No operation
OCW3 (Operational Command Word Three) pada Ports 20h & A0h A0=0 D7 D7
D6 ESMM
D5 SMM
D4 0
ESMM SMM 0 X 1 0 1 1
Mikroprosesor & Mikrokomputer Univ. Gunadarma
D3 1
D2 MODE
D1 RIR
D0 RIS
Effect No effect Reset special mask Set special mask
16 dari 17 Halaman
Interrupt sequence (single PIC) 1. 2. 3. 4. 5. 6. 7. 8. 9.
Satu atau beberapa IR akan high (IR=1). Membandingan bit IRR yang di set. 8259 Menilai permintaan dan mengirim INT ke CPU. CPU mengirimkan INTA. Prioritas ISR High yang di set. IRR di reset. 8259 mengeluarkan printah CALL pada bus data. CALL menyebabkan CPU menginisialisasi beberapa INTA. 8259 mengeluarkan alamat sub rutin, pertama low bit, kemudia hight bit. Bit ISR di reset pada mode.
Mikroprosesor & Mikrokomputer Univ. Gunadarma
17 dari 17 Halaman