iii. perencanaan

48
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

Upload: others

Post on 20-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: III. PERENCANAAN

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

Page 2: III. PERENCANAAN

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

Page 3: III. PERENCANAAN

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

Page 4: III. PERENCANAAN

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

Page 5: III. PERENCANAAN

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

Page 6: III. PERENCANAAN

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 :

Page 7: III. PERENCANAAN

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.

Page 8: III. PERENCANAAN

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

Page 9: III. PERENCANAAN

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

Page 10: III. PERENCANAAN

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.

Page 11: III. PERENCANAAN

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

Page 12: III. PERENCANAAN

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

Page 13: III. PERENCANAAN

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

Page 14: III. PERENCANAAN

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.

Page 15: III. PERENCANAAN

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

Page 16: III. PERENCANAAN

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

Page 17: III. PERENCANAAN

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

Page 18: III. PERENCANAAN

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

Page 19: III. PERENCANAAN

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

Page 20: III. PERENCANAAN

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

Page 21: III. PERENCANAAN

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.

Page 22: III. PERENCANAAN

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,

Page 23: III. PERENCANAAN

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,

Page 24: III. PERENCANAAN

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.

Page 25: III. PERENCANAAN

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

Page 26: III. PERENCANAAN

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 :

Page 27: III. PERENCANAAN

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

Page 28: III. PERENCANAAN

144

4

*41444*444*4

mmn mum mam32 lasstissssaja *S?TS*8SS»»S s

0000P09

EW

00 HH W

SS

53

H

Page 29: III. PERENCANAAN

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

Page 30: III. PERENCANAAN

59

GAMBAR 3-21

FLOWCHART ALAT PEMILAH BARAN6 LANJUTAN - 1

Page 31: III. PERENCANAAN

60

NYALAKANMOTOR

PEHDOPONGBALIX

SUDAHIERKENA

U N I T SWITCHAUAL

HATIXANMOTOR

PENDORONG

GAMBAR 3 - 2 2

FLOWCHART ALAT PEMILAH BARANG LANJUTAN - 2

Page 32: III. PERENCANAAN

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

Page 33: III. PERENCANAAN

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

Page 34: III. PERENCANAAN

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

Page 35: III. PERENCANAAN

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

Page 36: III. PERENCANAAN

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

Page 37: III. PERENCANAAN

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

Page 38: III. PERENCANAAN

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

Page 39: III. PERENCANAAN

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

Page 40: III. PERENCANAAN

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

Page 41: III. PERENCANAAN

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

Page 42: III. PERENCANAAN

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

Page 43: III. PERENCANAAN

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

Page 44: III. PERENCANAAN

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

Page 45: III. PERENCANAAN

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

Page 46: III. PERENCANAAN

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

Page 47: III. PERENCANAAN

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

Page 48: III. PERENCANAAN

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