Sistem Komunikasi RS-232 Secara Multipoint Untuk Aplikasi Perhotelan.
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.