DAFTAR PUSTAKA
Paulus Andi Nalwan. Teknik Antarmuka Dan Pemrograman Mikrokontroler AT89C51, Jakarta: Elex Media Komputindo, 2003
www.atmel.com/dyn/resources/prod_documents/doc3390.pdf
Arif Rahman. Seri Pemograman Praktis MS Visual Basic 6, Jakarta: Elex Media Komputindo, 2004 http: elektrokita.blogspot.com RA. Penfold, Dasar-Dasar Elektronika Untuk Pemula, Bandung: Pionir Jaya, 1999
Sulhan Setiawan.Belajar Mikrokontroler, Jakarta: Graha Ilmu 2008
Wasis P.BA, Keterampilan Elektronika, Usaha Nasional, Surabaya, 1981
LAMPIRAN HARDWARE Blok Rangkaian Catu Daya Rangkaian blok catu daya merupakan rangkaian yang terpenting dalam seluruh rangkaian komponen elektronika. Pada bagian blok rangkaian catu daya terdiri dari beberapa komponen pendukung. Adapun rangkaian dari blok rangkaian catu daya dapat di lihat pada gambar L.1. + 12 VDC T1
12 C4
220 VAC
IC 1
D1
0
C1
C2
+ 5 VDC
C3 GND
Gambar L.1. Rangkaian Catu Daya Seperti terlihat pada gambar L.1 keterangan dari masing-masing komponen adalah sebagai berikut : -
T1, adalah komponen transformator yang digunakan untuk menurunkan tegangan tinggi menjadi tegangan rendah, yaitu dari tegangan 220 Volt AC menjadi 12 Volt AC.
-
D1, merupakan komponen dioda bridge tipe W04 yang digunakan untuk mengubah tegangan AC ( bolak – balik ) menjadi tegangan DC ( searah ).
-
C1,C2,C3,C4, di gunakan untuk menyaring tegangan yang masih mengandung tegangan AC sehingga ketika di pasang komponen ini
akan lebih mendekati tegangan yang di keluarkan oleh baterai dengan nilai sebesar 100 nF. -
IC 1, adalah IC regulator LM 7805 digunakan untuk menghasilkan tegangan teregulasi sebesar +5 Volt DC yang akan digunakan untuk catu daya mikrokontroler.
Sistem Minimum AT89S52 Sistem minimum mikrokontroler adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sistem minimum ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Dalam perkembangannya sampai saat ini, sudah banyak produk mikrokontroller yang telah diproduksi oleh berbagai perusahaan pembuat IC (Integrated Circuit) diantara salah satunya adalah jenis mikrokontroller yang digunakan dalam perancangan alat ini yaitu mikrokontroller seri 8052 yang dibuat oleh ATMEL, dengan kode produk AT89S52. Secara fisik, mikrokontroler AT89S52 mempunyai 40 pin, 32 pin diantaranya adalah pin untuk keperluan port masukan atau keluaran. Satu port paralel terdiri dari 8 pin, dengan demikian 32 pin tersebut membentuk 4 buah portparalel, yang masing-masing dikenal dengan Port 0, Port1, Port2 dan Port3. Dengan keistimewaan di atas perancangan dengan menggunakan mikrokontroler AT89S52 menjadi lebih sederhana dan tidak memerlukan komponen pendukung yang lebih banyak lagi.
Mikrokontroler AT89S52 memiliki beberapa fitur, diantaranya : 1. Kompatibel dengan produk MCS-51 2. 8 kybte in system programmable flash memory 3. Dapat diprogram sampai dengan 1000 kali pemograman 4. Tegangan kerja 4.0 – 5.5 V 5. Beroperasi antara 0 – 33 MHz 6. Tiga tingkatan program memory clock 7. 256 x 8 bit RAM internal 8. 32 saluran I/O 9. Delapan buah sumber interupsi 10. Tiga buah timer / counter 16 bit 11. Saluran UART Serial Full Duplex 12. Mode low-power Idle dan Power-Down 13. Interrupt recovery dari mode power-down 14. Watchdog timer
1.2.3 Konfigurasi Pin Mikrokontroler AT89S52 memiliki 40 pin, 32 pin diantaranya adalah directional I/O yang terbagi dalam 4 port. Konfigurasi dari pin-pin tersebut, yaitu :
Gambar L.2. Konfigurasi Pin AT89S52 Adapun keterangan fungsi dari masing-masing pin adalah sebagai berikut : -
Port 0 (39-32) Port 0 merupakan sebuah port 8 bit, bersifat open drain dan dapat digunakan untuk masukan dan keluaran. Port 0 dapat digunakan sebagai high input impedance, ketika logika 1 diberikan ke kaki port tersebut. P0 mempunyai internal pullups.
-
Port 1 (1-8) Port ini merupakan 8 bit jalur I/O dengan internal pull-ups. Keluaran Port 1 dapat dihubungkan ke empat buah TTL. Port 1 juga dapat menerima alamat dan data selama penulisan dan pembacaan flash.
-
Port 2 (21-28) Port ini merupakan 8 bit jalur I/O, dengan internal pull-ups. Keluaran Port 2 dapat dihubungkan ke empat buah TTL. Port 2 mengeluarkan alamat data tinggi selama pengambilan data menuju external memory. Selama pengaksesan ke external memory menggunakan 16 bit alamat (MOVX @DPTR).
-
Port 3 (10-17) Mempunyai 8 bit saluran I/O dengan internal pull-ups. Port 3 mempunyai fungsi sampingan, yaitu: Tabel 2.1. Fasilitas Spesial Port 3 AT89S52 (Sumber: Interfacing Komputer dan Mikrokontroler, 2004) Port Pin
Fungsi sampingan
P3.0
RXD (serial input port)
P3.1
TXD (serial output port)
P3.2
INT0 (external interrupt 0)
P3.3
INT1 (external interrupt 1)
P3.4
T0 (timer 0 external input)
P3.5
T1 (timer 1 external input)
P3.6
WR (external data memory write strobe)
P3.7
RD (external data memory read strobe)
-
PSEN (Program Store Enable) (29) PSEN adalah sinyal kontrol yang mengizinkan untuk mengakses program (code) memori eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan “0” (LOW) pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai “1” (HIGH) pada pembacaan program memori internal.
-
ALE (Address Latch Enable)(30) ALE digunakan untuk men-demultiplex address (alamat) dan data bus. ketika menggunakan program memori eksternal, port 0 akan berfungsi sebagai address (alamat) dan data bus. Pada setengah paruh pertama memori cycle ALE akan bernilai “1” (HIGH) sehingga mengizinkan penulisan address (alamat) pada register eksternal. Dan pada setengah paruh berikutnya akan bernilai “1” (HIGH) sehingga port 0 dapat digunakan sebagai data bus.
-
EA (External Access) (31) Jika EA diberi input “1” (HIGH), maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input “0” (LOW), maka AT89S52
menjalankan
program
memori
eksternal
(PSEN
akan
bernilai“0”). -
RST (Reset) (9) Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka sistem akan di-reset dan register internal AT89S52 akan berisi nilai default tertentu. Proses reset merupakan proses untuk mengembalikan
sistem kekondisi semula. Reset tidak mempengaruhi internal program memory. Reset terjadi jika pin RST bernilai high selama minimal dua siklus lalu kembali bernilai low. Power on reset merupakan proses reset yang berlangsung secara otomatis pada saat sistem pertama kali diberi suplai. Proses ini mempengaruhi semua register dan internal data memory. Untuk mendapatkan proses ini, maka pin RST harus diberi tambahan rangkaian seperti : -
VCC (40) VCC merupakan masukan sumber tegangan positif bagi mikrokontroler
-
XTAL1 (19) XTAL1 berfungsi sebagai masukan dari rangkaian osilasi mikrokontroler.
-
XTAL2 (18) XTAL2 berfungsi sebagai keluaran dari rangkaian osilasi mikrokontroler.
Mikrokontroler ini mempunyai sumber detak dalam (on chip oscilator), yang digunakan untuk clock bagi AT89S52. Diperlukan tambahan kristal atau resonator keramik dalam penggunaan internal oscillator, yang diletakkan antara pin XTAL1 dan XTAL2 dengan sebuah kapasitor menuju ground. Kristal yang digunakan memiliki frekwensi antara 3-24 MHz. Sedangkan kapasitornya bernilai 30 pF. Bila menggunakan external clock, maka sumber dihubungkan dengan XTAL1 dan XTAL 2 tidak berhubungan.
LAMPIRAN LISTING PROGRAM Private Sub cmdlogout_Click() Unload Me End Sub Private Sub cmdlogin_Click() ‘program melakukan proses verifikasi password dan username apakah verifikasi yang di berikan sesuai dengan yang sudah di deklarasikan If Me.txtuser = "teguh" And Me.txtpass = "teguh" Then MsgBox ("Welcome " + Me.txtuser.Text) Form_Main.Show Unload Me Else MsgBox ("User '" + Me.txtuser.Text + "' Is Not Have Permission To Access") Me.txtpass = "" Me.txtuser = "" End If End Sub Private Sub cmdcancel_Click() Unload Me End Sub Private Sub Form_Load() Dim i As Integer, Settings As String, Offset As Integer ' Load Port Settings For i = 1 To 10 cbPort.AddItem "COM" & Trim$(Str$(i)) Next i ' Load Speed Settings cbBitsPerSecond.AddItem "600" cbBitsPerSecond.AddItem "1200" cbBitsPerSecond.AddItem "2400" cbBitsPerSecond.AddItem "4800" cbBitsPerSecond.AddItem "9600" cbBitsPerSecond.AddItem "14400" cbBitsPerSecond.AddItem "19200" cbBitsPerSecond.AddItem "28800"
' Load Data Bit Settings cbDataBits.AddItem "5" cbDataBits.AddItem "6" cbDataBits.AddItem "7" cbDataBits.AddItem "8" ' Load Parity Settings cbParity.AddItem "Even" cbParity.AddItem "Mark" cbParity.AddItem "None" cbParity.AddItem "Odd" cbParity.AddItem "Space" ' Load Stop Bit Settings cbStopBits.AddItem "1" cbStopBits.AddItem "1.5" cbStopBits.AddItem "2" 'Load Flow control setting cbFlowControl.AddItem "None" cbFlowControl.AddItem "Xon / Xoff" cbFlowControl.AddItem "RST" cbFlowControl.AddItem "Xon / RST" ' Set Default Settings Settings = Form_Main.MSComm1.Settings If InStr(Settings, ".") > 0 Then Offset = 2 Else Offset = 0 End If cbBitsPerSecond.Text = Left$(Settings, Len(Settings) - 6 - Offset) Select Case Mid$(Settings, Len(Settings) - 4 - Offset, 1) Case "e" cbParity.ListIndex = 0 Case "m" cbParity.ListIndex = 1 Case "n" cbParity.ListIndex = 2 Case "o" cbParity.ListIndex = 3 Case "s" cbParity.ListIndex = 4 End Select cbDataBits.Text = Mid$(Settings, Len(Settings) - 2 - Offset, 1) cbStopBits.Text = Right$(Settings, 1 + Offset) cbPort.ListIndex = Form_Main.MSComm1.CommPort - 1 cbFlowControl.ListIndex = Mid(Form_Main.MSComm1.Handshaking, 1, 1) End Sub
If Text1.Text = "OK0p0" Then Me.Shape1.Visible = False Me.Shape2.Visible = False Me.Shape3.Visible = False Me.Shape4.Visible = False 'Me.Label1.Visible = True Me.Label2.Visible = False Me.Label3.Visible = False Me.Label4.Visible = False Me.Label5.Visible = False Shp_Normal(0).BackColor = vbGreen Shp_Normal(1).BackColor = vbGreen Shp_Normal(2).BackColor = vbGreen Shp_Normal(3).BackColor = vbGreen Shp_Alarm(0).BackColor = vbWhite Shp_Alarm(1).BackColor = vbWhite Shp_Alarm(2).BackColor = vbWhite Shp_Alarm(3).BackColor = vbWhite Me.Text2.Text = "AIR BERADA PADA KONDISI NORMAL" ElseIf Text1.Text = "OK0n0" Then Me.Shape1.Visible = True Me.Shape1.FillColor = vbBlue Me.Shape1.FillStyle = 0 Me.Shape2.Visible = False Me.Shape3.Visible = False Me.Shape4.Visible = False 'Me.Label1.Visible = False Me.Label2.Visible = True Me.Label3.Visible = False Me.Label4.Visible = False Me.Label5.Visible = False Shp_Normal(0).BackColor = vbGreen Shp_Normal(1).BackColor = vbGreen Shp_Normal(2).BackColor = vbGreen Shp_Normal(3).BackColor = vbWhite Shp_Alarm(0).BackColor = vbWhite Shp_Alarm(1).BackColor = vbWhite Shp_Alarm(2).BackColor = vbWhite Shp_Alarm(3).BackColor = vbRed Me.Text2.Text = "AIR BERADA PADA KONDISI LEVEL 1"
ElseIf Text1.Text = "OK0o0" Then Me.Shape2.Visible = True Me.Shape2.FillColor = vbBlue Me.Shape2.FillStyle = 0 Me.Shape1.Visible = False Me.Shape3.Visible = False Me.Shape4.Visible = False 'Me.Label1.Visible = False Me.Label3.Visible = True Me.Label2.Visible = False Me.Label4.Visible = False Me.Label5.Visible = False Shp_Normal(0).BackColor = vbGreen Shp_Normal(1).BackColor = vbGreen Shp_Normal(2).BackColor = vbWhite Shp_Normal(3).BackColor = vbGreen Shp_Alarm(0).BackColor = vbWhite Shp_Alarm(1).BackColor = vbWhite Shp_Alarm(2).BackColor = vbRed Shp_Alarm(3).BackColor = vbRed Me.Text2.Text = "AIR BERADA PADA KONDISI LEVEL 2" ElseIf Text1.Text = "OK0h0" Then Me.Shape3.Visible = True Me.Shape3.FillColor = vbBlue Me.Shape3.FillStyle = 0 Me.Shape1.Visible = False Me.Shape2.Visible = False Me.Shape4.Visible = False 'Me.Label1.Visible = False Me.Label4.Visible = True Me.Label2.Visible = False Me.Label3.Visible = False Me.Label5.Visible = False Shp_Normal(0).BackColor = vbGreen Shp_Normal(1).BackColor = vbWhite Shp_Normal(2).BackColor = vbGreen Shp_Normal(3).BackColor = vbGreen Shp_Alarm(0).BackColor = vbWhite Shp_Alarm(1).BackColor = vbRed Shp_Alarm(2).BackColor = vbRed Shp_Alarm(3).BackColor = vbRed Me.Text2.Text = "AIR BERADA PADA KONDISI LEVEL 3"
ElseIf Text1.Text = "OK0l0" Then Me.Shape4.Visible = True Me.Shape4.FillColor = vbBlue Me.Shape4.FillStyle = 0 Me.Shape1.Visible = False Me.Shape2.Visible = False Me.Shape3.Visible = False 'Me.Label1.Visible = False Me.Label5.Visible = True Me.Label4.Visible = False Me.Label3.Visible = False Me.Label2.Visible = False Shp_Normal(0).BackColor = vbWhite Shp_Normal(1).BackColor = vbGreen Shp_Normal(2).BackColor = vbGreen Shp_Normal(3).BackColor = vbGreen Shp_Alarm(0).BackColor = vbRed Shp_Alarm(1).BackColor = vbRed Shp_Alarm(2).BackColor = vbRed Shp_Alarm(3).BackColor = vbRed Me.Text2.Text = "AIR BERADA PADA KONDISI LEVEL 4" MsgBox ("Water Is Full, The System Will Open The Door Warning ...!")