ill . e>srki>roan.aal!if · 80c31 dan hanya membutuhkan tambahan komponen yang terdiri dari...

76
Ill . E>SRKI>rOAN.AAl!if 1. PENDAHULUAN Untuk membuat suatu sistem remote control yang terprogram, maka sebagai langkah awal harus ditentukan sistem yang akan digunakan. Dalam tugas akhir ini digu- nakan minimum sistem dengan mikrokontroler 80C31. Untuk pengolahan dan penyimpanan data pada RAM menggunakan sistem data paralel. Media transmitter maupun receiver menggunakan sensor infra merah. 2. PERENCANAAN SISTEM Seperti telah disebutkan diatas, untuk pengendalian minimum sistem digunakan mikrokontroler 80C31. Adapun dipilih mikrokontroler 80C31 sebagai pusat pengontrol dan pengolah data, karena adanya fasilitas yang dimiliki oleh mikrokontroler 80C31 yang akan mempermudah sistem yang direncanakan, antara lain fasilitas timer / counter dan input output port.

Upload: others

Post on 06-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

I l l . E>SRKI>rOAN.AAl!if

1. PENDAHULUAN

Untuk membuat suatu sistem remote control yang

terprogram, maka sebagai langkah awal harus ditentukan

sistem yang akan digunakan. Dalam tugas akhir ini digu-

nakan minimum sistem dengan mikrokontroler 80C31.

Untuk pengolahan dan penyimpanan data pada RAM

menggunakan sistem data paralel. Media transmitter

maupun receiver menggunakan sensor infra merah.

2. PERENCANAAN SISTEM

Seperti telah disebutkan diatas, untuk pengendalian

minimum sistem digunakan mikrokontroler 80C31. Adapun

dipilih mikrokontroler 80C31 sebagai pusat pengontrol

dan pengolah data, karena adanya fasilitas yang dimiliki

oleh mikrokontroler 80C31 yang akan mempermudah sistem

yang direncanakan, antara lain fasilitas timer / counter

dan input output port.

Page 2: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

KEn'BOPRO MINIMUM 1 DRIVER TRANSMITTERSISTEM INFRfl IMT^ARED MERAH

OUTPUT CHPNNEL 1

OUTPt/T CHANNEL 2

OUTPUT CHftNNEL 10

HINIMUMSISTEM

KEYBOftRD

RECEIVERINFRAMERfiH

AMPLIFIER

GAMBAR 3-1 BLOK DIAGRAM PERANGRAT KERAS

Keyboard ditekan dideteksi oleh minimum sistem

80C31, untuk mendeteksi penekanan keyboard dilakukan

dengan sistem scan keyboard. Data hasil penekanan di­

proses oleh mikrokontroler 80C31. Kemudian data dikirim

pada driver infra merah untuk dipancarkan oleh infra

merah.

Data yang dipancarkan oleh infra merah diterima

oleh bagian receiver infra merah, data tersebut difilter

dan dikuatkan oleh amplifier, kemudian data tersebut di­

proses oleh mikrokontroler 80C31. Data hasil mikrokon­

troler 80C31, dioutputkan pada output channel. Keyboard

pada minimum sistem receiver digunakan untuk setting

baik jam, maupun password.

Page 3: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

3. PERENCANAAH PERANGKAT KERAS

Perencanaan perangkat keras untuk alat remote

control dengan basis mikrokontroler 80C31 yang dapat

dilihat pada gambar 3-2.

Diagram blok tersebut menggambarkan minimum sistem

dengan mikrokontroler 80C31 yang terdiri dari EPROM,

RAM, PPI 82C55, RTC MC 146818, dekoder beserta sinyal

kontrol, dan display.

EPROM yang, digunakan tipe 2764 berkapasitas 8

KByte, berfungsi untuk menyimpan program kontrol yang

akan mengendalikan semua aktifitas pada minimum sistem.

RAM yang digunakan tipe 6264 berkapasitas 8 KByte,

berfungsi untuk menyimpan dan proses data.

GAMBAR 3-2DIAGRAM BLOK MINIMUM SISTEM DENGAN 80C31

Page 4: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

PPI 82C55 digunakan sebagai I/O port yang dihubung-

kan dengan display seven segment serta untuk scan key­

board .

RTC MC 146818 digunakan untuk mengetahui tanggal,

bulan ,tahun, jam, menit, serta digunakan untuk proses

timer.

Dekoder dan sinyal kontrol. Dekoder berfungsi untuk

mengaktifkan piranti atau mengatur pengalaraatan piranti

(device), sedangkan sinyal kontrol berfungsi untuk

mengaktifkan buffer data dari piranti dan mengatur arah

perpindahan data antar mikrokontroler dan piranti

piranti.

Display yang digunakan adalah empat buah seven

segment yang berfungsi untuk menampilkan jam, menit,

tanggal, bulan, tahun serta tampilan channel yang aktif.

3.1 Rangkaian Eendukung Mikrp-kontroler—80C31Rangkaian pendukung operasi mikrokontroler 80C31

terdiri dari rangkaian pembangkit sinyal clock

dan rangkaian reset.

3.1.1 Rangkaian Clock. Rangkaian clock yang

digunakan dalam minimum sistem 80C31 ini merupa-

kan rangkaian clock yang dianjurkan oleh Intel

Co. selaku pembuat mikrokontroler. Rangkaian

clock ini mempergunakan fasilitas 'internal clock

Page 5: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

generator' yang terdapat dalam mikrokontroler

80C31 dan hanya membutuhkan tambahan komponen

yang terdiri dari satu buah kristal atau 'ceramic

resonator' dan dua buah kapasitor untuk membentuk

rangkaian clock yang lengkap.

Wilai kapasitansi dari kapasitor dipakai 2 0 pF,

nilai 2 0 pF ini diambil dari buku data yang

menyatakan bahv?a nilai kapasitansi yang diperke-

nankan untuk oscillator kristal adalah 20 pF -

40 pF dan 30 pF - 50 pF jika menggunakan 'ceramic

resonator'. Karena oscillator yang digunakan

adalah kristal, maka nilai kapasitansi dari

k a p a s i t o r b e r k i s a r dari 20 pF - 40 pF^^.

Kristal yang digunakan untuk minimum sistem 80C31

mempunyai nilai 11 MHz, nilai ini diambil karena

frekuensi oscillator juga dipakai sebagai pem-

bangkit 'baud rate' sehingga harus dipilih suatu

frekuensi yang merupakan kelipatan dari nilai

'baud rate' dan juga mendekati frekuensi 12 MHz

yang merupakan frekuensi oscillator yang dianjur-

kan. Dari kedua alasan tersebut diatas, didapat

suatu harga yaitu 11,059 MHz, tetapi karena

kristal dengan nilai tersebut sukar didapat maka

diambil suatu pendekatan, dan kristal yang mem­

punyai nilai terdekat adalah 11 MHz. Pendekatan

hicrocontroller Handbook (Sunnyvale: Advanced Micro Devices, 1988), p. 1-1.

Page 6: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

ini masih diijinkan dalam komunikasi serial

karena selisih yang ada masih dibawah 1 0 %.

C10

i f

J 21

: c i isaoF

SIsw

D1

c ia

R1

jax.-X3.

U1ES5A/P PCS.a

ra . 1H I p e .s

ra .3P0.4

XH r e .5 ra .eP0.7

RESETp s.e p a , 1

INTO P2.2IN TI P S .3TO P2. 4T1 P2S.S

p a .sP2. -7

P I . aP I . 2 P I ,9 mP I ,-4. CP i . 7 HXD

.......

33

GAMBAR 3-3

ElAHGKAIAH CLOCK DAN RESET

3.1.2 Rangkaian Reset. Rangkaian reset untuk

minimum sistem 80C31 direncanakan agar mempunyai

kemampuan 'power on reset' disamping reset secara

manual dengan menggunakan saklar 'push on'. Untuk

dapat memenuhi kedua hal tersebut diatas, harus

dipenuhi beberapa syarat, yaitu :

1 . Lebar pulsa untuk sinyal reset harus lebih

besar dari 24 periode oscillator ( 2 siklus

mesin).

2. 'Rise time' dari Vcc tidak melebihi 1 ms.

3. Waktu 'start up' dari oscillator tidak mele­

bihi 1 0 ms.

Page 7: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

Syarat nomor 2 dan nomor 3 hanya berlaku bila

'power on reset' digunakan.

Rangkaian reset yang digunakan untuk minimum

sistem 80C31 ditunjukkan oleh gambar 3-3. Cara

kerja dari rangkaian tersebut adalah sebagai

berikut, bila tegangan supply Vec mulai diberi-

kan, maka ada arus yang melewati kapasitor se-

hingga menimbulkan beda tegangan pada resistor.

Tegangan pada pin RST merupakan beda tegangan

antara Vco dan tegangan pada kapasitor. Karena

sifat dari kapasitor maka tegangan pada pin RST

akan menurun sehingga akhirnya menoapai tegangan

lower threshold' dari internal schmitt trigger

(2,5 V). Untuk bisa memberikan efek 'power on

reset' maka waktu penurunan tegangan dari Voc

sampai mencapai tegangan 'lower threshold' dari

schmitt trigger harus lebih besar dari 2 siklus

mesin ditambah dengan waktu 'start up' dari

oscillator.

Saklar 'push on' digunakan untuk keperluan reset

secara manual, bila saklar ditekan maka pin RST

akan mendapat tegangan setara dengan Vco dan hal

ini menyebabkan mikrokontroler berada dalam

keadaan reset.

Dengan mengasumsikan waktu 'start up' dari oscil­

lator 10 ms dan frekuensi oscillator 11 MHz maka

lebar pulsa untuk pin reset harus lebih besar

Page 8: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

dari ((10xl0"3) + (2 xl2 xl0 “6 /ll)) detik atau

10,0021 ms. Dengan menggunakan ketentuan bahwa

tegangan 'lower threshold' dari pin RST sebesar

2,5 volt, t(lebar pulsa) sebesar 10,002 ms dan

rumus :

Vreset = Vco ( 1 - )

maka didapat iiilai RC sebesar 14,42998 ms.

Ada cukup banyak nilai resistor dan kapasitor

yang dapat memenuhi nilai konstanta RC tersebut

diatas, tetapi dengan memperhatikan nilai-nilai

komponen yang ada di pasaran maka nilai untuk

kapasitor diambil 10 uF dan nilai untuk resistor

diambil 4,7 KQ. Pengambilan nilai resistor dan

kapasitor tersebut masih dibenarkan karena dengan

kedua nilai tersebut didapatkan lebar pulsa reset

sebesar 47.00 ms dan nilai ini lebih besar dari

lebar pulsa reset minimum.

3.2 Dekoder Dan Sinyal KontrolUntuk menghubungkan mikrokontroler 80C31 dengan

piranti-piranti pendukung yang lain, seperti

piranti memori, piranti input atau output dan

sebagainya, maka dibutuhkan suatu rangkaian

dekoder dan sinyal kontrol. Berikut ini akan

dijelaskan rangkaian dekoder dan sinyal kontrol.

Page 9: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

3.2.1 Rangkaian Dekoder. Mikrokontroler 80C31

mempunyai dua buah peta alamat memori, yaitu peta

alemat memori program dan peta alamat memori

data. Kedua peta alamat memori tersebut diakses

secara terpisah oleh program pengontrol. Pemben-

tukan peta alamat memori program tidak memakai

dekoder, karena peta alamat memori program hanya

ditempati satu buah EPROM dengan kapasitas 8

KByte. EPROM 2784 ditempatkan pada alamat 0000H -

IFFFH.

FFFFH

6000H5FFFH

4000H3FFFH

2000HIFFFH

0000H

K 0 S 0 N G

R T C

8 2 5 5

2 7 6 4 &

8 2 8 4

GAMBAR 3-4

PETA ALAMAT MEMORI

Dekoder digunakan untuk memberi peta alamat memo­

ri data. Dekoder yang digunakan satu buah yaitu

Page 10: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

IC 74LS138. Untuk memberikan interval 8 KByte

pada masing-masing outputnya, ketiga input alamat

A, B dan C dari IC dekoder 74LS138 masing-masing

dihubungkan dengan dan Aj g dari mikro-

kontroler 80C31. Agar IC dekoder selalu berada da-

lam keadaan aktif maka input 'enable' dihu­

bungkan dengan Vcc, sedangkan kedua input

'enable' yang lain yaitu 6 2 ^ dan G 2 B dihubungkan

dengan 'ground'. Output dari dekoder (Y0 - Y2 )

dihubungkan dengan masing-masing pin CS dari

piranti.

TABEL 3-1 TABEL KEBENARAN DEKODER

A15 A14 A1374LS138

DeviceY7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

0 0 0 1 1 1 1 1 1 1 0 6264

0 0 1 1 1 1 1 1 1 0 1 82C55

0 1 0 1 1 1 1 1 0 1 1 RTC

0 1 1 1 1 1 1 0 1 1 1

1 0 0 1 1 1 0 1 1 1 1

1 0 1 1 1 0 1 1 1 1 1 KOSONG

1 1 0 1 0 1 1 1 1 1 1

1 1 1 0 1 1 1 1 1 1 1

Dari hubungan ini , output Yq akan menempatkan

RAM 6264 pada alamat 0000H - IFFFH dan menem-

Page 11: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

patkan PPI 82C55 pada alamat 2000H - 3FFFH, output

Y 2 menempatkan RTC MC 146818 pada alamat 4000H

5FFFH.

3.2.2 Sinyal Kontrol. Sinyal kontrol berfungsi

untuk mengaktifkan buffer data dari piranti-

piranti dan mengatur arah perpindahan data.

Sinyal WR dari mikrokontroler dihubungkan dengan

semua pin WR pada RAM 6264, PPI 82C55, RTC MC

146818, sedang pin RD dari mikrokontroler dihu­

bungkan dengan pin OE pada RAM 6264, pin RD pada

PPI 82C55, dan pin DS pada RTC. Untuk sinyal

PSEN dari mikrokontroler hanya dihubungkan pada

pin OE dari EPROM 27C64.

3.3 Hubungan Mikrokontroler 80C31 Dengan EPROM 27C64Dalam mode pengalamatan eksternal, port 0 dipakai

sebagai jalur alamat bagian bawah (A0 -A7 ) dan

data bus seoara bergantian, sinyal ALE dipakai

untuk menandai saat port 0 berfungsi sebagai

jalur alamat. Output dari port 0 ini mempunyai

struktur 'open drain' sehingga perlu diberi

resistor 'pull-up' agar dapat bekerja dengan

baik. Nilai dari resistor 'pull-up' tersebut

diambil 10K, nilai ini merupakan nilai standard

yang sering dipakai untuk resistor 'pull-up'.

Untuk memisahkan kedua informasi yang ada pada

Page 12: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

port 0 digunakan sebuah IC 'octal latch' dengan

tipe 74LS373. Dengan mendapatkan sinyal sinkro-

nisasi ALE dari mikrokontroler, maka output dari

IC latch 74LS373 akan berisi alamat bagian bawah

yang dikeluarkan dengan 'low byte' dari address

bus yang bersesuaian dengan EPROM 2764.

Informasi 'high byte' address bus (Ag-A^g) dise-

diakan oleh mikrokontroler melalui port 2 , seba-

gian dari address bus tersebut (Ag-Aj^2 ) dihubung-

kan dengan address bus 2764 yang bersesuaian,

sedangkan sisanya dihubungkan dengan input dari

IC dekoder 74LS136.

Sebagaimana telah dijelaskan di atas bahwa port 0

merupakan 'low byte' address bus yang di­

multiplex dengan data bus sehingga dengan demiki-

an port 0 dapat langsung dihubungkan dengan data

bus dari 27C64.

Pin CE dari 27C64 dihubungkan dengan ground,

sedangkan pin Vpp dan PGM dihubungkan ke Vcc

dengan resistor 'pull-up' sebesar 10 KQ.

Page 13: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

IBP1.0 Pl.l PI.2 PI.3 PI.4 PI.8 PI.6 PI.7

fcZHai*P2.2

P2.S ^ P2.6 P2.7

00 00DiDS 02D3 0304 04DE 06D6 06tn 07OCG

27C64

sacsi

GAMBAR 3-5HUBUNGAN MIKROKONTROLER 80C31 DEHGAN EPROM 27C64

3.4 Hubujifian Mikrokontroler 80C31.J)eD^an RAM 6264Untuk proses dan simpan data digunakan RAM 6264

yang mempunyai kapasitas 8 KByte. Hubungan antara

mikrokontroler 80C31 dengan RAM 6264 dilakukan

dengan menghubungkan port 0 ke latch 74LS373.

Eleperti pada EPROM, output dari latch merupakan

alamat bawah mikrokontroler Ag-A^. Informasi

'high byte' address bus (Ag-Aj^g) disediakan oleh

mikrokontroler melalui port 2 , sebagian dari

address bus tersebut (Ag-A-1 2 ) dihubungkan dengan

address bus 6264 yang berse-suaian, sedangkan

data bus RAM 6264 D0 -Dy langsung dihubungkan pada

port 0 mikrokontroler 80C31.

Page 14: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

O0 Q0Di Qi02 0203 0304 0406 0606 0607 07OCQ

GAMBAR 3-6HUBUNGAN MIRROKONTROLER 80C31 DENGAN RAM 6264

Input CSl dihubungkan dengan output Yq dari

dekoder 74LS138. Input CS2 dihubungkan ke Vcc

melalui resistor 'pull-up' sebesar 10 KQ. Untuk

input WE dan OE, masing-masing dihubungkan dengan

pin WR dan RD dari mikrokontroler 80C31. Tegan-

gan supply untuk RAM dilengkapi dengan baterai

back-up sebesar 3,6 Volt, untuk menjamin kebera-

daan data didalam RAM bila power dimatikan.

3.5 Hubungan Mikrokontroler 80C31 Dengan PPI 82C55Dalam hubungan PPI 82C55 dengan mikrokontroler

80C31, maka PPI 82C55 diperlakukan sama dengan

piranti memori (memori map I/O). Dengan demikian

PPI 82C55 dapat dianggap sebagai memori baca tulis

Page 15: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

yang raempunyai 4 buah lokasi, sehingga address

bus yang dihubungkan dengan PPI 82C55 adalah Ag

dan Pin input WR dan RD dari PPI 82C55 lang-

sung dihubungkan dengan pin WR dan RD dari mikro-

kontroler. Untuk sinyal CS dari PPI 82C55 dihu­

bungkan dengan output dari dekoder 74LS138.

Jalur data bus D0 -Dy dari PPI 82C55 dihubungkan

dengan port 0 pada mikrokontroler 80C31.

Pin reset 82C55 dihubungkan secara langsung dengan

ground. Hal ini disebabkan struktur internal dari

pin reset tidak mempunyai schmitt trigger seperti

yang dimiliki oleh mikrokontroler, karena itu

tidak mungkin menghubungkan pin reset ini dengan

rangkaian reset dari mikrokontroler yang berupa

rangkaian RG. Salah satu cara pemecahannya adalah

dengan menambahkan sebuah schmitt trigger antara

rangkaian reset mikrokontroler dengan pin reset

dari PPI 82C55, tetapi cara ini jarang dipakai

karena PPI 82C55 mempunyai kemampuan untuk melaku-

kan proses reset yang dikontrol dengan software,

asalkan pin reset dari PPI 82C55 dihubungkan

dengan ground.

Page 16: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

De oe01 Q1DS OS03 03D405 0506 QC07 07OCG

GAMBAR 3-7HUBUNGAH MIKROKOHTROLER 80C31 DENGAN PPI 82C55

3.6 Hubungan Mikrokontroler 80C31 Dengan MC 146818Real Time Clock yang dipakai tipe MC 146818 yang

mempunyai 8 jalur data/alamat (AD0 - ADy), yang

dapat langsung dihubungkan dengan port 0 dari

mikrokontroler 80C31. RTC pada tugas akhir ini

digunakan untuk jam, menit, tanggal, bulan dan

tahun.

Pin input DS (Data Strobe), R/W (Read/Write) dan

AS (Address Strobe) dari RTC masing-masing dihu­

bungkan dengan pin RD, WR, dan ALE/P dari mikro­

kontroler 80C31. Sedangkan pin CE (Chip Enable)

dihubungkan dengan output Y 2 dari dekoder

74LS138.

Page 17: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

U7RST y P3

1g NC

06 ocetHAA ODlAS ADS«03CKF8 ftMNC AOSce A06

007oeciIRQ

1 CKOUToecs iS 8«M■¥ MC

GAMBAR 3-8HUBUN6AN HIKROKONTROLER 80C31 DKNGAN MC 146818

Untuk RESET tidak mempengaruhi jam,kalender atau

fungsi RAM.pada saat bekerja. Pada waktu aktif,

pin ini harus aktif Low, pin ini tidak dihubung-

kan dengan RESET mikrokontroler 80C31.

Rangkaian untuk baterai back-up melalui pin PS

(Power Sense), jika ada tegangan drop maka seoara

otomatis baterai akan bekerja.

Untuk rangkaian oscillator digunakan kristal

dengan frekuensi 32.768 KHz yang dihubungkan

dengan pin OSCl DAN 0SC2. Harga dari R dan C

berdasarkan data book.

Page 18: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

GAMBAR 3-020)RANGRAIAN POWER SENSE DAN RESET

3.7 Display Dan KeyboardRangkaian display yang direncanakan disini mema-

kai 4 buah seven segment. Display tersebut digu-

nakan untuk mengeset atau menampilkan jam, menit,

tanggal, bulan, dan tahun, serta lamanya suatu

channel aktif ( timer ). Sedangkan keyboard

dipergunakan untuk setting jam, menit, tanggal,

bulan, tahun, setting timer, dan untuk memasukkan

kode sandi ( password ).

Seven segment yang dipergunakan adalah common

anoda, yang berarti seven segment akan menyala

Hotorola Microprocessor, MicrocQntrcller And Pheripheral Data, Motorola Seffliconductor Inc. p 3-1663.

Page 19: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

bila anodanya mendapat tegangan level tinggi

sedangkan katodanya mendapat tegangan level

rendah.

GAMBAR 3-10 RAHGKAIAN DISPLAY

Untuk display digunakan empat buah seven segment,

dalam gambar 3-10 diambil hanya dua buah seven

segment.

Dalam mendrive seven segment ini digunakan IC

74LS47 yaitu decoder/driver BCD ke seven segment

common anoda, dimana input dari IC ini ada 4 bit

dihubungkan dengan port A dan port B PPI 82C55

sedangkan outputnya ada 7 bit melalui resistor

330 Q dihubungkan langsung ke kaki seven segment

yang bersesuaian. PA0 -PA3 digunakan untuk mengon-

Page 20: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

trol seven segment pertama, PA^-PAy digunakan

untuk mengontrol seven segment yang kedua, PB0 -

PBg digunakan untuk mengontrol seven segment

ketiga, sedangkan PB^-PBy digunakan untuk mengon­

trol seven segment keempat.

Besarnya resistor untuk membatasi arus yang lewat

LED didapat dari perhitungan sebagai berikut :

Vql 74LS47 = 0,25 V, Vled = V, Iql = 12 mA.

R = ( Vcc - VLED - Vq l ) / Iql

R = ( 5 - l , 8 - 0 , 2 5 ) / 1 2 m A

R = 245,8 Q

Dalam hal ini untuk membatasi supaya 7 Segment

jangan menyala terlalu terang dipilih R = 330 Q.

Rangkaian keyboard yang direncanakan terdiri dari

16 switch push button. Adapun untuk mendeteksi

penekanan keyboard dilakukan dengan oara scan

keyboard. Dalam hal ini digunakan port C PPI

82C55. Port C lower ( PCg - PC3 ) di - pull-up

dengan resistor 10 Kohm. Port C lower ini diguna­

kan sebagai input port untuk membaca data, baik

ada keyboard yang ditekan maupun tidak. Port C

upper ( PC4 - PCy ) digunakan sebagai output port

untuk menjalankan scan tiap bit. Rangkaian

keyboard dapat dilihat pada gambar 3-11.

Page 21: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

GAMBAR 3-11 RANGKAIAN KEYBOARD

3.8 Bangkaiaa Relay.Pada rangkaian output kontak 10 channel maka

diperlukan relay sebanyak 1 0 buah, dimana tiap

relay mewakili 1 channel output kontak. Untuk

mengendalikan 1 0 buah relay tersebut digunakan

Port 1, pin TXD dan RXD dari mikrokontroler 80C31

( port 1.0^ port 1.7 ). Pin TXD dan RXD dari

mikrokontroler 80C31 karena tidak digunakan

sebagai serial port ( transmit dan receive ) maka

dapat digunakan sebagai input atau output port.

Karena keistimewaan dari 80C31 ini sehingga input

output port tersebut dapat diakses tiap bit port.

Output port 80C31 dihubungkan dengan basis tran-

Page 22: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

sistor NPN raelalui resistor 4K7, dimana resistor

ini digunakan sebagai pembatas arus yang masuk ke

basis transistor. Bila output port tegangan

logika '1 ' ( high ) maka ada arus yang melalui

basis transistor NPN sehingga transistor aktif.

Karena transistor aktif maka ada supply tegangan

6 V dc pada relay, sehingga relay tersebut aktif.

Device yang dihubungkan dengan output channel

dari relay tersebut mendapat tegangan ac.

Arus bias transistor Ig = Iq i dari mikrokontroler

80C31, dimana Iqh = 400 uA dan = 2,4 V,

sehingga besarnya resistor basis dapat ditentukan

dengan perhitungan sebagai berikut :

^OH ~ ^BE(sat)

^OH2,4 - 0,7

R = ----------- .— Ohm0,0004

R = 4250 Ohm

Dalam rangkaian dipilih resistor basis sebesar

4700 Ohm ( 4K7 ) karena dalam perhitungan diatas

digunakan nilai

Gambar rangkaian relay terlihat pada gambar 3-12.

Page 23: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

KJLf=><Ssv/

f=?jL J f=?e :i_ ^ y eF=Q-r ■X;>P ___ ---------- <axTm rvJF=Tvl■ K~P‘

c a tv iP _______________

«-g»KJLO«=>Q:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ o

. J REI^K-3^ IQtSIP

GAMBAR 3-12

RANGKAIAN RELAY

3.9 Rangkaian SensorPada rangkaian sensor yang dibahas akan dibedakan

menjadi 2 yaitu : rangkaiswi transmitter data dan

rangkaian penerima data ( receiver data ).

3.9.1 Rangkaian Transmitter Data. Rangkaian

ini terdiri dari 2 buah infra merah yang

diparalel, transistor npn dan resistor untuk

membatasi arus yang mengalir pada basis

transistor serta resistor yang digunakan untuk

membatasi arus yang lewat pada infra merah.

Rangkaian ini diperlihatkan pada gambar 3-13 di

bawah ini.

Page 24: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

I M X O

GAMBAR 3-13 RAN6RAIAM TRANSMITTER DATA

Arus yang mengalir melalui infra merah = '0' jika

INT0 = '0', sehingga infra merah tidak menyala.

Jika INT0 = '1' maka :

^CC " ^CE(sat) " ^LED IMRt

)imana II - 2 .

Nilai RL dapat diperoleh :

^CC ■ ^CE(sat) ~ ^LED IM2.1 LED IM

Diperoleh dari pengukuran :

^LED IM

^LED IM -

Page 25: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

^CE(sat) - 0-2 V5 - 0,2 - 1,8

2 . 0,01

= 150 Ohm

^LED IM Max = V

^LED IM Max =

5 - 0,2 - 2

2 . 0,015

Rj = 93,3 Ohm

Kesimpulan : 93 Ohm < Rj < 150 Ohm

Dipilih Rl = 100 Ohm

Resistor basis membias transistor untuk menjadi

aktif atau out off. Nilai Rg diperoleh dari

persamaan sebagai berikut :

INT0 = ^B(sat) * + ^BE(sat)

Rb - ^IH INT0 ~ ’BE(sat)

^B(sat)

Arus iB(sat) ~ ^OH dari mikrokontroler 80C31 sehingga :

Rb - INT0 " ’'^BE(sat)

^GH

Dari data book :

Page 26: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

Iq H = 400 uA

^BE(sat) = 0>65 V

3 - 0,65

0,0004

Rg = 5875 Ohm

ViH Min = 2,5 V

^OH Max =

VBE(sat) = V

Rg -2,5 - 0,7

0,00045

Rg = 4000 Ohm

Kesimpulan : 4000 Ohm < Rg < 5875 Ohm

Dipilih Rg = 4700 Ohm

Jenis transistor Q1 : 2SC1815

3.9.2 Rangkaian Receiver Data. Rangkaian

receiver data terdiri dari 3 bagian yaitu :

rangkaian driver receiver dan filter, rangkaian

penguat 2 tingkat serta rangkaian komparator atau

pembanding.

Rangkaian driver receiver terlihat pada gambar

3-14 di bawah ini.

Page 27: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

GAMBAR 3-14 RANGKAIAN DRIVER RECEIVER DAN FILTER

Vl = Vcc - Ic -R3

Vl = Vcc - B-Ib -R3

Arus bias Q 2 ( Ig2 ^^CC “ '' BE(act) " ^CE PT

R82

Arus basis Ig2 = ^PT’ sehingga nilai RB2 dapat

dihitung sebagai berikut :

R ^CC ■ ^BE(act) " ^CE PTB2 -

•PT

Kondisi maksimum :

-PT = 0,1 mA

VcE PT = 0.4 VVBE

Page 28: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

^B25 - 0,6 - 0,4

0 , 0 0 0 1

Rb2 = 40 KOhm

Kondisi minimum :

IpT 2 uA

^CE PT - 1 V

Vbe = 0:,6 V

,//

5 - 0 , 6 - 1

0,000002

Rb2 - 1 > *? MOhm

Kesimpulan ; 40 KOhm < Rg2 < MOhm

Dipilih Rg2 = 1 MOhm

jwC2

1

jwC2+ (R5 +R3 )

Vccj WC2 • ( Rg' 'Rg ) + 1

Magnitude dari persaman tersebut adalah

iv.i ^ V'(1+(wC(R5 +R3 ))2 )

V2 I = A-lVccl

;tT;

//

Page 29: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

Dimaiia : A =V(1 +(wC(R5 +R3 ))^)

Beda phase antara V2 dan Vqq dapat dinyatakan

sebagai berikut :

wC2<R5+R2)0 = arc tan -----------

1

Frekuensi half power terjadi pada saat :

1A = --- atau 0 = 45°

V2Dari kedua syarat diperoleh ;

wC2.(R5+R3) = 1

2 Ttf . C2 • ( R5 +R3 ) — 1

1f = ----------------

2ti . C 2 • ( )

Half power frekuensi : fj =1

fL = 200 Hz

Diambil batasan 200 Hz mengingat bahwa photo

transistor maksimum bekerja dengan baik sampai

dengan interval 2000 Hz ( 2 KHz) untuk faktor

keamanan diambil nilai 1 / 1 0 dari fmax, hal ini

didukung dari hasil eksperimen frekuensi terbaik

untuk transmiter - receiver menggunakan photo

transistor ( dengan tipe yang ada dipasaran )

supaya jarak yang dicapai bisa optimal.

Page 30: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

( Rg + R5 )

Dipilih C2

( R 3 + R 5 )

Dipilih Rg

C 2 = 1 / ( f L )

1 uF

5 KOhm

1 KOhm , R5 = 4 KOhm

Output ( keluaran ) tegangan yang dihasilkan oleh

rangkaian driver receiver dS.n filter dikuatkan

oleh rangkaian penguat dua tingkat. Adapun gambar

dari rangkaian penguat dua tingkat dapat dilihat

pada gambar 3-15.

GAMBAR 3-15 ElANGKAIAN PENGUAT DUA TINGKAT

Karakteristik transfer dapat dinyatakan menurut

persamaan sebagai berikut :

Rc

R .

R .

Page 31: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

Tingkat 1 : Gain = 5

R0 = 5 .R4

Syarat : 1 KOhm < R4 < 100 KOhm

Dipilih R4 = 10 KOhm

Rg = 50 KOhm, dipilih Rg = 56 KOhm

Tingkat 2 : Gain = 1 0

^8R?

Rg = 1 0 R7

Dipilih Ry = 1 KOhm

Rg = 10 KOhm

Dari karakteristik tersebut nampak bahwa dengan

penguatan dua tingkat tidak akan mengubah fase

sinyal input. Kapasitor Cg berfungsi meredam

sinyal dc, sehingga sinyal dc tersebut tidak akan

dikuatkan.

Rangkaian komparator dipakai secara efektif

apabila sinyal yang dihasilkan oleh amplifier

masih kecil. Untuk membuat rangkaian kebal

terhadap noise yang masuk, maka pada rangkaian

tersebut perlu ditentukan suatu level tegangan

pembanding yang optimum. Rangkaian komparator

atau pembanding dapat dilihat pada gambar 3-16 di

bawah ini.

Page 32: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

6AMBAR 3-16 RAN6KAIAM ROHPARATOR

Karakteristik transfer dapat dinyatakan menurut

persamaan - persamaan sebagai berikut :

' U T 1 +n

. Vref +Vsat

n

1 +n

. Vref +Vsat

n

Rdimana : n = 10

R9

POTl;

POTl^ + POTlg

POT 1a. VCC

POTl

. VCC

Page 33: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

Keterangan : POTl^ dan POTlg adalah bagian dari

potensiometer 1 .

2 .Vsat

n

Hysterisis ( ) menentukan kekebalan rangkaian

terhadap noise. Semakin besar hysterisis, maka

semakin kebal pula rangkaian terhadap noise.

Tegangan center dari rangkaian komparator :

'CT 1 +n

. Vref

Dari persamaan tersebut nampak bahwa variabel 'n'

sangat dominan menentukan kekebalan rangkaian

terhadap noise yang mungkin timbul.

Ditentukan : Vsat = 4,5 V

H = 3 V

2 . 4,5

1 KOhm < Rg < 100 ROhm

Dipilih Rg = 47 KOhra

Rl0 = 3 . R^ 0

Page 34: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

R^ 0 — 3 47 KOhm

= 141 KOhm

Dipilih R10 yang ada dipasaran = 150 KOhm.

POTl dari range 10 KOhm sampai dengan 100 KOhm,

dipilih POTl = 10 KOhm.

4. PERBNCANAAN PERANGKAT LUNAK

Untuk mengendalikan perangkat keras maka diperlukan

perangkat lunak, dalam hal ini perangkat lunak dibuat

dalam bahasa assembly 80C31.

4.1 Perangknt. T.nnnk Mininim Sist.em 80C31

Program yang bekerja pada minimum sistem dengan

mikrokontroler 80C31 secara garis besar dapat

dibagi menjadi beberapa bagian, yaitu ;

- Program scanning keyboard

Program ini untuk mendeteksi penekanan serta

letak keyboard yang mehgalami penekanan.

- Program autorisasi

Program ini untuk mencocokan password yang

dientry dengan password yang sudah tersimpan.

- Program penggantian password

Program ini untuk mengganti password lama

dengan password yang terakhir dimasukkan.

- Program pengesetan device dan timer

Program ini untuk menentukan device yang perlu

Page 35: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

diaktifkan, serta mengaktifkan waktu on dan

waktu off dari device yang diaktifkan.

Program deteksi device

Program ini digunakan untuk mengetahui device

yang aktif dan device yang tidak aktif.

Program pengesetan jam dan tanggal

Program ini digunakan untuk setting jam dan

tanggal dari sistem.

Page 36: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

START

INISIALISASI8255,PfiSSH0RD

- ► 4 -

PERIKSASTATUS

INTERRUPT

ADA \ V INTERRUPT

SCAN 1rOKBOL

PERISTA1TOKf

[KSArus50L

Page 37: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian
Page 38: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

GAMBAR 3-19FLOWCHART SUB ROUTINE SCAN TOMBOL

Page 39: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

GAMBAR 3-20FLOWCHART SUB ROUTINE SETTING DEVICE

Page 40: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

EKTRV 1 DATA 1

CHISTftl

FA<

:cKrus5E

Page 41: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

JAH_0N=JftM_0N+1

(

BACA DATA JAH OH OARI

LO K A ?I HEMORV UNTUK NO LAHPU

VAH6 SESUAI

S in P A H DATA JAK ON KE

, LOKAST HEMORV fUNTUK HO LAHPU

VAN6 SESUAI

RET

Page 42: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian
Page 43: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian
Page 44: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian
Page 45: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

o-«sr)<’(n4«N<i^<ia<t4Z<ia oxoooiaoom o o o u u u o u a.Q.C.CLCLO.ft.ft. 0. CLO.fi. 0.0.0.0. 0.0.4. *.0.0. 0.0.

3 o o o o o o o o

l i i

O O O O O O O O O-«M«TU>v0t-®C*

0 -«c4nvu><«f>. o-*Mn<(n<«N fcatezta-oo............... falZLiVXKo o o o o o o o t rJ<s(s<y<v<v<y «\u*.a:fl.aa.o.a.aQ.0. o. a o. a. 0.0.0. a o._i

§O ■H o< M V «»** r -

1/1 ^or-

>

c

rt

0 ♦- 0 ««

U £

H Ja ;c c

i l s3 Z .

hw ^0

• •i! ® :\H . Q

q r "

«< •4 UOM MXWI0 0 v z w « \ o Mvt M )C C K0 0 V

Xrtrt >00

3x o «9 ^ tt: o o o o o o o o(AU v< za.

OO-H

m i MllUMmm HI'•

HHi'-V(A

Qg>ou <t* (Sh— I -« H_J<N

T ” ^8

M<— Ili‘

«IU\-O O-

B. JC. ^ | | .

-MHi"

uJCD5 2|T - «S ^■l-_ IU|,

a.

XnHcnHwCO »'5’ ICO06<oaC5

ssHXM<

tuBE<ICH

Page 46: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

M s

NICOai<3QQI

Page 47: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

00 N1CQOS<CQ1CD

to 6IN (U

+ JCD

<u •HT3 COnJ<U

a : .9a XIg

Page 48: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

. a_

0}NICOas<CO

o

oi

0rH1

6

oE - i o «

Page 49: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

4.2 Listing Program Mininuit Sistem 80C3]

PORT A EQU 2000HPORT_B EQU 2001HPORT_C EQU 2002HCONTROL EQU 2003HDETIK EQU 4000HMENIT EQU 4002HJAM EQU 4004HREG A EQU 400AHREG_B EQU 400BHPOWER_CODE EQU 400EH

.DATAORG 0H

STATUSJLAMPl DB 0HORG 40H

LAMP12 DB 0HLAMP34 DB 0HPASSWORD1 DB 0HPASSW0RD2 DB • 0HDATAl DB 0HDATA2 DB 0HDATA3 DB 0HDATA4 DB 0HSTATUS_JASE DB 0HSTATUSJSNTER DB 0HSTATUS_J)0MAIN DB 0HC0UNTER_PASS DB 0HSTATUS^PASS DB 0HINPUT_DATA DB 0HALAMATl DB 0HC0UNTER_CHECK DB 0H

ORG 100HTIME_0N: DB 0H

ORG 200HCURRENT_PASS1 DB 0HCURRENT_PASS2 DB 0H

.CODEORG 0HLJMP MULAI

ORG 0BHLJMP INT_T0

Page 50: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

P R O G R A M S U B R O U T I N E

INITIAL_PPI:

DELAYl:DE2:DEI:

INITIAL_RTC:

DELAY:

Dl:

SCAN KEY:

MOV DPTR,<^CONTR(MOV A,#81HMOVX @DPTR,ARET

MOV R1,#0FFHMOV R0,<t0FFHDEC R0CJNE R0,«0H,DE1DEC R1CJNE R1,#0H,DE2RET

MOV DPTR,i^REG_BMOV A,#8 EHMOVX @DPTR,AMOV DPTR,#REG_J^MOV A,#2FHMOVX @DPTR,AMOV A,#0CHMOV DPTR,*fJAMMOVX @DPTR,AMOV A,4t0HMOV DPTR,#MENITMOVX @DPTR,AMOV A,<*0HMOV DPTR,i*DETIKMOVX @DPTR,AMOV A,#0AAHMOV DPTR,#POWER.MOVX @DPTR,AMOV DPTR,#REG_BMOV k , m E HMOVX @DPTR,ARET

PUSH PSWMOV R1,#0FFHDEC R1CJNE R1,W0H,D1POP PSWRET

PUSH PSWPUSH APUSH DPLPUSH DPHMOV A,#0E0H

Page 51: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

PUSH_OFF:

WAIT_OFF:

DETEKSI_C0L1:

END_DET_C0L1;FINISHl:

CHECK SLl;

MOV DPTR,#PORT_CMOVX @DPTR,AACALL DELAYACALL DETEKSI_C0L1MOV A,tt0D0HMOV DPTR,<tPORT_CMOVX @DPTR,AACALL DELAYACALL DETEKSI_C0L2MOV k , m m wMOV DPTR,#PORT_CMOVX @DPTR,AACALL DELAYACALL DETEKSI C0L3MOV A,<t70HMOV DPTR,^tPORT_CMOVX @DPTR,AACALL DELAYACALL DETEKSI_C0L4MOV A,#0F0HMOV DPTR,*tPORT_CMOVX @DPTR,APOP DPHPOP DPLPOP APOPRET

PSW

PUSH PSWPUSH AMOV DPTR,#PORT CMOVX A,@DPTRANL A,«0FHCJNE A,i»0FH,WAITJPOP APOPRET

PSW

PUSH PSWPUSH AMOVX A,@DPTRANL A,«0FHCJNE A,#0EH,CHECK.MOV INPUT_DATA,«IACALL ENTRY_J)ATAACALL PUSH_OFFPOP APOPRET

, PSW

CJNE A,«0DH.CHECKMOV INPUT_DATA,#ACALL ENTRY DATASJMP END DET COLl

Page 52: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHECK_SL2: CJNE A,#0BH,CHECK_SL3MOV INPUT DATA,#8 HACALL ENTRY_DATASJMP ENDJDET COLl

CHECK_SL3; CJNE A,#7H,FINISH1MOV A,STATUS_FASECJNE A,#4H,END DET COLlMOV STATUS_ENTER,#0HMOV STATUSJFASE,#2HMOV DPTR,<IREG_BMOV A,4I8EHMOVX @DPTR,AACALL ENTRY_DATASJMP ENDJ)ET_C0L1

DETEKSI_C0L2: PUSH PSWPUSH AMOVX A,@DPTRANL A,<t0FHCJNE A,#0EH,CHECK_SL12MOV INPUT_DATA,1J1HACALL ENTRYJATA

END_DET_C0L2; ACALL PUSH_OFFFINISH2: POP A

POPRET

PSW

CHECK_SL12: CJNE A,#0DH,CHECK_SL22MOV INPUT_DATA,«5HACALL ENTRY_DATASJMP END_DET_C0L2

CHECK_SL22: CJNE A,#0BH,CHECK_SL32MOV INPUT_DATA,#9HACALL ENTRY_DATASJMP ENDJ)ET_C0L2

CHECK_SL32; CJNE A,tt7H,FINISH2MOV A,STATUS_JASECJNE A,#4H,END_DET_C0L1MOV STATUSJENTER,#0HMOV STATUS_FASE,#5H STATUSMOV DATA3,#0HACALL GET_STATUS_LMPSJMP END_DET_C0L2

DETEKSI_C0L3: PUSH PSWPUSH AMOVX A,@DPTRANL A,#0FHCJNE A,#0EH,CHECK_SL13MOV INPUT_DATA,«2HACALL ENTRYJ3ATA

END_DET_C0L3: ACALL PUSH_0FFFINISH3: POP A

POPRET

PSW

Page 53: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHECK_SL23:

CHECK SL33:

DETEKSI_C0L4:

END_DET_C0L4: FINISH4:

CHECKSL14:

CHECK_SL24:

CJNE A,<t0DH,CHECK SL23MOV INPUT_DATA,#6 HACALL ENTRY_DATASJMP END_DET_C0L3CJNE A,tt0BH,CHECK SL33MOV A,STATUSJFASECJNE A,#4H,ENDJDET_C0L3MOV STATUS_ENTER,#0HMOV STATUS FASE,*flHMOV DATA1,#0HMOV DATA2,1^0HMOV DATA3,1*0HMOV DATA4, t0HACALL DISPLAY DATASJMP ENDJ)ET_C0L3CJNE A,*»7H,FINISH3MOV A,STATUSJB’ASECJNE A,#4H,END_DET COLSMOV STATUSJENTER,#0HMOV STATUS_JFASE,#7HMOV DATA1,<J0HMOV DATA2,#0FHMOV DATA3,#0FHMOV DATA4,#0FHACALL DISPLAY_DATASJMP END DET C0L3PUSH PSWPUSH AMOVX A,@DPTRANL A,4t0FHCJNE A,4*0EH,CHECK_SL14MOV INPUT_DATA,#3HACALL ENTRY_DATAACALL PUSH_OFFPOP APOP PSWRETCJNE A,#0DH,CHECK_SL24MOV INPUT _DATA,*t7HACALL ENTRY_DATASJMP END_DET_C0L4CJNE A,lt0BH,CHECK SL34MOV A,STATUS_FASECJNE A,#4H,END_DET_C0L4MOV STATUS_ENTER,#0HMOV STATUS_JASE,«0HMOV DATA1,#0HMOV DATA2,4I0HMOV DATA3,#0HMOV DATA4,#0HSJMP END_DET C0L4CJNE , A,#7H,FINISH4MOV A,STATUS_FASE

Page 54: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

SET_ENTER:

ENTRY_DATA:

FILL_PASSWORD:

FILL_PASS:

END_ENTRY_DATA:

CHECKUP ASEl;

SHIFT.J’ASS:

CHECKJENTER:

CJNE a ,#0H,s e t j :n te rMOV STATUS_ENTER,#0HSJMP END DET C0L4MOV STATUS_ENTER,#1HACALL ENTRY_DATASJMP END_DET_C0L4

PUSH PSWPUSH AMOV A,STATUS EASECJNE A,#0H,CHECK_FASE1MOV A,COUNTER PASSCJNE A,#0H,FILL PASSWORDMOV DATA1,#0HMOV DATA2,*t0HMOV DATA3,«0HMOV DATA4,#0HMOV STATUS_PASS,#1HMOV A,INPUT_DATACJNE A,it0FH,FILL_PASSAJMP e n d j e n t r y_dataMOV DATA4,DATA3MOV DATA3,DATA2MOV DATA2 ,DATA1MOV DATA1,INPUT_PATAMOV INPUT J)ATA,#0FHINC c o u n t e r_passMOV a ,c o u n t e r_passCJNE A ,#4H,END JENTRY_DATAACALL a ut o r i s a s iMOV COUNTER_PASS,^J0HPOP APOP PSWRETCJNE A, »1H, CHECKS ASE2MOV A,INPUT_X)ATACJNE A,1*0FH,SHIFT_PASSSJMP CHECK_£NTERMOV DATA4,DATA3MOV DATA3,DATA2MOV DATA2,DATA1MOV DATA1,INPUT_DATAMOV INPUT_DATA,«0FHACALL DISPLAYJDATAMOV A,STATUS_ENTERCJNE A,itlH,END_ENTRY DATAMOV A,DATA4SWAP , AADD A,DATA3MOV DPTR, 1tCURRENT_P ASS 1MOVX @DPTR,AMOV A,DATA2SWAP A

Page 55: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

ADD A,DATA1MOV DPTR,tfCURRENT_PASS2MOVX @DPTR,AMOV STATUS_pASE,<t4HMOV STATUS_ENTER,lt0HACALL BLANK_DISPSJMP END_ENTRYJ3ATA

CHECK_FASE2: CJNE A.^tZE.CHECKJASESMOV A,STATUS_ENTERCJNE A,#lH,CHECK_jCEY0MOV STATUS_pASE,#3HMOV s t a t u s_j :n t e r ,#0HAJMP ENDJENTRY _DATA

CHECK_KEY0: MOV A,INPUT_DATACJNE A,#0H,END CHECK F2MOV INPUT_DATA,tt0FHMOV DPTR,#JAMMOVX A,@DPTRCJNE A,#23,INC_JAMMOV A,<t0 HSJMP SAVE_JAM

INC_JAM: INC ASAVE_JAM: MOVX @DPTR,AEND_CHECK ; AJMP END^ENTRYJDATACHECKJFASE3: CJNE A,#3H,CHECKJFASE5

MOV A,STATUS_ENTERCJNE A,itlH,CHECKJCEY0MMOV STATUSJFASE,#4HMOV STATUS_ENTER,#0HMOV DPTR,#REG_BMOV A,#0EHMOVX @DPTR,AAJMP END_ENTRYJ)ATA

CHECK_KEY0M: MOV A,INPUTJDATACJNE A,<t0H,END_CHECK_F2MOV INPUT JDATA,<t0FHMOV DPTR,#MENITMOVX A,@DPTRCJNE A,1^59,INC MENITMOV A,#0HSJMP SAVE_MENIT

INCJMENIT: INC ASAVE_MENIT: MOVX @DPTR,AEND_CHECK F3: AJMP END_ENTRY_J)ATACHECK_FASE5: CJNE A,1*5H,CHECK_FASE6

MOV A,INPUTJDATACJNE A,4*0FH,ISI_DATA3SJMP . CHECK ENTERS

ISI_DATA3: MOV DATA3,INPUT_DATAMOV INPUT J)ATA,«0FHACALL GET_STATUS_JLMP

CHECK_ENTER5; MOV A,STATUS_ENTERCJNE A,4tlH,END_CHECK_F5

Page 56: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

MOV STATUS_FASE,«6 HMOV STATUS_ENTER,^^0H

END_CHECK F5; AJMP END ENTRY DATACHECK_FASE6 : CJNE A,#6H,CHECK_FASE7

MOV A,INPUT DATACLR CSUBB A,#2HJNC check_^:nter6

ISIJ)ATA1; MOV DATA1,INPUT_DATAMOV INPUT_DATA,1*0FHMOV DPH,lt0HMOV DPL,DATA3MOV A,DATA1MOVX @DPTR,AACALL g e t _s t a t u s_jlmp

CHECK_ENTER6 : MOV A,STATUS_EHTERCJNE A,i*lH,END_CHECK_J5MOV STATUS_FASE,#4HMOV status enter,i*0 HACALL BLANKJ)ISPAJMP END_ENTRY_DATA

CHECK_FASE7: CJNE A,it7,CHECK_FASE8MOV A,INPUTJ)ATACJNE A,^t0FH,ISI_DATA01SJMP CHECK_ENTER7

ISI_DATA01: MOV DATA1,INPUT_DATAMOV INPUT_PATA,#0FHACALL DISPLAY_J)ATA

CHECRJENTER7: MOV A,STATUS_ENTERCJNE A,<»1H,END_CHECKJF7MOV STATUS_FASE,#8 HMOV STATUS_ENTER,lt0HACALL HITUNG_ALAMATMOV DPTR,itTIME_ONMOV DPL,ALAMAT1MOVX A,@DPTRACALL HEX2BCDSWAP AMOV LAMP12,AMOV LAMP34,#0FFHACALL DISP LAMP

END_CHECK_p7: AJMP e n d_j:n t r y_d ataCHECK_FASE8 : CJNE A,tf8 H,CHECK FASE9

MOV B,#9HACALL j a m _alatSJMP END_CHECK_F7

CHECK_FASE9: CJNE A,tf9H,CHECK FASE10MOV B,4tl0ACALL m e n i t ALATSJMP END_CHECK_F7

CHECK_FASE10: CJNE A,#10,CHECK_FASE11MOV B,#llACALL JAM_ALAT

Page 57: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHECK_FASE11:

D I S P L A M P :

DATA_PASSWORD

J A M _ A L A T :

SJMP END_CHECK_F7CJNE A,#11,END CHECK F7MOV B,#4ACALL MENIT_ALATSJMP END_CHECK_F7

PUSH PSWPUSH APUSH DPLPUSH DPHMOV A,LAMP12MOV ■ DPTR,«PORT_AMOVX @DPTR,AMOV A,LAMP34MOV DPTR,#PORT_BMOVX @DPTR,APOP DPHPOP DPLPOP APOPRET

PSW

PUSH PSWPUSH AMOV PASSW0RD1,DATA1MOV A,DATA2SWAP AADD A,PASSW0RD1MOV PASSW0RD1,AMOV PASSW0RD2,DATA3MOV A,DATA4SWAP AADD A,PASSW0RD2MOV PASSW0RD2,APOP APOPRET

PSW

PUSH PSWPUSH APUSH DPHPUSH DPLMOV A,STATUS_ENTERCJNE A,4tlH,CHECK_KEY INCMOV STATUS_JASE,BMOV STATUS_ENTER,#0HMOV DPTR,JtTIME ONMOV DPL,ALAMAT1INC DPTRMOV ALAMATI,DPLMOVX A,@DPTRACALL HEX2BCDSWAP A

Page 58: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHECK_KEY_INC;

INC_JAM_ALAT; SAVE_JAM_ALAT;

END_JAM^LAT:

MENIT_ALAT:

DISPLAYKAN

CHECK_PLUS

MOV LAMP34,AMOV LAMP12,lt0FFHACALL DISP_LAMPAJMP END_JAM_ALATMOV A,INPUT_DATACJNE A,#0H,END_JAM_ALATMOV INPUT_DATA,#0FHMOV DPTR,#TIME_ONMOV DPL,ALAMAT1MOVX A,@DPTRCJNE A,#23, INC JAM^LATMOV A,#0HSJMP SAVE_JAM ALATINC AMOV DPTR,#TIME_ONMOV DPL,ALAMAT1MOVX @DPTR,AACALL HEX2BCDSWAP AMOV LAMP12,AMOV LAMP34,#0FFHACALL DISPJLAMPPOP DPLPOP DPHPOP APOPRET

PSW

PUSH PSWPUSH APUSH DPHPUSH DPLMOV A,STATUS^NTERCJNE A,#1H,CHECK_PLUSMOV STATUS_FASE,BMOV STATUS_ENTER.#0HMOV A,STATUSJFASECJNE A, #4H,DISPLAYKANACALL BLANKJDISPAJMP END_MENIT_ALATMOV DPTR,#TIME_ONMOV DPL,ALAMAT1INC DPTRMOV ALAMATI,DPLMOVX A,@DPTRACALL HEX2BCDSWAP AMOV LAMP12,AMOV LAMP34,#0FFHACALL DISPJLAMPAJMP END_MENIT_ALATMOV A,INPUT_DATACJNE A , lt0H, END_MENIT^LAT

Page 59: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

INCJ1ENIT_ALAT: SAVE_MNT_ALAT:

END_MENIT_JVLAT:

DISPLAY_DATA:

BLANKJDISP:

PROSES_DATA:

STATUS_CHECK:

MOV INPUT DATA,#0FHMOV DPTR,#TIME ONMOV DPL,ALAMAT1MOVX A,@DPTRCJNE A,#59,INC_MENIT_ALATMOV k . n mSJMP s a v e_m n t_alatINC AMOV DPTR,<*TIME_ONMOV DPL,ALAMAT1MOVX @DPTR,AACALL HEX2BCDSWAP AMOV LAMP34,AMOV LAMP12,*t0FFHACALL DISP LAMPPOP DPLPOP DPHPOP APOPRET

PSW

PUSH PSWPUSH AMOV A,DATA3SWAP AADD A,DATA4MOV LAMP12,AMOV A,DATA1SWAP AADD A,DATA2MOV LAMP34,AACALL DISP^LAMPPOP APOPRET

PSW

PUSH PSWMOV LAMP12,#0FFHMOV LAMP34,4*0FFHACALL DISPEL AMPPOPRET

PSW

PUSH PSWPUSH APUSH DPLPUSH DPHMOV R7,»10MOV DPTR,ttSTATUS LAMPlMOVX A,@DPTRCJNE A, *»0H, ACTIVE CHECKLCALL DET LAMP OFF

Page 60: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

ACTIVECHECK:

CHK_LAMP2:

CHK_LAMP2A:

CHKJLAMP3:

CHK_JLAMP3A;

CHK_LAMP4:

CHK_LAMP4A:

CHK_LAMP5:

CHK_LAMP5A:

INC DPTRDEC R7CJNE R7,<t0H,STATUS_CHECKLJMP END_STATUS_CHKMOV COUNTER CHECK, lf0HMOV DPTR,#STATUS_LAMP1MOVX A,@DPTRCJNE A,I*1H,CHK_LAMP2LCALL SEARCH_^LAMATLCALL RANGE CHECKMOV A,STATUS J)OMAINCJNE A,#1H,CHK. T.AMP2LCALL LAMP1_0NSJMP CHKJ.AMP2ALCALL LAMP1_0FFINC COUNTER CHECKMOV DPH,#0HMOV DPL,COUNTER_CHECKMOVX A,@DPTRCJNE A,#1H,CHK_LAMP3LCALL SEARCH^LAMATLCALL RANGE_CHECKMOV A,STATUSJDOMAINCJNE A,#1H,CHK_J.AMP3LCALL LAHP2 ONSJMP CHK_iAMP3ALCALL LAMP2_0FFINC COUNTER_CHECRMOV DPH,#0HMOV DPL,COUNTER_CHECKMOVX A,@DPTRCJNE A,#1H,CHKJLAMP4LCALL SEARCH_ALAMATLCALL RANGE_CHECKMOV A,STATUS_J)OMAINCJNE A,<*lH,CHK_iAMP4LCALL LAMP3_0NSJMP CHKJ.AMP4ALCALL LAMP3_0FFINC COUNTER_CHECKMOV DPH,tf0HMOV DPL,COUNTER_CHECKMOVX A,@DPTRCJNE A,#1H,CHK_LAMP5LCALL SEARCH_ALAMATLCALL RANGE_CHECKMOV . A,STATUS J30MAINCJNE A,<*1H,CHKJLAMP5LCALL LAMP4_0NSJMP CHK_LAMP5ALCALL LAMP4_0FFINC COUNTER_CHECKMOV DPH,lt0H

Page 61: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHK_LAMP6 :

CHK_LAMP6 A:

CHK_J.AMP7:

CHK_LAMP7A:

CHK_LAMP8 :

CHK_XAMP8 A:

CHK_XAMP9:

CHK_LAMP9A:

MOV DPL,COUNTER CHECKMOVX A,@DPTRCJNE A,#1H,CHKJ.AMP6LCALL SEARCH ALAMATLCALL RANGE_CHECKMOV A,STATUS DOMAINCJNE A,#1H,CHK_LAMP6LCALL LAMP5 ONSJMP CHK_XAMP6 ALCALL LAMPS OFFINC C0UNTER_CHECKMOV DPH,#0HMOV DPL,C0UNTER_CHECKMOVX A,@DPTRCJNE A,#1H,CHK_LAMP7LCALL SEARCH ALAMATLCALL RANGE_CHECKMOV A,STATUSJDOMAINCJNE a ,<*i h ,c h k l a m p?LCALL LAMP6_0NSJMP C H U A M P 7 ALCALL LAMP6_0FFINC C0UNTER_CHECKMOV DPH,#0HMOV DPL,COUNTER_CHECKMOVX A,@DPTRCJNE A,<*1H,CHKJLAMP8LCALL SEARCH_>^LAMATLCALL RANGE_CHECKMOV A,STATUS_pOMAINCJNE A,#1H,CHK_LAMP8LCALL LAMP7_0NSJMP CHK_LAMP8 ALCALL LAMP7 OFFINC COUNTER CHECKMOV DPH,#0HMOV DPL,COUNTER_CHECKMOVX A,@DPTRCJNE A,#1H,CHK_LAMP9LCALL SEARCH_ALAMATLCALL RANGE_CHECKMOV A,STATUS_DOMAINCJNE A,#1H,CHK_JLAMP9LCALL LAMPS ONSJMP CHK_LAMP9ALCALL LAMP8_0FFINC COUNTER_CHECKMOV . DPH,4t0HMOV DPL,COUNTER CHECKMOVX A,@DPTRCJNE A,#1H,CHK_LAMP10LCALL SEARCH_ALAMATLCALL RANGE CHECK

Page 62: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

MOV A,STATUS_DOMAINCJNE A,#1H,CHR LAMP10LCALL LAMP9 ONSJMP CHK_LAMP10A

CHKJ.AMP10: LCALL LAMPg_OFFINC COUNTER CHECK

CHK,,J.AMP10A: MOV DPH,#0HMOV DPL,COUNTER_CHECKMOVX A,@DPTRCJNE A,#1H,LP10 OFFLCALL SEARCH_ALAMATLCALL RANGE_CHECKMOV A,STATUS_DOMAINCJNE A,#1H,LP10 OFFLCALL LAMP10_ONSJMP END_STATUS_CHK

LP10 OFF: LCALL LAMP10_OFFEND_STATUS_CHK: POP DPH

POP DPLPOP APOPRET

PSW

DET J.AMP_OFF: PUSH PSWCJNE R7,#10,CHECK_OF_9LCALL LAMPl OFF

END_DLO: POPRET

PSW

CHECK_0F_9: CJNE R7,#9,CHECK_0F_8LCALL LAMP2_0FFSJMP END_DLO

CHECK_0F_8: CJNE R7,#8,CHECK_0F_7LCALL LAMP3_0FFSJMP END_DLO

CHECK_0F_7: CJNE R7,#7,CHECK_0F_8LCALL LAMP4_0FFSJMP END_DLO

CHECK_0F_6; CJNE R7,#6,CHECK_0F 5LCALL LAMP5_0FFSJMP END_DLO

CHECK_0F_5: CJNE R7,#5,CHECK_0F 4LCALL LAMPS OFFSJMP END_DLO

CHECK_0F_4: CJNE R7,«4,CHECK_0F 3LCALL LAMP7_0FFSJMP END_DLO

CHECK_0F_3; CJNE R7,tf3,CHECK OF 2LCALL LAMP8_0FFSJMP END_DLO

CHECK_0F_2 : CJNE R7,tt2,CHECK OF 1LCALL LAMP9_0FFSJMP END_DL0

Page 63: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHECK_0F_1: CJNE R7,#1,END DLOLCALL LAMP10_OFFSJMP END JDLO

INT_T0: PUSH PSWPUSH APUSH DPLPUSH DPHLCALL DELAYlMOV A,TL0CLR TR0MOV A,TL0

REMOTE1: CJNE A,^»2H,REM0TE1ASJMP REMOTEIB

REMOTElA: CJNE A,#3H,REM0TE2REMOTEIB: MOV A,STATUS_FASE

CJNE A,#4H,END_REM0TE1MOV STATUS_ENTER,^^0HMOV STATUS JFASE,#2HMOV DPTR,#REG_BMOV A,#8 EHMOVX @DPTR,ALCALL ENTRY_DATA

END_REM0TE1: AJMP END_INT_T0REM0TE2: CJNE A,lt4H,REM0TE2A

SJMP REM0TE2BREM0TE2A: CJNE A,it5H, REMOTESREM0TE2B; MOV A,STATUS_JFASE

CJNE A,#4H,END_REM0TE2MOV STATUSJENTER,#0HMOV STATUSJFASE,<*5HMOV DATA3,#0HLCALL GET_STATUSJ.MP

END_REM0TE2: AJMP END_INT_T0REM0TE3: CJNE A,4t6H,REM0TE3A

SJMP REM0TE3BREM0TE3A: CJNE A,#7H,REM0TE4REM0TE3B: MOV A, STATUS J-ASE

CJNE A,#4H,END_REM0TESMOV STATUS ENTER,#0HMOV STATUS_FASE,«7HMOV DATA1,#0HMOV DATA2,#0FHMOV DATAS,«0FHMOV DATA4,#0FH'LCALL DISPLAY^DATA

END REMOTES: AJMP END_INT_T0REM0TE4: CJNE A,tt8,REM0TE4A

SJMP REM0TE4BREM0TE4A: CJNE A,#9H,REM0TE5REM0TE4B; MOV A, STATUS JAS E

CJNE A,#0H,ENTER_REMOTEMOV STATUS ENTER,«0H

Page 64: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

SJMP END REM0TE3ENTER_REMOTE: MOV STATUS_ENTER,itlH

LCALL ENTRY_DATAAJMP END INT T0

REMOTES: CJNE A,#10,REMOTE5ASJMP REM0TE5B

REM0TE5A: CJNE A,<J11,REM0TE6REM0TE5B: MOV INPUT_DATA,i»8 H

LCALL ENTRY_DATAAJMP END INT T0

REM0TE6: CJNE A,#12,REM0TE6ASJMP REM0TE6B

REM0TE6A: CJNE A,ttl3,REMOTE?REM0TE6B: MOV INPUT_DATA,J*9H

LCALL ENTRYJ)ATAAJMP END_INT_T0

REMOTE?: CJNE A,#14,REM0TE?ASJMP REM0TE7B

REM0TE7A: CJNE A,<tl5,REM0TE8REM0TE7B: MOV A,STATUS_FASE

CJNE A,#4H,END_REM0TE7MOV STATUS_JENTER,#0HMOV STATUS_FASE,#1HMOV DATA1,*»0HMOV DATA2,#0HMOV DATA3,#0HMOV DATA4,#0HLCALL DISPLAY_DATA

END_REM0TE7: AJMP END_INT T0REMOTES: CJNE A,#16,REM0TE8A

SJMP REM0TE8BREM0TE8A: CJNE A, 1*17, REMOTESREM0TE8B: MOV A,STATUS_FASE

CJNE A,if4H,END REMOTE?MOV STATUS_ENTER,#0HMOV STATUS_FASE,#0HMOV DATA1,#0HMOV DATA2,#0HMOV DATA3,^0HMOV DATA4,#0HAJMP END_INT T0

REM0TE9: CJNE A,#18,REM0TE9ASJMP REM0TE9B

REM0TE9A: CJNE A,#19,REMOTE10REM0TE9B: MOV INPUT_DATA,1*4H

LCALL ENTRY_DATAAJMP END_INT T0

REMOTE10: CJNE A,tf20,REMOTE10ASJMP REMOTE10B

REMOTE10A: CJNE A,#21,REM0TE11REMOTE10B: MOV INPUT_DATA,4#5H

LCALL ENTRY_DATAAJMP END_INT T0

Page 65: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

REMOTEll: CJNE A,#22,REMOTEllA3JMP REMOTEllB

REMOTEllA; CJNE A,#23,REM0TE12REMOTE1IB: MOV INPUT _J)ATA,#6 H

LCALL ENTRY_DATAAJMP END INT T0

REM0TE12: CJNE A,#24,REM0TE12ASJMP REMOTE12B

REMOTE12A: CJNE A,#25,REM0TE13REMOTE12B; MOV INPUT_DATA,#7H

LCALL ENTRY_DATAAJMP END INT T0

REMOTE13; CJNE A,#26,REM0TE13ASJMP REM0TE13B

REM0TE13A: CJNE A,#27,REM0TE14REMOTE13B; MOV INPUT_DATA,#0H

LCALL ENTRY_J»ATAAJMP END_INT_T0

REMOTE14: CJNE A,#28,REM0TE14ASJMP REM0TE14B

REM0TE14A: CJNE A,#29,REM0TE15REMOTE14B: MOV INPUT_DATA,ttlH

LCALL ENTRYJDATAAJMP END_INT_T0

REMOTE15: CJNE A,#30,REMOTE15ASJMP REMOTE15B

REM0TE15A; CJNE A,#31,REM0TE16REMOTE15B: MOV INPUT_PATA,#2H

LCALL ENTRY_DATAAJMP END_INT_T0

REM0TE16: CJNE A, *»32, REMOTE 16ASJMP REMOTE16B

REM0TE16A: CJNE A,#33,END_INT_T0REMOTE16B: MOV INPUT_DATA,i»3H

LCALL ENTRY_DATAEND_INT_T0: POP DPH

POP DPLPOP APOP PSWMOV TH0,#0FFHMOV TL0,#0FFHSETB RET I

TR0

AUTORISASI: PUSH PSWPUSH AMOV A,CURRENT PASSlSUBB A,PASSW0RD1CJNE A,#0H,WRONG_PASSMOV A,CURRENT_PASS2SUBB A,PASSW0RD2CJNE A,#0H,WRONG_PASSMOV STATUS AUTORISASI

Page 66: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

END_AUT: POP APOPRET

PSW

WRONG_PASS: MOV STATUS_AUTORISASI,#0HSJMP END_AUT

SET_HOURS: MOV R2,*f60BLANK; ACALL READ_DISP_RTC

MOV LAMP12,*f0FFHACALL DISP_LAMPDEC R2CJNE R2,*t0H, BLANKMOV R2,#60

NOT_BLANK: MOV DPTR,tfJAMMOV A,R3MOVX @DPTR,AACALL READ_DISP_RTCACALL DISPEL AMPDEC R2CJNERET

R2,4I0H,NOT_BLANK

SET_MINUTES: MOV R2,#60BLANKS: ACALL READ_DISP_RTC

MOV LAMP34,#0FFHACALL DISP_LAMPDEC R2CJNE R2,<J0H, BLANKSMOV R2,#60

NOT_BLANKS: MOV DPTR,#MENITMOV A,R3MOVX @DPTR,AACALL READ_DISP_RTCACALL DISP^LAMPDEC R2CJNERET

R2,<J0H,NOT_BLANKS

SET^ALL: MOV R2,^»60BLANK_ALL: ACALL READ_DISP_RTC

MOV LAMP12,#0FFHMOV LAMP34,4t0FFHACALL DISP^LAMPDEC R2CJNE R2,#0H,BLANK_ALLMOV R2,#60

ALL_NOT_BLANK; ACALL READ_DISP RTCACALL DISP LAMPDEC R2CJNERET

R2,#0H,ALL_NOT_BLANR

MINUTE_BLANK: MOV R2,#60

Page 67: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

MB: MOV LAMP12,lt0FFHMOV LAMP34,#0FFHACALL DISP LAMPDEC R2CJNE R2,<^0H,MBMOV R2,*t60

MBl: MOV A,R3ACALL HEX2BCDMOV LAMP34,AACALL DISP_LAMPDEC R2CJNERET

R2,<*0H,MB1

HOUR_BLANK: MOVHB: MOV LAMP12,#0FFH

MOV LAMP34,#0FFHACALL DISP LAMPDEC R2CJNE R2,^*0H,HBMOV R2,#60

HBl: MOV A,R3ACALL HEX2BCDMOV LAMP12,A

HB2: ACALL DISP_XAMPDEC R2CJNERET

R2,#0H,HB1

HB3: MOV LAMPUl,i»0FHSJMP HB2

READ_DISP_RTC: MOV DPTR,#REG_J^WAIT_TO_READ: MOVX A,@DPTR

ANL A,*»80HCJNE A,#0H,WAIT TOMOV DPTR,#MENITMOVX A,@DPTRACALL HEX2BCDMOV B,AANL A,#0F0HSWAP AMOV LAMPU3,AMOV A,BANL A,#0FHMOV LAMPU4,AMOV DPTR,#JAMMOVX A,@DPTRACALL . HEX2BCDMOVRET

LAMP12,A

HEX2BCD: MOV B,tf 10DIV AB

Page 68: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

COUNT_ADDRESS:

RANGE_CHECK:

DC:

DC0:

DCl:

DC2:DCS:

RESET SD:

SWAP AADDRET

A,B

MOV DPTR,lfSTATUS_SlMOV LAMPU2,R3MOV A,R3DEC AMOV B,#5HMUL ABADD A,DPLMOV DPL,AMOVX A,@DPTRMOVRET

LAMPU4,A

MOV STATUS DOMAIN,#0HINC DPTRMOVX A,@DPTRMOV R3,AINC DPTRMOVX A,@DPTRMOV R4,AINC DPTRMOVX A,@DPTRMOV R5,AINC DPTRMOVX A,@DPTRMOV R6 ,AMOV A,R3MOV B,R5CLR CSUBB A,BJC DClCJNE A,#0H,DC2MOV A,R4MOV B,R6CLR CSUBB A,BJC DC0CJNE A,#0H,DCSJMP RESET_SDACALL ON GT OFF_HOURSJMP DC4ACALL OFF_GT_ON_HOURSJMP DC4ACALL OFF_GT ON HOURSJMP DCSACALL ON_GT OFF_HOURMOV A,STATUS_DOMAINCJNE A,tt0H,DC7MOVRET

STATUS_DOMAIN,#0H

Page 69: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

DC4: MOV A,STATUS_DOMAINCJNE A,«2H,DC4ASJMP DC4B

DC4A: CJNE A,#3H,DC6DC4B: MOV A,R4

MOV B,R6CLR CSUBB A,BJC DCS ,ACALLRET

0N_GT_0FFJ1IN

DC5: ACALL OFF_GT_ON_MINDC6 : RETDC7: CJNE

RETA,#1H,DC8

DCS: CJNE A,4t2H,DC9ACALLRET

CHECK_>1IN_0N

DC9: ACALLRET

CHECK_MIN_OFF

ON_GT_OFF_HOUR: ACALL READ_RTCMOV DPTR,4JJAMMOVX A,@DPTRMOV B,ACLR CSUBB A,R5JC ONOFFHlCJNE A,*t0H,ONOFFH0MOVRET

STATUSJ30MAIN,#3H

ONOFFH0: CLR CMOV A,BSUBB A,R3JNC 0N0FFH2MOVRET

STATUS_DOMAIN,4*0H

ONOFFHl: MOVRET

STATUS_DOMAIN,<tlH

0N0FFH2: CJNE A, #0H,ONOFFHlMOVRET

STATUS_D0MAIN,^J2H

OFF_GT_ON _HOUR: ACALL READ_RTCMOV DPTR,4tJAMMOVX A,@DPTRMOV B, ACLR CSUBB A,R3JC OFFONHlCJNE A,4*0H,OFFONH0MOVRET

STATUS DOMAIN, lt2H

Page 70: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

OFFONH0: CLR CMOV A,BSUBB A, R5JNC 0FF0NH2MOVRET

STATUS_D0MAIN,*^1H

OFFONHl: MOVRET

STATUS_DOMAIN,<*0H

0FF0NH2: CJNE A,#0H,OFFONHlMOVRET

STATUS J)0MAIN,#3H

OFF_GT_ON_MIN: ACALL READ RTCMOV DPTR,#MENITMOVX A,@DPTRMOV B,ACLR CSUBB A,R4JC OFFONMlCLR CMOV A,BSUBB A,R6JNC OFFONMlMOVRET

STATUS_D0MAIN,1*1H

OFFONMl: MOVRET

STATUS_J)OMAIN,#0H

ON_GT_OFF_MIN: ACALL READ_RTCMOV DPTR,#MENITMOVX A,@DPTRMOV B,ACLR CSUBB A,R6JC ONOFFMl

• CLR CMOV A,BSUBB A,R4JNC ONOFFMlMOVRET

STATUS_DOMAIN,#0H

ONOFFMl; MOVRET

STATUS_DOMAIN,*tlH

CHECK_MIN_ON: ACALL READ_RTCMOV DPTR,ttMENITMOVX A,@DPTRCLR CSUBB A,R4JNC MIN ONMOVRET

STATUS_DOMAIN,«0H

MIN_ON: MOV STATUS_D0MAIN,J^1H

Page 71: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

RET

CHECK_MIN_OFF:

M.INOFF;

ACALLMOVMOVXCLRSUBBJNCMOVRETMOVRET

READ_RTCDPTR,#MENITA,@DPTRCA,R6MIN_OFFSTATUS_D0MAIN,#1H

STATUS_DOMAIN,#0H

READ_RTC: UPDATE_NOT_YET:

MOVMOVXANLCJNERET

DPTR,#REG_AA,@DPTRA,lt80HA ,#0H,UPDATE_NOT_YET

PROGRAM_ON: MOVMOVXORLMOVXRET

DPTR,1*P0RT_BA,@DPTRA,#1H@DPTR,A

LAMP1_0N: MOVMOVXORLMOVXRET

DPTR,#PORT_BA,@DPTRA,lt2H@DPTR,A

LAMP20N; MOVMOVXORLMOVXRET

DPTR,#PORT_B A,@DPTR A,lt4H @DPTR,A

LAMP3_0N: MOVMOVXORLMOVXRET

DPTR,#PORT_BA,@DPTRA,<t8 H@DPTR,A

LAMP4 ON: MOVMOVXORLMOVXRET

DPTR,#PORT_BA,@DPTRA,#10H@DPTR,A

LAMP5_0N: MOV DPTR,#PORT_BMOVX A,@DPTRORL A,<t20HMOVX @DPTR,A

Page 72: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

RET

MOVMOVXORLMOVXRET

DPTR,#PORTJA,@DPTRA,^t40H@DPTR,A

LAMP7_0N: MOVMOVXORLMOVXRET

DPTR,#PORT_BA,@DPTRA,#80H@DPTR,A

LAMP8_0N: MOVMOVMOVXMOVRET

DPTR,#PORT_A A,DATA JLAMP8 @DPTR,ASTATUS_LAMP8,ltlH

PROGRAM_OFF: MOVMOVXANLMOVXRET

DPTR,^tPORT_BA,@DPTRA,#0FEH@DPTR,A

LAMPIOFF: MOVMOVXANLMOVXRET

DPTR,**P0RT3A,@DPTRA,#0FDH@DPTR,A

LAMP2_0FF: MOVMOVXANLMOVXRET

DPTR,#P0RT3A,@DPTRA,«0FBH@DPTR,A

LAMP3_0FF: MOVMOVXANLMOVXRET

DPTR,#PORT_BA,@DPTRA,it0F7H@DPTR,A

LAMP40FF: MOVMOVXANLMOVXRET

DPTR,#PORT_BA,@DPTRA,*»0EFH@DPTR,A

LAMP50FF: MOV DPTR,#PORT_BMOVX A,@DPTR ANL A,i^0DFH

Page 73: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

MOVX @DPTR,ARET

LAMP6_0FF: MOV DPTR,ttPORT_BMOVX A,@DPTRANL A,#0BFHMOVX @DPTR,ARET

LAMP7_0FF; MOV DPTR,#PORT BMOVX A,@DPTRANL A,#7FHMOVX @DPTR,ARET

LAMP8_0FF: MOV DPTR,#PORT_AMOV A,C0UNTER_LAMP8MOVX @DPTR,AMOV STATUS_LAMP8,#0HRET

P R O G R A M U T A M A R E C E I V E R J

MULAI: MOV>

IE,#82HMOV TM0D,<t5HSETB TR0MOV TH0,#0FFHMOV TL0,#0FFHLCALL DELAYlLCALL INITIAL_PPIMOV- DPTR,#POWER_CODEMOVX A,@DPTRCJNE A,#0AAH,CONT_INITSJMP AFTER_P DOWN

CONT_INIT: LCALL INITIAL_RTCLCALL RAM_CHECKLCALL CHECK_RELAYMOV DPTR,#CURRENT PASSlMOV A,#12HMOVX @DPTR,AMOV DPTR,1ICURRENT_PASS2MOV A,#34HMOVX @d p t r ;a

AFTER_P_DOWN: MOV COUNTER_i’ASS,#0HMOV DATAl,it0FHMOV DATA2,#0FHMOV DATA3,#0FHMOV DATA4,#0FHMOV STATUS_ENTER,#0HMOV STATUS_FASE,*t0HMOV STATUS_PASS,<t0H

Page 74: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

CHECK_STF:

BLANKING:

CHECK_STF_COMM

CHECK_STF3:

CHECK_STF4:

LCALL READ_DISP RTCLCALL DISP LAMPMOV A,STATUS_FASE 'CJNE A ,#0H,CHECK_STF_COMMMOV A,STATUS PASSCJNE A,#0H,BLANKINGLCALL READ_DISP_RTCLCALL DISP_LAMPLCALL SCAN KEYLCALL PROSESJ)ATASJMP CHECK_STFLCALL READ_DISP_RTCLCALL DISP LAMPLCALL SCAN_KEYLCALL DELAYlLCALL BLANK_DISPLCALL SCAN_KEYLCALL DELAYlAJMP CHECK_STFCJNE A,lt2H,CHECK STF3LCALL SET_HOURSAJMP CHECK_STFCJNE A,#3H,CHECK_STF4LCALL SET_MINUTESAJMP CHECK STFLCALL SCAN_KEYAJMP CHECK_STF

P R O G R A M U T A M A T R A N S M I T T E R

.CODEORG 0HLJMP TRANSMIT

DELAY: PUSH PSWMOV R2,#3H

KURANGIl: MOV R1,#0FFHKURANGI: DEC R1

CJNE R1,#0H,KURANGIDEC R2CJNE R2,<t0H, KURANGIlPOP PSWRET

SCAN_KEY: PUSH PSWCLR PI.4SETB PI.5SETB PI.6SETB PI.7

Page 75: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

END_SCAN_KEY:

KEYl;

KEY2:

KEY3:

KEY4:

KEYS:

KEY6 :

KEY7:

KEYS:

JNB P1.0,REY1JNB PI.1,KEY2JNB PI.2,KEYSJNB P1.3,KEY4SETB PI.4CLR PI.5SETB PI.6SETB PI.7JNB PI.0,KEYSJNB P1.1,KEY6JNB P1.2,KEY7JNB PI.3,KEYSSETB PI.4SETB Pl.SCLR PI.6SETB PI.7JNB P1.0,KEY9JNB P1.1,KEY10JNB P1.2,KEY11JNB P1.3,REY12SETB PI.4SETB Pl.SSETB PI.6CLR PI.7JNB P1.0,KEY13JNB P1.1,KEY14JNB P1.2,KEY15JNB P1.3,KEY16POPRET

PSW

MOV A,»7HACALL KIRIM_DATASJMP END SCAN_ZEYMOV A,#9HACALL KIRIMJ3ATASJMP END_SCAN_KEYMOV A,#11ACALL KIRIMJ3ATASJMP END_SCANJKEYMOV A,U13ACALL KIRIM_DATASJMP e n d_scanjk:eyMOV A,#15ACALL KIRIM DATASJMP END_SCAN_ZEYMOV A,#17ACALL KIRIM_DATASJMP END_SCAN_KEYMOV A,#19ACALL KIRIM_DATASJMP END_SCAN KEYMOV A,#21

Page 76: Ill . E>SRKI>rOAN.AAl!if · 80C31 dan hanya membutuhkan tambahan komponen yang terdiri dari satu buah kristal atau 'ceramic resonator' dan dua buah kapasitor untuk membentuk rangkaian

ACALL KIRIM DATASJMP END_SCAN KEY

KEY9: MOV A,«23ACALL KIRIM DATASJMP END_SCAN_KEY

REY10: MOV A,#25ACALL RIRIM_DATASJMP END_SCAN KEY

KEni: MOV A,#27ACALL KIRIM_DATASJMP END_SCAN_KEY

KEY12: MOV A,#29ACALL KIRIM DATASJMP END_SCAN_KEY

KEY13: MOV A,#31ACALL KIRIM DATASJMP END_SCAN_KEY

KEY14: MOV A,#33ACALL KIRIM_DATASJMP END_SCAN_KEY

KEY15: MOV A,#35ACALL KIRIMJ)ATASJMP END_SCAN_KEY

KEY16: MOV A,#37ACALL KIRIMJDATASJMP END_SCAN_KEY

KIRIM_DATA; PUSH PSWPUSH ACLR P3.2

KIRIM: SETB P3.2ACALL DELAYCLR P3.2ACALL DELAYDEC ACJNE A,#0H,KIRIM

TUNGGUl: JHB PI.0,TUNGGUlTUNGGU2: JNB P1.1,TUNGGU2TUNGGU3: JNB P1.2,TUNGGU3TUNGGU4: JNB P1.3,TUNGGU4

POP APOPRET

■ PSW

TRANSMIT: CLR P3.2TRANSMIT1: ACALL SCANJCEY

ACALL DELAYSJMP TRANSMITl