III. PERENCANAAN
Pada perencanaan dan pembuatan alat pemilah ini
secara umum dibagi menjadi 2 bagian, yaitu membahas
mengenai perencanaan perangkat keras (hardware) dan
kemudian perencanaan perangkat lunak (software).
Perencanaan perangkat keras membahas mengenai
rangkaian dari minimum sistem 8088 beserta rangkaian
pendukungnya, rangkaian penggerak konveyor dan rangkaian
pemilah. Sedangkan pada perencanaan perangkat lunak
membahas mengenai program untuk mendukung dan menjalankan
perangkat kerasnya.
1. PERENCANAAN PERANGKAT KERAS
Perencanaan perangkat keras untuk alat pemilah
barang berdasarkan beratnya terdiri atas perencanaan
fisik dan perencanaan rangkaian yang membahas mengenai
rangkaian minimum sistem 8088 sebagai pengendali utama
untuk menjalankan seluruh proses, rangkaian penggerak
conveyor, rangkaian penimbang berat, rangkaian Analog to
Digital Converter (ADC), rangkaian display dan keyboard
30
rangkaian pemilah barang.
LAMPU p * BELT CONVEYORSTRAIN CAUSE
KANAN
TENGAMMOTOR CONVEYOR
CANTILEVERKIRI
6AMBAR 3-1
PERENCANAAN BENTUK FISIK ALAT PEMILAH BARANG
DISPLAY
KEYBOARD
INPUTBERAT
GAMBAR 3-2
DIAGRAM BLOK ALAT PEMILAH BARANG
31
1.1 Mikroprosesor 8088
Dalam tugas akhir ini digunakan mikroprosesor 8 bit
type 8088 yang diproduksi oleh INTEL yang difungsikan
sebagai minimum sistem dengan memberikan tegangan pull
up pada pin 33 (MN/MX).
1.1.1 Rangkaian Clock. Mikroproseosr 8088 memerlukan
rangkaian clock untuk sinkronisasi pengeksekusian
program. Dalam sistem ini tidak digunakan rangkaian clock
astable yang sering menghasilkan output cacat pada
frekuensi tinggi, maka digunakan kristal clock yang
dihubungkan dengan IC clock generator 8284. Kristal yang
digunakan adalah 14,318 MHz, karena frekuensi kristal
paling tidak harus 3 kali frekuensi clock prosesor yaitu
4,77 MHz (frekuensi maksimum 8088 = 5 MHz). Sesuai dengan
data typical 8284 clock connection, kristal dihubungkan
ke ground melalui tahanan 510 n. Clock sistem diambil
dari pin CLK agar didapatkan pulsa clock dengan duty
J.7
\ 114,318 MHzX I
X2RDYXRDY2OENX
READYCLK
RESET
PCLKosc
EFICSVMCRSYNCFi'S"
RES
B28
GAMBAR 3-3
RANGKAIAN CLOCK
32
cycle 33% dan frekuensi 4,77 MHz.
Karena sistem hanya menggunakan satu prosesor maka
pin RDY1 dan RDY2 dibuat high sedangkan pin AEN1 dan AEN2
dibuat low, agar sistem bus dapat digunakan setiap saat.
Karena clock 8284 dibangkitkan oleh kristal (eksternal
clock) dan menggunakan rangkaian internal oscilator maka
pin F/C dan CSYNC dibuat low.
1.1.2 Rangkaian reset. Diperlukan rangkaian reset yang
aktif low. Untuk itu digunakan rangkaian RC sederhana,
yang terdiri atas sebuah tahanan 4K7 n yang diparalel
dengan diode IN914 dan diseri dengan kapasitor 1 jtF dan
sebuah saklar tekan seperti terlihat pada gambar 3-3.
Dari rangkaian diatas diperoleh harga konstanta waktu RC
= 470 ms.
v c c
IN914
C 1 9
/> RR34k7
i
X I
X 2
REflDYCLK
RESET
PCLK
OSC
C RES
HRE3ET >•
GAMBAR 3 - 4
RANGKAIAN RESET
Pada saat rangkaian dinyalakan, pin RES 8088 mendapat
33
tegangan logika "1" sesaat lamanya untuk mereset register
PC (program counter).Rangkaian reset ini juga digunakan
untuk mereset sistem sewaktu-waktu bila diperlukan.
Rangkaian reset dari sistem digunakan pula untuk mereset
PPI 8255 dan 8279. Rangkaian reset ini dihubungkan pada
8284 pada pin RES yang aktif low, dan mengeluarkan sinyal
reset yang aktif high pada pin RESET.
1.1.3 Sinyal Control. Terdiri atas ALE, RD, RW, DEN,
DT/R dan IO/M berfungsi untuk mengenable piranti-piranti
pendukung mikroprosesor 8088 dan mengatur arah perpin-
dahan datanya.
74LS245 memerlukan sinyal DEN untuk mengenable data
dan DT/R untuk memberitahu apakah data dikirim atau
diterima. 74LS373 memerlukan sinyal ALE untuk me-latch
dan mengenable alamat. Eprom 2764 memerlukan RD dan WR
sedangkan RAM 6116 memerlukan RD saja.
Bila pin IO/M pada tegangan logika "0" maka piranti
memori 2764 atau 6116 akan aktif, sebaliknya pada tegan-
gan logika "1" piranti input output 8279 atau 8255 yang
aktif.
1.1.4 puffer Alamat. Jalur alamat pada minimum sistem
8088 dihubungkan dengan berbagai piranti yang membutuhkan
akses alamat dari mikroprosesor, sehingga perlu
diperhatikan perlu tidaknya pemakaian buffer. Pada
rangkaian alat pemilah ini 8088 dihubungkan dengan
34
piranti pendukung antara lain :
- 3 buah 74LS373 sebagai latch address
- 1 buah 74LS245 sebagai buffer data
- 1 buah EPROM 2764
- 1 buah RAM 6116
- 4 buah dekoder 74LS138
- 1 buah PPI 8255
- 1 buah programmable keyboard display 8279
Untuk menentukan apakah 8088 membutuhkan buffer atau
tidak dapat ditentukan dengan menghitung arus sumber
(I0H) dan arus hilang (IQL). Dari data book diperoleh :
* 8088
I Q L (sink current) = 2,0 I A
I Q H (source current) = -400 fih
* TTXi 74LSXXX
IIl( (input current logic "0") = -0,4 raA
I I H (input current logic "1") = 20 MA
* EPROM 2764, RAM 6116, PPI 8255 dan 8279
current) = ± 10 /xA
Perhitungan arus sink dan source rangkaian (Fan In dan
Fan Out) adalah sebagai berikut :
* Pada bus ADO - AD7, 8088 mendrive 74LS245 dan 74LS373.
- Pada keadaan output 8088 low :
EI I L = I I L 74LS245 + Ij L 74LS373
= 0 , 2 m A + 0 , 4 m A = 0 , 6 m A < 2 m A
- Pada keadaan output 8088 high :
35
SI Q H = I 0 H 74LS245 + I Q H 74LS373
= 20 jUA + 20 flh - 40 JiA < 400 jtlA
B e r a r t i 8088 mampu mendrive 74IiS245 dan 74LS373.
* Pada bus A8 - A19, 8088 mendrive 2 buah 74LS373
- Pada keadaan output 8088 low :
EI I L = 2 X I I L 74LS373
= 2 x 0,4 mA = 0»8 mA < 2 mA
- Pada keadaan output 8088 high :
SI 0 H = 2 X I 0 H 74LS373
= 2 X 20 (iA = 40 /iA < 400 jllA
Berarti 8088 mampu mendrive 2 buah IC 74LS373.
1.1.5 Perencanaan Buffer dan Demultiplex. Pada 8088
adress dan data perlu dipisahkan, untuk ADO - AD7
digunakan 2 buffer yaitu, IC 74LS373 dan IC 74LS245
sedangkan untuk A8 - A19 digunakan buffer dengan IC
74LS244 dan IC 74LS373.
* IC 74LS373 - Merupakan IC latch yang berfungsi untuk
menahan/ menyimpan sementara address yang
dikirim mikroprosesor dan akan bekerja
bila ALE mendapat tegangan logika "1".
- Bersifat satu arah sebagai transmitter.
- Output berupa address A0 - A7.
* IC 74LS245 - Berfungsi sebagai buffer dan akan bekerja
bila DEN mendapat tegangan logika "0"
- Bersifat dua arah sebagai tranceiver,
dengan diatur oleh DT/R.
36
- Output berupa DO - D7
Pada tugas akhir ini memori yang digunakan hanya 16 Kbyte
maka untuk menghemat pemakaian buffer, digunakan sistem
half duplex. Pada sistem half duplex ini alamat A16 - A19
tidak digunakan sehingga kapasitas memori yang dapat
dialamati menjadi 64 Kbyte. Hal ini menimbulkan kerugian
dimana alamat lokasi dapat terjadi dibeberapa tempat (ada
4 kemungkinan) yang menyebabkan program counter tidak
dapat menentukan dengan pasti lokasi memori, tetapi dapat
terjadi program counter akan mencari lokasi memori
tersebut di beberapa tempat. Namun karena kecepatan
operasi dari mikroprosesor cukup tinggi maka kerugian
waktu tersebut dapat diabaikan.
1.2 Perencanaan Memori
Rangkaian minimum sistem 8088 yang dibuat terdiri
dari 2 bagian memori, yaitu EPROM (Eraseable Programmble
Only Memori) dan RAM (Random Access Memori).
Dalam perencanaan ini dipilih EPROM 2764 karena mempunyai
kapasitas memori yang cukup besar yaitu 8 K byte, selain
itu EPROM 2764 mudah didapat dipasaran. Sedangkan untuk
memori baca tulis, digunakan RAM statik 6116 yang mempu-
nyai kapasitas memori 2 K byte. Dengan demikian total
memori yang digunakan hanya 10 Kbyte, sehingga masih
tersisa 54 Kbyte lokasi memori yang tidak atau belum
37
—,
00-07
80aa
IO/M ftl4
RO WR A151 |
x •
ADDRESS)
D0-D7
EPROM
A0-12
CE OE
1
DATA
ADDRESS)
all ai« nil
MI:MORYDECODER
RAM
WE
CS1 OE1
6AMBAR 3-5
BLOK DIAGRAM HUBUNGAN MIKROPRQSESOR DENGAN MEMORI
terpakai. Sekalipun demikian kapasitas memori sebesar
10 Kbyte tersebut sudah sangat mencukupi untuk disain
sistem minimum ini.
Interkoneksi antara memori (EPROM dan RAM) dengan
CPU dapat dilakukan secara langsung yaitu untuk jalur
alamat dan jalur data. Hal ini dikarenakan kedua piranti
memori tersebut sama-sama mempunyai 13 jalur alamat yang
sama pada peta memori. Agar supaya CPU dapat menghubungi
masing-masing memori tersebut secara terpisah digunakan
rangkaian dekoder memori yang berfungsi untuk mengontrol
Chip Select dari masing-masing piranti memori.
Blok diagram hubungan antara mikroprosesor dengan memori
38
1.2.1 Mentori Happing. Pada perencanaan mentori ini diten-
tukan terlebih dahulu pemetaan memori (memori mapping),
yaitu alokasi pemakaian total alamat yang tersedia, baik
untuk keperluan memori (EPROM dan RAM) maupun untuk
piranti input output.
Karena dengan menggunakan mikroprosesor 8088 pada
saat sistem pertama kali dihidupkan program counter akan
mulai menghitung dari lokasi FFFFFH, maka dengan memeta-
kan EPROM pada lokasi FFFFFH - FE000H, sistem akan selalu
menjalankan program operasi yang tersimpan dalam EPROM
pada saat ter-reset. Perencanaan untuk EPROM 2764 dengan
menggunakan interval 8 K adalah sebagai berikut :
T T I I T I I I|A19|A18|A17|A16|A15|A14|A13|A12|A11|A1O| A9| A8| A7| A6| A5| A4| A31 A2| A1| A0|
hH~H 1' I I I I I I I I I I I I I I I I I| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | = FEOOOH
I I I I I I I I I I I I I I I I I I I I I| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | = FFFFFH
zone bit
Untuk menghubungkan RAM ke mikroprosesor perlu
diketahui junlah address input line yang diperlukan.
Karena menggunakan RAM statis type 6116 yang mempunyai
kapasitas memori sebesar 2 Kbyte maka lokasi RAM dapat
dipilih pada lokasi 00000 - 007FFH. Pada disain ini
dipilih lokasi 00000H - 007FFH, dengan pertimbangan
apabila dikehendaki menggunakan interrupt, bisa langsung
digunakan tanpa mengubah hardware.
39
Perencanaan untuk RAM 6116 dengan interval 2 K adalah :
|A19|A18|A17|A16|A15|A14|A13|A1Z|A11|A10| A9| A8| A7| A6| A5| A4| A3| A2| A1| A0|
I I I I I I I I I I I I I I I I I I I I I| 0 | 0 | 0 | 0 | 0 | 0 | Q | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | = OOOOOH
I [ I I I I I } I I I I I I I I I| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | = 007FFHi i i i i i i i i i i i i i i i i i i i i
zone bit
Blok lokasi pemetaan memori EPROM 2764 dan RAM statik
6116 dapat dilihat pada gambar 3-6.
1.2.2 Perencanaan Dekoder Memori. Perencanaan rangkaian
dekoder ini diambil dari memori map yang telah ada dengan
menggunakan sistem dekoding parsial. Digunakan dekoder
74LS138 untuk mendapatkan interval 8 Kbyte.
OOOOOH
007FFH
*
FEOOOH
FFFFFH
RAM STATIK6116( 2K )
* NOT USED a
EPROM2764( 8K )
GAMBAR 3-6
PEMETAAN MEMORI
40
Tabel kebenaran IC 74LS138 dapat dilihat pada tabel 3-1.
Pin A, B dan C dari 74LS138 dihubungkan dengan pin A13,
A14 dan A15 dari 8088. Pin G2A dihubungkan dengan IO/M
dari 8088 dimana bila pin ini bertegangan logika "0" maka
CPU 8088 berhubungan dengan memori, sedangkan bila
mendapat tegangan logika "1", CPU akan berhubungan dengan
I/O. Pin Gl dihubungkan dengan Vcc dan pin G2B
digroundkan.
Dari perencanaan zone bit terlihat bahwa pemilihan
EPR0M dan RAM bersesuaian dengan tegangan logika dari
A13, pada saat tegangan logika "0", CPU berhubungan
dengan RAM 6116, sedangkan pada tegangan logika "1" CPU
berhubungan dengan EPROM.
Output Y0 dari dekoder dihubungkan dengan CS1 dari
RAM dan output Y7 dihubungkan dengan CE dari EPROM.
TABEL 3-1
TABEL KEBENARAN IC TTL 74LS138
G2A
H**LLLLLLLL
G2B
*H*I.LLLLLLL
INPUT
Gl
*
LHHHHHHHH
A
*
*hHLHLHhH
B
*
hLHHLLHH
C
**hLhLHHHH
Y0
HHHLHHHHHHH
Yl
HHHHLHHHHHH
Y2
HHHHHLHHHHH
OUTPUT
Y3
HHHHHHLHHHH
Y4
HHHHHHHLHHH
Y5
HHHHHHHHLHH
Y6
HHHHHHHHHLH
Y7
HHHHHHHHHHh
41
Keterangan A, B, C = address input
G2A G2B = enable (aqtive low) input
Gl = enable (active high) output
YO - Y7 = active low output
* = don't care
TABEL 3-2
HUBUNGAN ZONE BIT DEN6AN MEMORI
MEMORI
EPROM 2764
RAM 6116
LOKASI
FEOOOH
OOOOOH
MEMORI
- FFFFFH
- 007FFH
A15
1
A13
0
ZONE
A14
1
A12
0
BIT
A13
1
All
0
Perencanaan Input Output
Dalam tugas akhir ini diperlukan matriks keyboard
4 x 4 dan 7 display seven segmen, untuk itu diperlukan IC
Programmable Keyboard/ Display Interface 8279. Sedangkan
untuk keperluan input output lainnya seperti sensor,
motor driver dan ADC digunakan IC Programmable Peripheral
Interface 8255 karena fungsi input output dari port-port
nya dapat diatur dengan software serta mempunyai jumlah
bit port yang cukup banyak yaitu 24 jalur I/O yang
terbagi menjadi 3 port, selain itu IC ini mudah didapat
42
D0-D7
8088CPU
I O / M MHU
RD WR
D0-D7
8255PPI
WHU C5RD WR
IO/M 10DECODER
Y0Y l
D0-D7
8279PKDI
csRD WR
GAMBAR 3 - 7
BLOK DIAGRAM HUBUNGAN HIKROPROSESOR 8088 DENGAN
PPI 8255 DAN 8279
dipasaran. Pemilihan IC 8279 karena IC ini dapat melaku-
kan scanning keyboard maupun display secara langsung dan
lebih mudah dalam pemrograman dibandingkan dengan 8255
sehingga sangat sesuai untuk pemakaian keyboard dan
display. Diagram blok hubungan mikroprosesor 8088 dengan
PPI 8255 dan 8279 dapat dilihat pada gambar 3-7.
1.3.1 Perencanaan Dekoder I/O. Pemilihan port address
dari 8279 dan 8255 dapat dilihat pada tabel 3-3 DAN TABEL
3-4.
43
Port Add
Q4H
05H
TABEL 3-3
PORT ADDRESS 8255
Port Add
00H
01H
02H
03H
A7
0
0
0
0
A6
0
0
0
0
A5
0
0
0
0
A4
0
0
0
0
A3
0
0
0
0
A2
0
0
0
0
Al
0
0
1
1
AQ
0
1
0
1
Fungsi
Port A
Port B
Port C
C W R
TABEL 3-4
FORT ADDRESS 8279
A7 A6 A5 A4 A3 A2 Al AO
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 1
Fungsi
low add
high add
Sebagai I/O dekoder digunakan 74LS138 dengan menghubung-
kan pin A, B dan C ke A2, A3 dan A4 dari CPU, pin enable
Gl dihubungkan dengan IO/M dan pin G2A dihubungkan dengan
alamat A7. Pin G2B dari dekoder dihubungkan dengan output
dari gerbang logika OR dari IC TTL 74LS32 dimana inputnya
dihubungkan dengan alamat A4 dan A5. Output YO dari
dekoder dihubungkan dengan CS 8255 sedangkan output Yl
dihubungkan dengan CS 8279.
1.3.2 Hubungan Mikroprosesor 8088 Dengan 8279. Dilakukan
dengan menghubungkan data bus CPU secara langsung pada
44
DBO - DB7 dari 8279 dan alamat AO 8088 dengan pin AO.
Clock dari 8279 diperoleh dari rangkaian clock dengan
menggunakan kristal 2 MHz. Karena sinyal clock yang
diperlukan berkisar antara 100 KHz maka diperlukan set-
ting program clock pembagi 20.
1.3.3 Hubungan Mikroprosesor 8088 Dengan PPI 8255.
Interkoneksi antara CPU 8088 dengan PPI 8255 dapat
dilakukan dengan mudah tanpa harus memberikan rangkaian
logika tambahan.
Jalur data bus dari CPU dapat langsung dihubungkan
pada DO - D7 dari 8255, jalur alamat A0 dan Al dari CPU
dapat langsung dihubungkan ke 8255 untuk pemilihan port.
Pemilihan mode operasi dan pengaturan fungsi masing-
masing port dapat dilakukan dengan memberikan suatu
control word.
Pada perencanaan ini dipilih :
- Port A sebagai input
- Port B sebagai output
- Port C lower sebagai input
- Port C upper sebagai output
- Mode 0 untuk semua port,
sehingga didapatkan control word = 91H
Karena pada perencanaan tugas akhir ini PPI 8255 hanya
dioperasikan pada mode 0 untuk semua port maka pembahasan
dibatasi pada mode 0 saja. Pada mode 0, ketiga port 8255
hanya difungsikan sebagai input atau output port biasa
45
sehingga data dapat diambil/ diletakkan dari/ ke port
secara langsung dengan instruksi IN / OUT.
Konfigurasi port 8255. Adalah sebagai berikut :
* Port AO - A7
Port ini digunakan sebagai input port dari kombinasi 8
bit output ADC 0808 untuk data berat barang.
* Port BO - B7
- Port BO digunakan untuk menggerakkan motor conveyor
- Port Bl dan B2 digunakan untuk menggerakkan motor
pendorong.
- Port B3, B4, B5 dan B6 digunakan untuk menggerakkan
alat pemilah.
- Port B7 tidak digunakan
* Port CO - C7
- Port CO dan Cl digunakan sebagai input dari limit
switch motor pendorong.
- Port C2 digunakan sebagai input dari sensor LDR
- Port C3 dihubungkan sebagai input dari limit switch
motor pemilah.
- Port C4 dihubungkan dengan ALE dan START dari ADC
- Port C5 dihubungkan dengan OE dari ADC 0808
- Port C6 dan C7 tidak digunakan
1.4 Hubunqan PPI 8255 Denaan ADC.
Dalam perencanaan rangkaian konventer analog ke
digital digunakan ADC 0808, yang mempunyai 8 channel
46
input analog (INO - IN7) . Input ADC 0808 yang digunakan
dalam perencanaan ini hanya 1 channel yaitu INO, sehingga
pin A0 - A2 dapat langsung dihubungkan ke ground. Jalur
data bus DO - D7 dari ADC dapat langsung dihubungkan
dengan port A (PAO - PA7) dari 8255. Jalur OE dihubungkan
dengan PC5 dari 8255, demikian juga dengan jalur ALE dan
START dihubungkan ke PC4 dari 8255. Adapun hubungan
antara mikroprosesor 8088 dengan ADC 0808 terlihat pada
gambar 3-8.
Jalur REF+ dihubungkan dengan tegangan sebesar 5 volt.
Agar tegangan ini tetap stabil, maka digunakan sebuah
rangkaian regulator seperti terlihat pada gambar 3-9.
Jalur REF- dihubungkan ke ground.
<
A
DATAOUTPUT
D0
D7
P.B
PA0-PA7
ft2
\
re?
DATfi\
P?4
PC3
D0-D7
STARTALEOE
IN0
Pfi i
DC
N7
A0A lA2
/
\INPUT
GAMBAR 3-8
HUBUNGAN PPI 8255 DENGAN ADC 0808
47
Clpck ADC 0808 sebesar 525 KHz, diperoleh dari suatu
rangkaian clock yang menggunakan resistor 1 Kn, schmitt
trigger dan kapasitor.
ODDLM336-5
GAMBAR 3 - 9
RANGKAIAN REGULATOR
1.5 Ranqkaian Sensor Berat.
Sebagai senspr berat digunakan strain gauge type
FLA 10-11 yang mempunyai gauge factor 2 dan resistansi
120 n, yang dirangkai secara bridge, seperti terlihat
pada gambar 3-10. Pemberian nilai Rl dan R2 didasarkan
pada besarnya dari resistansi strain gauge yang dipakai,
yaitu 120 n. Dari rangkaian yang dibuat tidak dimaksudkan
untuk mendapatkan besarnya tegangan yang terjadi pada
strain 1 atau strain 2, tetapi yang diinginkan adalah
perbedaan tegangan yang terjadi antara kedua output.
1.5.1. Sinyal Conditional. Sinyal conditional strain
gauge berupa suatu rangkaian yang terdiri atas rangkaian
48
f 5V
R li—V
120
R2
120
R3
STRAIN
R4
STRAIN
IT1<
OUT V I >
GAMBAR 3 - 1 0
RANGKAIAN SENSOR BERAT
tahanan yang disusun secara jembatan wheatstone dan
operasional amplifier type LF-347 sebagai rangkaian
instrumentasi amplifier. Output dari sinyal conditioning
ini diumpankan ke ADC.
GAMBAR 3-11
RANGKAIAN SINYAL CONDITIONING
49
1.6 Ranqkaian Penquat.
Rangkaian penguat differential ini dimaksudkan
untytk memperkuat perbedaan tegangan yang terjadi pada
rangkaian sensor berat. Diinginkan total penguatan sebe-
sar 2000 kali, maka direncanakan penguatan pertama adalah
20, kemudian 100.
[MULL
LBOE
R14
MOK
1
0
100K
ISI Rli
\ B 1
lf
GAMBAR 3-12
RANGKAIAN PENGUAT
Dengan mengambil R9 = 10K n, dari persamaan' G = 2R/Rg,
didapat :
20 = 2R/10K
2R = 2Q0 Kfl
R = 100 Kn = R10 = R H
Pada penguatan yang kedua diinginkan penguatan sebesar
100. maka dipilih R14 = R15 = lMn dan R12 = R13 = 10 Kn.
50
1.7 Ranakaian Sensor Baranq.
Untvjk menyeleksi adanya benda yang lewat digunakan
rangkaian sensor seperti terlihat pada gambar 3-13.
Rangkaian sensor yang direncanakan pada tugas akhir ini
menggunakan sensor LDR (Light Depending Resistor).
Alasan pemakaian sensor ini adalah cukup sensitive, murah
harganya dan mudah didapatkan dipasaran.
GAMBAR 3-13
RANGKAIAN SENSOR BARANG
Untuk pengiriman sinar pada sensor LDR ini digunakan
lampu yang mempunyai fokus dengan tegangan kerja 2,2
Volt. Cara kerja dari rangkaian adalah sebagai berikut :
- Pada saat LDR terkena sinar atau cahaya, resistansinya
menjadi rendah sehingga transistor menjadi cut off dan
lampu LED tidak menyala.
- Pada saat LDR terhalang benda (tidak terkena cahaya,
51
resistansinya menjadi tinggi sehingga dapat mendrive
transistor dan LED akan menyala.
1.8 Ranakaian Motor Conveyor.
Digunakan untuk menjalankan conveyor dengan menggu-
nakan motor DC 12 V. Rangkaian ini mendapat input dari
PPI 8255 port BO dan diumpankan ke transistor 9013 (Q16)
untuk diperkuat. Sebagai switching digunakan relay SPDT
5V, sehingga apabila PBO inendapat tegangan logika "l"
GAMBAR 3-14
RANGKAIAN MOTOR CONVEYOR
motor akan bekerja dan sebaliknya bila PBO mendapat
tegangan logika "0" motor akan berhenti (tidak bekerja).
1.9 Ranakaian Motor Pendorona.
Setelah melewati timbangan maka barang/ benda perlu
didorong untuk kemudiah dipisahkan berdasarkan beratnya,
52
untuk itu diperlukan sebuah pendorong. Alat yang diguna-
kan sebagai pendorong ini digerakkan oleh sebuah motor DC
12V dengan X buah relay SPOT dan 1 buah relay DPDT, yang
dikontrol oleh PBX dan PB2.
RELftY SPDT•ai?3OJ.3
GAMBAR 3-15
RANGKAIAN MOTOR PENDORONG
Cara kerja rangkaian adalah sebagai berikut :
Apabila PB1 mendapat tegangan logika "1", akan mendrive
transistor Q17 sehingga relay SPDT "ON" . Bila PB2 berte-
gangan logika "0" maka transistor Q18 tidak mendapat
tegangan bias dan relay DPDT "OFF" sehingga motor pendo-
rong akan bekerja mendorong maju (forward). Sedangkan
bila PB2 bertegangan logika "1" maka motor pendorong akan
bergefak mundur (backward).
Untuk mengatur kapan motor pendorong maju maupun kembali
dikontrol oleh limit switch SI dan S2.
53
1.10 Ranqkaian Penqqerak stepper Motor.
Setelah melewati timbangan, barang akan dipisah-
pisahkan sesuai dengan beratnya, untuk itu diperlukan
alat pemilah agar barang dapat berada pada kondisi yang
diminta. Pada tugas akhir ini digunakan rangkaian peng-
gerak stepper motor seperti pada gambar 3-16.
Rangkaian penggerak stepper motor digunakan untuk
mengontrol batangan kayu pemilah barang agar dapat ber-
gerak dan berhenti dalam tiga posisi yaitu kiri, kanan
dan tengah. Untuk mengontrol gerakan dari motor ini
diberikan pulsa dari kombinasi Port B3 sampai Port B6.
Agar motor stepper dapat bergerak searah jarum jam (clock
wise) maka diberikan pulsa bertegangan logika "1" secara
bergantian dari PB3, dilanjutkan PB4, PB5 dan PB6.
67VMBAR 3-15
RAUGKAIAN FEN66ERAK STEPPER MOTOR
54
Bila urutannya dibalik maka motor stepper akan bergerak
berlawanan arah jarum jam (counter clock wise).
1.11 Rangkaian Display Dan Keyboard.
Rangkaian display yang direncanakan menggunakan 7
buah seven segment common anoda seperti terlihat pada
gambar 3-17. Untuk common anoda display, maka sinyal low
dibutuhkan seven segment untuk menyalakannya. Setiap
digit dihubungkan dengan sebuah driver transistor PNP
yang diletakkan antara anoda dan sumber tegangan 5 volt.
Sebagai inputnya diperoleh dari output OAO - 0A7 dari
9279 yang dilewatkan ULN2803 untuk diperkuat.
Sebagai pembatas arus sebelum masuk ke seven seg-
ment digunakan resistor 200 fl yang dipasang seri dengan
jalur pada setiap input dari seven segment dengan pertira-
bangan sebagai berikut : supaya dapat menyala, setiap
segment membutuhkan arus 5 sampai 30 mA. Digunakan resis-
tor 200 n, sehmgga arus yang lewat sebesar,
VccI =
R
5 V
200
= 0,025 A = 25 mA < 30 mA
Sedangkan untuk input, digunakan keyboard matrik 4x4
dengan pertimbangan sebagai berikut :
55
- 10 buah sebagai angka 0 - 9
- 1 buah sebagai enter
- 1 buah sebagai delete
- 1 buah sebagai Zero adjusment
Jadi total tombol yang diperlukan minimum 13 buah.
Digunakan encoding keyboard yaitu dengan mengguna-
kan 4 jalur return line dan 3 buah jalur scan line dari
8279 yang didecoding dengan 74LS138 untuk mendapatkan 8
output. Digunakan encoding mode dengan pertimbangan untuk
perkembangan yang lebih Ianjut.
I q 13 300. HCADCR V
» to7 09 1011 1?IS 14IS 1617 1819 20
IE
7 SEGMENT x 70137 &XS*
.,1 g04rJ c. 05 ''S BC3J7W * • *1 BC327
" « 7 I I 1 T
Kt YBUHRD
4X4
TUQAS AKHXR LOUIS STCPANUS filDMOM
H C 23487050 >t *
RANCKAXAN KCYBOAfiD ft DISPLAY
GAMBAR 3-17
RANGKAIAN DISPLAY DAM KEYBOARD
144
4
*41444*444*4
mmn mum mam32 lasstissssaja *S?TS*8SS»»S s
0000P09
EW
00 HH W
SS
53
H
58
2. PERENCANAAN PERANGKAT LUNAK
Pembahasan pada perangkat lunak terdiri atas dua
bagian yaitu flowchart dan listing program sebagai beri-
kut :
GAMBAR 3-2 0
FLOWCHART AIAT PEMILAH BARANG
59
GAMBAR 3-21
FLOWCHART ALAT PEMILAH BARAN6 LANJUTAN - 1
60
NYALAKANMOTOR
PEHDOPONGBALIX
SUDAHIERKENA
U N I T SWITCHAUAL
HATIXANMOTOR
PENDORONG
GAMBAR 3 - 2 2
FLOWCHART ALAT PEMILAH BARANG LANJUTAN - 2
61
* PROGRAM 'ALAT PEHILAH BARANG BERDASARKAN BERATNYA DENGAN CONVEYOR1
* NAMA : LOUIS STEFANUS RIDUAN* NRP. : 23487050
* NIRM. : 87.7.002.31073.38282* PROYEK : TUGAS AKHIR / SKRIPSI
* JURUSAN : TEKNIK ELEKTRO , BIDANG STUD I : ELEKTRONIKA
* UNIVERSITAS KRISTEN PETRA, SURABAYA, Hedio Februari 1993
IC 8255
PORT_A_8255 EQU 0000H
P0RT_B_8255 EQU 0001HPORT_C_8255 EQU 0002H
CUR 8255 EQU 0003H
IC8279
KBO_OATAKBP_COHM
t
NOL
SATU
DUATIGA
EMPATLIMA
ENAM
TUJUH
DELAPAN
SEMBILAN
LAMPUO
LAMPU1
LAMPU2
LAMPU3
LAMPU4
LAMPU5
LANPU6
BLANK
KONDISI_PB
KONDISI_PC
ISI_FIFO
DATA_BERATSTATUS_TENGAH
STATUS_KIRI
STATUS_KANAN
STATUS_OATA
STATUS_ENTER
STATUS_DELETE
BATAS_BAUAH
BATAS_ATASJUHLAH DATA
EQUEQU
EQU
EQU
EQU
EQUEQU
EQU
EQU
EQU
EQUEQU
EQU
EQU
EQU
EQU
EQUEQU
EQU
EQU
EQU
EQU
EQUEQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0004 H0005H
OOCFH
OOOCH
006BH
006EH
OOACH
00E6H
00E7H
004CH
OOEFH
OOECH
0101H
0102H
0103H
0104H
0105H
0106H
0107H
OOOOH
0108H
0109H
010AH
010SH
010CH
010DH
010EH
010FH
0200H
0201H
0202H
0203H0204 H
62
.MODEL
.CODEORG
TUGAS.AKHIR PROCJMP
NOMOR: DBDB
DATA_ADC: DBDBDBDBDBDBDBDBDBDB
t
DBOBDBDBDBDBDBDBDBDB
t
DBDBDBDBDBDBDBDBDBDB
r
DBDBDBDBDBDBDBDBDBDB
r
DBDB
SMALL
1OOH
HULA IOCFH,OOCH,06BH,06EH,OACH0E6H,0E7H,04CH,0EFH,0ECHNOL,EMPAT,NOL,40NOL,EMPAT,TIGA,43NOL,EMPAT,ENAM,46NOL,EMPAT,TUJUH,47NOL,EMPAT,DELAPAN,48NOL,EMPAT,SEMBILAN,49NOL,LIMA,NOL,50NOL,LIMA,SATU.51NOL,LIMA,DUA,52NOL,LIMA,TIGA,53
NOL,LIMA,EMPAT,54NOL,LIMA,LIMA,55NOL,LIMA,ENAM,56NOL,LIMA,TUJUH,57NOL,L!MA,DELAPAN,58NOL,LIMA,SEMBILAN,59NOL,ENAM,NOL,60NOL,ENAM,DUA,62NOL,ENAM,EMPAT,64N0L,TUJUH,N0L,70
NOL,TUJUH,NOL,70N0L,TUJUH,SATU,71N0L,TUJUH,SATU,71N0L,TUJUH,DUA,72N0L,TUJUH,DUA,72N0L,TUJUH,TIGA,73N0L,TUJUH,TIGA,73NOL,TUJUH,EMPAT,74NOL,TUJUH,EMPAT,74NOL,TUJUH,LIMA,75
NOL,TUJUH,ENAM,76NOL,TUJUH,TUJUH,77NOL,TUJUH,DELAPAN,78NOL,TUJUH.SEHBILAN,79NOL,DELAPAN,NOL,80NOL,DELAPAN,NOL,80N0L,DELAPAN,SATU,81NOL,DELAPAN,DUA,82NOL,DELAPAN,TIGA, 83NOL,DELAPAN,EMPAT,84
NOL,DELAPAN,LIMA,85NOL.DELAPAN.LIMA.85
63
OB NOL,DELAPAN,ENAH,86OB N0L,DELAPAN,ENAM,86D8 NOL.DELAPAN,TUJUH,8708 NOL,DELAPAH,0ELAPAN,88DB HOL,DELAPAN,0ELAPAH,88DB N0L,DELAPAN,SEHBILAM,89DB N0L.SEMBILAN.N0L.90DB N0L,SEHBILAN,SATU,91
DB NOL,SEMB!LAN,DUA,9208 NOL,SEMB1LAN,TIGA,93DB N0L,SEHBILAN,EMPAT,94DB N0L.SEMBILAN.LIMA.95DB NOL,SEMBILAN,TUJUH,97DB SATU,NOL,NOL,100DB SATU,NOL.DUA,102OB SATU,NOL.EMPAT,104DB SATU.NOL,LIMA,105DB SATU,NOL.ENAM,106
DB SATU.NOL,EMAM,106DB SATU.NOL,ENAH,106DB SATU.NOL,TUJUH,10708 SATU.NOL,TUJUH,107DB SATU.NOL,TUJUH,107DB SATU,NOL,DELAPAN,108OB SATU.NOL,DELAPAN,108DB SATU.NOL,OELAPAN,108DB SATU,NOL,SEMBILAN,109DB SATU,NOL,SEMB!LAN,109
9
DB SATU,N0L,SEHBILAN,109DB SATU,SATU.NOL,110DB SATU,SATU.NOL,110DB SATU,SATU.NOL,110DB SATU,SATU,SATU,111DB SATU,SATU.DUA,112DB SATU,SATU.DUA,112DB SATU,SATU,TIGA,113DB SATU,SATU,TIGA,113DB SATU,SATU,EMPAT,114
I
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *t
; S U B R O U T I N E.********************************•
DELAY
TUNDA:
PROCPUSHMOVDECCMPJNEPOPRET
CXCX.OFFFFHCXCX,0TUNDACX
64
DELAYt
DELAY1
TUNDA1:
DELAY1
r
DELAY2
TUNDA2:
DELAY2f
1NIS!AL_8255
INISIAL.
INISIAL.
INISIAL.
!DISPLAY.
.8255
.8279
.8279
.LED
ENDP
PROCPUSHMOVDECCMPJNEPOPRETENDP
PROCPUSHMOVDECCMPJNEPOPRETENDP '
PROCPUSHMOVOUTPOPRETENDP
PROCPUSHMOVOUTMOVOUTPOPRETENDP
PROCPUSHMOVOUTMOVOUTMOVOUTMOVOUTMOVOUTMOVOUT
CXCX.OFFHCXCX.QTUNDA1CX
CXCX.OFFFHCXCX.OTUNDA2CX
AXAL.91HCUR_8255,ALAX
AXAL.1OHKBD_COMM,ALAL.24HKBD_COMM,ALAX
AXAL.86HKBD_COMM,ALAL,DS:LAMPU6KBD_DATA,ALAL.85MKBD_COMM,ALAL,DS:LAMPU5KBD_DATA,ALAL,84HKBD_COMM,ALAL,DS:LAMPU4KBD DATA.AL
65
MOVOUTMOVOUTMOVOUTMOVOUTMOVOUTMOVOUTMOVOUTMOVOUTPOPRET
DISPLAYJ.ED ENDP
i
CHECKJ.ED PROCMOVMOVMOV
CLO: MOVINCLOOPCALLCALLMOVMOVMOV
CL1: MOVINCLOOPCALLCALLMOVMOVMOV
CL2: MOVINCLOOPCALLCALLMOVMOVMOV
CL3: MOVINCLOOPCALLCALLMOV
AL.83HKBD_COMM,ALAL,DS:LAMPU3KBD_DATA,ALAL.82HKBD_COMM,ALAL,DS:LAMPU2KBDJJATA.ALAL.81HKB0_COMM,ALAL,DS:LAMPU1KBD_DATA,ALAL.80HKBD_COMM,ALAL,DS:LAMPUOKBD_DATA,ALAX
AL.NOLSI.LAMPUOCX, 7DS:SI,ALSICLODISPLAYJ.EDDELAYAL.SATUSI.LAMPUOCX.7DS:SI,ALSICL1DISPLAY_LEDDELAYAL.DUASI.LAMPUOCX.7DS:SI,ALSICL2DISPLAYJ.EDDELAYAL.TIGASI.LAMPUOCX.7DS:SI,ALSICL3DISPLAY_LEDDELAYAL.EMPAT
66
CL4:
CL5:
CL6:
CL7:
CL8:
CL9:
CHECKJ.ED
i
GET_DATA
MOVMOVMOVINCLOOPCALLCALLMOVMOVMOVMOVINCLOOPCALLCALLMOVMOVMOVMOVINCLOOPCALLCALLMOVMOVMOVMOVINCLOOPCALLCALLMOVMOVMOVMOVINCLOOPCALLCALLMOVMOVMOVMOVINCLOOPCALLCALLRETENDP
PROCMOVMOVMOV
SI,LAMPUOCX,7DS:SI,ALSICL4DISPLAYJ.EDDELAYAL.LIMASI.LAMPUOCX,7DS:SI,ALSICL5DISPLAYJ.EDDELAYAL.ENAHSI,LAMPUOCX.7DS:SI,ALSICL6DISPLAYJ.EDDELAYAL.TUJUHSI,LAMPUOCX.7DS:SI,ALSICL7D1SPLAYJ.EDDELAYAL,DELAPANSI,LAMPUOCX.7DS:SI,ALSICL8DISPLAYJ.EDDELAYAL,SEMBILANSI,LAMPUOCX.7DS:SI,ALSICL9DISPLAY_LEDDELAY
DL,0DS:LAMPUO,DLDS:LAMPU1,DL
67
MOVMOVLEASUBMOVMOVMULADDMOVADDMOVINCMOVMOVINCMOVMOVINCMOVMOVRET
CET_DATA ENDP
BACA_ADC PROCMOVORMOVOUTANDOUTMOVCALLMOVORMOVOUTINCALLCALLMOVANDOUTMOVRET
BACA_ADC ENDP
ICONVEYORJJN PROC
MOVORMOVOUTRET
CONVEYOR ON ENDP
DS:LAHPU5,0LDS:LAHPU6,0LSl,DATA_ADCSI.100HBL,4HAH,0BLSI,AXAL,CS:S1AL.1OHDS:LAMPU4,ALSIAL,CS:SIDS:LAMPU3,ALSIAL,CS:SIDS:LAMPU2,ALSIAL,CS:SIDS:DATA_BERAT,AL
AL,DS:KONDISI_PCAL.1OHDS:KONDISI_PC,ALPORT_C_8255,ALAL.OEFHPORT_C_8255,ALDS:KONDISI_PC,ALDELAY1AL,DS:KONDISI_PCAL.20HDS:KONDIS!_PC,ALPORT_C_8255,ALAL,PORT_A_8255GET_OATADISPLAY_LEDAL,DS:KONDISI_PCAL.ODFHPORT_C_8255,ALDS:KONDISI_PC,AL
AL,DS:KONDISI_P8AL.1DS:KONDIS1_PB,ALPORT_B_8255,AL
68
CONVEYQRJJFF
CONVEYORJJFF
r
BACKUAROJJN
BACKWARDJJN
r
MOTOR_OFF
HOTOR_OFF
f
FORUARD_ON
FORUARD_ON
CLOCKUISE
CLKWISE1:
ARRANGE:
CLOCKWISE
PROCMOVANDMOVOUTRETENOP
PROCMOVORMOVOUTRETENDP
PROCMOVANDMOVOUTRETENDP
PROCMOVORMOVOUTRETENDP
PROCMOVMOVANDANDCMPJEROLADDOUTMOVRETMOVJMPENDP
AL,DS:KONDISI_PBAL.OFEHDS:KONDISI_PB,ALPORT_B_8255,AL
AL,DS:KONDISI_PBAL.6HDS:KONDISI_PB,ALPORT_B_8255,AL
AL,DS:KONDISI_PBAL.0F9HDS:KONDISI_PB,ALPORT_B_8255,AL
AL,DS:KONDISI_PBAL,2HDS:KONDISI_PB,ALPORT_B_8255,AL
AL,DS:KONDISI_PBAH,ALAH.7HAL.78HAL.40HARRANGEAL,1AL.AHPORT_B_8255,ALDS:KONDISt_PB,AL
AL.8HCLKWISE1
*COUNTER_CLOCKUISE PROC
MOVMOVANDANDCMP
AL,DS:KONDIS1_PBAH.ALAH.7HAL.78HAL.8H
69
CCUISE1:
ARRANGE1:
JERORADD
OUT
MOVRET
MOV
JMP
COUNTERCLOCKWISE
t
REAO_FIFO
READ_FIFO
DETECTION
A0A_DATA:
' PROC
CALL
MOV
OUT
INMOV
MOV
OUTRET
ENDP
PROC
MOVAND
CMP
JECMP
JECMP
JECMP
JE
CMP
JE
CMP
JE
CMP
JE
CMP
JE
CMP
JE
CMP
JE
CMP
JE
CMP
JEMOV
MOV
RET
MOV
MOV
RET
ARRANGE1AL,1AL.AH
PORT_B_8255,ALDS:KONDISI_PB,AL
AL.40H
CCWISE1ENDP
READ_STATUSAL.40H
KBD_COMM,ALAL,KBD_DATADS:ISI_FIFO,AL
AL.0C2H
KBD_COMM,AL
AL,DS: IS I_FIFO
AL.3FH
AL,0
NUMBERJ)AL.19H
NUMBER_8
AL.1AH
NUMBER_9
AL.12H
NUMBER_6
AL.8H
NUMBER_1
AL.9H
NUMBER_2
AL.OAH
NUMBERJAL.18H
NUMBER_7
AL.1OH
NUMBER.A
AL.11H
NUMBERJ
AL.OBH
ENTERING
AL.13H
DELETE
AL.ODS:STATUS_DATA,AL
BL.1H
DS:STATUS_DATA,BL
70
NUMBERJ):
NUMBERJ:
NUMBER_2:
NUHBER_3:
NUMBER_4:
NUHBER_5:
NUHBER_6:
NUHBER_7:
NUMBER_8:
NUHBER_9:
ENTERING:
DELETE:
DETECTION
1
READ_STATUSRSI:
READ_STATUS
r
ZERO_ADJZA1:
MOVMOVJHPMOVMOVJMPMOVHOVJMPHOVMOVJMPMOVMOVJMPMOVMOVJMPHOVMOVJMPMOVMOVJHPMOVHOVJMPMOVMOVJMPMOVMOVMOVMOVRETMOVHOVHOVHOVRETENDP
PROCINANDCMPJERETENDP
PROCCALLINAND
AL.NOLAH,0ADA_DATAAL.SATUAH,1ADA_DATAAL.DUAAH,2ADA_DATAAL.TIGAAH,3ADADATAAL.EMPATAH, 4ADA_DATAAL,LIMAAH,5ADA_DATAAL.ENAMAH,6ADA_DATAAL.TUJUHAH, 7ADA_DATAAL.DELAPANAH,8ADA_DATAAL,SEMBILANAH,9ADA_DATAAL.OOS:STATUS_DATA,ALAL,1DS:STATUS_ENTER,AL
AL,0DS:STATUS_DATA,ALAL,1DS:STATUS_DELETE,AL
AL,KBD_COMMAL,7AL.ORSI
BACA_ADCAL,KBD_COMMAL.7
ZERO,iPUTAR
PK1:
PUTAR
SPUTAR
PK2:
PUTAR
ADJ
_KIRI
_KIRI
_KAHAN
KANAN
CMPJEMOVOUTINMOVMOVOUTMOVANDCMPJNERETENDP
PROCMOVCALLCALLLOOPRETENDP
PROCMOVCALLCALLLOOPRETENDP
AL,0ZA1AL.40HKBD_COMM,ALAL,KBD_DATADS:ISI_FIFO,ALAL.OC2HKBD_COMM,ALAL,DS:IS1_FIFOAL.3FHAL.2HZA1
CX.2AHCOUNTERCLOCKWISEDELAY2PK1
CX.2AHCLOCKUISEDELAY2PK2
.*********************************I
; M A I N P R O G R A M. A * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MULAI: MOVMOVMOVMOVCALLCALLMOVMOVMOVMOVMOVMOVMOVMOVMOVMOVMOVMOV
AX.OOHDS.AXSS,AXSP.1OOHINISIAL_8255INISIAL_8279AL.1OS:STATUS.AL,0DS:KONDISIDS:STATUS_DS:STATUS_DS:STATUS_DS:STATUS,DS:STATUS,DS:JUMLAH_AL.8HDS:KONDISI
TENGAH.AL
_PC,ALKIRI.ALKANAN,ALENTER,ALDATA.ALDELETE,ALDATA.AL
_PB,AL
72
; CHECK 7 BUAH LAMPU LEDt
CALL CHECK_LED9
; CHECK APAKAH POSISI MOTOR PADA KONDISI SEMULA
iDET_BACKWARD: IN AL,PORT_C_8255
AND AL.4HCHP AL.4HJE BACKjtOTORJHP Z2A
BACK_HOTOR: CALL BACKWARD_ONJHP OET_BACKWARD
t
; PROSEDUR ZERO ADJUSMENT
ZA2:
ff
INISIAL:
CALL
MOVADDMOVMOVMOVMOVMOVMOVMOVMOVMOVMOVMOVMOVCALL
MOTORJJFFCALL ZERO_ADJ
AL.NOLAL.1OHBL.OHDS:STATUS_DELETE.BLDS:JUMLAH_DATA,BLDS:LAMPU6,ALDS:LAMPU2,ALAL,0DS:LAMPU4,ALDS:LAMPU5,ALDS:LAMPU1,ALDS:LAMPUO,ALAL.20HDS:LAMPU3,ALDISPLAY LED
; PENGISIAN BATAS BAUAHI
BACA1: CALLCALLCALLMOVMOVCMPJNEMOVMOVMOVINCMOVMOVADDMOVMOVMOV
READ_STATUSREAD_FIFODETECTIONBX.AXAL,DS:STATUS_DATAAL,1CHECKJUNGSIAL,0DS:STATUS_DATA,ALAL,DS:JUMLAH_DATAALDS:JUMLAH_DATA,ALAX.BXAL.1OHDS:LAMPU6,ALAL.AHBL.64H
73
MOVMULMOVCALLJHP
t
CHECK_FUNGSI: MOVCMPJEJMP
CHECK_DELETE: MOVCMPJEMOVCMPJECMPJEJMP
IBACA2: CALL
CALLCALLMOVMOVCMPJNEMOVMOVMOVINCMOVMOVMOVMOVMOVMOVMULMOVADDMOVCALL
SACA3: CALLCALLCALLMOVMOVCMPJNEMOVMOVMOVINC
AH,0BLDS:BATAS_BAWAH,ALDISPLAYJ.EDBACA2
AL,OS:STATUS_ENTERAL,0CHECK_DELETEISI_DATAAL,DS:STATUS_OELETEAL.1INISIALAL,DS:JUHLAH_DATAAL,OHBACA1AL.1HBACA2BACA3
READ_STATUSREAD_FIFODETECTIONBX.AXAL,DS:STATUS_DATAAL,1CHECK_FUNGSlAL.ODS:STATUS_DATA,ALAL,OS:JUMLAH_DATAALDS:JUMLAH_DATA,ALAX,BXDS:LAMPU5,ALAL.AHBL.OAHAH,0BLAH,DS:BATAS_BAWAHAL.AHDS:BATAS_BAUAH,ALDISPLAY_LED
READ_STATUSREAD_FIFODETECTIONBX.AXAL,DS:STATUS_DATAAL.1CHECK_FUNGSIAL.ODS:STATUS_DATA,ALAL,DS:JUMLAH_DATAAL
74
MOVMOVMOVMOVMOVADDMOVCALLMOVCMPJNE
1
IS!_DATA: MOVMOVMOVMOVMOVMOVMOVADDMOVCALL
OS:JUMLAH_DATA,ALAX.BX
DS:LAMPU4,ALAL.AHAH,DS:BATAS_8AUAHAL.AHDS:BATAS_BAWAH,ALD1SPLAY_LEOAL,DS:STATUS_ENTERAL.1BACA3
AL.ODS:STATUS_ENTER,ALDS:JUMLAH_DATA,ALDS:STATUS_DELETE,ALDS:LAMPUO,ALDS:LAMPU1,ALAL.NOLAL.1OHDS:LAMPU2,ALDISPLAY LED
PENGISIAN BATAS ATAS
BACA1_A: CALLCALLCALLMOVMOVCMPJNEMOVMOVHOVINCMOVMOVADDMOVMOVMOVMOVMULMOVCALLJMP
CHECK_FUNGSI_A: MOVCMPJEJMP
CHECK_DELETE_A: HOVCMP
READ_STATUSREAD_FIFODETECTIONBX.AXAL,DS:STATUS_OATAAL,1CHECK_FUNGSI_AAL.ODS:STATUS_DATA,ALAL,DS:JUMLAH_DATAALDS:JUMLAH_DATA,ALAX.BXAL.1OHDS:LAMPU2,ALAL.AHBL.6AHAH,0BLDS:BATAS_ATAS,ALDISPLAY_LEDBACA2_A
AL,DS:STATUS_ENTERAL,0CHECK_DELETE_ACHECK_STEPERAL,DS:STATUS_DELETEAL.1
75
BACA2 A:
BACA3 A:
JEMOVCMPJECHPJEJHP
CALLCALLCALLMOVMOV 'CMPJNEMOVMOVMOVINCMOVMOVMOVMOVMOVMOVMULMOVADDMOVCALL
CALLCALLCALLMOVMOVCMPJNEMOVMOVMOVINCMOVMOVMOVMOVMOVADDMOVCALLMOVCMPJNE
ISI_DATAAL,DS:JUHLAH_DATAAL.OHBACA1_AAL.1H8ACA2_ABACA3_A
READ_STATUSREAD_FIFODETECTIONBX.AXAL,DS:STATUS_DATAAL,1CHECK_FUNGSl_AAL,0DS:STATUS_DATA,ALAL,DS:JUMLAH_DATAALDS:JUMLAHJ)ATA,ALAX.BXDS.-LAMPU1.ALAL.AHBL.OAHAH.QBLAH,DS:BATAS_ATASAL.AHDS:BATAS_ATAS,ALD1SPLAYJ.ED
READ_STATUSREAD_FIFODETECTIONBX.AXAL,DS:STATUS_DATAAL.1CHECK_FUNGSI_AAL.ODS:STATUS_DATA,ALAL,DS:JUMLAH_DATAALDS:JUMLAH_DATA,ALAX.BXDS:LAMPUO,ALAL.AHAH,DS:BATAS_ATASAL.AHDS:BATAS_ATAS,ALDISPLAY_LEDAL,DS:STATUS_ENTERAL.1BACA3 A
CHECK POSISI STEPPER KE KANAN
CHECK_STEPER: INANDCMPJNECALLCALLJMP
AL,PORT_C_8255AL,8HAL.8HON_POSITIONCLOCKWISEDELAY2CHECK STEPER
STEPPER DIGERAKKAN KE TENGAH
ON_POSITION:ROTATE:
AGAIN:
MOVCALLCALLLOOPCALL
CX.ZAHCOUNTERCLOCKWISEDELAY2ROTATECONVEYOR ON
CHECK APAKAH SUDAN MENGENAI LDR
76
TUNGGU: INANDCMPJE
TUNGGV_DULU: INANDCMPJECALLCALLCALLCALLCALLCALLCALLCALLMOVMOVCMPJBMOVCMPJAMOVCMPJEMOVCMPJEMOVMOV
AL,PORT_C_8255AL.1HAL.OHTUNGGUAL,PORT_C_8255AL,1HAL.1HTUNGGU_DULUDELAYDELAYCONVEYOR_OFFDELAYDELAYBACA_ADCBACA_ADCBACA_ADCAL,DS:DATA_BERATBL,DS:BATAS_BAWAHAL.BL ; BANDINGKAN DENGAN BATAS BAWAHBAWAH_SETINGBL,DS:BATAS_ATASAL.BL ; BANDINGKAN DENGAN BATAS ATASATAS_SETTINGAL,DS:STATUS_KIRIAL,1ROTATE_RIGHTAL,DS:STATUS_KANANAL,1ROTATEJ.EFTAL,1DS:STATUS_TENGAH,AL
77
; CHECK APAKAH SUDAH TERDORONG KE DEPANi
DETEKSM: CALL FORUARD_ON
CALL DELAY2
IN AL,PORT_C_8255
AND AL.2H
CMP AL,2H
JE DETEKSM
CALL HOTOR_QFFCALL DELAY
; CHECK APAKAH POSISI MOTOR PADA KONOISI SEHULA
DETEKSI2:
BAWAH_SETING:
9
ATAS_SETTING:
t
ROTATE_RIGHT:
t
ROTATE_LEFT:
RESET_STATUS:
CALL
INANDCMPJECALLMOVCMPJEMOVCMPJEMOVCMPJEJMP
MOVMOVCALLJMP
MOVMOVCALLJMP
MOVMOVCALLJMP
MOVMOVCALLJMPMOVMOVJMP
BACKWARDJJNCALL DELAY2
AL,PORT_C_8255AL.4HAL.4HDETEKSI2MOTOR_OFFAL,DS:STATUS_KIRIAL,1ROTATE_RIGHTAL,DS:STATUS_KANANAL.1ROTATE_LEFTAL,DS:STATUS_TENGAHAL.1RESET_STATUSAGAIN
AL,1DS:STATUS_KIRI,ALPUTAR_KIRIDETEKSI1
AL.1DS:STATUS_KANAN,ALPUTARJCANANDETEKSI1
AL.ODS:STATUS_KIRI,ALPUTAR_KANANAGAIN
AL,0DS:STATUS_KANAN,ALPUTAR_KIRIAGAINAL,0DS:STATUS_TENGAH,ALAGAIN