SlideShare a Scribd company logo
1 of 15
###################################################
# Program Delphi : Menghidupkan Dan Mematikan Led #
###################################################
Pembuatan program Bahasa Delphi komunikasi paralel dengan menggunakan komponen io.dll,
untuk menghidupkan dan mematikan LED.
Perhatikan pada gambar 20 tersebut. Delapan buah LED terhubung ke port 0, yang difungsikan
sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika LOW ‘0’ melalui
port 0, dan LED akan padam bila diberi logika HIGH ‘1’ melalui port 0.
Gambar 20. Rangkaian LED
Percobaan ON OFF 8 buah LED secara bersamaan
Rencanakan program untuk menghidupkan dan mematikan LED 8 buah, dengan menekan
tombol ON dan OFF, pada komunikasi paralel. Lakukan sesuai dengan langkah-langkah berikut
ini:
1. Hubungkan kabel paralel pada port paralel komputer ke rangkaian LED.
2. Rencanakan program dengan tampilan sebagai berikut.
Gambar 21. Tombol ON dan OFF
LISTING PROGRAM
implementation
{$R *.dfm}
procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
portout($378,0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
portout($378,255);
end;
######################################
# Program Visual Basic : Rangkaian LED #
######################################
Dibutuhkan suatu cara agar VB bisa melakukan akses perangkat keras. Salah satunya
dengan lib io.dll, yang bisa didownload dari http://www.geekhideout.com/iodll.shtml secara
gratis, yang harus disimpan atau ditempatkan pada folder C:/windows/system32 pada komputer.
Cara penggunaannya sangat mudah, pertama definisikan terlebih dahulu fungsi dan
prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian modul khusus VB
sebagai berikut:
Public Declare Sub PortOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "io.dll" _
(ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "io.dll" _
(ByVal Port As Integer) As Integer
Public Declare Function PortDWordIn Lib "io.dll" _
(ByVal Port As Integer) As Long
Public Declare Sub SetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub ClrPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "io.dll" () As Boolean
Kedua tinggal penggunaan fungsi dan prosedur tersebut secara biasa, fungsi PortIn
membutuhkan dua parameter yaitu alamat perangkat keras dan variabel hasil pembacaan data
dari perangkat keras dengan tipe data byte. Sedangkan prosedur PortOut membutuhkan dua
parameter juga yaitu alamat perangkat keras dan nilai atau variabel yang menyimpan nilai yang
akan dikirimkan ke perangkat keras yang bersangkutan.
PortOut : Mengirim data dalam format byte (8-bit) ke port tertentu.
PortWordOut : Mengirim data dalam format word (16-bit) ke port tertentu.
PortDWordOut : Mengirim data dalam format double word (32-bit) ke port tertentu.
PortIn : Membaca data falam format byte (8-bit) dari port tertentu.
PortWordIn : Membaca data falam format word (16-bit) dari port tertentu.
PortDWordIn : Membaca data falam format double word (32-bit) dari port tertentu.
GetPortBit : Membaca status dari bit tertentu.
SetPortBit : Set bit (=1) pada port tertentu.
ClrPortBit : Reset bit (=0) pada port tertentu.
NotPortBit : Lakukan inversi (NOT) bit pada port tertentu
RightPortShift : Geser bit dari port tertentu ke kanan, LSBMSB.
LeftPortShift : Geser bit dari port tertentu ke kiri, MSB LSB.
IsDriverInstalled : Akan memberikan nilai bukan-NOL jika io.dll sudah terinstal dan
berfungsi. Tujuan utama dari fungsi ini adalah untuk memastikan
bahwa penggerak mode kernel pada NT/2000/XP telah diinstal dan
dapat diakses.
Pemograman LED Driver adalah sebuah program yang digunakan untuk melakukan
pengontrolan nyala LED melalui port paralel. Program ini memerlukan rangkaian LED driver
yang dipasangkan pada port paralel dan program LED driver untuk menjalankannya.
Rangkaian LED Driver berikut digunakan untuk interfacing LED dengan port Paralel :
Gambar 25. Rangkaian LED Driver
PEMOGRAMAN LED DRIVER untuk Menghidupkan dan mematikan LED
Program ini digunakan untuk mematikan dan menghidupkan LED-LED yang terpasang pada
pin-pin data secara bersama-sama. Menggunakan bantuan komponen CheckBox, Anda bisa
mengganti dengan komponen lainnya selama bisa digunakan untuk proses Toggle (ON-OFF
secara bergantian). Status dari LED langsung ditunjukkan pada komponen tersebut.
Gambar 26. Tampilan Program menghidupkan dan mematikan LED
KOMPONEN VISUAL BASIC
Komponen Properti Subroutin
Form Name : Form1
Caption : Led Driver1
Private Sub Form_Load()
CheckBox Name : Check1
Caption : ON/OFF
Private Sub Check1_Click()
CommandButton Name : Command1
Caption : Keluar
Private Sub Command1_Click()
LISTING PROGRAM
Private Sub Form_Load()
If Not IsDriverInstalled Then
MsgBox "error", vbOKOnly
Unload Me
End If
End Sub
Private Sub Check1_Click()
If Check1.Value = 1 Then
PortOut &H378, &HFF
Check1.Caption = "Lampu ON semua"
Else
PortOut &H378, &H0
Check1.Caption = "Lampu OFF semua"
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
CONTOH PROGRAM
################################################
# Program C : Antarmuka LCD dengan Port Paralel #
################################################
Modul LCD yang tersedia dalam berbagai macam seperti 8x1, 8x2 16x1, 16x2, 20x2, 20x4, 40x4. Di sini
kita telah menggunakan 16x2 - yang berarti 2 baris 16 karakter. Ini adalah Hitachi HD44780 modul yang
kompatibel, memiliki 16 pin termasuk 2 pin untuk lampu latar.
Tabel berikut memberikan struktur pin modul LCD. Modul LCD tanpa backlight hanya akan memiliki 14
pin. Jika Anda menggunakan LCD seperti, mengabaikan pin 15 dan 16.
Tabel 7. Pin LCD
Untuk program modul LCD, pertama kita harus menginisialisasi LCD dengan mengirimkan beberapa kata
kontrol. RS harus rendah dan E harus tinggi ketika kita mengirim kontrol. R / W pin 0 berarti data
menulis atau kontrol ke LCD dan R / W pin 1 berarti membaca data dari LCD. Untuk mengirim data ke
LCD, membuat RS tinggi, R / W rendah, menempatkan data di pin 7 sampai 14 dan membuat E pin tinggi
dan rendah sekali. Anda dapat memahami metode yang tepat setelah melihat kode, kemudian dalam
tutorial ini. Di sini, kita akan menulis pada modul LCD dan tidak membaca kembali. Jadi, R / W adalah
secara langsung terhubung ke ground. Kita tidak perlu harus masukan data melalui, sehingga semua pin
output yang digunakan dalam aplikasi kita. Data pin LCD yang terhubung ke pin data port. Strobe sinyal
(Pin 1 dari konektor D25) diberikan ke E (Pin 6 LCD), Pilih printer (Pin 17 dari D25) terhubung ke RS (pin 4
dari LCD).
Gambar 17. Rangkaian Modul LCD Dengan DB25
Dalam diagram di atas, modul LCD dihubungkan ke port LPT menggunakan D25 konektor laki-laki.
Nomor pin 3 dari LCD adalah untuk menyesuaikan kontras, dihubungkan sedemikian rupa sehingga
dapat bervariasi dari 0V ke 5V.
Jika semuanya OK, Anda harus mendapatkan modul LCD sebagai berikut ketika berada dalam posisi ON.
Gambar 18. LCD Dalam Posisi ON
Jika Anda mendapatkan layar ini, maka kita dapat memulai pemrograman. Jika tidak periksa koneksi
Anda, cobalah dengan memvariasikan potensiometer 10K. Jika Anda mendapatkan tampilan ini juga,
Anda bisa mendapatkan kejelasan maksimum dengan memvariasikan pot. Bagi saya, pot yang
diperlukan untuk menjadi hampir 0V. Jadi, itu adalah OK jika Anda tidak menggunakan pot juga, hanya
menghubungkan pin 3 ke ground.
Tabel berikut menjelaskan bagaimana untuk menulis kata-kata control Ketika RS = 0 dan R / W = 0, data
dalam pin D0 untuk D7 akan memiliki arti sebagai berikut.
Tabel 8. Deskripsi Kontrol LCD
LISTING PROGRAM
#include <dos.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#define PORTADDRESS 0x378 /* Enter Your Port Address Here */
#define DATA PORTADDRESS+0
#define STATUS PORTADDRESS+1
#define CONTROL PORTADDRESS+2
void lcd_init(void);
void lcd_write(char char2write);
void lcd_putch(char char2write);
void lcd_puts(char * str2write);
void lcd_goto(int row, int column);
void lcd_clear(void);
void lcd_home(void);
void lcd_cursor(int cursor);
void lcd_entry_mode(int mode);
void main(void)
{
lcd_init();
lcd_goto(1,1);
lcd_puts("Welcome To");
lcd_goto(1,0);
lcd_puts("electroSofts.com");
while(!kbhit() ) //wait until a key is pressed...
{}
}
void lcd_init()
{
outportb(CONTROL, inportb(CONTROL) & 0xDF);
//config data pins as output
outportb(CONTROL, inportb(CONTROL) | 0x08);
//RS is made high: control (register select)
lcd_write(0x0f);
delay(20);
lcd_write( 0x01);
delay(20);
lcd_write( 0x38);
delay(20);
}
void lcd_write(char char2write)
{
outportb(DATA, char2write);
outportb(CONTROL,inportb(CONTROL) | 0x01); /* Set Strobe */
delay(2);
outportb(CONTROL,inportb(CONTROL) & 0xFE); /* Reset Strobe */
delay(2);
}
void lcd_putch(char char2write)
{
outportb(CONTROL, inportb(CONTROL) & 0xF7);
//RS=low: data
lcd_write(char2write);
}
void lcd_puts(char *str2write)
{
outportb(CONTROL, inportb(CONTROL) & 0xF7);
//RS=low: data
while(*str2write)
lcd_write(*(str2write++));
}
void lcd_goto(int row, int column)
{
outportb(CONTROL, inportb(CONTROL) | 0x08);
if(row==2) column+=0x40;
/* Add these if you are using LCD module with 4 columns
if(row==2) column+=0x14;
if(row==3) column+=0x54;
*/
lcd_write(0x80 | column);
}
void lcd_clear()
{
outportb(CONTROL, inportb(CONTROL) | 0x08);
lcd_write(0x01);
}
void lcd_home()
{
outportb(CONTROL, inportb(CONTROL) | 0x08);
lcd_write(0x02);
}
void lcd_entry_mode(int mode)
{
/*
if you dont call this function, entry mode sets to 2 by default.
mode: 0 - cursor left shift, no text shift
1 - no cursor shift, text right shift
2 - cursor right shift, no text shift
3 - no cursor shift, text left shift
*/
outportb(CONTROL, inportb(CONTROL) | 0x08);
lcd_write(0x04 + (mode%4));
}
void lcd_cursor(int cursor)
{
/*
set cursor: 0 - no cursor, no blink
1 - only blink, no cursor
2 - only cursor, no blink
3 - both cursor and blink
*/
outportb( CONTROL, inportb(CONTROL) | 0x08 );
lcd_write( 0x0c + (cursor%4));
}
Dan Output Program Seperti Berikut :
Gambar 19. Output
APLIKASI SEVEN SEGMENT TERMULTIPLEKS DENGAN BASCOM
Posted by iswanto
Rangkaian seven segment termultipleks Seven Segment adalah rangkaian untuk menggerakkan 4 buah
penampil 7 segment secara langsung dari port keluaran mikrokontroller dengan data input Seven
Segment.Lebih jelas klik disini
4.1. APLIKASI SEVEN SEGMENT TERMULTIPLEKS
Rangkaian seven segment termultipleks Seven Segment adalah rangkaian untuk menggerakkan 4 buah
penampil 7 segment secara langsung dari port keluaran mikrokontroller dengan data input Seven
Segment.
Gambar 4.1. Rangkaian aplikasi penggerak seven segmen termultipleks
4.4.1. PEMROGRAMAN SEVENT SEGMENT TERMULTIPLEKS
Setelah rangkaian sevent segment dibuat dan dihubungkan dengan port pararel mikrokontroller, maka
sekarang saatnya Anda membuat program yang digunakan untuk menampilkan data 1512 dan 4123
pada seven segment.
Program sebagai berikut ini
RST
P1_3
10
9
7
5
4
2
1
8
VCC
P2.3
P2.0
P0.1
P1_1
P0.2
R2
4K7
P1_7
P0.2
X1
12MHz
VCC
RST
VCC
RST
RESET
RST
U5
4511
7
1
2
6
3
4
5
13
12
11
10
9
15
14
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
U5
4511
7
1
2
6
3
4
5
13
12
11
10
9
15
14
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
C3
10u
P2.2
R_PULL UP
1
2
3
4
5
P1_2
P1_0
D3
1N4002
AC
VCC
P1_5
P0.1
P1_4
VCC
C7
30p
RST
VCC
JP4
HEADER 5
1
2
3
4
5
GND
RST
10
9
7
5
4
2
1
8
VCC
P0.3
P2.1
U5
4511
7
1
2
6
3
4
5
13
12
11
10
9
15
14
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
10
9
7
5
4
2
1
8
10
9
7
5
4
2
1
8
P1_6
C6
30p
VCC
P0.0
P0.0
RST
VCC
U5
4511
7
1
2
6
3
4
5
13
12
11
10
9
15
14
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
U8
AT89S51
9
18
19
29
30
31
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
PSEN
ALE/PROG
EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P0.3
VCC
RSTRST
'--------------------------------------------------------
'Program Bab 4.5 7-Segment Multiplekser Menyala
'--------------------------------------------------------
'DEKLARASI Cristal
'--------------------------------------------------------
$crystal = 12000000
'--------------------------------------------------------
'DEKLARASI Header
$regfile = "REG51.dat"
'--------------------------------------------------------
'DEKLARASI VARIABEL
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Dim Dataku As Integer
'--------------------------------------------------------
'DEKLARASI RUTIN
Declare Sub Displaysegment()
Declare Sub Segment()
'--------------------------------------------------------
'rutin utama
Do
Dataku = 1512
Call Displaysegment()
Wait 5
Dataku = 4385
Call Displaysegment()
Wait 5
Loop
End
'--------------------------------------------------------
' Rutin BCD
Sub Displaysegment()
Data3 = Dataku / 1000
Ribuan1 = Data3 * 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 / 100
Ratusan1 = Data2 * 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 / 10
Puluhan1 = Data1 * 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
P0 = 14
Call Segment()
Datae = Data2
P0 = 13
Call Segment()
Datae = Data1
P0 = 11
Call Segment()
Datae = Data0
P0 = 7
Call Segment()
End Sub
'--------------------------------------------------------
' Rutin Segment
Sub Segment()
Select Case Datae
Case 0 : P2 = 0
Case 1 : P2 = 1
Case 2 : P2 = 2
Case 3 : P2 = 3
Case 4 : P2 = 4
Case 5 : P2 = 5
Case 6 : P2 = 6
Case 7 : P2 = 7
Case 8 : P2 = 8
Case 9 : P2 = 9
End Select
End Sub

More Related Content

Viewers also liked

Running Text on LCD ATMEGA 8535
Running Text on LCD ATMEGA 8535Running Text on LCD ATMEGA 8535
Running Text on LCD ATMEGA 8535Chardian Arguta
 
Delphi presentation
Delphi  presentationDelphi  presentation
Delphi presentationJoannaVall
 
Mengidentifikasi kebutuhan cctv
Mengidentifikasi kebutuhan cctvMengidentifikasi kebutuhan cctv
Mengidentifikasi kebutuhan cctvammar alhafiz
 
Cara membuat kincir angin dan kincir air
Cara membuat kincir angin dan kincir airCara membuat kincir angin dan kincir air
Cara membuat kincir angin dan kincir airdhian12005171
 
How to Make a Pinwheel
How to Make a PinwheelHow to Make a Pinwheel
How to Make a PinwheelAliff Aniki
 
Cara membuat simulasi lcd running text dengan menggunakan proteus
Cara membuat simulasi lcd running text dengan menggunakan proteusCara membuat simulasi lcd running text dengan menggunakan proteus
Cara membuat simulasi lcd running text dengan menggunakan proteusFilla Fidyana
 
Pembuatan mobil mobilan sederhana
Pembuatan mobil mobilan sederhanaPembuatan mobil mobilan sederhana
Pembuatan mobil mobilan sederhanaErru Azhar
 
Percobaan sederhana
Percobaan sederhanaPercobaan sederhana
Percobaan sederhanawahyukoyosss
 
Pembangkit Listrik Sederhana Tenaga Biogas
Pembangkit Listrik Sederhana Tenaga BiogasPembangkit Listrik Sederhana Tenaga Biogas
Pembangkit Listrik Sederhana Tenaga BiogasAnnisa V
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduinoavikdhupar
 

Viewers also liked (12)

Running Text on LCD ATMEGA 8535
Running Text on LCD ATMEGA 8535Running Text on LCD ATMEGA 8535
Running Text on LCD ATMEGA 8535
 
Delphi presentation
Delphi  presentationDelphi  presentation
Delphi presentation
 
Pinwheel Powerpoint
Pinwheel PowerpointPinwheel Powerpoint
Pinwheel Powerpoint
 
Mengidentifikasi kebutuhan cctv
Mengidentifikasi kebutuhan cctvMengidentifikasi kebutuhan cctv
Mengidentifikasi kebutuhan cctv
 
Cara membuat kincir angin dan kincir air
Cara membuat kincir angin dan kincir airCara membuat kincir angin dan kincir air
Cara membuat kincir angin dan kincir air
 
How to Make a Pinwheel
How to Make a PinwheelHow to Make a Pinwheel
How to Make a Pinwheel
 
Cara membuat simulasi lcd running text dengan menggunakan proteus
Cara membuat simulasi lcd running text dengan menggunakan proteusCara membuat simulasi lcd running text dengan menggunakan proteus
Cara membuat simulasi lcd running text dengan menggunakan proteus
 
Kincir angin
Kincir anginKincir angin
Kincir angin
 
Pembuatan mobil mobilan sederhana
Pembuatan mobil mobilan sederhanaPembuatan mobil mobilan sederhana
Pembuatan mobil mobilan sederhana
 
Percobaan sederhana
Percobaan sederhanaPercobaan sederhana
Percobaan sederhana
 
Pembangkit Listrik Sederhana Tenaga Biogas
Pembangkit Listrik Sederhana Tenaga BiogasPembangkit Listrik Sederhana Tenaga Biogas
Pembangkit Listrik Sederhana Tenaga Biogas
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 

Similar to Program delphi

Bab 5 Pengolahan Input Output
Bab 5  Pengolahan Input OutputBab 5  Pengolahan Input Output
Bab 5 Pengolahan Input OutputBeny Abd
 
LAPORAN PROJEK JULI-AGUSTUS .pptx
LAPORAN PROJEK JULI-AGUSTUS .pptxLAPORAN PROJEK JULI-AGUSTUS .pptx
LAPORAN PROJEK JULI-AGUSTUS .pptxzakkyppks25
 
Tugas sistem digital 7 segmen
Tugas sistem digital 7 segmenTugas sistem digital 7 segmen
Tugas sistem digital 7 segmenHadri Fanzs
 
Draft decoder kelompok 1
Draft decoder kelompok 1Draft decoder kelompok 1
Draft decoder kelompok 1Asistenpelatih
 
20229 laporan resmi viii
20229 laporan resmi viii20229 laporan resmi viii
20229 laporan resmi viiihawaipurba
 
MODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIKMODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIKDidik Supriyono
 
Modul arduino iii
Modul arduino iiiModul arduino iii
Modul arduino iiisutono stn
 
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdfMODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdfAzizahFajar
 
Project Sistem Pegukuran Arduino
Project Sistem Pegukuran ArduinoProject Sistem Pegukuran Arduino
Project Sistem Pegukuran ArduinoYasyfiFai
 
Sistem pengukuran berbasis arduino
Sistem pengukuran berbasis arduinoSistem pengukuran berbasis arduino
Sistem pengukuran berbasis arduinoAlyaPenta1
 
Light dependent resistor (ldr)
Light dependent resistor (ldr)Light dependent resistor (ldr)
Light dependent resistor (ldr)Kania Sawitri
 

Similar to Program delphi (20)

Bab 5 Pengolahan Input Output
Bab 5  Pengolahan Input OutputBab 5  Pengolahan Input Output
Bab 5 Pengolahan Input Output
 
Decoder kelompok 1
Decoder kelompok 1Decoder kelompok 1
Decoder kelompok 1
 
LAPORAN PROJEK JULI-AGUSTUS .pptx
LAPORAN PROJEK JULI-AGUSTUS .pptxLAPORAN PROJEK JULI-AGUSTUS .pptx
LAPORAN PROJEK JULI-AGUSTUS .pptx
 
Tugas sistem digital 7 segmen
Tugas sistem digital 7 segmenTugas sistem digital 7 segmen
Tugas sistem digital 7 segmen
 
Draft decoder kelompok 1
Draft decoder kelompok 1Draft decoder kelompok 1
Draft decoder kelompok 1
 
6 modul avr
6 modul avr6 modul avr
6 modul avr
 
20229 laporan resmi viii
20229 laporan resmi viii20229 laporan resmi viii
20229 laporan resmi viii
 
Bahasa assemler
Bahasa assemlerBahasa assemler
Bahasa assemler
 
Laporan led
Laporan ledLaporan led
Laporan led
 
MODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIKMODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIK
 
Otomatisasi 4
Otomatisasi 4Otomatisasi 4
Otomatisasi 4
 
Modul Praktikum 2
Modul Praktikum 2Modul Praktikum 2
Modul Praktikum 2
 
Modul praktikum instruksi dasar
Modul praktikum instruksi dasarModul praktikum instruksi dasar
Modul praktikum instruksi dasar
 
Modul arduino iii
Modul arduino iiiModul arduino iii
Modul arduino iii
 
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdfMODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
 
RPP VEDC
RPP VEDCRPP VEDC
RPP VEDC
 
Project Sistem Pegukuran Arduino
Project Sistem Pegukuran ArduinoProject Sistem Pegukuran Arduino
Project Sistem Pegukuran Arduino
 
Pemrograman sap 1
Pemrograman sap 1Pemrograman sap 1
Pemrograman sap 1
 
Sistem pengukuran berbasis arduino
Sistem pengukuran berbasis arduinoSistem pengukuran berbasis arduino
Sistem pengukuran berbasis arduino
 
Light dependent resistor (ldr)
Light dependent resistor (ldr)Light dependent resistor (ldr)
Light dependent resistor (ldr)
 

Program delphi

  • 1. ################################################### # Program Delphi : Menghidupkan Dan Mematikan Led # ################################################### Pembuatan program Bahasa Delphi komunikasi paralel dengan menggunakan komponen io.dll, untuk menghidupkan dan mematikan LED. Perhatikan pada gambar 20 tersebut. Delapan buah LED terhubung ke port 0, yang difungsikan sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika LOW ‘0’ melalui port 0, dan LED akan padam bila diberi logika HIGH ‘1’ melalui port 0. Gambar 20. Rangkaian LED
  • 2. Percobaan ON OFF 8 buah LED secara bersamaan Rencanakan program untuk menghidupkan dan mematikan LED 8 buah, dengan menekan tombol ON dan OFF, pada komunikasi paralel. Lakukan sesuai dengan langkah-langkah berikut ini: 1. Hubungkan kabel paralel pada port paralel komputer ke rangkaian LED. 2. Rencanakan program dengan tampilan sebagai berikut. Gambar 21. Tombol ON dan OFF LISTING PROGRAM implementation {$R *.dfm} procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll'; procedure TForm1.Button1Click(Sender: TObject); begin portout($378,0); end; procedure TForm1.Button2Click(Sender: TObject); begin portout($378,255); end;
  • 3. ###################################### # Program Visual Basic : Rangkaian LED # ###################################### Dibutuhkan suatu cara agar VB bisa melakukan akses perangkat keras. Salah satunya dengan lib io.dll, yang bisa didownload dari http://www.geekhideout.com/iodll.shtml secara gratis, yang harus disimpan atau ditempatkan pada folder C:/windows/system32 pada komputer. Cara penggunaannya sangat mudah, pertama definisikan terlebih dahulu fungsi dan prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian modul khusus VB sebagai berikut: Public Declare Sub PortOut Lib "io.dll" _ (ByVal Port As Integer, ByVal Data As Byte) Public Declare Sub PortWordOut Lib "io.dll" _ (ByVal Port As Integer, ByVal Data As Integer) Public Declare Sub PortDWordOut Lib "io.dll" _ (ByVal Port As Integer, ByVal Data As Long) Public Declare Function PortIn Lib "io.dll" _ (ByVal Port As Integer) As Byte Public Declare Function PortWordIn Lib "io.dll" _ (ByVal Port As Integer) As Integer Public Declare Function PortDWordIn Lib "io.dll" _ (ByVal Port As Integer) As Long Public Declare Sub SetPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Sub ClrPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Sub NotPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Function GetPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) As Boolean Public Declare Function RightPortShift Lib "io.dll" _
  • 4. (ByVal Port As Integer, ByVal Val As Boolean) As Boolean Public Declare Function LeftPortShift Lib "io.dll" _ (ByVal Port As Integer, ByVal Val As Boolean) As Boolean Public Declare Function IsDriverInstalled Lib "io.dll" () As Boolean Kedua tinggal penggunaan fungsi dan prosedur tersebut secara biasa, fungsi PortIn membutuhkan dua parameter yaitu alamat perangkat keras dan variabel hasil pembacaan data dari perangkat keras dengan tipe data byte. Sedangkan prosedur PortOut membutuhkan dua parameter juga yaitu alamat perangkat keras dan nilai atau variabel yang menyimpan nilai yang akan dikirimkan ke perangkat keras yang bersangkutan. PortOut : Mengirim data dalam format byte (8-bit) ke port tertentu. PortWordOut : Mengirim data dalam format word (16-bit) ke port tertentu. PortDWordOut : Mengirim data dalam format double word (32-bit) ke port tertentu. PortIn : Membaca data falam format byte (8-bit) dari port tertentu. PortWordIn : Membaca data falam format word (16-bit) dari port tertentu. PortDWordIn : Membaca data falam format double word (32-bit) dari port tertentu. GetPortBit : Membaca status dari bit tertentu. SetPortBit : Set bit (=1) pada port tertentu. ClrPortBit : Reset bit (=0) pada port tertentu. NotPortBit : Lakukan inversi (NOT) bit pada port tertentu RightPortShift : Geser bit dari port tertentu ke kanan, LSBMSB. LeftPortShift : Geser bit dari port tertentu ke kiri, MSB LSB. IsDriverInstalled : Akan memberikan nilai bukan-NOL jika io.dll sudah terinstal dan berfungsi. Tujuan utama dari fungsi ini adalah untuk memastikan bahwa penggerak mode kernel pada NT/2000/XP telah diinstal dan dapat diakses. Pemograman LED Driver adalah sebuah program yang digunakan untuk melakukan pengontrolan nyala LED melalui port paralel. Program ini memerlukan rangkaian LED driver yang dipasangkan pada port paralel dan program LED driver untuk menjalankannya. Rangkaian LED Driver berikut digunakan untuk interfacing LED dengan port Paralel :
  • 5. Gambar 25. Rangkaian LED Driver PEMOGRAMAN LED DRIVER untuk Menghidupkan dan mematikan LED Program ini digunakan untuk mematikan dan menghidupkan LED-LED yang terpasang pada pin-pin data secara bersama-sama. Menggunakan bantuan komponen CheckBox, Anda bisa mengganti dengan komponen lainnya selama bisa digunakan untuk proses Toggle (ON-OFF secara bergantian). Status dari LED langsung ditunjukkan pada komponen tersebut. Gambar 26. Tampilan Program menghidupkan dan mematikan LED KOMPONEN VISUAL BASIC Komponen Properti Subroutin Form Name : Form1 Caption : Led Driver1 Private Sub Form_Load() CheckBox Name : Check1 Caption : ON/OFF Private Sub Check1_Click() CommandButton Name : Command1 Caption : Keluar Private Sub Command1_Click()
  • 6. LISTING PROGRAM Private Sub Form_Load() If Not IsDriverInstalled Then MsgBox "error", vbOKOnly Unload Me End If End Sub Private Sub Check1_Click() If Check1.Value = 1 Then PortOut &H378, &HFF Check1.Caption = "Lampu ON semua" Else PortOut &H378, &H0 Check1.Caption = "Lampu OFF semua" End If End Sub Private Sub Command1_Click() Unload Me End Sub
  • 7. CONTOH PROGRAM ################################################ # Program C : Antarmuka LCD dengan Port Paralel # ################################################ Modul LCD yang tersedia dalam berbagai macam seperti 8x1, 8x2 16x1, 16x2, 20x2, 20x4, 40x4. Di sini kita telah menggunakan 16x2 - yang berarti 2 baris 16 karakter. Ini adalah Hitachi HD44780 modul yang kompatibel, memiliki 16 pin termasuk 2 pin untuk lampu latar. Tabel berikut memberikan struktur pin modul LCD. Modul LCD tanpa backlight hanya akan memiliki 14 pin. Jika Anda menggunakan LCD seperti, mengabaikan pin 15 dan 16. Tabel 7. Pin LCD Untuk program modul LCD, pertama kita harus menginisialisasi LCD dengan mengirimkan beberapa kata kontrol. RS harus rendah dan E harus tinggi ketika kita mengirim kontrol. R / W pin 0 berarti data menulis atau kontrol ke LCD dan R / W pin 1 berarti membaca data dari LCD. Untuk mengirim data ke LCD, membuat RS tinggi, R / W rendah, menempatkan data di pin 7 sampai 14 dan membuat E pin tinggi dan rendah sekali. Anda dapat memahami metode yang tepat setelah melihat kode, kemudian dalam tutorial ini. Di sini, kita akan menulis pada modul LCD dan tidak membaca kembali. Jadi, R / W adalah secara langsung terhubung ke ground. Kita tidak perlu harus masukan data melalui, sehingga semua pin output yang digunakan dalam aplikasi kita. Data pin LCD yang terhubung ke pin data port. Strobe sinyal (Pin 1 dari konektor D25) diberikan ke E (Pin 6 LCD), Pilih printer (Pin 17 dari D25) terhubung ke RS (pin 4 dari LCD).
  • 8. Gambar 17. Rangkaian Modul LCD Dengan DB25 Dalam diagram di atas, modul LCD dihubungkan ke port LPT menggunakan D25 konektor laki-laki. Nomor pin 3 dari LCD adalah untuk menyesuaikan kontras, dihubungkan sedemikian rupa sehingga dapat bervariasi dari 0V ke 5V. Jika semuanya OK, Anda harus mendapatkan modul LCD sebagai berikut ketika berada dalam posisi ON. Gambar 18. LCD Dalam Posisi ON Jika Anda mendapatkan layar ini, maka kita dapat memulai pemrograman. Jika tidak periksa koneksi Anda, cobalah dengan memvariasikan potensiometer 10K. Jika Anda mendapatkan tampilan ini juga, Anda bisa mendapatkan kejelasan maksimum dengan memvariasikan pot. Bagi saya, pot yang diperlukan untuk menjadi hampir 0V. Jadi, itu adalah OK jika Anda tidak menggunakan pot juga, hanya menghubungkan pin 3 ke ground. Tabel berikut menjelaskan bagaimana untuk menulis kata-kata control Ketika RS = 0 dan R / W = 0, data dalam pin D0 untuk D7 akan memiliki arti sebagai berikut.
  • 9. Tabel 8. Deskripsi Kontrol LCD LISTING PROGRAM #include <dos.h> #include <string.h> #include <conio.h> #include <time.h> #define PORTADDRESS 0x378 /* Enter Your Port Address Here */ #define DATA PORTADDRESS+0 #define STATUS PORTADDRESS+1 #define CONTROL PORTADDRESS+2 void lcd_init(void); void lcd_write(char char2write); void lcd_putch(char char2write); void lcd_puts(char * str2write); void lcd_goto(int row, int column); void lcd_clear(void); void lcd_home(void); void lcd_cursor(int cursor); void lcd_entry_mode(int mode); void main(void) { lcd_init(); lcd_goto(1,1); lcd_puts("Welcome To"); lcd_goto(1,0); lcd_puts("electroSofts.com");
  • 10. while(!kbhit() ) //wait until a key is pressed... {} } void lcd_init() { outportb(CONTROL, inportb(CONTROL) & 0xDF); //config data pins as output outportb(CONTROL, inportb(CONTROL) | 0x08); //RS is made high: control (register select) lcd_write(0x0f); delay(20); lcd_write( 0x01); delay(20); lcd_write( 0x38); delay(20); } void lcd_write(char char2write) { outportb(DATA, char2write); outportb(CONTROL,inportb(CONTROL) | 0x01); /* Set Strobe */ delay(2); outportb(CONTROL,inportb(CONTROL) & 0xFE); /* Reset Strobe */ delay(2); } void lcd_putch(char char2write) { outportb(CONTROL, inportb(CONTROL) & 0xF7); //RS=low: data lcd_write(char2write); } void lcd_puts(char *str2write) { outportb(CONTROL, inportb(CONTROL) & 0xF7); //RS=low: data
  • 11. while(*str2write) lcd_write(*(str2write++)); } void lcd_goto(int row, int column) { outportb(CONTROL, inportb(CONTROL) | 0x08); if(row==2) column+=0x40; /* Add these if you are using LCD module with 4 columns if(row==2) column+=0x14; if(row==3) column+=0x54; */ lcd_write(0x80 | column); } void lcd_clear() { outportb(CONTROL, inportb(CONTROL) | 0x08); lcd_write(0x01); } void lcd_home() { outportb(CONTROL, inportb(CONTROL) | 0x08); lcd_write(0x02); } void lcd_entry_mode(int mode) { /* if you dont call this function, entry mode sets to 2 by default. mode: 0 - cursor left shift, no text shift 1 - no cursor shift, text right shift 2 - cursor right shift, no text shift 3 - no cursor shift, text left shift */ outportb(CONTROL, inportb(CONTROL) | 0x08); lcd_write(0x04 + (mode%4));
  • 12. } void lcd_cursor(int cursor) { /* set cursor: 0 - no cursor, no blink 1 - only blink, no cursor 2 - only cursor, no blink 3 - both cursor and blink */ outportb( CONTROL, inportb(CONTROL) | 0x08 ); lcd_write( 0x0c + (cursor%4)); } Dan Output Program Seperti Berikut : Gambar 19. Output APLIKASI SEVEN SEGMENT TERMULTIPLEKS DENGAN BASCOM Posted by iswanto Rangkaian seven segment termultipleks Seven Segment adalah rangkaian untuk menggerakkan 4 buah penampil 7 segment secara langsung dari port keluaran mikrokontroller dengan data input Seven Segment.Lebih jelas klik disini
  • 13. 4.1. APLIKASI SEVEN SEGMENT TERMULTIPLEKS Rangkaian seven segment termultipleks Seven Segment adalah rangkaian untuk menggerakkan 4 buah penampil 7 segment secara langsung dari port keluaran mikrokontroller dengan data input Seven Segment. Gambar 4.1. Rangkaian aplikasi penggerak seven segmen termultipleks 4.4.1. PEMROGRAMAN SEVENT SEGMENT TERMULTIPLEKS Setelah rangkaian sevent segment dibuat dan dihubungkan dengan port pararel mikrokontroller, maka sekarang saatnya Anda membuat program yang digunakan untuk menampilkan data 1512 dan 4123 pada seven segment. Program sebagai berikut ini RST P1_3 10 9 7 5 4 2 1 8 VCC P2.3 P2.0 P0.1 P1_1 P0.2 R2 4K7 P1_7 P0.2 X1 12MHz VCC RST VCC RST RESET RST U5 4511 7 1 2 6 3 4 5 13 12 11 10 9 15 14 A B C D LT BI LE A B C D E F G U5 4511 7 1 2 6 3 4 5 13 12 11 10 9 15 14 A B C D LT BI LE A B C D E F G C3 10u P2.2 R_PULL UP 1 2 3 4 5 P1_2 P1_0 D3 1N4002 AC VCC P1_5 P0.1 P1_4 VCC C7 30p RST VCC JP4 HEADER 5 1 2 3 4 5 GND RST 10 9 7 5 4 2 1 8 VCC P0.3 P2.1 U5 4511 7 1 2 6 3 4 5 13 12 11 10 9 15 14 A B C D LT BI LE A B C D E F G 10 9 7 5 4 2 1 8 10 9 7 5 4 2 1 8 P1_6 C6 30p VCC P0.0 P0.0 RST VCC U5 4511 7 1 2 6 3 4 5 13 12 11 10 9 15 14 A B C D LT BI LE A B C D E F G U8 AT89S51 9 18 19 29 30 31 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 PSEN ALE/PROG EA/VPP P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P0.3 VCC RSTRST
  • 14. '-------------------------------------------------------- 'Program Bab 4.5 7-Segment Multiplekser Menyala '-------------------------------------------------------- 'DEKLARASI Cristal '-------------------------------------------------------- $crystal = 12000000 '-------------------------------------------------------- 'DEKLARASI Header $regfile = "REG51.dat" '-------------------------------------------------------- 'DEKLARASI VARIABEL Dim Ribuan1 As Integer Dim Ribuan2 As Integer Dim Ratusan1 As Integer Dim Ratusan2 As Integer Dim Puluhan1 As Integer Dim Puluhan2 As Integer Dim Data3 As Integer Dim Data2 As Integer Dim Data1 As Integer Dim Data0 As Integer Dim Datae As Integer Dim Dataku As Integer '-------------------------------------------------------- 'DEKLARASI RUTIN Declare Sub Displaysegment() Declare Sub Segment() '-------------------------------------------------------- 'rutin utama Do Dataku = 1512 Call Displaysegment() Wait 5 Dataku = 4385 Call Displaysegment() Wait 5 Loop End '-------------------------------------------------------- ' Rutin BCD Sub Displaysegment() Data3 = Dataku / 1000 Ribuan1 = Data3 * 1000 Ribuan2 = Dataku - Ribuan1 Data2 = Ribuan2 / 100 Ratusan1 = Data2 * 100 Ratusan2 = Ribuan2 - Ratusan1 Data1 = Ratusan2 / 10
  • 15. Puluhan1 = Data1 * 10 Puluhan2 = Ratusan2 - Puluhan1 Data0 = Puluhan2 Datae = Data3 P0 = 14 Call Segment() Datae = Data2 P0 = 13 Call Segment() Datae = Data1 P0 = 11 Call Segment() Datae = Data0 P0 = 7 Call Segment() End Sub '-------------------------------------------------------- ' Rutin Segment Sub Segment() Select Case Datae Case 0 : P2 = 0 Case 1 : P2 = 1 Case 2 : P2 = 2 Case 3 : P2 = 3 Case 4 : P2 = 4 Case 5 : P2 = 5 Case 6 : P2 = 6 Case 7 : P2 = 7 Case 8 : P2 = 8 Case 9 : P2 = 9 End Select End Sub