Sistem Komunikasi RS-232 Secara Multipoint Untuk Aplikasi Perhotelan.

(1)

ABSTRAK

RS-232 adalah salah satu port komunikasi yang terdapat pada komputer. Port ini mengirimkan data secara serial sehingga sering disebut pula sebagai serial port. Salah satu keunggulan dari serial port adalah kompatibilitasnya terhadap mikrokontroler, sehingga komputer dapat mengontrol mikrokontroler melalui serial port tersebut. Namun serial port mempunyai keterbatasan yaitu hanya dapat berkomunikasi secara point to point.

Untuk meningkatkan efektifitas dari serial port maka pada tugas akhir ini akan dirancang sebuah prototipe komunikasi RS-232 secara multipoint dari komputer ke mikrokontroler. Prototipe ini dirancang untuk diaplikasikan pada bidang perhotelan khususnya sebagai pengendali pintu kamar hotel, dimana setiap tamu yang ingin masuk harus memasukan nomor PIN tertentu dan PIN tersebut kemudian dikirim ke komputer server melalui serial port untuk diuji validitasnya.

Prototipe komunikasi RS-232 secara multipoint ini telah diujikan dengan pintu dimisalkan sebagai LED. Hasil pengujian adalah berhasil dimana komunikasi dari komputer ke mikrokontoler - mikrokontroler berhasil terjadi secara multipoint dan tidak terdapat kesalahan interpretasi data.


(2)

ABSTRACT

RS-232 is one of communications port on the computer. The port send the data using serial method, so this port also known as serial port. One of the advantages using serial port is the compatibility with microcontroller, so a computer can control the microcontroller through the serial port. But serial port is limited by point to point communication way.

To increase the effectiveness of serial port, this final project will design a prototype of RS - 232 multipoint communication system for communication between computer and microcontroller. The prototype is designed for hotels application especially as a controller of access door, where every guest who want to access the door must input a PIN and the PIN will send to computer through the serial port for validation checking.

Prototype of RS - 232 multipoint communication system has been tried with an assumption that a LED is the access door. The test result was success, the communication between computer and microcontrollers was occurred in multipoint way and also there is no error in data interpretation.


(3)

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas kasih setia, rahmat dan karuniaNya yang selalu memberikan tuntunan, pertolongan dan kekuatan sehingga laporan tugas akhir dengan judul “ Sistem Komunikasi RS-232 Secara Multipoint Untuk Aplikasi Perhotelan” dapat diselesaikan.

Penulis menyadari bahwa terciptanya laporan tugas akhir ini adalah berkat bantuan dari berbagai pihak, oleh karena itu penulis ingin mengucapkan terima kasih kepada:

1. Bapak Roy Pramono Adhie S.T , M.T , selaku pembimbing yang telah membantu dalam pelaksanaan tugas akhir ini.

2. Ibu Ir. Anita Soepartono M.Sc , selaku koordinator tugas akhir, yang telah membantu dalam proses pelaksanaan tugas akhir.

3. Bapak Ir. Aan Darmawan M.T , selaku Ketua Jurusan Teknik Elektro, Universitas Kristen Maranatha.

4. Bapak Marvin C. Wijaya S.T , M.M , M.T , Bapak Semuil Tjiharjadi S.T, M.M , M.T , Bapak Ir. Soepartono M.Sc, selaku dosen penguji.

5. Para dosen, karyawan, dan staff Jurusan Teknik Elektro Universitas Kristen Maranatha atas ilmu dan bantuan dalam proses perkuliahan.

6. Pohan , Budi Hertanto, Sugiono , Herman , Davin , Hendra , Hendry , Faisal , Heru yang telah membantu serta meminjamkan alat.

7. Keluarga yang selalu memberikan dukungan dalam doa, dana, dorongan dan semangat dalam menyelesaikan tugas akhir.

8. Indri Tantono yang selalu memberikan dukungan , bantuan dan doa dalam melaksanakan tugas akhir ini.

9. Rekan-rekan serta semua pihak yang tidak dapat disebutkan satu-persatu yang telah membantu dan memberikan dukungan baik secara langsung maupun tidak langsung selama penyusunan laporan ini.


(4)

Penulis menyadari bahwa laporan tugas akhir ini memiliki banyak kekurangan karena keterbatasan ilmu dan pengetahuan yang penulis miliki, oleh karena itu penulis mengharapkan kritik dan saran yang membangun. Akhir kata, dengan segala keterbatasan dan kekurangan yang ada, penulis berharap semoga laporan tugas akhir ini dapat bermanfaat bagi pembaca sekalian.

Bandung, Januari 2007


(5)

DAFTAR ISI

ABSTRAK ……..…..……… i

ABSTRACT ……..…..……….. ii

KATA PENGANTAR ……..…..……….. iii

DAFTAR ISI ……..…..……… v

DAFTAR TABEL ……..…..………. vii

DAFTAR GAMBAR ……..…..……… viii

DAFTAR LAMPIRAN ……..…..……… x

BAB I PENDAHULUAN ..……… 1

I.1 Latar Belakang ..……… 1

I.2 Identifikasi Masalah ..……… 2

I.3 Tujuan ..………. 2

I.4 Pembatasan Masalah ..………... 2

` I.5 Sistematika Pembahasan ..………. 3

BAB II LANDASAN TEORI ..………... 4

II.1 Definisi Mikroprosesor ..……… 4

II.2 Cara Kerja Mikroprosesor ..……… 7

II.3 Mikrokontroler AT89S52 ..……… 10

II.4 Pemrograman AT89S52 ..……….. 11

II.4.1 Register AT89S52 ..………... 12

II.5 RS-232 (Serial Port) ..……… 16

BAB III PERANCANGAN ALAT ..……… 22

III.1 Pendahuluan ..……… 22

III.2 Perancangan Hardware ..……….. 23

III.2.1 Rangkaian Hardware ..……….. 24

III.2.2 Flowchart Mikrokontroler Pengendali ………. 25


(6)

III.3 Perancangan Software ..……… 27

III.3.1 Flowchart software ..………. 29

III.4 Protokol Komunikasi ..………. 30

BAB IV PENGUJIAN ALAT ..……… 35

IV.1 Pengujian Dengan Hyper Terminal ..……… 35

IV.1.1 Hasil Uji Coba ..………. 35

IV.2 Pengujian Dengan Software Tugas Akhir ……… 37

IV.2.1 Hasil Uji Coba ..………. 38

IV.2.1.1 Hasil Pengujian Proses Looping Cek Status Mikrokontroler dan Penerimaan Status Mikrokontroler …... 38

IV.2.1.2 Hasil Pengujian untuk Password Benar dan Password Salah ……. 41

BAB V KESIMPULAN DAN SARAN ..……… 47

V.1 Kesimpulan ..………. 47

V.2 Saran ..……… 47 DAFTAR PUSTAKA


(7)

DAFTAR TABEL

Tabel II.1 Fungsi Bit- bit pada Register TCON ………. 13

Tabel II.2 Fungsi Bit- bit pada Register TMOD ……… 14

Tabel II.3 Mode Operasi Timer / Counter ………. 14

Tabel II.4 Fungsi Bit – bit pada Register SCON ……….. 15

Tabel II.5 Mode Operasi Serial Port ………. 15

Tabel II.6 Kombinasi Pemilihan Baud Rate ……….. 19

Tabel II.7 Fungsi Pin- pin RS – 232 ……….. 20

Tabel III.1 Alamat Komputer dan Mikrokontroler …..……… 30

Tabel III.2 Format Alamat dalam Heksadesimal dan ASCII ……….. 30

Tabel III.3 Daftar Perintah ………..……… 31


(8)

DAFTAR GAMBAR

Gambar II.1 Diagram Blok Mikroprosesor ……… 5

Gambar II.2 Diagram Blok Sistem Mikroprosesor ……… 5

Gambar II.3 Siklus Kerja Mikroprosesor ……….. 8

Gambar II.4 Chip Mikroprosesor AT89S52 ……….. 10

Gambar II.5 Diagram Blok Mikroprosesor AT89S52 ……… 11

Gambar II.6 Format Pengiriman 1 Karakter Pada Serial Port ……….. 16

Gambar II.7 Gambar Konektor RS-232 ………. 21

Gambar III.1 Blok Diagram ………. 22

Gambar III.2 Rangkaian hardware ……….. 24

Gambar III.3 Flowchart Mikrokontroler Pengendali ……….. 25

Gambar III.4 Menu Utama ……….. 27

Gambar III.5 Menu Check In ………... 28

Gambar III.6 Menu Check Out ……… 28

Gambar III.7 Flowchart Software pada Komputer ………. 29

Gambar III.8 Format Data ……….. 30

Gambar III.9 Prosedur Ask to Send – Replied No Data ………. 31

Gambar III.10 Prosedur Ask to Send – Replied With Data ………... 32

Gambar III.11 Prosedur Ask to Send – Request Time Out ……… 33

Gambar III.12 Prosedur Password Accepted ……… 34

Gambar III.13 Prosedur Password Denied ………... 34

Gambar IV.1 Inisialisasi Hyper Terminal ……….. 36

Gambar IV.2 Hasil Uji Coba ……….. 36

Gambar IV.3 Hasil Pengujian Status Mikrokontroler 1 ………. 38

Gambar IV.4 Hasil Pengujian Status Mikrokontroler 2 ………. 39

Gambar IV.5 Hasil Pengujian Status Mikrokontroler 3 ………. 40


(9)

Gambar IV.7 Hasil Pengujian Password Accepted Mikrokontroler 2 ………... 42 Gambar IV.8 Hasil Pengujian Password Accepted Mikrokontroler 3 ………... 43 Gambar IV.9 Hasil Pengujian Password Denied Mikrokontroler 1 ………….. 44 Gambar IV.10 Hasil Pengujian Password Denied Mikrokontroler 2 ………….. 45 Gambar IV.11 Hasil Pengujian Password Denied Mikrokontroler 3 ………….. 46


(10)

DAFTAR LAMPIRAN

LAMPIRAN A LIST PROGRAM MIKROKONTROLER LAMPIRAN B LIST PROGRAM DELPHI


(11)

LAMPIRAN A


(12)

List Program Mikrokontroler 1

$MOD51

Inisialisasi:

MOV SCON,#50H

MOV TMOD,#20H

MOV TH1,#0FDH

SETB TR1

MOV R0,#01H

MOV R3,#00H

AJMP Start

Terima2: ;ask to send

CLR RI

MOV A,sbuf

CJNE A,#61H,Terima3 CJNE R0,#10H,NoData

AJMP Kirim

Terima3: ;access denied

CJNE A,#67H,Terima4

MOV P2,#00H

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi Terima4:

CJNE A,#66H,Inisialisasi ;access granted


(13)

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi NoData:

MOV A,#25H

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi

Terima: ;address checking

CJNE R3,#00H,Terima2 CLR RI

MOV A,sbuf

CJNE A,#52H,Start

INC R3

AJMP Start Kirim:

MOV A,#25H

CLR TI

MOV SBUF,A

JNB TI,$


(14)

MOV A,R4

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R5

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R6

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R7

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,#62H

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay AJMP Inisialisasi Delay:

MOV R2,#0FFH


(15)

MOV R1,#0FFH

DJNZ R1,$

DJNZ R2,Ulang

RET

Start: ;Check Input

JB RI,Terima

MOV P1,#07FH

JNB P1.3,Angka1

JNB P1.2,Angka2

JNB P1.1,Angka3

JNB P1.0,HurufA

MOV P1,#0BFH

JNB P1.3,Angka4

JNB P1.2,Angka5

JNB P1.1,Angka6

JNB P1.0,HurufB

AJMP Start2

Angka1:

MOV A,#31H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka2:

MOV A,#32H

CJNE R0,#01H,Next1

MOV R4,A


(16)

JNB P1.2,$

AJMP Start

Angka3:

MOV A,#33H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufA:

MOV A,#41H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Angka4:

MOV A,#34H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka5:

MOV A,#35H

CJNE R0,#01H,Next1

MOV R4,A

INC R0


(17)

AJMP Start Angka6:

MOV A,#36H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufB:

MOV A,#42H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Next1:

CJNE R0,#02H,Next2

MOV R5,A

INC R0

ACALL Delay ACALL Delay

AJMP Start

Start2:

MOV P1,#0DFH

JNB P1.3,Angka7

JNB P1.2,Angka8

JNB P1.1,Angka9

JNB P1.0,HurufC


(18)

JNB P1.3,RTS

JNB P1.2,Angka0

JNB P1.1,Batal

JNB P1.0,HurufD

AJMP Start

Next2:

CJNE R0,#03H,Next3

MOV R6,A

INC R0

ACALL Delay ACALL Delay

AJMP Start

RTS: ;Ready To Send

MOV R0,#10H

JNB P1.3,$

AJMP Start

Angka7:

MOV A,#37H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka8:

MOV A,#38H

CJNE R0,#01H,Next1

MOV R4,A

INC R0


(19)

AJMP Start Angka9:

MOV A,#39H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufC:

MOV A,#43H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Angka0:

MOV A,#30H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.2,$

AJMP Start

HurufD:

MOV A,#44H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$


(20)

Batal:

JNB P1.1,$

AJMP Inisialisasi Next3:

CJNE R0,#04H,Batal

MOV R7,A

ACALL Delay

AJMP Start


(21)

List Program Mikrokontroler 2

$MOD51

Inisialisasi:

MOV SCON,#50H

MOV TMOD,#20H

MOV TH1,#0FDH

SETB TR1

MOV R0,#01H

MOV R3,#00H

AJMP Start

Terima2: ;ask to send

CLR RI

MOV A,sbuf

CJNE A,#61H,Terima3 CJNE R0,#10H,NoData

AJMP Kirim

Terima3: ;access denied

CJNE A,#67H,Terima4

MOV P2,#00H

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi Terima4:

CJNE A,#66H,Inisialisasi ;access granted


(22)

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi NoData:

MOV A,#35H

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi

Terima: ;address checking

CJNE R3,#00H,Terima2 CLR RI

MOV A,sbuf

CJNE A,#53H,Start

INC R3

AJMP Start Kirim:

MOV A,#35H

CLR TI

MOV SBUF,A

JNB TI,$


(23)

MOV A,R4

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R5

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R6

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R7

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,#62H

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay AJMP Inisialisasi Delay:

MOV R2,#0FFH


(24)

MOV R1,#0FFH

DJNZ R1,$

DJNZ R2,Ulang

RET Start:

JB RI,Terima

MOV P1,#07FH

JNB P1.3,Angka1

JNB P1.2,Angka2

JNB P1.1,Angka3

JNB P1.0,HurufA

MOV P1,#0BFH

JNB P1.3,Angka4

JNB P1.2,Angka5

JNB P1.1,Angka6

JNB P1.0,HurufB

AJMP Start2

Angka1:

MOV A,#31H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka2:

MOV A,#32H

CJNE R0,#01H,Next1

MOV R4,A


(25)

JNB P1.2,$

AJMP Start

Angka3:

MOV A,#33H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufA:

MOV A,#41H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Angka4:

MOV A,#34H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka5:

MOV A,#35H

CJNE R0,#01H,Next1

MOV R4,A

INC R0


(26)

AJMP Start Angka6:

MOV A,#36H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufB:

MOV A,#42H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Next1:

CJNE R0,#02H,Next2

MOV R5,A

INC R0

ACALL Delay ACALL Delay

AJMP Start

Start2:

MOV P1,#0DFH

JNB P1.3,Angka7

JNB P1.2,Angka8

JNB P1.1,Angka9

JNB P1.0,HurufC


(27)

JNB P1.3,RTS

JNB P1.2,Angka0

JNB P1.1,Batal

JNB P1.0,HurufD

AJMP Start

Next2:

CJNE R0,#03H,Next3

MOV R6,A

INC R0

ACALL Delay ACALL Delay

AJMP Start

RTS: ;Ready To Send

MOV R0,#10H

JNB P1.3,$

AJMP Start

Angka7:

MOV A,#37H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka8:

MOV A,#38H

CJNE R0,#01H,Next1

MOV R4,A

INC R0


(28)

AJMP Start Angka9:

MOV A,#39H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufC:

MOV A,#43H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Angka0:

MOV A,#30H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.2,$

AJMP Start

HurufD:

MOV A,#44H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$


(29)

Batal:

JNB P1.1,$

AJMP Inisialisasi Next3:

CJNE R0,#04H,Batal

MOV R7,A

ACALL Delay

AJMP Start


(30)

List Program Mikrokontroler 3

$MOD51

Inisialisasi:

MOV SCON,#50H

MOV TMOD,#20H

MOV TH1,#0FDH

SETB TR1

MOV R0,#01H

MOV R3,#00H

AJMP Start

Terima2: ;ask to send

CLR RI

MOV A,sbuf

CJNE A,#61H,Terima3 CJNE R0,#10H,NoData

AJMP Kirim

Terima3: ;access denied

CJNE A,#67H,Terima4

MOV P2,#00H

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi Terima4:

CJNE A,#66H,Inisialisasi ;access granted


(31)

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi NoData:

MOV A,#45H

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,#65H

CLR TI

MOV SBUF,A

JNB TI,$

AJMP Inisialisasi

Terima: ;address checking

CJNE R3,#00H,Terima2 CLR RI

MOV A,sbuf

CJNE A,#54H,Start

INC R3

AJMP Start Kirim:

MOV A,#45H

CLR TI

MOV SBUF,A

JNB TI,$


(32)

MOV A,R4

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R5

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R6

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,R7

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay

MOV A,#62H

CLR TI

MOV SBUF,A

JNB TI,$

ACALL Delay AJMP Inisialisasi Delay:

MOV R2,#0FFH


(33)

MOV R1,#0FFH

DJNZ R1,$

DJNZ R2,Ulang

RET Start:

JB RI,Terima

MOV P1,#07FH

JNB P1.3,Angka1

JNB P1.2,Angka2

JNB P1.1,Angka3

JNB P1.0,HurufA

MOV P1,#0BFH

JNB P1.3,Angka4

JNB P1.2,Angka5

JNB P1.1,Angka6

JNB P1.0,HurufB

AJMP Start2

Angka1:

MOV A,#31H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka2:

MOV A,#32H

CJNE R0,#01H,Next1

MOV R4,A


(34)

JNB P1.2,$

AJMP Start

Angka3:

MOV A,#33H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufA:

MOV A,#41H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Angka4:

MOV A,#34H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka5:

MOV A,#35H

CJNE R0,#01H,Next1

MOV R4,A

INC R0


(35)

AJMP Start Angka6:

MOV A,#36H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufB:

MOV A,#42H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Next1:

CJNE R0,#02H,Next2

MOV R5,A

INC R0

ACALL Delay ACALL Delay

AJMP Start

Start2:

MOV P1,#0DFH

JNB P1.3,Angka7

JNB P1.2,Angka8

JNB P1.1,Angka9

JNB P1.0,HurufC


(36)

JNB P1.3,RTS

JNB P1.2,Angka0

JNB P1.1,Batal

JNB P1.0,HurufD

AJMP Start

Next2:

CJNE R0,#03H,Next3

MOV R6,A

INC R0

ACALL Delay ACALL Delay

AJMP Start

RTS: ;Ready To Send

MOV R0,#10H

JNB P1.3,$

AJMP Start

Angka7:

MOV A,#37H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.3,$

AJMP Start

Angka8:

MOV A,#38H

CJNE R0,#01H,Next1

MOV R4,A

INC R0


(37)

AJMP Start Angka9:

MOV A,#39H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.1,$

AJMP Start

HurufC:

MOV A,#43H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$

AJMP Start

Angka0:

MOV A,#30H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.2,$

AJMP Start

HurufD:

MOV A,#44H

CJNE R0,#01H,Next1

MOV R4,A

INC R0

JNB P1.0,$


(38)

Batal:

JNB P1.1,$

AJMP Inisialisasi Next3:

CJNE R0,#04H,Batal

MOV R7,A

ACALL Delay

AJMP Start


(39)

LAMPIRAN B


(40)

unit Hotel;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, DB, ADODB, ExtCtrls, Grids, DBGrids, ComCtrls,CPort,CPortCtl;

type

TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator; Label1: TLabel;

ComboBox1: TComboBox; Edit1: TEdit;

DataSource1: TDataSource; ADOTable1: TADOTable;

ADOConnection1: TADOConnection; ADOTable1Nama: TWideStringField; ADOTable1Alamat: TWideStringField; ADOTable1WaktuCheckIn: TDateTimeField; ADOTable1Kamar: TIntegerField;

ADOTable1Password: TIntegerField; ADOTable1UangMuka: TBCDField;


(41)

Label2: TLabel; DBEdit1: TDBEdit; Label3: TLabel; DBEdit2: TDBEdit; Label4: TLabel; DBEdit3: TDBEdit; Label5: TLabel; DBEdit4: TDBEdit; Label6: TLabel; DBEdit5: TDBEdit; Label7: TLabel; DBEdit6: TDBEdit;

ADOTable1WaktuCheckOut: TDateTimeField; ADOTable1Biaya: TBCDField;

ADOTable1Discount: TIntegerField; ADOTable1Tagihan: TBCDField; Label8: TLabel;

DBEdit7: TDBEdit; Label9: TLabel; DBEdit8: TDBEdit; Label10: TLabel; DBEdit9: TDBEdit; Label11: TLabel; DBEdit10: TDBEdit; Label12: TLabel; DBEdit11: TDBEdit; Label13: TLabel; DBEdit12: TDBEdit; Label14: TLabel;


(42)

DBEdit13: TDBEdit; Label15: TLabel; DBEdit14: TDBEdit; Label16: TLabel; DBEdit15: TDBEdit; Label17: TLabel; DBEdit16: TDBEdit; Button1: TButton; ComPort1: TComPort; Button2: TButton; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Button3: TButton; Timer1: TTimer; Button4: TButton; Timer2: TTimer;

procedure DBGrid1TitleClick(Column: TColumn);

procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject);

procedure ComPort1RxChar(Sender: TObject; Count: Integer); procedure Button2Click(Sender: TObject);

procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button4Click(Sender: TObject);


(43)

procedure Timer2Timer(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

implementation

{$R *.dfm}

function RandomPassword(PLen: Integer): string; var

str: string; begin

Randomize;

str := '0123456789'; Result := '';

repeat

Result := Result + str[Random(Length(str)) + 1]; until

(Length(Result) = PLen) end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn); begin


(44)

ADOTable1.IndexFieldNames := Column.FieldName; end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin

If Key = chr(VK_RETURN) Then Begin

Key := #0;

AdoTable1.IndexFieldNames := ComboBox1.Text;

ADOTable1.Locate(ComboBox1.Text,Edit1.Text,[loPartialKey]); End;

end;

procedure TForm1.FormShow(Sender: TObject); Var I : Integer;

begin

ComboBox1.Clear;

For I := 0 To ADOTable1.FieldCount-1 Do

If ADOTable1.Fields[i].DataType = ftWideString

Then ComboBox1.Items.Add(ADOTable1.Fields[i].FieldName); end;

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); Var

Str: String; w: integer; begin

ComPort1.ReadStr(Str,Count); edit3.Text := Str;


(45)

w:=120;

if Str = '%' then edit4.Text := '101' else

if Str = '5' then edit4.text := '102' else

if Str = 'E' then edit4.text := '103' else

if Str = 'b' then begin

ADOTable1.First;

while not ADOTable1.Eof do begin

If

(Edit4.Text = ADOTable1.FieldByName('Kamar').AsString )and (Edit5.Text = ADOTable1.FieldByName('Password').AsString ) Then

begin

Edit6.text := 'benar'; end

else begin end;

ADOTable1.Next; end;

if edit6.Text ='benar' then begin

if edit4.text = '101' then Edit2.Text := 'Rf' else if edit4.text = '102' then Edit2.Text := 'Sf' else if edit4.text = '103' then Edit2.Text := 'Tf';


(46)

edit3.Clear; edit4.Clear; edit6.Clear;

Timer2.Enabled:= true; end

else begin

if edit4.text = '101' then Edit2.Text := 'Rg' else if edit4.text = '102' then Edit2.Text := 'Sg' else if edit4.text = '103' then Edit2.Text := 'Tg'; edit3.Clear;

edit4.Clear; edit6.clear;

Timer2.Enabled:= true; end;

end else

if Str = 'e' then begin

edit5.Clear; edit2.Clear;

timer1.Enabled := false; timer2.Enabled := false; sleep(w);

button3click(self) end

else

edit5.Text := edit5.Text + Str; end;


(47)

procedure TForm1.Button2Click(Sender: TObject); Var

Str : String; begin

Str := Edit2.Text;

Comport1.WriteStr(Str); end;

procedure TForm1.FormActivate(Sender: TObject); begin

Comport1.Open;

Comport1.WriteStr('R'); Comport1.Close;

Comport1.Open; Comport1.WriteStr('a'); end;

procedure TForm1.Button1Click(Sender: TObject); begin

DBEdit5.Text := RandomPassword(4); end;

procedure TForm1.Button3Click(Sender: TObject); var Str: string;

begin

if edit4.text = '101' then Str:= 'S' else if edit4.text = '102' then Str:= 'T' else if edit4.text = '103' then Str:= 'R';


(48)

Comport1.Open;

Comport1.WriteStr(Str); Str:='a';

Comport1.WriteStr(Str); timer1.Enabled := true; end;

procedure TForm1.Timer1Timer(Sender: TObject); var Str: string;

begin

if edit4.text = '101' then Str:= 'S' else if edit4.text = '102' then Str:= 'T' else if edit4.text = '103' then Str:= 'R'; Comport1.Open;

Comport1.WriteStr(Str); Str:='a';

Comport1.WriteStr(Str); end;

procedure TForm1.Button4Click(Sender: TObject); begin

Comport1.Close; edit3.Clear; edit4.clear; end;

procedure TForm1.Timer2Timer(Sender: TObject); var Str: string;


(49)

Str:= edit2.text;

Comport1.WriteStr(Str); edit4.text:= '101';

end;


(50)

LAMPIRAN C


(51)

(52)

1

BAB I

PENDAHULUAN

I.1 Latar Belakang

Aplikasi berbasis mikrokontroler pada berbagai perangkat elektronika berkembang sangat pesat dewasa ini. Berbagai robot canggih, sistem keamanan rumah, telekomunikasi dan sistem komputer banyak menggunakan mikrokontroler sebagai unit pengontrol utama. Perbedaan mikroprosesor dan mikrokontroler terletak pada kelengkapannya, di mana mikrokontroler adalah mikroprosesor yang mempunyai memory dan port I/O sendiri.

Keunggulan lain dari mikrokontroler yaitu dari kompatibilitasnya terhadap komputer, salah satu cara komunikasi antara mikrokontroler dengan komputer adalah melalui serial port(RS-232). Namun serial portmempunyai keterbatasan yaitu hanya dapat berkomunikasi secara point to point. Tujuan dari tugas akhir ini adalah untuk membuat sistem komunikasi RS-232 secara multipoint sehingga dapat mengendalikan beberapa mikrokontroler sekaligus.

Aplikasi dari sistem komunikasi RS-232 secara multipoint diantaranya diterapkan pada bidang perhotelan yaitu untuk mengontrol kunci pada tiap kamar. Cara kerja sistem pengontrolannya yaitu dengan mencocokkan kode PIN ke database yang terdapat di komputer utama.


(53)

2

I.2 Identifikasi Masalah

1. Bagaimana mengendalikan beberapa mikrokontroler melalui sebuah serial port ?

2. Bagaimana membuat database untuk sistem akses pintu dengan password?

I.3. Tujuan

1. Mengendalikan beberapa mikrokontroler pengontrol pintu dari komputer utama melalui sebuah serial port yang mampu berkomunikasi secara multipoint.

2. Membuat database untuk sistem akses pintu dengan password.

I.4 Pembatasan Masalah

1. Sistem komunikasi RS-232 secara multipoint untuk perhotelan diaplikasikan berupa prototype.

2. Human interface device yang digunakan berupa keypad dan berjumlah 3 buah. 3. Database dibuat menggunakan Microsoft Access 2000


(54)

3

I.5 Sistematika Pembahasan

Bab I

Pada bab I dibahas tentang latar belakang, identifikasi masalah, tujuan dan pembatasan masalah pada tugas akhir ini.

Bab II

Pada bab II dibahas tentang landasan teori mengenai mikrokontroler pada umumnya, mengenai mikrokontroler AT89S52 pada khususnya, serta mengenai serial port (RS-232).

Bab III

Pada bab III dibahas tentang perancangan hardware, perancangan software, serta protokol komunikasi antara komputer dengan mikrokontroler.

Bab IV

Pada bab IV dibahas mengenai uji coba dari hardware, software serta uji coba hardware dan software secara keseluruhan.

Bab V

Pada bab V dibahas mengenai kesimpulan dan saran dari pelaksanaan tugas akhir ini.


(55)

47

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

1. RS-232 dapat berkomunikasi secara multipoint dengan menggunakan protokol tugas akhir ini. Dengan kemampuan komunikasi secara multipoint tersebut RS-232 dapat dikembangkan lebih lanjut untuk berbagai aplikasi lain. 2. Database untuk sistem akses pintu dengan password dapat direalisasikan pada

tugas akhir ini.

V.2 Saran

1. Mikrokontroler pengendali dapat dikembangkan lebih jauh sebagai pengendali ruangan seperti pengendali lampu, pengendali pendingin ruangan dll.

2. Sistem komunikasi RS-232 secara multipoint dapat dikembangkan menjadi komunikasi secara multipoint wireless.


(56)

DAFTAR PUSTAKA

1. Budiharto, Widodo, “ Perancangan Sistem dan Aplikasi Mikrokontroler”, Elex Media Komputindo, Jakarta, 2005.

2. Malvino, Albert Paul ; Jerald A. Brown, “Digital Computer Electronics”, Mc Graw Hill, 3rd Edition, 1992.

3. Marcus, Teddy ; Agus Prijono ; Josef Widiadhi, “ Pemrograman Delphi dengan ADOExpress” , Informatika , Bandung, 2005.

4. Setiawan , Rachmad, “ Mikrokontroler MCS-51”, Graha Ilmu, Yogyakarta, 2006.

5. www.atmel.com , 9 Maret 2006. 6. www.senet.com.au , 16 Februari 2006.


(1)

(2)

BAB I

PENDAHULUAN

I.1 Latar Belakang

Aplikasi berbasis mikrokontroler pada berbagai perangkat elektronika berkembang sangat pesat dewasa ini. Berbagai robot canggih, sistem keamanan rumah, telekomunikasi dan sistem komputer banyak menggunakan mikrokontroler sebagai unit pengontrol utama. Perbedaan mikroprosesor dan mikrokontroler terletak pada kelengkapannya, di mana mikrokontroler adalah mikroprosesor yang mempunyai memory dan port I/O sendiri.

Keunggulan lain dari mikrokontroler yaitu dari kompatibilitasnya terhadap komputer, salah satu cara komunikasi antara mikrokontroler dengan komputer adalah melalui serial port(RS-232). Namun serial portmempunyai keterbatasan yaitu hanya dapat berkomunikasi secara point to point. Tujuan dari tugas akhir ini adalah untuk membuat sistem komunikasi RS-232 secara multipoint sehingga dapat mengendalikan beberapa mikrokontroler sekaligus.

Aplikasi dari sistem komunikasi RS-232 secara multipoint diantaranya diterapkan pada bidang perhotelan yaitu untuk mengontrol kunci pada tiap kamar. Cara kerja sistem pengontrolannya yaitu dengan mencocokkan kode PIN ke database yang terdapat di komputer utama.


(3)

I.2 Identifikasi Masalah

1. Bagaimana mengendalikan beberapa mikrokontroler melalui sebuah serial port ?

2. Bagaimana membuat database untuk sistem akses pintu dengan password?

I.3. Tujuan

1. Mengendalikan beberapa mikrokontroler pengontrol pintu dari komputer utama melalui sebuah serial port yang mampu berkomunikasi secara multipoint.

2. Membuat database untuk sistem akses pintu dengan password.

I.4 Pembatasan Masalah

1. Sistem komunikasi RS-232 secara multipoint untuk perhotelan diaplikasikan berupa prototype.

2. Human interface device yang digunakan berupa keypad dan berjumlah 3 buah. 3. Database dibuat menggunakan Microsoft Access 2000


(4)

I.5 Sistematika Pembahasan

Bab I

Pada bab I dibahas tentang latar belakang, identifikasi masalah, tujuan dan pembatasan masalah pada tugas akhir ini.

Bab II

Pada bab II dibahas tentang landasan teori mengenai mikrokontroler pada umumnya, mengenai mikrokontroler AT89S52 pada khususnya, serta mengenai serial port (RS-232).

Bab III

Pada bab III dibahas tentang perancangan hardware, perancangan software, serta protokol komunikasi antara komputer dengan mikrokontroler.

Bab IV

Pada bab IV dibahas mengenai uji coba dari hardware, software serta uji coba hardware dan software secara keseluruhan.

Bab V

Pada bab V dibahas mengenai kesimpulan dan saran dari pelaksanaan tugas akhir ini.


(5)

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

1. RS-232 dapat berkomunikasi secara multipoint dengan menggunakan protokol tugas akhir ini. Dengan kemampuan komunikasi secara multipoint tersebut RS-232 dapat dikembangkan lebih lanjut untuk berbagai aplikasi lain. 2. Database untuk sistem akses pintu dengan password dapat direalisasikan pada

tugas akhir ini.

V.2 Saran

1. Mikrokontroler pengendali dapat dikembangkan lebih jauh sebagai pengendali ruangan seperti pengendali lampu, pengendali pendingin ruangan dll.

2. Sistem komunikasi RS-232 secara multipoint dapat dikembangkan menjadi komunikasi secara multipoint wireless.


(6)

1. Budiharto, Widodo, “ Perancangan Sistem dan Aplikasi Mikrokontroler”, Elex Media Komputindo, Jakarta, 2005.

2. Malvino, Albert Paul ; Jerald A. Brown, “Digital Computer Electronics”, Mc Graw Hill, 3rd Edition, 1992.

3. Marcus, Teddy ; Agus Prijono ; Josef Widiadhi, “ Pemrograman Delphi dengan ADOExpress” , Informatika , Bandung, 2005.

4. Setiawan , Rachmad, “ Mikrokontroler MCS-51”, Graha Ilmu, Yogyakarta, 2006.

5. www.atmel.com , 9 Maret 2006.