IV, PEREHCAHAAH ALAT
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of IV, PEREHCAHAAH ALAT
IV, PEREHCAHAAH ALAT
1. FENDAHULUAN
Pada bab ini akan dibicarakan mengenai perencanaan
pembuatan sistem penguji IC, baik dalam segi perangkat
kerasnya (hardware) maupun perangkat lunaknya (software).
Pada perencanaan perangkat keras akan dibuat interface
untuk menghubungkan antara mikrokomputer IBM-PC dengan IC
yang akan diuji. Pada perencanaan perangkat lunak akan
dibuat program agar sistem penguji IC bekerja sesuai dengan
kriteria yang telan ditentukan sebelumnya. Untuk memudankan
pembahasan maka kedua perencanaan tersebut akan dibahas
secara terpisab.
2. PERENCANAAN PERANGKAT KERAS
Interface yang direncanakan harus dapat berfungsi
sebagai berikut :
- menyediakan saluran input dan saluran output masing-
46
masing 16 buah
- masing-masing saluran dapat diprogram untuk
menghasilkan tlngRat-tingkat sinyal : logika '0',
logika '1', +V, ground, impedansi tinggi
- tingkat logika '0' dan M' berlaku untuk jenis IC
digital CMOS
Blok diagram perangkat keras sistem penguji
diperlihatkan pada gambar 4. 1.
fi2
OEM
no « i
ITJR-
o t i n M
P C
D 7
A V R a n t t k .
D t c o d a r
A -V
i ->L
I / O P o r t
A
D a t a
K o n t r o
R n n a K . P m t i h u b u n i )
^ > S o k t t
A V
R a n s k . ADC
A
D a t a
v-\ S a k l a r v i A n a l o g N
R a n s k . C o m p a r a t o r
GAMBAR 4. 1
BLOK DIAGRAM SISTEM PENGUJI IC
47
2. 1. Perencanaan Pengkodean Pada I/O Port
Pada perencanaan interface sistem penguji IC ini,
proses perpindahan data hanya terjadi antara 8088 dengan
PPI 8255 dan ADC0804. Untuk dapat memindankan data antara
8088 dengan 8255 dan ADC0804, maka terlebih dahulu harus
ditentukan address port dari 8255 dan ADC. Address I/O port
yang diperlukan untuk mengcperasikan IC 8255 adalah
sebanyak 4 address yang berbeda yaitu untuk Port A, Port B,
Port C dan Control Port, sedangkan untuk ADC dibutuhkan
sebuah address I/O port. Karena IC 8255 yang dibutuhkan
sebanyak 3 buah, maka total address I/O port yang
diperlukan adalah 13 buah address.
Pemilihan address I/O port dilakukan dengan ketentuan
sebagai berikut :
- Address I/O port yang dipilih harus berada pada slot.
Dengan pemilihan ini, maka jalur A9 harus aktif.
- Address I/O port yang direncanakan merupakan address I/O
port yang belum dipakai oleh peralatan I/O lainnya.
- AO dan Ai dari jalur address harus dihubungkan dengan
Jalur AO dan Al dari IC 8255.
Berdasarkan ketentuan pemilihan address I/O port di
atas, maka dipilih address I/O port pada daerah 300 Hex
sampal 30C Hex. Pemetaan address I/O port yang dipakai
digambarkan pada gambar 4. 2.
Dari gambar I/O Map diatas, maka dapat dituliskan
48
status dari tiap bit AO sampai A9 yang ditabelkan pada
tabel 4. 1.
300H
301H
302H
303H
304H
305H
306H
307H
308H
309H
30AH
30BH
30CH
Port A 8355 I
Port B 8255 I
Port C 8255 I
Control Port 8255 I
Port A 8255 II
Port B 8255 II
Port C 8255 II
Control Port 8255 II
Port A 8255 III
Port B 8255 III
Port C 8255 III
Control Port 8255 III
Port ADC
GAMBAR 4. 2
INPUT OUTPUT HAP
Dengan melihat tabel 4. i. , maka dapat dibuat rangkaian
dekoder untuk mengaktifkan peralatan I/O yang diinginkan.
Karena jalur AO dan Al langsung dihubungkan dengan 8255,
maka jalur address yang digunakan untuk pengdekodean I/O
port cukup diambil A2 sampai A9.
Untuk pengdekodean address I/O port, jalur address A4
sampai A7 dimasukkan ke 74LS20 (dual Nand dengan 4 input)
49
dengan melalui 74LS04 (Inverter). Keluaran dari 74LS20 ini
dimasukkan ke enable G2b dari 74LS138 (dekoder tiga input
ke delapan output). Address A2, A3 dan A8 dimasukkan ke
TABEL 4. i
STATUS TIAP BIT DARI INPUT OUTPUT HAP
Hex
300
301
302
303
304
305
306
307
308
309
30A
30B
30C
A9 A8 A7
i 1
1 1
i 1
i 1
i 1
i 1
1 I
1 J
1 1
1 i
1 i
1 i
1 i
L 0
I 0
L 0
L 0
I 0
L 0
L 0
I 0
L 0
L 0
L 0
L 0
L 0
A6
0
0
0
0
0
0
0
0
0
0
0
0
0
A5
0
0
0
0
0
0
0
0
0
0
0
0
0
A4
0
0
0
0
0
0
0
0
0
0
0
0
0
A3
0
0
0
0
0
0
0
0
i
i
i
i
0
A2
0
0
0
0
1
1
1
i
0
0
0
0
1
Ai
0
0
i
1
0
0
1
i
0
0
1
i
0
AO
0
1
0
i
0
i
0
1
0
1
0
1
0
masukan dari 74LS138 untuk memilih keluaran mana yang akan
diaktifkan, hanya untuk A8 sebelum dimasukkan ke 74LS138
terlebih dahulu dimasukkan ke 74LS04. Address A9 dipakai
untuk mengenable dekoder dan dimasukkan ke pin Gl dari
74LS138. Sedangkan slnyal AEN dimasukkan ke pin enable G2a
50
dari 74LS138, yang berfungsi untuk membuat dekoder tidak
aktif pada saat terjadi siklus bus DMA. Hal ini disebabkan
karena pada siklus bus DMA, AEN akan menjadi aktif tinggi
seningga dekoder di-disable. Bila tidak digunakan sinyal
AEN sebagai masukkan enable dekoder maka pada proses siklus
bus DMA akan membuat dekoder menjadi aktif karena pada
proses DMA sinyal IOR/IOW juga turut aktif, seningga
peralatan I/O akan terganggu. Rangkaian dari dekoder
digambarkan pada gambar 4. 3.
d a
E H > -
^
I B M
E5Z>-
mn
c SBE
rsuj 74LS04
-TJ2BT
S iso 3L
U2C
U2D
U2E
% > ^
AUL A vo > 1) Y l > 'i C Y2 >
Y3 J Y4 Pil
C I Y5 G2fi Yfi
=<! G2B Y7
= f d
U3rt
74T3S5o
74L§32
o
74X532
S-lcS ftbCd6Tj4~>
GAMBAR 4. 3
RANGKAIAN DEKODER
5 1
Keluaran dari dekoder YO dihubungkan dengan CS dari PPI
8255 I, keluaran dekoder Yl dihubungkan dengan CS dari PPI
8255 II dan keluaran dekoder Y2 dihubungkan dengan CS dari
PPI 8255 III. YO, Yl dan Y2 berfungsi untuk mengenable PPI
8255 yang diinginkan. Sedangkan keluaran dari dekoder Y3
digunakan untuk mengenable ADC0804 dan supaya dapat diakses
dengan address 30CH saja maka sebelum dimasukkan ke CS dari
ADC harus di-or-kan terleblh dahulu dengan AO dan Ai
seperti yang terlihat pada gambar 4. 3. diatas.
2. 2. Hubungan Antara PPI 825 5 Dengan Sistem Bus Slot
IC PPI 8255 mempunyai 8 jalur data, 2 jalur address
serta beberapa Jalur kontrol antara lain RD, WR, RESET dan
CS. Hubungan antara 8255 dengan sistem bus slot digambarkan
pada gambar 4. 4. Pada gambar tersebut terlinat bahwa jalur
data DO - D7 dari 8255 dihubungkan langsung ke jalur data
dari sistem bus slot, demikian juga dengan address AO dan
Ai. Untuk pin RD dihubungkan dengan Jalur sinyal IOR, pin
WR dihubungkan dengan jalur sinyal IOW dan pin reset
dihubungkan dengan sinyal RESET. Sinyal-sinyal IOR, IOW dan
RESET diambil dari sistem bus slot. Pin CS dihubungkan
dengan keluaran dari dekoder 74LS138. Sedangkan fungsi dari
masing-masing port PPI 8255 adalah sebagai berikut : port B
dan port C dari PPI I dan PPI II dipakai sebagai pemberi
data kepada IC yang akan diuji, port A dari PPI I dan PPI
UJL DO Dl D2 D3 D4 D5 D6 D7
PRO PA1 PA2 PA3 PA4 PA5 PAS PA7
I no 01
PHI I
LSET
PBO PBl PB2 PBS PB4 PB5 PB6 PB7
PCO PCI PC2 PC3 PC4 PC5 PC6 PC7
jaj*—<E5BE52J
tU2_ DO Dl D2 D3 D4 D5 D6 D7
PPI II I fiO 01 c i S E T
PAO PA1 PA2 PA3 PA4 PAS PA6 PA?
PBO PBl PB2 PB3 PB4 PBS PB6 PB7 PCO PCI PC2 PC3 PC4 PC5 PC6 PC7
E2EES2
M=F$I>
SESZ>
U2. DO 31 32 33 34 35 36 37
PPI I AO Al SP"
PAO PA1 PA2 PA3 PA4 PAS PA6 PA7
III PBO PBl PB2 PB3 PB4 PDS PB6 PB7
PCO • pci PC2 PC3 PC4 PC5 PC6 PC7
EEEE52
N1—-(EEJEE£7>
H—HESQS2>
GAMBAR 4. 4
HUBUNGAN PPI 8255 DENGAN SISTEM BUS SLOT
53
II sebagai masukan untuk menerima respon dari IC yang
diuji. Port A dari PPI III sebagai masukan. Port B dan port
C dari PPI III sebagai keluaran, yang digunakan untuk
mengontrol kerja saklar analog.
2. 3. Rangkaian Penghubung IC Yang Diuji
Karena catu daya dan data masukan penguji yang
diberikan kepada IC yang diuji diperolen dari data keluaran
PPI 8E55, sedangkan PPI tersebut tidak dapat menghasilkan
kondisi tingkat sinyal sesuai dengan tolok ukur yang telah
ditentukan sebelumnya (tingkat sinyal '<)', 'i'. '+V,
'ground' dan 'high impedansi') maka dlperlukan rangkaian
penghubung antara PPI 8255 dengan IC yang diuji. Gambar
dari rangkaian penghubung IC yang diuji diperlihatkan pada
gambar 4. 5.
Untuk memperoleh rangkaian penghubung yang dapat
bersifat high impedansi maka dipakai penyangga (buffer)
tiga-keadaan. penyangga tiga-keadaan yang dipilih adalah
74LS125 karena setiap penyangga tiga-keadaan mempunyai
jalur kontrol yang terpisah satu dengan yang lainnya. Dan
supaya tegangan keluaran dari 74LS125 dapat dipakai sebagai
catu daya IC yang diuji maka keluaran dari 74LS125 perlu
diberi buffer lagi yang terdiri dari 2 buah transistor.
Rangkaian tersebut dikontrol oleh port B dan port C dari
PPI I dan PPI II. Keadaan dari keluaran rangkaian tersebut
54
dari PPX X dan XX
GAMBAR 4. 5
RANGKAIAN PENGHUBUNG IC YANG DIUJI l
ditentukan oleh kombinasi PBi dan PCi. PBi merupakan port
kontrol untuk saluran pin ke i, PCi merupakan port data
untuk saluran pin ke i. Pada tabel 4. 2. diperlihatkan tabel
kebenaran dari rangkaian penghubung tersebut.
TABEL 4. 2
TABEL DARI RANGKAIAN PENGHUBUNG IC YANG DIUJI
Saluran kontrol
PBi
i
0
0
saluran data
PCi
X
i
0
keluaran
Yi
high impedansi
'1' atau +V
'0' atau ground
Dengan melihat tabel kebenaran, maka terlihat bahwa
55
ada 3 macam keadaan keluaran yang mungkin terjadi, yaitu :
- '1' atau +V
- '0' atau ground
- high impedansi
Dalam proses pengujian IC diperlukan pemberian catu
daya pada IC tersebut yaitu kaki +VDD dan -VSS (pada sistem
penguji ini -Vss dibuat '0' atau ground). Hal ini dapat
dilakukan dengan memberikan data PBi = '0' dan PCi = ' i'
untuk +VDD serta PBi = '0' dan PCi = '0' untuk -VSS. Selama
pengujian IC kondisi ini harus tetap dipertahankan.
Agar saluran Yi dapat berfungsi sebagai saluran
pemberi data pada IC yang sedang diuji, maka saluran
PBi harus diberi data '0'. Untuk memberi data M' pada IC
yang sedang diuji, maka PCi harus diberi data '1'.
Sedangkan untuk memberi data '0', maka PCi harus diberi
data '0'.
Kondisi high impedansi diperoleh dengan memberi data
'l' pada PBi. Kondisi ini diperlukan apabila saluran Yi
akan dipergunakan sebagai saluran masukan sistem penguji.
Sebagai contoh sebuah IC akan diuji dengan sistem
penguji. Susunan pin-pin dari IC tersebut adalah sebagai
berikut : pin 1 adalah +VDD, pin 2 adalah -VSS, pin 3
adalah input dan pin 4 adalah output. Dalam hal ini maka
pengaturan saluran-saluran sistem penguji memp.unyai
konfigurasi seperti yang diperlihatkan pada gambar 4.6.
Dalam perencanaan pembuatan rangkaian penghubung maka
56
p o r t •
p e r * A
p e r t C [i B B 14
KJB-h ty* M t M k l
p a n i h . p « n « K u b u n «
•wa:
i yps -3*
GAMBAR 4. 6
KONFIGURASI PENGATURAN SALURAN SISTEM PENGUJI
diadakan pemilihan transistor. Syarat utama pemilihan
transistor tersebut adalah tegangan keluaran yang
dihasilkan dapat dipakai sebagai catu daya IC CMOS. 01eh
karena itu dipakai transistor BC 546 dan BC 556 yang mampu
mengeluarkan tegangan logika tinggi dan rendah yang dapat
dipakai sebagai catu daya IC. Hal ini dapat dilihat dari
lembar data transistor bahwa harga VCE sat pada IC = 10 mA,
IB = 0, 5 mA adalah 90 mV. Untuk mencari harga hambatan-
hambatan dari rangkaian tersebut dipakai perhitungan
sebagai berikut :
- ditinjau saat Ql dalam keadaan saturasi dan Q2 cut
off, Diambil arus basis sebesar 0, 5 mA dan dari data
book diperoleh arus sink dari 74LS125 adalah 24 mA,
maka harga minimum Rl adalah :
57
Rl = VBE / ( I sink - IB )
Rl = 700 / ( 24 - 0, 5 )
Ri = 29, 8 Ohm
Ri yang dipakai sebesar 1 kOhm sehingga arus yang
lewat hambatan ini adalah 0,7 mA. Arus sink yang
diterima oleh 74LS125 adalah 1,2 mA, maka harga R2
adalah :
R2 = ( Vcc - VBEsat - VOL ) / I sink
R2 = ( 5 - 0, 7 - 0, 35 ) / 1, 2
R2 = 3, 29 kOhm
Nilai hambatan yang dipakai adalah 3, 3 kOhm.
- ditinjau saat Ql dalam keadaan cut off dan Q2 dalam
keadaan saturasi. Diambil arus basis sebesar 0, 5 mA.
Karena arus source maksimum 74LS125 adalah 2. 6 mA maka
arus maksimum yang lewat R3 adalah 2, 1 mA. Harga R3
minimum adalah :
R4 = VBE / ( I source - IB )
R4 = 700 / ( 2, 6 - 0, 5 )
R4 = 333, 33 Ohm
Hambatan R3 yang dipakai sebesar 1 kOhm sehingga arus
yang lewat hambatan ini adalah 0, 7 mA, maka arus yang
ditarik dari keluaran 74LS125 adalah 1,2 mA. Harga R4
adalah :
R4 = ( VOH - VBEsat ) / ( IR4 + IB )
R4 = ( 2, 4 - 0, 7 ) / 1, 2
R4 = 1,4 kOhm
Harga hambatan R4 yang dipakai adalah i kOhm.
a.4. Rangkaian Penguji Level
Rangkaian penguji level ini berfungsi untuk mengetahui
apakah level tegangan output dari IC CMOS berada dalam
kondisi high, kondisi low atau dalam kondisi ambang.
Rangkaian ini terdiri dari sebuah IC LM324 (Op-Amp) yang
difungsikan sebagai komparator. Rangkaian lengkap dapat
dilihat pada gambar 4. 7. Rangkaian ini menggunakan 2 buah
Op Amp, dimana tegangan masukan dari saklar analog
+sv
GAMBAR 4. 7
RANGKAIAN PENGUJI LEVEL
59
-
dihubungkan ke masukan (+) dari Op Amp A dan masukan (-)
dari Op Amp B. Karena level tegangan yang diuji adalah 0,05
volt dan 4,9 volt, maka pada Op Amp A ditetapkan batas
atasnya dengan mengatur variabel resistor (VRl) sebesar 4,9
volt dan pada Op Amp B ditetapkan batas bawahnya dengan
mengatur variabel resistor (VR2) sebesar 0,05 volt.
Keluaran dari rangkaian penguji level dimasukkan ke bit 0
dan 1 dari port A PPI III.
Dengan ditentukannya level batas atas dan level batas
bawah, maka dapat dibuat tabel masukan dan keluaran dari
rangkaian penguji level seperti yang diperlihatkan pada
tabel 4. 3.
TABEL 4. 3
TABEL MASUKAN DAN KELUARAN DARI RANGKAIAN PENGUJI LEVEL
Level tegangan
masukan
x volt
x < 0, 05
x > 4, 9
0, 05 < x < 4, 9
Keluaran
(dalam logic '0' atau '1')
Op Amp A
0
l
0
Op Amp B
1
0
0
Untuk memilih jalur keluaran dari IC yang akan dilakukan
pengetesan level maupun keadaan fan out, maka digunakan
saklar analog. Saklar analog yang dlpakai adalah saklar
analog jenis CMOS 4051 sebab mempunyai 8 jalur masukan dan
1 jalur keluaran. Konfigurasi darl masing-masing kaki IC
CMOS 4051 dapat dilitiat pada lampiran. IC CMOS 4051 yang
digunakan untuk mengontrol pengetesan tersebut adalan
sebanyak 2 buah, dimana saklar analog I untuk jalur soket
nomor i sampai 8 dan saklar analog II untuk jalur soket
nomor 9 sampai 16. Kontrol saklar analog tersebut
dikendalikan oleh port B dari PPI 8255 III yang berfungsi
untuk mengaktifkan secara bergantian masing-masing saklar
analog tersebut. Port B dari PPI ini hanya dipakai sebagai
port keluaran saja. Keluaran dari saklar analog ini
dimasukkan ke rangkaian penguji level atau ke rangkaian
penguji fan out. Gambar rangkaian saklar analog ditunjukkan
pada gambar 4. 8. Sedangkan tabel kebenaran IC 4051
dlperlihatkan pada tabel 4.4.
JJLLS.
d«r- l .
trrs
GAMBAR 4 . 8
GAMBAR RANGKAIAN SAKLAR ANALOG
6 1
TABEL 4. 4
TABEL KEBENARAN IC 4051
TRUTH TABLE
L L
L L t U L U H
INPUTS
A 2
L L
L L H H II
H X
A i
L L H
H L
L H H
X
* 0
I
H
U H L
H L H
X
v 0 - z
ON OFF
OFF OFF OFF OFF OFF OFF
OFF
Vy-7
OFF ON OFF OFF
OFF OFF
OFF OFF
OFF
v 2 -z
OFF OFF
ON OFF OFF OFF
OFF OFF
OFF
CHANNELS
Y 3 - Z
O I F OFF
OFF
ON OFF OFF OFF OFF
OFF
Y 4 - Z
OFF
OFF OFF OFF CN OFF OFF OFF
OFF
Y S - 2
OFF OFF
OFF OFF OFF ON
OFF OFF
OFF
Y 6 - Z
OFF OFF
OFF OFF OFF OFF
ON OFF
OFF
Y 7 - Z
OFF OFF
OFF OfF OFF OFF
OFF ON
OFF
L - LOW Lav ol H - HIOH L«v«l X - Don't Cirft
Berdasarkan gambar rangkaian serta tabel kebenaran dari IC
4051 maka dapat dibuat data pengontrol untuk port B yang
digunakan untuk mengontrol saklar analog. Data pengontrol
untuk saklar analog I dan II diperlihatkan pada tabel 4. 5.
TABEL 4. 5 *
TABEL DATA PENGONTROL UNTUK SAKLAR ANALOG I DAN II
Nomor Ja lur soket
1 a 3 4 5 6 7 8 9
10 1 1 IE 13 14 15 16
Data pengontrol saklar analog
$ F 0 $F1 $ F 2 $ F 3 $ F 4 $ F 5 $ F 6 $ F 7 $ 7 F $ 6 F $ 5 F $ 4 F $ 3 F $ 2 F $ 1 F $ 0 F
62
2. 5. Rangkaian Fenguji Fan Out
Rangkaian penguji fan-out ini berfungsi untuk menguji
keadaan fan-out dari IC yang diuji, apakah dalam keadaan
baik atau tidak balk. Dalam perencanaan rangkaian penguji
ini, fan-out hanya dapat diuji apabila level logika dari
keluaran IC yang diuji dalam keadaan nigh.
Dalam perencanaan ini bagian konversi besaran analog
yang dipakai adalah ADC0804, sebab ADC ini mempunyai 8 bit
keluaran, waktu konversi yang cepat karena memakai prinsip
successive approximation dengan waktu konversi 100 usee,
dan jalur keluarannya bersifat impedansi tinggi. Gambar
dari rangkaian penguji fan-out ditunjukkan pada gambar 4. 9.
Pada gambar tersebut terlihat bahwa jalur keluaran
dari ADC0804 langsung dihubungkan dengan jalur data dari
sistem bus slot. Untuk pin RD dan WR dihubungkan ke Jalur
sinyal IOR dan IOW, sedangkan pin CS dihubungkan ke
rangkaian dekoder dan pin INTR dimasukkan ke PA2 dari PPI
8255 III.
Agar ADC0804 ini dapat bekerja, sebuah rangkaian clock
harus dipasang. Untuk rangkaian clock ini digunakan
rangkaian RC yang dihubungkan ke pin CLK IN dan pin CLK R.
Dalam hal ini pulsa clock ditentukan dengan rumus
fCLK : 1/(1,1 R C)
di mana harga R biasanya diambil sebesar 10 KOhm. Untuk
mendapatkan akurasi yang baik, maka fCLK harus lebih kecil
63
LO/nF ,U22 -J 20
vcc DBO VRE.F/Z DB1 DB2 DBS DB4 DBS DBS DB7 VXNC-O — CLKR CS CLKIN BE VXN<-> MR ACND XNTR DCND
fcBOTTO*
GAMBAR 4. 9
RANGKAIAN PENGUJI FAN OUT
d a r i 640 KHz.
Untuk menentukan harga beban yang dipakai untuk
pengujian fan-out diperoleh dengan cara :
R beban = Vo/IOH
dimana IOH berdasarkan test condition adalan sebesar 0,2 mA
dengan kondisi Vo = 4, 6 V dan VIN = o atau 5 V.
Jadi harga R beban adalan sebesar 2 3 KOhm.
Untuk memilih antara pengujian level dan pengujian fan-out
serta mengaktipkan beban digunakan saklar analog 4066.
Saklar analog ini dikontrol oleh PCO, PCI dan PC2.
3. PERENCANAAN PERANGKAT LUNAK
Pada sistem penguji IC yang memakai mikroprosessor
sebagai pemrosesnya, selain perangkat keras, juga
64
diperlukan perangkat lunak. Program yang dibuat mempunyai
beberapa fungsi diantaranya adalah menginisialisasikan
perangkat keras, melakukan proses pengujian IC, melakukan
proses pencari seri dan melakukan proses pengujian fan out.
Bahasa pemrograman komputer yang dipakai dalam perencanaan
perangkat lunak tugas akhir ini adalah Turbo Pascal versi
5. 0. Alasan digunakan Turbo Pascal ini karena bahasa ini
mempunyai fasilitas instruksi untuk menangani Input Output
port, mempunyai editor sendiri yang dilengkapi dengan
fasilitas debugging untuk memudahkan mencari kesalahan
program dan dapat digabung dengan bahasa assembly.
3. 1. Subprogram Pari Penylap Sistem Penguji IC
Agar sistem penguji IC dapat bekerja maka perlu
diinisialisasikan terlebih dahulu. Proses inisialisasi yang
dilakukan terhadap PPI 8255 tergantung dari fungsi
masing-masing port dimana fungsi dari masing-masing port
tersebut adalah sebagai berikut :
- port A untuk semua PPI 8255 sebagai masukan
- port B dan C untuk semua PPI 8255 sebagai keiuaran
Setelah diinisialisasi maka ditentukan kondisi awal dari
rangkaian penghubung sistem penguji. Kondisi awal tersebut
adalah dalam keadaan high impedansi, hal ini dilakukan
dengan member! data '1' pada saluran port B dari PPI I dan
II. Kondisi high impedansi diperlukan, sebab tanpa kondisi
65
tersebut Jalur masukan, keluaran maupun catu daya dari IC
yang dipasang pada soket penguji akan mendapat level
tegangan yang tidak diinginkan. Diagram alir dari
subprogram penyiap sistem ditunjukkan pada gambar 4. 10.
3. 2. Subprogram Menu
Untuk bagian menu akan ditampilkan 4 pilihan, yaitu :
- penguji tabel kebenaran IC
digunakan untuk melakukan pengujian apakah. IC tersebut
baik atau tidak.
- pencari seri IC
digunakan untuk mencari nomor seri IC dengan syarat IC
tersebut dalam kondisi baik dan termasuk dalam data yang
terdapat pada software.
- penguji Fan Out
digunakan untuk menguji keadaan Fan Out dengan syarat
kondisi dari tabel kebenaran IC yang diuji dalam
keadaan baik.
- selesai
digunakan untuk keluar dari program penguji IC dan
kembali ke operating system (DOS).
Selama penampilan menu, kondisi dari rangkaian
penghubung tetap dalam keadan High impedansi sehingga tidak
membahayakan IC yang dipasang pada soket penguji. Diagram
alir dari subprogram menu diper1ihatkan pada gambar 4. 11.
66
3, 3. Subprogram Penguji Tabel Kebenaran IC
Subprogram ini digunakan untuk menguji apakah IC yang
diuji itu dalam keadaan baik atau tidak. Saat subprogram
ini dijalankan maka akan diminta nomor seri IC yang akan
diuji. Bila syarat masukan untuk nomor seri IC dipenuhi
maka nomor seri IC tersebut akan dicari pada data yang ada,
apabila tidak diketemukan maka akan ditampilkan pesan bahwa
data dari seri IC tersebut tidak ada di dalam program. Bila
nomor seri tersebut ada maka akan ditampilkan menu untuk
memilih antara pengujian berulang dan pengujian tak
berulang. Maksud dari pengujian IC secara berulang adalah
untuk mengetahui kondisi IC yang diuji stabil atau tidak.
Bila terjadi kesalahan selama proses pengujian secara
berulang maka IC tersebut dinyatakan rusak. Proses ini
sangat diperlukan untuk melacak kondisi IC yang kerjanya
tidak stabil. Setelah dilakukan pemilihan terhadap sistem
pengujian maka data masukan penguji akan diambil dan
diberikan ke IC yang diuji, kemudian dilakukan proses
pembacaan dan hasilnya dibandingkan dengan data keluaran
yang berasal dari tabel kebenaran, demikian pula dengan
besar tegangannya. Apabila hasil pembandingan tersebut
benar maka dilakukan pengujian berikutnya dengan memberikan
data masukan penguji yang berbeda. Bila hasil pembandingan
tidak sama maka akan ditampilkan pesan bahwa terjadi
kerusakan. Diagram alir dari subprogram penguji tabel
67
kebenaran dapat dilihat pada gambar 4. 12.
3. 4. Subprogram Pencari Seri IC
Untuk mendapatkan nomor seri IC yang dicari, maka
dilakukan permisalan dengan data nomor seri yang pertama
yang terdapat pada tabel. Kemudian data masukan tersebut
diberikan kepada IC yang akan dicari serinya. Bila nasil
pembandingan antara keluaran IC yang dicari serinya tidak
sesuai dengan tabel dari data permisalan, maka akan
dilakukan permisalan dengan nomor seri IC yang berikutnya.
Proses ini dilakukan sampai data nomor seri permisalan
habis. Hal ini dimaksudkan supaya semua nomor seri yang
mempunyai tabel kebenaran yang sama dapat ditampilkan pada
monitor. Bila sampai akhir permisalan tidak ada hasil
pembandingan yang sama maka pada layar monitor akan
ditampilkan 2 kemungkinan yang terjadi, yaitu data nomor
seri IC tersebut tidak ada atau IC yang dicari nomor
serinya dalam keadaan rusak. Diagram alir dari pencari
nomor seri diperlihatkan pada gambar 4. 13.
3. 5. Subprogram Penguji Fan Out
Untuk dapat menguji keadaan Fan Out baik atau tidak
maka kondlsi tabel kebenaran dari IC yang diuji harus
benar. 01 en karena itu sebelum melakukan pengujian Fan Out,
68
maKa pengujian tabel kebenaran harus dilakukan terlebih
terlebih dahulu.
Bila kondisi IC yang diuji dalam keadaan baik, maka
dipilih Jalur keluaran yang berada dalam kondisi high dan
beban diaktifkan. Kemudian level tegangan keluaran setelah
pembebanan dibaca dan dibandingkan dengan batas tegangan
yang telah ditentukan. Proses ini dilakukan terus sampai
semua jalur keluaran yang mempunyai kondisi high diuji.
Bila hasil perbandingan tidak memenuhi syarat yang telah
ditentukan maka pada monitor akan ditampilkan pesan bahwa
keadaan Fan Out-nya tidak baik. Diagram alir subprogram
penguji Fan Out ditunjukkan pada gambar 4. 14.
( start J
inisialisasi 8255 port A sbg input port B * C sbg
output
beri data $FF pd port B 8 C dari PPI I * II shg. rangk. penghubung
IC yg diuji nenjadi tidak
aktif
"
GD GAtlBAR 4 . 1 0
DIAGRAM ALIR SUBPROGRAM FEHVIAP SISTEH
69
/ Menu /
/ utaria /
penguji tabel kebenaran
pencari sen
penguji fan-out
- W e n d
GAI1BAR 4 . 1 1
DIAGRAM ALIR SUBPROGRAM MENU UTAMA
/
cetak data IC i tidak ada ?
counter
= 18
can noMor seri IC
dalaM weMori
COUNTER = i
aMbil data nasuk-an dan berikan ke kaki M3.su.kan IC yang diuji
aMbil respon ke-luaran dan ban-dingkan dengan tabel data untuk
level logika
<D
70
aMbil data Masuk-an dan berikan ke kaki Masukan IC
yang diuji
aMbil respon ke-luaran dan ban-dingkan dengan
tabel data untuk level tegangan
<D
d> I taMpilkan basil pengujian
r end J
GAI1BAR 4 . 1 2
DIAGRAM ALIR SUBPROGRAM PEN6UJI TABEL KEBENARAN
fstart")
Misalkan noMor IC adalah noMor seri IC yang pertaMa
aMbil data Masuk-an dan berikan ke kaki Masukan IC
yang diuji
aMbil respon ke-luaran dan ban-dingkan dengan
tabel data untuk level logika
aMbil data noMor seri IC berikutnya t
S \ T C sawa 3
/ ^da t a \ . . sudah 5 V h a b i s y ^
P cetak /
noMor seri / Ec /
\4 —
\ i
non aktipkan rangkaian penghu-
bung IC yang diuji
6AMBAR 4 . 1 3
DIAGRAM ALIR SLIBFROGRAH PENCARI SERI
can noMor seri IC
dalan MeMori
aMbil data «asuk-an dan berikan ke kaki Masukan IC yang diuji
aMbil respon ke-luaran dan ban-dingkan dengan tabel data untuk
level logika
aMbil data Masukan dan berikan ke kaki Masukan IC yang diuji
baca level logika keluaran dari IC
yang diuji
baca level te-gangan keluaran
IC yang d i u j i
GAtlBAR 4 . 1 4
DIAGRAM ALIR SUBPROGRAM PEHGUJI FAN OUT
73
4. CARA PEMBUATAN TABEL DATA KEBENARAN
Pada bagian ini akan dibahas mengenai pembuatan tabel
data kebenaran dan data kontrol yang akan digunakan untuk
menguji IC. Setiap data disusun dengan memperhatikan fungsi
tiap kaki IC yang akan dibuat tabel datanya. Berikut ini
adalah contoh penyusunan data untuk IC CMOS 4023. Dari data
book diperoleh susunan kaki IC CMOS 4023 seperti yang
diperlinatkan pada gambar 4. 15.
RlyllyigLSLgHfL,"
t i l UJ IkJ LLI i l l LaJ I d
GAMBAR 4. 15
SUSUNAN KAKI IC CMOS 4023
Cara peletakan IC tersebut pada soket sistem penguji
diperlinatkan pada gambar 4. 16.
16 15 14 13 12 11 10 9
Udd i i i o o i
)
i i i i i o Uss
1 2 3 4 5 6 7
GAMBAR 4. 16
CARA PELETAKAN IC 402 3 PADA SOKET SISTEM PENGUJI
74
Dengan memperhatikan fungsi dari kaki IC 4023 dan
cara peletakan pada soket sistem penguji serta tabel 4.2,
maka dapat dibuat data kontrolnya seperti yang ditunjukkan
pada tabel 4. 6.
TABEL 4. 6
DATA KONTROL IC 4023
1
X
0
2 3 4 5 6 7
i i i i i o
0 0 0 0 0 1
port B PPI I
8
vss
0
9
i
0
10 11 12 13 14 15
o o i i i vdd
1 1 0 0 0 0
port B PPI II
16
X
0
Dari tabel diatas diperoleh data kontrol untuk IC 4023
adalan 40H dan 6OH.
Untuk membentuk tabel kebenaran dari IC ini, maka
diperlukan tabel kebenaran dari Nand gate dengan 3 masukan
seperti yang diperlihatkan pada tabel 4. 7.
TABEL 4. 7
TABEL KEBENARAN IC 4023
A
0 0 0 0 1 1 1 1
B
0 0 1 1 0 0 1 1
c
0 1 0 1 0 1 0 1
Y
0
75
Setelah mempelajari tabel 4. 7. serta gambar 4.16. diatas
maka dapat disusun sebuah tabel kebenaran untuk IC 4023
seperti yang ditunjukkan pada tabel 4. 8.
TABEL 4. 8
1
X
1 1 1 1 1 1 1 1
2
i
0 0 1 1 0 0 1 1
3 4
i i
0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1
port
TABEL
5 6
i i
0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1
C PPI
KEBENARAN
7 8
o vss
1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0
I
9
i
0 1 0 1 0 1 0 1
IC CMOS 4023
10 11 12 13
o o i i
1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1
port C PPI
14
i
0 0 0 0 1 1 1 1
II
15
vdd
16
X
Tabel diatas dapat dituliskan ke dalam bentuk heksadeslmal
sebagai berikut :
41 49 53 5B 65 6D 77 3F
63 F3 6B FB 67 F7 6F 9F
Data kontrol dan data tabel kebenaran untuk IC 4023
kemudian disimpan kedalam perangkat lunak. dari sistem
penguji IC dengan menggunakan perangkat lunak Turbo Pascal
ver. 5, 0.
5. LISTING FROGRAH SISTEH PENGUJI IC
uses crt; const
ESC BELL UIC CS UP
PA1 PCi PA2
PA3 PC3
'-&', : % :'l'; :Tj :'3';
taKberulang : 'i'j berulang : '2'; space : #32;
: $300; PBi : $302; Control_8255_i : $304; PB2 : $306; Control_8255_2 : $306; PB3 : $30Aj Control_8255_3
Control B255_i_Com: $090; Control" 8255_2~Com : $090; Control_8255_3_Com s $090; AdcPort : $30C;
datasfitcb : array [1..16] of b y t e : ($P0,$F11$P2I
$P3, $P4, $P5, $F6, $FT, $0P, $IP, $2P, $3P, $4P, $5P, $6P, $7P);
piliblevel : array [i..i6] of word : ($0001,$0002, $0004,$0008, $0010,$0020,$0040,$0080,$0100,$0200, $0400, $0800, $1000, $2000, $4000, $8000);
datalevel : array [0..2] of byte: (3,1,0);
logic4000 ; array [1..20] of byte : (19,l6,$40,$6O,$47,$A3,$0F,$93, $17, $4B, $1P, $58, $27, $87, $2P, $97, $37, $4P, $3P, $5P);
logic400l : array (1..12) of byte: (ii,8,$l8,$30,$69,$D3,$23,$8Bl $45,$47,$17,$2P);
logic4002 : array U..26] of byte: (25,22I$02,$04,$43,$87,$45,$C3, $49, $A3, $4D, $B3, $51, $93, $55, $D3, $59, $B3, $5D, $P3, $61, $8B1$65,$CB,$70,$PB);
logic4009 : array [1..8] of byte : (7,4,$2A,$52,$2BI$5BI$55,$AD); logic4010 : array [i..t] of byte : (7,4,$2A,$521$67,$39,$t9,$CP); lofic40ii : array (1..12) of byte: (li,8,$16,$30,$69,$D3,$3B,$BB,
$5D,$77,$17,$2P); loglc4012 : array 11..26] of byte: (25,22,$02,$04,$43,$87,$47,$C7,
$4B, $A7, $4P, $B7, $53, $97, $57, $D7, $5B, $B7, $5P, $P7, $63, $BP,$67,$AP,$6D,$PB);
logic4013 : array [1..16J of byte : (15,12)$06,$0C,$43,$87,$15,$2B, $25,$4B,$2B,$57,$03,$07,$0D,$1B);
logic4015 : array [I..22] of byte : (21,IB,$1E,$78,$60,$07,$40,$03, $51, $6B, $10, $09, $09, $91, $46, $13, $55, $AB, $14, $29, $0B, $DI);
logic40I6 : array [1..12] of byte : (11,B,$OC,$60,$OC,$62,$1B,$P21 $60,$0B,$7B,$PE);
: $301; : $303; : $305; : $307; : $309; : $30B;
Iogic4017 : array [1..50] of byte : (49,46,$TP)$FOl$04,$i31$04,$lll
$02,$i5,$02,$Il l$061$i5,$OB,$il,$4Q1$i5,$40,$ii,$00,$55 l
$00, $51, $01, $05, $01, $01, $10, $05, $10, $01, $20, $05, $20, $01, $00, $65, $00, $81, $00, $25, $00, $21, $04, $15, $04, $19, $02, $15);
logic4019 : array [i.,20] of byte : (19,16,$00,$T6,$19,$03,$11,$61, $3B, $P1, $08, $07, $5D, $7P, $3B, $PP, $5D, $PP, $00, $85) j
logic4020 : array [1..38] of byte : (37,34,$7P,$9E1$00,$61I$00,$411
$00, $61, $00, $Ci, $00, $01, $00, $41, $00, $81, $00, $C1, $00, $01, $00, $41, $00, $81, $00, $C1, $00, $01, $00, $41, $00, $61, $00, $C1, $40, $01);
logic4022 : array (1..42) of byte : (41,36,$5P,$70,$02,$13,$02,$11, $01,$15,$01l$ll,$04,$l5,$04,$il,$40,$15,$40,$ll,$00,$25, $00, $21, $06, $05, $06, $01, $10, $05, $10, $01, $00, $45, $00, $41, $02, $15, $02, $19, $02, $1D);
logic4023 : array [i.,20] of byte : (19,16,$40,$60,$41I$63,$49,$P3, $5,; $6B, $5B, $PB, $65, $67, $6,; $P7, $77, $6P, $3P, $9P) j
logic4025 : array [1..20] of byte : (19,16,$40,$60,$41,$63,$09,$93, $13, $0B, $1B, $9B, $25, $07, $2D, $97, $37, $0P, $3P, $9P);
logic4027 : array [1..16] of byte : (17,14,$03,$06,$41,$63,$0A,$15, $0A, $15, $12, $25, $16, $2D, $22, $45, $25, $4B);
logic4026 : array [1..36] of byte : (35,32,$7P,$86,$04,$01,$00,$45, $02, $09, $00, $4B, $01, $11, $20, $51, $40, $19, $08, $59, $00, $A1, $10, $61, $00, $29, $00, $69, $00, $31, $00, $71, $00, $39, $00, $79) j
logic4030: array [1..12] of byte •- (li,8,$16,$30,$01,$03,$3B,$B7, $6D,$6P,$57,$D7);
loglc4035 : array [i.,20] of byte - (19,16,$01,$0B,$52,$Ai,$5i,$AP, $4B, $51, $6E, $5B, $0B, $5B, $2P, $55, $03, $55, $22, $5B);
logic4040 : array [i.,36] of byte : (37,34, $7P, $98, $00, $61, $00, $41, $00, $81, $00, $Ci, $40, $01, $40, $41, $40, $61, $40, $Ci, $20, $01, $20, $41, $20, $61, $20, $C1, $60, $01, $60, $41, $60, $61, $60, $Ci, $i0,$0i);
logic404i : array [1..6] of byte : (7,4,$36,$D6,$24,$4A,$5A,$B6); logic4043 : array [1..14] of byte : (13,iO,$03,$CO,$54,$23,$3B,$D5,
$13,$C1,$7P,$P7,$47,$E3); logic4044 : array [1..14] of byte: (i3,10,$Oi,$C8,$10,$01,$39,$DD,
$54, $23, $7C, $37, $00, $01); logic4049 : array [i.,8] of byte: (7,4,$2A,$52,$4D,$6B,$33,$9D); logic4050 : array [i..B] of byte : (7,4,$2A,$52,$67,$CP,$19,$39); logic405i : array [i.,381 of byte : (37,34,$O4,$0O,$lB,$17,$iB,$3B,
$1B, $5D, $1B, $6P, $1A, $9P, $0B, $BP, $19, $DP, $13, $FF, $04, $09, $04, $25, $04, $43, $04, $71, $05, $61, $14, $Ai, $06, $C1, $0C, $E1, $3P,$17);
logic4052 : array [i.,14] of byle: (13,10,$04,$06,$05,$27,$14,$73, $061$B5,$0C,$D71$1AI$19);
logic4053 : array [1..38] of byte : (37,34,$08,$06,$05,$09,$05,$31, $06, $49, $06, $71, | U , $89, $11, $Bi, $12, $C9, $12, $Pi, $1A, $17, $1A, $2P, $19, $5P, $19, $6P, $0B, $97, $0B, $AP, $0D, $D7, $0D, $EP, $2D,$0P);
logic4066 : array [i.,12] of byte : (1 i,8,$12,190,^7P,*FF,$6i,$0P, $01,$O3,$OD,$03);
Iogic4068 : array [i.,24] of byle : (23,20,$00,$04,$7F,$PB,$57,$D7,
m, *AP, $73, $9P, w, m, $«, IFF, m, w, w, w, m, m, $7B,$BP)i
logic4069 : array [ i . . 6 ] of b y t e : (7,4,$54,$A6,$55,$AB,$2B,$57); lojicMTO : array [ L . l l ] of byte : (li,6,»18,$30,(Oi,$03,)3B,$BB,
$5D,$77,$67,$CP); logic4071 : array [1..12] of byte : (il,81$181$30,$7i1$B3,$3B1$BB,
logic4072 ! array [1..26] of byte : (25,22,$02,$04,100,$02,$06,$46, $0A, $26, $0E, $66, $12, $16, $16, $66, $1A, $36, $1B, $76, $22, $08,$26,$4B,$3K,$7B);
logic4073: array [1..20] of b y t e : (19,16,$40,$60,$01,$03,$09,$93, $13, $0B, l i f t $9B, $27, $07, $2D, $97, $27, $0P, $7P, $PP);
lof[ic4075 : array [1..20] of byte : (19,16,$40,$60,$01,$03,$59,$P3, $53, $6B, $5B, $PB, $67, $67, $6B, $P7, $77, $6P, $7F, $FP);
logic4076: array [1..26] of b y t e : (25,22,$3C,$00,$0O,$3P,$O0,$29, $66, $29, $28, $15, $54, $15, $14, $BD, $54, $BD, $14, $7D, $54, $7D,$3D,$3D,$3B,$3D);
logic407T : array [1..12J of byte : (li,6,$lB,$30,»l9,$33,$23,$8B, $45,$47,$7P,$1P);
lofic4078 : array [1..241 of byte : {23,2O,$0O,$04,$7P,$PB,$57,$D3, $6B, $AB, $73, $9B, $4P, $E3, $43, $PB, $43, $67, $7P, $P3, $6P, $PB, $7B,$BB);
lo«ic4081 : array [1..12] of byte: (il,6,$16,$30,$7i,$B3,$23,$6B, $45,$47,$OP,$lPJi
logic4093 : array [1..12] of byte : (li,6,$i8,$30,$69,$D3,$3B,$BB, $5D,$77,$17,$2P)i
loeic450i : array [1..14] of byte : (i3,iO,$6F,$C5,$7B,$AB,$5D,$DB, $3B,$PB,$77,$7B);
lo{ic4503 : array (1..12] of byte : (il,6,$54,$A6,|5D,$CD,$77,$Bi, $16,$PB,$66,$2P);
lo«ic4555 : array [1..14] of byte : (13,10,$78,$F0,$08,$11,$12,$25, $24,$49,$46,$8D,$07,$OP);
logic4572 : array (1..12] of byte : (U,8,$15,$A8,$15,$A9,$25,$AD1 $4A,$5B,$6A,$57);
logic4584 : array [1..8] of byte: (7,4,$54,$A6,$54,$AA,$2A,$56);
seri : array [1..47] of »ord : (4000,4001,4002,4009, 4010,4011,4012,4013,4015,4016,4017,4019,4020, 4022,4023,4025,4027,4028,4030,4035,4040,4041, 4043,4044,4049,4050,4051,4052,4053,4066,4066, 4069,4070,4071,4072,4073,4075,4076,4077,4078, 4081,4093,4501,4503,4555,4572,4585) J
inchr : Char; c,f,g,i,K,l,x,y : byte; hasill,basll2,Kontroll,Kontrol2,jua_data : byte; counter,junpinout,level,levell,test,baca : byte; nooorlC.serilC, a,kontrol,Kontrol2a,hasil : word; hasil2a, level?, b : lord; dataA : array [1, .501 of byte; dataB : array [1..50] of byte;
Kontrolstitcb : array [1..16J of byte; pin_yg_out : array [1..16] of byte;
Procedure InltPort; [Inisialisasi 62551 begin port [Control 8255 1] :-- Control 8255J Coon; port [PB1] ::~$FP;~ port [PCI] :: $00; delay(500); port [control 8255 21 :-- control 8255 2 Com; port [PB2] ::~$FP;~ port [PC21 :: $00; delay(500); port [Control 8255 3] :: control 6255 3 Com; port [PB3] ;:~$FF;~ port [PC3] :: $00;
end;
procedure IC4000; begin
for i:--i to logic4OO0[i] do dataA[i]:--logic400O[i*l];
end;
procedure IC4001; begin
for i::i to logic4O0i[l] do dataA[i]::logic400i[i«i];
end;
procedure IC4002; begin
fori::i to logic4002[l) do dataA[il::logic4002[iti];
end;
procedure IC4O09; begin
for i::i to logic4009[l] do dataA[i]::logic4009[iti];
end;
procedure IC4010; begin
for i::l to logic40iO[ll do dataA[i]:--logic40iO[iii];
end;
procedure IC40U; begin
for i::l to logic401i[ll do
dataA[i]::logicWll[Hi]; end;
procedure IC4012; begin
for i::i lo logic40i2[i] do dalaA|i|:--logic40i?[iti|;
end;
procedure IC4013; begin
for i : : i to logic40i3[ll do dataA[i]::logic40U[i*ll;
end;
procedure IC4015; begin
for i:--i to logicWi5[i] do dataA[i]::logic40i5[i+H;
end;
procedure IC4016; begin
for i::i to logic40!6[t] do dataA[i]::logic40i6[iti];
end;
procedure IC401T; begin
fori::i to logic40IT[l] do dataA[i]::logic40i7|iti];
end;
procedure IC4019; begin
for i:;i to logic40i9[i] do dataA[i]::logic40i9[iti];
end;
procedure IC4020; begin
for i::i to logic4O20[i] do dataA[i]::logic4020[iti];
end;
procedure IC4022; begin
for i:.-i to logic4022(i] do dataA|i)::logic4022[iti];
end; procedure IC4023;
begin for i::l lo logic4023|l] do daUA[i]::logic40?3I»i];
end;
procedure IC4025; begin
for i::i to logic4025[i] do dataA[i]::logic40Z5[i*il;
end;
procedure IC402T; begin
fori:: I to logic402T[i] do dataA[il::logic40?T|uil;
end;
procedure IC402B; begin
for i::i to logic4026[i] do dataA[i]::logic<02ft[itij;
end;
procedure IC4030; begin
for i::i to logicW3Q[i] do daUA[i]::logicf030[i*i];
end;
procedure IC4035; begin
for i::i lo logic4035[il do dataA[il:--logic4035[itl];
end;
procedure IC4040; begin
for i::i to logic4040[l] do dataA[i]:--logic4040[iti];
end;
procedure IC4041; begin
for i::i to logic404i|i] do dataA[i]:--logic4(Wi[i)i];
end;
procedure IC4043; begin
for i;:i to logic4043[l] do dataA[i]::logic4043[i+il;
end;
procedure IC4044; begin
for i u i lo logic4044[i] do dataA[i]::logic4044[iU];
end;
procedure IC4049; begin
f o r i : : ! to logic4049[i] do dataA[i]::logic4049[Ui];
end;
procedure IC4050; begin
for i::i to logic4050[i] do dataA[i]:--logic4050[iti];
end;
procedure IC4051; begin
for i:ri to Ugic405i|l] do dataA[i]:--logic405![mi;
end;
procedure IC4052; begin
for iui to logic4052[i] do dataA[i]::logic4052[iti];
end;
procedure IC4053; begin
for i::i to logic4053[il do dataA[i)::logic4053[iti];
end;
procedure IC4066; begin
for i u i to logic4066[i] do dataA[i];:logic4066[iti];
end;
procedure IC406B; begin
for i::i to logic4068[i] do dataA[i]::logic4068[i*i];
end;
procedure IC4069;
begin for i::i to logic4069[i] do dataAIi]::logic4069[i»i];
end;
procedure IC4070; begin
for i::i to logic4Q70[il do dataA[i];:logic4070[iti];
end;
procedure IC4071; begin
for i:--l to logic407i[i] do dataA[i]::logic407i[iti];
end;
procedure IC4072; begin
for i::i to logic4072[l] do dataA[i];:logic4072[i«l];
cod;
procedure IC4073; begin
for i;:i to logic4073|i] do dataA[i]::logic4073[iti];
end;
procedure IC4075; begin
for i::i to logic4075[i] do dalaA|il::logic4075[i+i];
end;
procedure IC4076; begin
for i::l to logic4076[i] do dataA[i]::logic4076[itil;
end;
procedure 1C40T7; begin
for i::i to logic4077[l] do data»[i]::logic4077[itil;
end;
procedure IC4078; begin
for i:--i to logic4078[U do dataA|i]::logic4076|iti];
end;
procedure IC40B1; begin
for i::i to logic408l[il do dataA[i]::logic40M|itl];
end;
procedure IC4093; begin
for i;:l to logic4093[l] do dataA[i];:logic4093[itl];
end;
procedure IC4501; begin
for i;:i to logic450i|i] do dataA[i]:.-logic4501[iti];
end;
procedure IC4503; begin
f o r i u i to logic4503|i] do dataA[i]::logic4503[i*i];
end;
procedure IC4555; begin
for i:ri to logic4555[i] do dataA|il::logic4555[uil;
end;
procedure IC4572; begin
for i::i to logic4572[i] do dataA[i)::logic4572[i+l];
end;
procedure IC4585; begin
for i;:l to logic4565[i] do dataA[i]::logic4585[i+il;
end;
Procedure transfer; begin K::4; junjlala::dataA[l]; Kontroli::dataA[2]; Kontrol2::dataAl3); for i::i to jun data do
begin dataB[i)::dataA[k); inc(K);
end; end;
Procedure pinout; begin
jun pinout;-0; A::»000i; kontrol2a:--kontrol2; kontrol2a;:kontrol2a«256; Xontrol:Control2a « kontroli; for i :: i to 16 do
begin if (kontrol and A) : A then
begin junpinout:: jun_pinouU i; kontrolsiitch[ju»_pinout]::datasiitcb[i]; pin_yg_out[ junjinout]: :i; endT
A;:AsbJ i; end;
end;
Procedure nulaicekserl; label exit scri; begin
f:=M; x::l; i:=0; port [PBl]::kontroll; port [PK];:kontrol2; repeat
port [PCi]::dataB[x]; port [PC2]::dataB[xtl]; b u l l import [PA1]; hasil2::port |PA2]; if (nasillodataB[xJ) or (hasil2odataB[xtl]) then
begin y::l; x::jun_data •!; goto exitjeri;
end else x:--xt2; exit jeri :
until x>jun data; port [PBi]:-*FF; port |PB2|::*PP; if y.-0 then begin
c::c*6j gotoxy(cli); irite(seri[fl,' ' ) ;
end; end;
Procedure startseri; begin
transfer; nulaiceKseri;
end;
Procedure cariseri; begin
clrscr; g:=0; c::0; f:=0;
gotoxy(3T,9); iritel'Seri :')i IC4000;startseri; IC4001;startseri; IC40O2;startseri; IC4009;startseri; IC4010;startseri; ICWli; startseri; IC4012;startseri; IC4013;startseri; IC4015;startseri; IC40i6;startseri; IC4017;startseri; IC40i9;startseri; IC4020;startseri; IC4022;startseri; IC4Q23;startseri; IC4025;startseri; IC4027;startseri; IC4028;startseri; IC4030;startseri; IC4035;startseri; IC4040;startseri; IC4041;startseri; IC4043;startseri; IC4044;startseri; IC4049;startseri; IC405O;startseri; IC4051;startseri; IC4052;startseri; IC4053;startseri; IC4066;startseri;
IC4068;slartscri; IC4069;startseri; IC4O70;startseri; IC4071;startseri; IC«072;startseri; IC40T3;starlserl; ICW75;startseri; IC40T6;startseri; ICW77;startseri; IC4078;startseri; IC406i;startseri; ICW93;startseri; IC450i;startseri; IC4503;startseri; IC4555;startseri; IC4572;startseri; IC4565;startseri; if t-0 then begin
clrscr; gotoxy(20,iO); trite('tola IC ini tidak ada atau IC ini roaX');
end;
gotoxy(22.i«); trite('(TeKan 'Bnter' nntuK nelanjutKan)'); readln;
end;
procedure ulaiuji ; label exitjogic,exit_level,exituji;
begin clrscr; x::l; y::0; port [PC3]::$01; transfer; pinout; port |PBl].-:Kontroll; port [PK]::Kontrol2; repeat
repeat port [PCl]::dataB(x]; port [PC21;:dataB[x*ll; hasill;:poA |PAI]j hasil2:--port [PA2|; if (iiasillodataBlxll or (hasil2odataB[xti]) then
begin V-l\ x::jun_data • 1; goto exitjogic;
end else x;:x t 2; exltlogic:
until x > jun data; if j : l then begin
gotoxy(33,9); write('IC ini logikanya rusak'); counter::0; goto exit_uji; end
else x::i; repeat
port [FCl]::dataB[x]; port (PC2|::dataB[xtlli hasill::dalaB[x|; hasil2::dataB[x*il; nasil2a;:hasil2; hasil2a::hasil2ai256; basil::basil2a + basili; 21:0; repeat
2:--21 i;
port |PB3J::Xontrols»itcb[2]; delay(«); leveli::port [PA31; leweliirieveli and $03; level:-datalevel[level!]; b: rpiliblevel[pin_yg_oat[2]]; lerel2:=(basil andBJ sbr (pin_yg_out[2l - 1 ) ; if levelolevel2 then
begin y:M; z;:jun_pinout;
end until 2 -- jui_pinout; if y d then begin
gotoxy(33,9)i write('IC ini levelnya rusak'1; counter;:0; x:-jufl_data t 1; goto exitjevel;
end else x::x*2; exit_level:
until x>jun_data; if y:i then goto exituji; counter::counter-l; x::l;
exitjiji: until counter : 0; port |PB1|::^PP; port [PB2]::*FP; port (PC3]:.-$00; port (PB3]::JPP; if j:0 then begin
gotoxy(33,9); writeCIC ini baiU'li end;
readln; end;
procedure ujifanout; label exitJogiKa, exitjanout, exit_ujifo;
begin clrscr; x::l; y:--0; port (PC31::*06; transfer; pinout; port {FBI]:Control 1; port |PK]::Kontrol2;
repeat port [PCi]::dataB[x]; port [PC2]::dataB[xii]; nasiliuport [FAi]; nasil2::port [PA2J; if (basiliodataB[xj) or (hasil2odataB[xti]] then begin
y:=i; x::juo_data • i; goto exitlogiKa;
end else x::x + J; exitlogiKa:
until x > jimdata; if y:l then begin
gotoxy(33,9); write('IC ini logikanya rusax'); goto exit_ujifo; end
else x::l; repeat
port [PCl]::dataB[xl; port |PC21::dataB[x»l]; basill::dataB[xl;
basil2::dataB[x*i]; hasilEa::hasil2; Iiasil2a:--hasil2ai256; hasil::hasil2a » hasill; i::0; repeat
r.-z 11 ; b: :piliHlevel[pin_yg_out\i\ \ \ level?:--(nasil and B^ sbr (pin_yg_out[zl - 1 ) ; if level?:1 then
begin port[PB3]::Kontrolsiitch[zl;
*i«W; portlAdcPort]::too; repeat
test::port[PA3]; test:--test and JM;
until test : 0; baca::port[AdcFort]; if baca<235 then
begin
z::jua_pinout; end;
end; until z : juapinoul; if y--i then begin
gotoxy(3i,9); write('lenaiipuan fan oatnya rusak'); x::juo_data • 1; goto exitjanout;
end else x: --x*2; exit_fanout:
until x>jun_data; if y:i then goto exit ujifo; x::i; exit ujifo:
port |PBi]:--»FP; port [PB2];;»PP; port [PC3|::»00; port [PB3]::»FF; if y.-0 then begin
goloxy(?6,9); rriteCIeoanpuan fan outnya baiX'); end;
readln; end;
procedure sistenuji;
begin repeat clrscr; gotoxy(29,6); writer I. Pengujian tak berulang'); gotoxy (29,10)1 write('2. pengujian berulang'); gotoxy(29,12); writel'Tekan spacebar untuK Xeluar'); 8010X7(29,15); write('Pi 1ihan anda ? (1 atau 2) ' ) ; inchr::readXey; case inchr of
takberulang : begin counter;:l;nulaiuji;end; berulang : begin counter::10;nulaiuji;end; space : ; else write(bell);
end; until (inchr : ' ' ) ;
end;
procedure nenuujifanout; begin
gotoxy (20,9); write ('Pengujian Pan Out IC CHOS Xeluarga CMOOO'); gotoxy (27,12); write fSert IC yang aXan diuji : ' ) ; gotoxy (24,13); write ('( M a n "Biter* untuX selesai )'); gotoxy (53,12);
end;
procedure nenuujiic; begin
gotoxy (23,9); write ('Pengujian IC CHOS Keluarga CMOOO'); gotoxy (27,12); write ('Sen IC yang akan diuji : ' ) ; gotoxy (24,13); write ('( TeKan 'Biter' untuK selesai )'); gotoxy (53,12);
end;
Procedure uji; label exituji; begin repeal
clrscr; X ;: 0; if 1:0 then nenuujiic else nenuujifanout;
readln(ncoorlC); seriIC::ABS(nooorIC - 4000);
if serilC > 1000 then seriIC::ABS(nonorIC seriIC::seriIC+l000; case serilC of
1000 : begin IC4000;K::i;end; 1001 : begin iC400i;k:=l;end; 1002 : begin lC4002;k:-l;end; 1009 : begin lC4009;X::i;end; 1010 : begin IC4010;k::l;end; 1011 : begin icwil;k::l;end; 1012 : begin IC4012;k::l;end; 1013 : begin IC40i3;k::l;end; 1015 : begin IC4015;k::i;end; 1016 : begin lC4016;k:--i;end; 1017 : begin lCWl7;k:--i;end; 1019 : begin IC4019;k::l;end; 1020 : begin lC4020;k:-i;end; 1022 : begin IC4022;K::l;end; 1023 : begin lC4023;k:--i;end; 1025 : begin IC4025;k:--i;end; 1027 : begin IC4027;k::l;end; 1028 : begin lC4028;k;:i;end; 1030 : begin IC4030;k::i;end; 1035 : begin IC4035;k::i;end; 1040 : begin IC4040;k::i;end; 1041 : begin lC4041;k::i;end; 1043 : begin IC4043;k:--l;end; 1044 : begin IC4044;k::i;end; 1049 : begin lC4049;k::i;end; 1050 : begin IC4050;k:--l;end; 1051 : begin IC4051;k:--i;end; 1052 : begin IC4052;k:--l;end; 1053 ! begin IC4053;k:--i;end; 1066 : begin IC4066;k::i;end; 1066 : begin IC4066;k::l;end; 1069 : begin IC4069;k::i;end; 1070 : begin IC4070;k;:l;end; 1071 : begin IC407i;k::l;end; 1072 : begin IC4072;k::l;end; 1073 : begin IC4073;k::l;end; 1075 : begin IC4075;k::i;end; 1076 : begin IC4076;k::l;end; 1077 : begin lC4077;k:--l;end; 1078 : begin IC4078;k::l;end; 1081 : begin IC408l;k:--l;end; 1093 : begin IC4093;k::l;end; 1501 : begin IC450l;k::l;end; 1503 : begin IC4503;k::l;end; 1555 : begin IC4555;k:--l;end; 1572 : begin !C4572;k::i;end;
39000);
1585 : begin ICT565;K::i;end; 27536 :; else clrscr;gotoxy(32,iO); write ('Data ic tidak ada']; gotoxy(E2,i2);wite('( TeKan •Enter" untuk nelanjutkan)'); readln;
end; if k : 0 then goto exit_uji; if 1:0 then sisten uji else ujifanout; exiUji:
until nonoric : 0; end;
procedure nenu; begin
l::0; repeat
drscr; Gotoxy(38,T); Write ('MD')i Go toxy (28,10); trite ('1. Penguji I C ) ; Gotoxy(28,12); write ('2. Pencari seri'); gotoxy(28,H);
write ('3. Penguji fan out'),* gotoxy(28,l6); trite ('Man Esc untuk keluar!'); 6oToXY(23,i9); trite ('Pilihan anda ? (i, 2, 3 atau Esc) ' ) ; inchr :-- readkey; case inchr of QIC : begin l::0;uji;end; CS : CariSeri; UF : begin l::l;uji;end; esc: ; else trite(bell);
end; Until (inchr .- ESC) or (inchr : ' ' ) ;
begin ClrScr; Initjort; repeat nenu;
until (inchr : ESC); end.