Komunikasi Nirkabel Antara Dua PC dengan menggunakan DT-51™ Low Cost Nano System sebagai kontroler
Oleh: B. Widi Handoyo Rezania A. Azdy Aulia Cahyo S.
PA/10005 PA/10384 PA/10590
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2007
BAB I DESKRIPSI MASALAH Komunikasi wireless atau yang sering disebut dengan komunikasi nirkabel yaitu tidak menggunakan media kabel sebagai penghubung antara pengirim dan penerima. Saat ini telah berkembang pesat dan menjadi trend di dunia elektronika dan teknologi komunikasi data. Banyak aplikasi yang telah diciptakan dan dibangun menggunakan teknologi wireless, mulai dari yang sangat sederhana dengan menggunakan teknologi analog hingga yang sudah sedemikian kompleksnya menggunakan teknologi digital dan teknologi Wireles Internet Protokol. Untuk melakukan berbagai kegiatan komunikasi data seperti chatting, download biasanya membutuhkan server yang digunakan untuk sarana untuk berhubungan, sehingga keamanan data kurang terjamin karena server yang dilalui merupakan server yang sifatnya adalah publik. Dalam laporan ini akan dibahas mengenai implementasi teknologi wireless untuk komunikasi data sederhana tanpa melalui server luar dan pembuatan aplikasi menggunakan mikrokontroler sederhana. Dalam aplikasi ini dua buah komputer (point to point) akan dibuat agar dapat berkomunikasi dua arah secara bergantian secara nirkabel. Aplikasi ini sangat sederhana, dimana data yang dikirimkan hanya berupa data tulisan dari komputer yang satu ke komputer yang lainnya. Komunikasi data dilakukan dengan bantuan sebuah program aplikasi yang dibangun menggunakan Borland Delphi dan dibuat khusus untuk aplikasi ini. Modul nirkabel menggunakan gelombang radio, dan dalam aplikasi ini yang digunakan
adalah
TRW-2,4G.
DT-51TM
Low
Cost
Series
digunakan
untuk
mengendalikan TRW-2,4G. Mikrokontroler ini diprogram menggunakan bahasa BASIC menggunakan compiler dari BASCOM-8051.
BAB II ALUR PROGRAM dan SOURCE CODE A. Alur dan detail teknis aplikasi Secara garis besar, alur program dan dan blok-blok atau bagian-bagian dari program dapat digambarkan sebagai berikut ini:
Lalu hubungan antara modul-modul tersebut dapat dilihat dalam tabel berikut ini:
TRW-2.4G menggunakan catu daya +3 VDC dan memiliki I/O yang bekerja pada level tegangan 3 V sehingga beberapa hubungan dalam Tabel 1 harus melalui rangkaian level converter seperti pada Gambar 2. Setelah itu hubungkan modul DT51™ Low Cost Nano System / Low Cost Micro System ke COM port komputer dengan menggunakan kabel serial DT-51™ Low Cost Nano System / Low Cost Micro System. Setelah semua rangkaian dan catu daya terhubung dengan benar, programlah transmitter3_8051.HEX atau receiver 3_8051.HEX yang sudah di sertakan dalam tulisan ini di option B, ke dalam DT-51™ Low Cost Nano System /
Low Cost Micro System menggunakan DT-HiQ AT89S In System Programmer atau peralatan in-system programmer lain dengan konektor 10 pin standar ATMEL.. Program transmitter 3_8051.HEX akan bertindak sebagai transmitter saat pertama kali dijalankan, sedangkan program receiver 3_8051.HEX akan bertindak sebagai receiver saat pertama kali dijalankan. Setelah kedua rangkaian diprogram, jalankan program TRW1.EXE pada kedua komputer dengan konfigurasi baudrate 9600bps, 8 bit data, 1 bit stop, tanpa bit parity, dan tanpa flow control.
Berikut ini rangkaian pada level Converter.
Flowchart dari program utama transmitter3_8051.BAS adalah sebagai berikut:
Flowchat dari program receiver3_8051.BAS adalah sebagai berikut:
B. Source Code
1. Source Code untuk receiver3_8051.HEX '$regfile = "2313def.dat" $baud = 9600 $crystal = 11059200 Ce Alias P1.0 Cs Alias P1.4 Dr Alias P1.5 Clk Alias P1.6 Dat Alias P1.7 'Dat_pin Alias Pinb.7 Declare Declare Declare Declare Declare
Sub Sub Sub Sub Sub
Config_fullmode Send_byte Read_byte Config_tr General_config
'Config Pinb.0 'Config Pinb.4 P1.5 = 1 = Input 'Config Pinb.6 'Config Pinb.7 Dim Dim Dim Dim
'4000000 'Portb.0 'Portb.4 'Pinb.5 'Portb.6 'Portb.7
= Output = Output 'Config Pinb.5 = Output = Output
Jumlah As Byte Dat_out As Byte I As Byte J As Byte
Dim Data_print As Bit 'shockburst configuration Dim Data2_w As Byte , Data1_w As Byte Dim Addr2_1 As Byte , Addr2_2 As Byte , Addr2_3 As Byte , Addr2_4 As Byte , Addr2_5 As Byte Dim Addr1_1 As Byte , Addr1_2 As Byte , Addr1_3 As Byte , Addr1_4 As Byte , Addr1_5 As Byte Dim Addr_w As Byte , Crc_length As Bit , Crc_en As Bit '6-1-1 'general configuration Dim Rx2_en As Bit , Cm As Bit , Rfdr_sb As Bit , Xo_f As Byte , Rf_pwr As Byte '1-1-1-3-2 Dim Rf_ch As Byte , Rx_en As Bit '7-1 Dim Dat0 As Byte Ce = 0 Cs = 0 Clk = 0 Dat = 0 Waitms 500 'jangan lupa selalu config input/output->baca=input - tulis=output Data2_w = 8 Data1_w = 8 'panjang data Addr2_5 = &H00 Addr2_4 = &H00 Addr2_3 = &H00 Addr2_2 = &H00 Addr2_1 = &H00 Addr1_5 = &H00 'address Addr1_4 = &H00 Addr1_3 = &H00 Addr1_2 = &H00 Addr1_1 = &H00 Addr_w = 40 'panjang address Crc_length = 1 'panjang crc Crc_en = 1 Rx2_en = 0 Cm = 1 'direct/shockburst Rfdr_sb = 1 'data rate kbps/mbps Xo_f = 3 'crystal freq Rf_pwr = 1 'db Rf_ch = &H55 '0-83 Rx_en = 1 Call Config_fullmode Waitms 10 ''''''''''''''''''''''''''''''' 'Dat0 = Waitkey() 'If Dat0 = &HFA Then ' Print Chr(&Hfd) 'Else ' Print Chr(&Hfc); 'End If 'Goto Kirim ''''''''''''''''''''''''''''' Terima: Rx_en = 1 Call Config_tr Dat = 1 = Input Waitms 10 Do Cs = 0
'Config Dat_pin
Ce = 1 Nop Nop While Dr = 0 'Dat0 = Inkey() 'If Dat0 = &HFA Then Print Chr(&Hfe) Wend Ce = 0 While Dr = 1 Call Read_byte Print Chr(dat_out); If Dat_out = &HFF Then Dat_out = 0 Dat0 = Inkey() Goto Kirim End If Wend Loop
'Waitus 10
Kirim: Rx_en = 0 Call Config_tr Kirim2: Do Dat0 = Waitkey() ''''''''''''''' If Dat0 = &HFA Then Print Chr(&Hfd) Goto Kirim2 End If ''''''''''''''''' Ce = 0 Cs = 0 Nop Nop Ce = 1 Nop Nop Dat_out = Addr1_1 Call Send_byte Dat_out = Addr1_2 Call Send_byte Dat_out = Addr1_3 Call Send_byte Dat_out = Addr1_4 Call Send_byte Dat_out = Addr1_5 Call Send_byte Dat_out = Dat0 Call Send_byte Nop Nop Ce = 0 If Dat0 = &HFF Then Dat_out = 0 Goto Terima End If Loop End Sub Read_byte Dat_out = 0 Shiftin Dat , '0 - MSB shifted '1 - MSB shifted '2 - LSB shifted '3 - LSB shifted
Clk , Dat_out , 1 in/out first when in/out first when in/out first when in/out first when
'Waitus 10
'Waitus 10 'addr1 'addr2 'addr3 'addr4 'addr5 'data 'Waitus 10
clock clock clock clock
goes goes goes goes
low high low high
' ' ' ' ' ' ' '
For I = 1 To 8 Waitus 1 Clk = 1 Shift Dat_out , Left Dat_out = Dat_out Or Dat_pin Waitus 1 Clk = 0 Next Clk = 0 End Sub Sub Send_byte Shiftout Dat , Clk , '0 - MSB shifted in/out '1 - MSB shifted in/out '2 - LSB shifted in/out '3 - LSB shifted in/out
Dat_out , 1 first when clock first when clock first when clock first when clock
goes goes goes goes
low high low high
' ' ' ' ' ' ' ' '
For I = 1 To 8 Rotate Dat_out , Left Data_print = Dat_out And 1 Dat = Data_print Waitus 1 Clk = 1 Waitus 1 Clk = 0 Next Clk = 0 End Sub Sub Config_tr Cs = 1 Ce = 0 ' Config Dat_pin = Output Waitms 10 Dat = Rx_en Nop Clk = 1 Nop Clk = 0 Cs = 0 End Sub Sub Config_fullmode Cs = 1 Ce = 0 ' Config Dat_pin = Output Waitms 10 Dat_out = Data2_w Call Send_byte Dat_out = Data1_w Call Send_byte Dat_out = Addr2_5 Call Send_byte Dat_out = Addr2_4 Call Send_byte Dat_out = Addr2_3 Call Send_byte Dat_out = Addr2_2 Call Send_byte Dat_out = Addr2_1 Call Send_byte Dat_out = Addr1_5 Call Send_byte Dat_out = Addr1_4 Call Send_byte
'Waitus 1 'Waitus 1
Dat_out = Addr1_3 Call Send_byte Dat_out = Addr1_2 Call Send_byte Dat_out = Addr1_1 Call Send_byte Shift Addr_w , Left , 1 If Crc_length = 1 Then Addr_w = Addr_w Or 1 Addr_w Or Crc_length Shift Addr_w , Left , 1 If Crc_en = 1 Then Dat_out = Addr_w Or 1 Addr_w Or Crc_en Call Send_byte Dat_out = Rx2_en Shift Dat_out , Left , 1 If Cm = 1 Then Dat_out = Dat_out Or 1 Dat_out Or Cm Shift Dat_out , Left , 1 If Rfdr_sb = 1 Then Dat_out = Dat_out Or 1 Dat_out Or Rfdr_sb Shift Dat_out , Left , 3 Dat_out = Dat_out Or Xo_f Shift Dat_out , Left , 2 Dat_out = Dat_out Or Rf_pwr Call Send_byte Dat_out = Rf_ch Shift Dat_out , Left , 1 If Rx_en = 1 Then Dat_out = Dat_out Or 1 Dat_out Or Rx_en Call Send_byte
'Addr_w =
'Dat_out =
'Dat_out =
'Dat_out =
'Dat_out =
Cs = 0 End Sub
2. Source Code transmitter3_8051.HEX '$regfile = "2313def.dat" $baud = 9600 $crystal = 11059200 Ce Alias P1.0 Cs Alias P1.4 Dr Alias P1.5 Clk Alias P1.6 Dat Alias P1.7 'Dat_pin Alias Pinb.7 Declare Declare Declare Declare Declare
Sub Sub Sub Sub Sub
Config_fullmode Send_byte Read_byte Config_tr General_config
'Config Pinb.0 'Config Pinb.4 P1.5 = 1 = Input 'Config Pinb.6 'Config Pinb.7 Dim Dim Dim Dim
'4000000 'Portb.0 'Portb.4 'Pinb.5 'Portb.6 'Portb.7
= Output = Output 'Config Pinb.5 = Output = Output
Jumlah As Byte Dat_out As Byte I As Byte J As Byte
Dim Data_print As Bit 'shockburst configuration Dim Data2_w As Byte , Data1_w As Byte Dim Addr2_1 As Byte , Addr2_2 As Byte , Addr2_3 As Byte , Addr2_4 As Byte , Addr2_5 As Byte Dim Addr1_1 As Byte , Addr1_2 As Byte , Addr1_3 As Byte , Addr1_4 As Byte , Addr1_5 As Byte Dim Addr_w As Byte , Crc_length As Bit , Crc_en As Bit '6-1-1 'general configuration Dim Rx2_en As Bit , Cm As Bit , Rfdr_sb As Bit , Xo_f As Byte , Rf_pwr As Byte '1-1-1-3-2 Dim Rf_ch As Byte , Rx_en As Bit '7-1 Dim Dat0 As Byte Ce = 0 Cs = 0 Clk = 0 Dat = 0 Waitms 500 'jangan lupa selalu config input/output->baca=input - tulis=output Data2_w = 8 Data1_w = 8 'panjang data Addr2_5 = &H00 Addr2_4 = &H00 Addr2_3 = &H00 Addr2_2 = &H00 Addr2_1 = &H00 Addr1_5 = &H00 'address Addr1_4 = &H00 Addr1_3 = &H00 Addr1_2 = &H00 Addr1_1 = &H00 Addr_w = 40 'panjang address Crc_length = 1 'panjang crc Crc_en = 1 Rx2_en = 0 Cm = 1 'direct/shockburst Rfdr_sb = 1 'data rate kbps/mbps Xo_f = 3 'crystal freq Rf_pwr = 1 'db Rf_ch = &H55 '0-83 Rx_en = 1 Call Config_fullmode Waitms 10 ''''''''''''''''''''''''''''''' 'Dat0 = Waitkey() 'If Dat0 = &HFA Then ' Print Chr(&Hfd) 'Else ' Print Chr(&Hfc); 'End If Goto Kirim ''''''''''''''''''''''''''''' Terima: Rx_en = 1 Call Config_tr Dat = 1 = Input Waitms 10 Do Cs = 0
'Config Dat_pin
Ce = 1 Nop Nop While Dr = 0 'Dat0 = Inkey() 'If Dat0 = &HFA Then Print Chr(&Hfe) Wend Ce = 0 While Dr = 1 Call Read_byte Print Chr(dat_out); If Dat_out = &HFF Then Dat_out = 0 Dat0 = Inkey() Goto Kirim End If Wend Loop
'Waitus 10
Kirim: Rx_en = 0 Call Config_tr Kirim2: Do Dat0 = Waitkey() ''''''''''''''' If Dat0 = &HFA Then Print Chr(&Hfd) Goto Kirim2 End If ''''''''''''''''' Ce = 0 Cs = 0 Nop Nop Ce = 1 Nop Nop Dat_out = Addr1_1 Call Send_byte Dat_out = Addr1_2 Call Send_byte Dat_out = Addr1_3 Call Send_byte Dat_out = Addr1_4 Call Send_byte Dat_out = Addr1_5 Call Send_byte Dat_out = Dat0 Call Send_byte Nop Nop Ce = 0 If Dat0 = &HFF Then Dat_out = 0 Goto Terima End If Loop End Sub Read_byte Dat_out = 0 Shiftin Dat , '0 - MSB shifted '1 - MSB shifted '2 - LSB shifted '3 - LSB shifted
Clk , Dat_out , 1 in/out first when in/out first when in/out first when in/out first when
'Waitus 10
'Waitus 10 'addr1 'addr2 'addr3 'addr4 'addr5 'data 'Waitus 10
clock clock clock clock
goes goes goes goes
low high low high
' ' ' ' ' ' ' '
For I = 1 To 8 Waitus 1 Clk = 1 Shift Dat_out , Left Dat_out = Dat_out Or Dat_pin Waitus 1 Clk = 0 Next Clk = 0 End Sub Sub Send_byte Shiftout Dat , Clk , '0 - MSB shifted in/out '1 - MSB shifted in/out '2 - LSB shifted in/out '3 - LSB shifted in/out
Dat_out , 1 first when clock first when clock first when clock first when clock
goes goes goes goes
low high low high
' ' ' ' ' ' ' ' '
For I = 1 To 8 Rotate Dat_out , Left Data_print = Dat_out And 1 Dat = Data_print Waitus 1 Clk = 1 Waitus 1 Clk = 0 Next Clk = 0 End Sub Sub Config_tr Cs = 1 Ce = 0 ' Config Dat_pin = Output Waitms 10 Dat = Rx_en Nop Clk = 1 Nop Clk = 0 Cs = 0 End Sub Sub Config_fullmode Cs = 1 Ce = 0 ' Config Dat_pin = Output Waitms 10 Dat_out = Data2_w Call Send_byte Dat_out = Data1_w Call Send_byte Dat_out = Addr2_5 Call Send_byte Dat_out = Addr2_4 Call Send_byte Dat_out = Addr2_3 Call Send_byte Dat_out = Addr2_2 Call Send_byte Dat_out = Addr2_1 Call Send_byte Dat_out = Addr1_5 Call Send_byte Dat_out = Addr1_4 Call Send_byte
'Waitus 1 'Waitus 1
Dat_out = Addr1_3 Call Send_byte Dat_out = Addr1_2 Call Send_byte Dat_out = Addr1_1 Call Send_byte Shift Addr_w , Left , 1 If Crc_length = 1 Then Addr_w = Addr_w Or 1 Addr_w Or Crc_length Shift Addr_w , Left , 1 If Crc_en = 1 Then Dat_out = Addr_w Or 1 Addr_w Or Crc_en Call Send_byte Dat_out = Rx2_en Shift Dat_out , Left , 1 If Cm = 1 Then Dat_out = Dat_out Or 1 Dat_out Or Cm Shift Dat_out , Left , 1 If Rfdr_sb = 1 Then Dat_out = Dat_out Or 1 Dat_out Or Rfdr_sb Shift Dat_out , Left , 3 Dat_out = Dat_out Or Xo_f Shift Dat_out , Left , 2 Dat_out = Dat_out Or Rf_pwr Call Send_byte Dat_out = Rf_ch Shift Dat_out , Left , 1 If Rx_en = 1 Then Dat_out = Dat_out Or 1 Dat_out Or Rx_en Call Send_byte
'Addr_w =
'Dat_out =
'Dat_out =
'Dat_out =
'Dat_out =
Cs = 0 End Sub
3. Source Code TRW.PAS unit TRW; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, CPort, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(TForm) lblStat: TLabel; cmdSetting: TButton; cmdOpen: TButton; ComPort: TComPort; rdTransmitter: TRadioButton; rdReceiver: TRadioButton; Memo: TMemo; Timer1: TTimer; btClear: TButton; procedure cmdSettingClick(Sender: TObject); procedure cmdOpenClick(Sender: TObject); procedure Inmemo(A:String); procedure Enter; procedure ComPortRxChar(Sender: TObject; Count: Integer); procedure MemoKeyPress(Sender: TObject; var Key: Char); procedure Timer1Timer(Sender: TObject); procedure rdReceiverMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); procedure btClearClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; intinput:integer; delbase:string; implementation {$R *.DFM} procedure TForm1.cmdSettingClick(Sender: TObject); begin ComPort.ShowSetupDialog; end; procedure TForm1.cmdOpenClick(Sender: TObject); begin if ComPort.Connected then begin ComPort.Close; cmdOpen.Caption:='Connect' ; lblStat.Caption:=ComPort.Port+' Disconnected' ; cmdSetting.Enabled:=true; rdTransmitter.Enabled:=false; rdReceiver.Enabled:=false; memo.Enabled:=false; end else begin ComPort.Open; cmdOpen.Caption:='Disconnect'; lblStat.Caption:=ComPort.Port+' Connected' ; cmdSetting.Enabled:=false; intinput:=$fa; comport.Write(intinput,1); timer1.Enabled:=true; memo.Enabled:=true; end; end; procedure TForm1.inmemo(A:String); begin memo.SelText:=A; end; procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var panjang:integer; begin comport.Read(intinput,1); if (intinput=$fd) or (intinput=$ff) then begin rdTransmitter.Checked:=true; rdTransmitter.Enabled:=true; rdReceiver.Enabled:=true; timer1.Enabled:=false; comport.ClearBuffer(true,true); end else if intinput=$0d then enter else if intinput=$08 then begin delbase:=memo.Text; panjang:=strlen(pchar(delbase)); delete(delbase,panjang,1);
memo.Text:=delbase; memo.SelStart:=panjang; end else inmemo(chr(intinput)); end; procedure TForm1.Enter; begin memo.Lines.Add(''); end; procedure TForm1.MemoKeyPress(Sender: TObject; var Key: Char); begin comport.Write(key,1); end; procedure TForm1.Timer1Timer(Sender: TObject); begin rdTransmitter.Enabled:=false; rdTransmitter.Enabled:=false; rdTransmitter.Checked:=false; rdReceiver.Checked:=true; timer1.Enabled:=false; end; procedure TForm1.rdReceiverMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin intinput:=$ff; comport.Write(intinput,1); rdReceiver.Enabled:=false; rdTransmitter.Enabled:=false; comport.ClearBuffer(true,true); end; procedure TForm1.btClearClick(Sender: TObject); begin memo.Clear; end; end.
BAB III PEMBAHASAN A. Proses dalam transmitter Proses dari program transmitter3_8051.BAS secara garis besar adalah sebagai berikut: 1. Program akan melakukan konfigurasi awal pada TRW-2.4G, yaitu menetapkan mode komunikasi (shock burstmode), address, lebar data, CRC, dsb. 2. Setelah itu program mengatur TRW-2.4G pada mode transmitter. 3. Program menunggu masukan data serial dari komputer. 4. Bila masukan data serial tersebut bernilai FAh maka program akan mengirim data bernilai FDh menuju computer, kemudian kembali ke langkah 3. Jika data serial tersebut tidak bernilai FAh maka program akan, meneruskan ke langkah 5. (Langkah ini dilakukan untuk memberitahu komputer bahwa saat ini TRW-2.4G berfungsi sebagai transmitter) 5. Program akan memasukkan data serial dari komputer tersebut ke dalam buffer TRW-2.4G dan kemudian akan dikirim secara shock burst oleh TRW-2.4G menuju ke alamat TRW-2.4G yang dituju. 6. Program akan memeriksa apakah data yang telah dikirimkan bernilai FFh. Jika benar berarti komputer local menginginkan perubahan fungsi pada TRW-2.4G dan program meneruskan ke langkah 7, tetapi jika tidak maka program kembali ke langkah 3. 7. Program melakukan perubahan fungsi yaitu dengan mengatur TRW-2.4G pada mode receiver. Kemudian program akan mengaktifkan TRW-2.4G untuk menunggu masukan data secara wireless hingga buffer TRW-2.4G penuh yang ditandai oleh perubahan pada pin DR. 8. Setelah pin DR=1 maka program akan mengambil data dari buffer, dan kemudian dikirimkan menuju computer secara serial. 9. Apabila data yang diperoleh bernilai FFh maka berarti komputer remote menginginkan perubahan fungsi pada TRW-2.4G (perubahan fungsi ditentukan
oleh komputer yang berfungsi sebagai transmitter) sehingga program akan kembali pada langkah 2 tetapi jika tidak maka program akan kembali pada langkah 8.
B. Proses dalam receiver Proses kerja dari program receiver3_8051.BAS secara garis besar adalah sebagai berikut: 1. Program akan melakukan konfigurasi awal pada TRW-2.4G, yaitu menetapkan mode komunikasi (shock burstmode), address, lebar data, CRC, dsb. 2. Setelah itu program mengatur TRW-2.4G pada mode receiver. 3. Kemudian program akan mengaktifkan TRW-2.4G untuk menunggu masukan data secara wireless hingga buffer TRW-2.4G penuh yang ditandai oleh perubahan pada pin DR. 4. Setelah pin DR=1 maka program akan mengambil data dari buffer, dan kemudian dikirimkan menuju computer secara serial. 5. Apabila data yang diterima bernilai FFh maka berarti komputer remote menginginkan perubahan fungsi pada TRW-2.4G (perubahan fungsi ditentukan oleh komputer yang berfungsi sebagai transmitter) sehingga program akan meneruskan ke langkah 6, tetapi jika tidak maka program akan kembali pada langkah 3. 6. Program melakukan perubahan fungsi yaitu dengan mengatur TRW-2.4G pada mode transmitter. 7. Program menunggu masukan data serial dari komputer. 8. Bila masukan data serial tersebut bernilai FAh maka program akan mengirim data bernilai FDh ke komputer kemudian kembali ke langkah 7. Jika data serial tersebut tidak bernilai FAh maka program akan meneruskan ke langkah 9. (Langkah ini dilakukan untuk memberitahu komputer bahwa saat ini TRW-2.4G berfungsi sebagai transmitter)
9. Program akan memasukkan data serial dari komputer tersebut ke dalam buffer TRW-2.4G dan kemudian akan dikirim secara shock burst oleh TRW-2.4G menuju ke alamat TRW-2.4G yang dituju. 10. Program akan memeriksa apakah data yang telah dikirimkan bernilai FFh. Jika benar berarti komputer local menginginkan perubahan fungsi pada TRW-2.4G dan program akan meneruskan ke langkah 2, tetapi jika tidak maka program kembali ke langkah 7.
C. Screen Shot Program( TRW1.EXE )
D. Fungsi Program ( TRW1.EXE ) Program ini memiliki beberapa fitur/fungsi, diantaranya: 1. connected : menunjukkan status telah terkoneksi. 2. Setting Port : untuk mengatur konfigurasi komunikasi serial komputer. 3. Connect : untuk menghubungan komunikasi serial antara DT-51™ Low Cost Nano System / Low Cost Micro System dengan computer(bila terkonek maka tombol akan berubah menjadi Disconnect) 4. Disconnect : untuk memutus hubungan komunikasi serial antara DT-51™ Low Cost Nano System / Low Cost Micro System dengan computer. 5. Transmiter : status program berfungsi sebagai transmitter (pengirim pesan) 6. Receiver : status program berfungsi sebagai receiver (penerima pesan) 7. Edit Text : area yang digunakan untuk menuliskan/menerima pesan 8. Clear All : digunakan mengembalikan keadaan area pesan seperti semula.
BAB IV KESIMPULAN 1. Aplikasi ini bisa diterapkan lebih komplek sebagai solusi untuk melakukan komunikasi antar anggota yang terhubung dalam jaringan lokal tanpa melalui server, sehingga keamanan komunikasi data dapat lebih di kendalikan, karena komunikasi data hanya berjalan diantara jaringan yang terhubung dan tidak sampai keluar dari jaringan tersebut.
2. untuk mengimplementasikan aplikasi ini membutuhkan beberapa modul/komponen diantaranya : a. 2 DT-51™ Low Cost Nano System / Low Cost Micro System b. 2 TRW-2.4G, c. 2 74HC125, d. 4 transistor 2N3904, e. 6 resistor 10K ohm ¼ W. 3. Pada aplikasi ini DT-51TM Low Cost Series berfungsi untuk mengendalikan TRW2,4G yang digunakan sebagai modul radio sebagai media komunikasi.
4. Aplikasi ini di program di dalam dalam DT-51™ Low Cost Nano System / Low Cost Micro System menggunakan DT-HiQ AT89S In System Programmer menggunakan bahasa BASIC serta menggunakan compiler BASCOM-8051