Rabu, 15 Juni 2011

Pengantar mukaa n Komput er dan Handphon e atau G SM/ CDMA Modem

Pengantar mukaa n
Komput er dan Handphon e
atau G SM/ CDMA Modem



Download: dosini

Email: barcode_bima@yahoo.co.id website: http://www.creative-instrument.com
Pendahuluan
Handphone (HP) saat ini memang bukan barang yang aneh untuk
masyarakat Indonesia. Bahkan tak sedikit yang memiliki lebih dari satu . Di
Indonesia saat ini tercatat tidak kurang dari 16 juta orang menjadi pelanggan
telepon genggam. Ke depan, seiring dengan perkembangan teknologi, HP akan
semakin cerdas dan melayani kebutuhan manusia. Komunikasi dengan
perangkat nirkabel akan lebih dominan, baik untuk bisnis, ataupun kegiatan
sehari-hari. Industri handphone, bergerak sangat cepat, setara dengan
melesatnya kecepatan suaranya. Kini semakin banyak teknologi pendukung
yang terintegrasi dengan produk HP, seperti radio FM, kamera digital dan
pemutar MP3.
Gambar. Berbagai Macam HP
Gambar. Berbagai Macam Modem GSM/CDMA
Selain HP, sebenarnya ada satu lagi peralatan lain yang biasanya
digunakan untuk peralatan komunikasi yang hampir sama dengan HP, yaitu
Modem GSM/CDMA. Jika HP digunakan sebagai alat komunikasi mobile,
modem GSM/CDMA lebih dikhususkan bukan untuk mobile tetapi didesain
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
untuk sebuah server layanan berbasis komunikasi GSM/CDMA. Walaupun
demikian pada dasarnya kedua peralatan ini didesain dengan kemampuan sama
yaitu melakukan komunikasi menggunakan GSM/CDMA. Perbedaanya
mungkin modem GSM/CDMA lebih dikhususkan untuk melakukan
pengantarmukaan dengan peralatan lain (biasanya computer) dibandingkan
dengan HP sehingga dalam hal komunikasi dengan peralatan lain modem
GSM/CDMA memiliki fitur yang lebih dalam hal kompatibilitas dan
kemampuan pengantarmukaan dibandingkan dengan HP.
Semakin lama ketergantungan manusia terhadap HP semakin besar. HP
telah menjadi gaya hidup baru, layanan service terhadap perangkat-perangkat ini
telah menjadi sumber usaha baru bagi para developer perangkat lunak, oleh
karena itu penguasaan terhadap pengantarmukaan HP ini menjadi keahlian baru
yang sangat dibutuhkan. Ada banyak sekali layanan yang disediakan misalnya
SMS Centre, Call Centre, Deliveri Service SMS, Pengisian pulsa elektronik dan
lain-lain.
AT-COMMAND
Untuk melakukan komunikasi dengan HP atau Modem, ada banyak
sekali cara yang bisa dilakukan tetapi yang paling terkenal dan disukai oleh para
programmer dan developer mungkin menggunakan AT-COMMAND yaitu suatu
standar bahasa komunikasi yang digunakan untuk komunikasi dengan modem
termasuk HP.
Berikut beberapa AT COMMAND yang sering dan umum digunakan
dalam pengantarmukaan HP atau Modem GSM/CDMA (keterangan lebih
lengkap sebaiknya anda melihat manual book dari produk yang anda gunakan
(buku daftar perintah AT COMMAND selalu disertakan pada saat membeli) bila
anda menggunakan modem dan jika anada menggunakan HP silahkan cari dan
download di internet untuk setiap merknya).
Berikut adalah beberapa daftar AT Command yang sering digunakan
dan ada pada beberapa perangkat HP atau Modem GSM / CDMA.
Call Commands atau perintah pemanggilan
ATA Answer Command
ATD Dial Command
ATH Hang Up Call
ATL Monitor Speaker Loudness
ATM Monitor Speaker Mode
ATO Go On-Line
ATP Set Pulse Dial as Default
ATT Set Tone Dial as Default
AT+CSTA Select Type of Address
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
AT+CRC Cellular Result Codes
Data Card Control Commands
ATI Identification
ATS Select an S-register
ATZ Recall Stored Profile
AT&F Restore Factory Settings
AT&V View Active Configuration
AT&W Store Parameters in Given Profile
AT&Y Select Set as s Powerup Option
AT+CLCK Facility Lock Command
AT+COLP Connected Line Identification Presentation
AT+GCAP Request Complete Capabilities List
AT+GMI Request Manufacturer Identification
AT+GMM Request Model Identification
AT+GMR Request Revision Identification
AT+GSN Request Product Serial Number Identification
Phone Control Commands
AT+CBC Battery Charge
AT+CGMI Request Manufacturer Identification
AT+CGMM Request Model Identification
AT+CGMR Request Revision Identification
AT+CGSN Request Product Serial Number Identification
AT+CMEE Report Mobile Equipment Error
AT+CPAS Phone Activity Status
AT+CPBF Find Phone Book Entries
AT+CPBR Read Phone Book Entry
AT+CPBS Select Phone Book Memory Storage
AT+CPBW Write Phone Book Entry
AT+CSCS Select TE Character Set
AT+CSQ Signal Quality
Computer Data Card Interface Commands
ATE Command Echo
ATQ Result Code Suppression
ATV Define Response Format
ATX Response Range Selection
AT&C Define DCD Usage
AT&D Define DTR Usage
AT&K Select Flow Control
AT&Q Define Communications Mode Option
AT&S Define DSR Option
AT+ICF DTE-DCE Character Framing
AT+IFC DTE-DCE Local Flow Control
AT+IPR Fixed DTE Rate
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
Service
AT+CLIP Calling Line Identification Presentation
AT+CR Service Reporting Control
AT+DR Data Compression Reporting
AT+ILRR DTE-DCE Local Rate Reporting
Network Communication Parameter Commands
ATB Communications Standard Option
AT+CBST Select Bearer Service Type
AT+CEER Extended Error Report
AT+CRLP Radio Link Protocol
AT+DS Data Compression
Miscellaneous Commands
A/ Re-Execute Command Line
AT? Command Help
AT*C Start SMS Interpreter
AT*T Enter SMS Block Mode Protocol
AT*V Activate V.25bis Mode
AT*NOKIATEST Test Command
AT+CESP Enter SMS Block Mode Protocol
SMS Commands SMS Text Mode
AT+CSMS Select Message Service
AT+CPMS Preferred Message Storage
AT+CMGF Message Format
AT+CSCA Service Centre Address
AT+CSMP Set Text Mode Parameters
AT+CSDH Show Text Mode Parameters
AT+CSCB Select Cell Broadcast Message Types
AT+CSAS Save Settings
AT+CRES Restore Settings
AT+CNMI New Message Indications to TE
AT+CMGL List Messages
AT+CMGR Read Message
AT+CMGS Send Message
AT+CMSS Send Message from Storage
AT+CMGW Write Message to Memory
AT+CMGD Delete Message
SMS PDU Mode
AT+CMGL List Messages
AT+CMGR Read Message
AT+CMGS Send Message
AT+CMGW Write Message to Memory
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
Kembali lagi penulis mengingatkan bahwa sangat penting untuk anda
mempunyai dokumen / Manual AT COMMAND dari perangkat yang anda
gunakan dan lihatlah cocokan dengan daftar diatas mana yang support dan mana
yang tidak ada pada perangkat yang anda gunakan.
Koneksi Perangkat ke Komputer
Ada banyak alternative yang dapat digunakan untuk menghubungkan
computer kita dengan perangkat HP atau Modem GSM, beberapa alternative
tersebut yaitu:
· Menggunakan kabel data. Dibutuhkan kabel data spesifik untuk setiap
merk HP. Nokia mempunyai bentuk sendiri, Motorolla dan siemens juga
berbeda. Kabel ini akan menancap di port COM, atau ada juga yang di
USB port.
Gambar. Beberapa Kabel Data HP
Untuk modem GSM biasanya menggunakan port serial atau langsung
ditancapkan di port USB, kabel data ini selalu akan diikutsertakan pada
saat kita membeli.
· Menggunakan IrDA (Infrared) atau Bluetooth. Pada saat kita menginstal
driver dari perangkat tersebut akan tercipta port baying yang kemudian
digunakan sebagi port koneksi, tentunya HP / Modem yang kita gunakan
juga mempunyai perangkat yang sama.
Rutin Penting Pemrograman AT COMMAND menggunakan Delphi.
Melakukan Koneksi.
function TfUtama.GoKonek;
begin
Konek := false;
If Not fUtama.XComm1.Opened then
fUtama.XComm1.OpenDevice;
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
if XComm1.SendString('ATE1'#13) and (XComm1.WaitForString(['OK'], 2000) <> -1) then
Konek := True;
Result := Konek;
end;
Mendapatkan info Peralatan yang digunakan.
function TfUtama.SendGetData;
var
waktu: TDateTime;
begin
ReadyState := False;
BatasStr := Batas;
Buffer := '';
waktu := now;
XComm1.SendString(Teks);
while (Not ReadyState) and (SecondsBetween(waktu, Now) < 10)
do Application.ProcessMessages;
Result := Buffer;
end;
procedure TfUtama.getInfo;
var
c,
s: string;
p, n,
i: integer;
l: TListItem;
begin
List.Text := buffer;
s := List.Strings[1];
if Pos('AT+CGMI', Buffer) > 0 then begin
c := copy(Buffer, pos('AT+CGMI', Buffer) + 2, length(Buffer));
Item.Text := c;
l := LvPhone.Items.Add;
l.Caption := 'Merk HP';
l.SubItems.Add(Item.Strings[2]);
end;
if Pos('AT+GMM', Buffer) > 0 then begin
c := copy(Buffer, pos('AT+GMM', Buffer) + 2, length(Buffer));
Item.Text := c;
l := LvPhone.Items.Add;
l.Caption := 'Modem';
l.SubItems.Add(Item.Strings[2]);
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
end;
if Pos('AT+CGSN', Buffer) > 0 then begin
c := copy(Buffer, pos('AT+CGSN', Buffer) + 2, length(Buffer));
Item.Text := c;
l := LvPhone.Items.Add;
l.Caption := 'I M E I';
l.SubItems.Add(Item.Strings[2]);
end;
if Pos('+COPS:', Buffer) > 0 then begin
c := copy(Buffer, pos('+COPS:', Buffer) + 7, length(Buffer));
c := AnsiReplaceStr(c, ',', #13);
Item.Text := c;
l := LvPhone.Items.Add;
l.Caption := 'Network Operator';
l.SubItems.Add(TrimAll(Item.Strings[2]));
end;
if Pos('+CSCA:', Buffer) > 0 then begin
c := copy(Buffer, pos('+CSCA:', Buffer) + 7, length(Buffer));
c := AnsiReplaceStr(c, ',', #13);
Item.Text := c;
l := LvPhone.Items.Add;
l.Caption := 'Service Center';
SMSC := TrimAll(Item.Strings[0]);
l.SubItems.Add(SMSC);
end;
if Pos('+CIND:', Buffer) > 0 then begin
c := copy(Buffer, pos('+CIND:', Buffer) + 7, length(Buffer));
i := 0;
p := pos('("', c);
while p > 0 do begin
n := pos('",', c);
s := copy(c, p + 2, n - p - 2);
PhoneInfo[i] := s;
Inc(i);
Delete(c, p, n + 2);
p := pos('("', c);
end;
JumlahPhoneInfo := i;
end;
end;
Kirim SMS
function TfUtama.KirimSMS(Tujuan, Isi: string): boolean;
var
PDU,
udhi,
smstotal,
smsref,
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
tempisi,
s: string;
sms: tSMS;
i, p: integer;
begin
if not konek then begin
Result := false;
exit;
end;
sms := TSMS.Create;
sms.Number := tujuan;
sms.RequestReply := cbReply.Checked;
sms.FlashSMS := cbFlash.Checked;
sms.StatusRequest := cbReport.Checked;
sms.dcs := -1;
Result := true;
if length(isi) <= 160 then begin
sms.Text := isi;
sms.UDHI := '';
pdu := sms.PDU;
s := SendGetData('AT+CMGS=' + inttostr(sms.tplength) + #13, '>');
s := SendGetData(PDU + #$1A, sOK);
Result := pos(sOK, s) > 0;
end
else begin
p := 153;
smstotal := IntToHex((length(isi) div p) + 1, 2);
smsRef := GetNextLongSMSRefference;
udhi := '050003' + smsRef + smstotal;
for i := 1 to StrToInt('$' + smstotal) do begin
tempisi := Copy(isi, 1, p);
Delete(isi, 1, p);
sms.Text := tempisi;
sms.UDHI := udhi + IntToHex(i, 2);
pdu := sms.PDU;
s := SendGetData('AT+CMGS=' + inttostr(sms.tplength) + #13, '>');
s := SendGetData(PDU + #$1A, sOK);
Result := pos(sOK, s) > 0;
end;
end;
sms.Free;
end;
Cek SMS.
procedure TfUtama.CekSMS;
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
var
nomer,
tgl,
s : string;
i,j : integer;
a,
l: TListItem;
sms : tSMS;
begin
if not Konek then exit;
s := sendGetData('AT+CSMS=0'#13, sOK);
if Pos(sOK, s) = 0 then begin
ShowMessage('Media tidak mendukung fasilitas SMS');
exit;
end;
s := sendGetData('AT+CPMS="' + arSumber[cbSumber.ItemIndex] +'"'#13, sOK);
if Pos(sOK, s) = 0 then begin
ShowMessage('Tidak dapat memilih media ' + cbSumber.Text);
exit;
end;
s := sendGetData('AT+CMGF=0'#13, sOK);
if Pos(sOK, s) = 0 then begin
ShowMessage('Tidak dapat memilih format PDU');
exit;
end;
List.Clear;
sms := TSMS.Create;
for j := 3 downto 0 do begin
List.Text := SendGetData('AT+CMGL=' + IntToStr(j) +#13, sOK);
i := 0;
while i < List.Count do begin
s := List.Strings[i];
if copy(s, 1, 7) = '+CMGL: ' then begin
nomer := copy(s, 8, pos(',', s) - 8);
inc(i);
s := List.Strings[i];
sms.PDU := s;
l := ListSMS.Items.Add;
l.Caption := sms.number;
if sms.TimeStamp > 0 then tgl := DateTimeToStr(sms.TimeStamp)
else tgl := '-';
l.SubItems.Add(tgl);
l.SubItems.Add(sms.Text);
l.SubItems.Add('Phone');
l.SubItems.Add(arJenisSMS[j]);
l.SubItems.Add(nomer); // index di HP
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
l.SubItems.Add(nomer); // id SMS
a := lvSMS.Items.Add;
a.Caption := rubahKeNama(l.Caption);
a.SubItems := l.SubItems;
end;
inc(i);
end;
end;
sms.Free;
end;
Format Protokol Data Unit (PDU)
Hal pertama yang saya bahas adalah, bahwa setiap pengiriman SMS,
baik dari HP menuju operator, atau sebaliknya, selalu menggunakan format
PDU (Protocol Data Unit), yaitu paket data dimana pesan SMS dikemas,
bersama informasi tanggal, nomor tujuan, nomor pengirim, nomor operator,
jenis skema SMS, masa valid SMS, dan beberapa hal lain (tergantung jenis
paketnya).Berikut ini adalah contoh PDU yang diterima oleh HP (New SMS
atau Inbox):
07 91 2658050000F0 04 0C 91 265836164900 00 00 506020
31133180 04 C830FB0D
Dengan keterangan sebagai berikut:
Oktet / Digit
Hexa Keterangan
07
Panjang atau jumlah pasangan digit dari nomor SMSC
(service number) yang digunakan, dalam hal ini adalah 7
pasangan (14 digit berikutnya)
91
Jenis nomor SMSC. Angka 91 menandakan format nomor
internasional (misal +6281xxx). Untuk 081xxx
menggunakan angka 81.
2658050000F0
Nomor SMSC yang digunakan. Karena jumlah digit
nomor SMS adalah ganjil, maka digit paling belakang
dipasangkan dengan huruf F. Kalau diterjemahkan, nomor
SMSC yang digunakan adalah +62855000000 (IM3)
04 Oktet pertama untuk pesan SMS yang diterima
0B Panjang digit dari nomor pengirim (0C hex = 12 desimal)
91 Jenis nomor pengirim (sama dengan jenis nomor SMSC)
265836164900 Nomor pengirim SMS, yang jika diterjemahkan adalah
+628563619400
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
00 Pengenal protokol, dalam hal ini adalah 0
00 Skema pengkodean SMS, juga bernilai 0
506020 311331
80
Waktu pengiriman, yang berarti 05-06-02 (2 Juni 2005),
dan jam 13:31:13. Sedangkan 80 adalah Timezone yang
digunakan.
04 Panjang dari pesan SMS, dalam hal ini adalah 4 huruf
(dalam mode 7 bit).
C830FB0D
Pesan SMS dalam mode 7 bit. Jika diterjemahkan
kedalam 8 bit, lalu dirubah ke ASCII, maka didapat pesan
'Halo'
Yah, itu adalah sekilas tentang PDU, yang sering dihadapi untuk
berurusan dengan SMS. Kecuali jika HP yang anda gunakan mendukung
AT+CMGF=1, yang berarti kita dapat berkomunikasi dengan HP dalam Mode
Teks! seperti HP saya, SE T610 :-)
Kalau menggunakan mode teks, anda tidak berurusan dengan PDU,
meski antara HP dengan operator masih menggunakan PDU.
Programming
Ketika pertama kali masuk delphi, ada 1 komponen yang mesti kita
install terlebih dahulu, yaitu MS-Comm, yang digunakan untuk berkomunikasi
dengan Port COM. Cara instalasi adalah sebagai berikut:
· Dari IDE Delphi, pada menu Component, pilih menu Import Active-X
Control
· Pada pilihan obyek, silakan pilih MSCommXX.ocx, lalu tekan tombol
Install
· Akan muncul beberapa dialog berikutnya, pilih saja yes atau ok :-)
Setelah Active-X terinstall, pada Tab Palette Active-X, akan muncul
sebuah tombol dengan gambar telepon. Klik dan letakkan komponen tersebut
pada Form, maka akan tercipta sebuah obyek dengan nama MSComm1.
unit uKirim;
interface
procedure KirimSMS(smsc, Tujuan, Isi: string);
const
sOK = 'OK';
sERROR = 'ERROR';
ProXLsmsc ='62818445009';
Simpatismsc ='6281100000';
Mentarismsc ='62816124';
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
IM3smsc ='62855000000';
var
lkirim : integer;
implementation
Uses uTerimaSMS;
function text2PDU(text:string):string;
var PDU : string;
geser,panjang,tmp,tmp2,tmp3,n:byte;
begin
PDU :='';
panjang :=length(text);
PDU :=PDU+inttohex(panjang,2);
geser :=0;
for n :=1 to panjang-1 do
begin
tmp2 :=ord(text[n]);
if geser<>0 then tmp2 :=tmp2 shr geser;
tmp :=ord(text[n+1]);
if geser=7 then
begin
geser :=0;
end else
begin
tmp3 :=8-(geser+1);
if tmp3<>0 then tmp:=tmp shl tmp3;
PDU :=PDU+inttohex((tmp or tmp2),2);
inc(geser);
end;
end;
if geser<7 then
begin
tmp2:=ord(text[panjang]);
if(geser<>0)then tmp2:=tmp2 shr geser;
PDU:=PDU+inttohex(tmp2,2);
end;
result:=PDU;
end;
function
ConvertText(smsc,tipe,ref,tujuan,bentuk,skema,validitas,isi:string):string;
var
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
PDU,tmp :string;
p,
i :byte;
begin
PDU := '';
If length(smsc)=0 then begin result :=''; exit; end;
if length(tipe)=0 then tipe :='11';
if length(ref)=0 then ref :='00';
if length(bentuk)=0 then bentuk :='00';
if length(skema)=0 then skema :='00';
if length(validitas)=0 then validitas :='FF';
If length(isi)=0 then begin result :=''; exit; end;
if smsc[1]='0' then tmp :='81'+smsc else tmp :='91'+smsc;
if(length(tmp)mod 2)<>0 then tmp :=tmp+'F';
p := length(tmp);
PDU :=PDU + inttohex(p div 2,2) + tmp[1] + tmp[2];
for i:= 2 to length(tmp)div 2 do
begin
PDU :=PDU+tmp[i*2];
PDU :=PDU+tmp[(i*2)-1];
end;
PDU :=PDU+tipe;
PDU :=PDU+ref;
if tujuan[1]='+' then tujuan:=copy(tujuan,2,length(tujuan)-1);
PDU :=PDU+inttohex(length(tujuan),2);
if(length(tujuan)mod 2)<>0 then tujuan:=tujuan+'F';
if tujuan[1]='0' then PDU :=PDU+'81' else begin
PDU :=PDU+'91';
end;
for i :=1 to length(tujuan)div 2 do
begin
PDU :=PDU+tujuan[i*2];
PDU :=PDU+tujuan[(i*2)-1];
end;
PDU :=PDU+bentuk;
PDU :=PDU+skema;
PDU :=PDU+validitas;
tmp := Text2PDU(isi);
PDU :=PDU+tmp;
i := length(tmp);
lkirim := (length(PDU) - p) div 2;
result :=PDU;
end;
function SendGetData(teks: string; tOK: string): string;
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
var waktu : TDateTime;
buffer : string;
begin
waktu := now;
comm.Output := teks;
sleep(500);
buffer := '';
repeat
buffer := buffer + comm.Input;
until (pos(tOK, buffer) > 0) or (pos(sERROR, buffer) > 0)
or (SecondsBetween(waktu,now) > 60);
result := buffer;
end;
procedure KirimSMS;
var
PDU :string;
begin
PDU := ConvertText(IM3smsc,'','',Tujuan,'','','',isi);
SendGetData('AT+CMGS=' + inttostr(lkirim) + #13, '>');
SendGetData(PDU + #$1A, sOK);
end;
begin
end.
Komunikasi
Buat sebuah tombol (Command Button) pada Form, beri caption
'Konek'. Lalu pada event On-Click tombol tersebut, ketik program berikut ini:
procedure TForm1.Button1Click(Sender: TObject);
var waktu: tDateTime;
buffer: string;
konek: boolean;
begin
if MSComm1.PortOpen then
MSComm1.PortOpen := false;
MSComm1.CommPort := 1;
// isi dengan nomor COM
// yang terhubung ke HP,
// misal COM1, isi dengan 1
MSComm1.Settings := '19200,N,8,1';
// sesuaikan baudrate
// dengan HP anda.
// kebanyakan support 19200
MSComm1.InputLen := 0;
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
MSComm1.PortOpen := true;
Sleep(800);
waktu := now;
repeat
MSComm1.Output := 'ATE1'#13;
buffer := '';
repeat
buffer := buffer + MSComm1.Input;
until (Pos('OK', buffer) > 0) or
(Pos('ERROR', buffer) > 0)
or (secondsbetween(waktu, now) > 10);
until (Pos('OK', buffer) > 0) or
(secondsbetween(waktu, now) > 10);
Konek := (Pos('OK', buffer) > 0);
If Konek Then
MessageDlg('Sukses konek ke HP',
mtInformation, [mbOk], 0)
else
MessageDlg('Tidak dapat konek ke HP',
mtError, [mbOk], 0);
end;
Jalankan program, semoga tidak error. Lalu tekan tombol Button1. Jika
koneksi sukses, yaitu jika HP merespon perintah 'ATE1' dengan ucapan 'OK',
berarti koneksi dengan HP telah berhasil. Jika tidak, mungkin terjadi kekeliruan
pada kabel, nomor Port atau setting BaudRate. Silakan dicek.
Membaca SMS
Bagi yang sering kirim-kiriman SMS, kalo cuma mengandalkan kapasitas
penyimpanan dalam handset (handphone), suatu saat pasti pernah mengalami
penuhnya inbox. Hal tersebut berlaku untuk jenis manusia yang sayang untuk
menghapus SMS kiriman dari someone special. Tapi tidak berlaku untuk jenis
manusia yang suka menulis ulang isi SMS ke dalam MS-Word (aku pernah
menemukan manusia jenis ini)., sehingga Inboxnya tidak pernah penuh.
Jika anda ingin mengandalkan PC untuk menyimpan isi inbox, anda
dapat menggunakan banyak aplikasi siap pakai yang dapat digunakan untuk
menyimpan atau mentransfer SMS. Saya sering menggunakan aplikasi bawaan
dari vendor HP (PC Suite untuk Nokia, Data Suite untuk Siemens, ada juga
untuk SonyEricsson), juga ada Logo Manager buatan pihak ketiga.
Selain menggunakan aplikasi siap pakai tersebut, kali ini saya membahas
bagaimana cara berkomunikasi langsung dengan HP, menggunakan ATCommand,
lewat port serial.
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
Berikutnya adalah membaca SMS.
Silakan tambahkan obyek Memo pada form, dan tambahkan tombol
Button2, kemudian tuliskan kode ini pada event OnClick Button2:
procedure TForm1.Button2Click(Sender: TObject);
var waktu: tDateTime;
buffer: string;
begin
MSComm1.Output := 'AT+CMGL=1' + #13;
Sleep(500);
waktu := now;
repeat
buffer := MSComm1.Input;
Memo1.Text := Memo1.Text + buffer;
until (pos(sOK, s) > 0) or (pos(sERROR, s) > 0) or
(SecondsBetween(waktu,now) > 180);
end;
Jika program dijalankan, lalu ditekan tombol Button2, maka program
akan mengirim perintah AT+CMGL=1 ke HP, yang berarti, 'berikan aku daftar
SMS yang ada di Inbox'. Sehingga nantinya semua isi Inbox akan dikirimkan ke
program, tetapi masih dalam format PDU.
procedure TForm1.Button3Click(Sender: TObject);
begin
CekSMS(Memo1);
end;
Ketika tombol Button3 ditekan, maka SMS dalam Inbox dan SMS baru,
akan dimasukkan kedalam Memo1.
Berikut ini ketentuan AT+CMGL,
· AT+CMGL=0 : SMS baru
· AT+CMGL=1 : SMS dalam Inbox (yang sudah terbaca)
· AT+CMGL=2 : SMS Draft (belum terkirim)
· AT+CMGL=3 : SMS Outbox (terkirim)
· AT+CMGL=4 : Seluruh SMS (semua yang ada di Inbox, Outbox, Draft)
Mengirim SMS
Kita memulai pembahasan dengan bagaimana cara membentuk PDU
untuk dikirim. PDU yang diterima dari HP berbeda dengan PDU yang untuk
dikirim, namun tetap menggunakan aturan yang sama. Perbedaannya terutama
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
pada field yang dikandung, baik nilai maupun fungsinya. Untuk lebih detail
mengenai PDU yang diterima, silakan membaca artikel sebelumnya.
Berikut ini struktur PDU untuk dikirim:
07 91 2658050000F0 11 00 0C 91 265836164900 00 00 FF 04
C830FB0D
Keterangan:
Oktet / Digit
Hexa Keterangan
07
Panjang atau jumlah pasangan digit dari nomor SMSC (service
number) yang digunakan, dalam hal ini adalah 7 pasangan (14
digit berikutnya)
91
Jenis nomor SMSC. Angka 91 menandakan format nomor
internasional (misal +6281xxx). Untuk 081xxx menggunakan
angka 81.
2658050000F0
Nomor SMSC yang digunakan. Karena jumlah digit nomor
SMS adalah ganjil, maka digit paling belakang dipasangkan
dengan huruf F. Kalau diterjemahkan, nomor SMSC yang
digunakan adalah +62855000000 (IM3)
11 Oktet pertama untuk PDU SMS untuk dikirim (SMS SUBMIT).
00 TP-Message-Reference. Diisi "00" agar diisi otomatis oleh
handphone.
0C Panjang digit dari nomor penerima (0C hex = 12 desimal)
91 Jenis nomor penerima (sama dengan jenis nomor SMSC)
265836164900 Nomor penerima SMS, yang jika diterjemahkan adalah
+628563619400
00 Pengenal protokol, dalam hal ini adalah 0.
00 Skema pengkodean SMS, juga bernilai 0.
FF Validitas waktu. FF berarti maksimum.
04 Panjang dari pesan SMS, dalam hal ini adalah 4 huruf (dalam
mode 7 bit).
C830FB0D Pesan SMS dalam mode 7 bit. Jika diterjemahkan kedalam 8
bit, lalu dirubah ke ASCII, maka didapat pesan 'Halo'
Untuk handphone tertentu, kita dapat menghilangkan pemberian nomor
SMSC pada PDU, untuk kemudian akan diisi oleh handphone sesuai dengan
kartu yang sedang digunakan. Tapi untuk lebih amannya, kita sebutkan nomor
SMSC yang digunakan.
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
Ketika PDU SMS selesai dibentuk, maka langkah selanjutnya adalah
melakukan pengiriman PDU tersebut melalui port serial yang digunakan.
Perintah yang pertama kali digunakan adalah AT+CMGS, dengan aturan sebagai
berikut:
AT+CMGS=
diisi dengan jumlah pasangan dalam PDU yang
terbentuk, dengan dikurangi SMSC. Dengan kata lain, kita menghitung jumlah
oktet mulai dari kode SMS SUBMIT (11). Untuk contoh di atas, berarti jumlah
digit dalam PDU adalah 36, yang berarti terdiri dari 18 oktet. Sehingga perintah
yang digunakan adalah:
AT+CMGS=18
Setelah itu, tunggu respon dari handphone. Kalau gagal, dengan berbagai
alasan, maka yang dikembalikan adalah ERROR.
Sedangkan jika perintah tersebut diijinkan, maka yang dikembalikan adalah
karakter '>' (lebih besar).
Jika perintah tersebut sukses, selanjutnya adalah menuliskan semua PDU
tersebut ke handphone, dan diakhiri dengan penulisan karakter ASCII 26
(CTRL+Z).
Jika sukses, maka yang dikembalikan adalah OK. SMS terkirim, semoga.
Yang perlu diperhatikan adalah tentang pengaturan koneksinya. Karena
masing-masing proses (kirim dan terima) membutuhkan koneksi ke handphone,
maka harus diatur agar tidak terjadi proses terima dan kirim secara bersamaan.
1. Nomor SMS Centre
Header pertama terbagi atas 3 subheader, yaitu:
a. Jumlah pasangan heksadesimal SMS-centre dalam bilangan heksa
b. National/internasional kode
Untuk nasional, kode subheadernya adalah 81
Untuk Internasional, kode subheadernya adalah 91
c. No SMS Centre sendiri dalam bahasa heksa dibalik-balik.
Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut
akan dipasangkan denga F didepanya.
2. Tipe SMS
Tipe SEND =1., jadi bilangan heksanya adalah 01
3. Nomor Referensi SMS
Nomor referensi dibiarkan 0. jadi heksanya adalah 00.
4. Nomor Ponsel Penerima.
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
a. Jumlah bilangan decimal nomor ponsel yang dituju dalam bilangan heksa.
b. National/internasional kode
c. Nomor pasangan dibolak-balik.
5. Bentuk SMS
0 = 00 = dikirim sebagai SMS
1= 01 = dikirim sebagai telex
2 = 02 = dikirim sebagai fax
6. Skema Encoding Data I/O
Ada dua skema yaitu:
1. Skema 7 Bit -> ditandai dengan angka 00
2. Skema 8 bit -> ditandai dengan angka lebih besar dari 0 yang diubah
ke heksa.
7. Jangka Waktu sebelum SMS Expired
Jika bagian ini di skip, berarti kita tidak membatasi waktu berlakunya
SMS. Sedangkan jika kita mengisinya dengan bilangan heksa maka bilangan
decimal dari heksa tersebut akan mewakili jumlah waktu validitas SMS.
8. Isi SMS
a. Panjang isi (ex: “HELLO” = 05)
b. Isi berupa pasangan bilangan heksa (lihat table diatas). Kemudian rubah
ke 8 bit dengan menambah satu bit dummy yang bernilai 0.
9. gabungkan 8 header (langkah diatas).
b7 0 0 0 0 1 1 1 1
b6 0 0 1 1 0 0 1 1
b5 0 1 0 2 0 1 0 1
b4 b3 b2 b1 0 1 2 3 4 5 6 7
0 0 0 0 0 @ SP 0 P p
0 0 0 1 1 ! 1 A Q A q
0 0 1 0 2 $ 2 B R B r
0 0 1 1 3 3 C S C s
0 1 0 0 4 4 D T D t
0 1 0 1 5 % 5 E U E u
0 1 1 0 6 & 6 F V F v
0 1 1 1 7 ‘ 7 G W G w
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
1 0 0 0 8 ( 8 H X H x
1 0 0 1 9 ) 9 I Y I y
1 0 1 0 10 LF * : J Z J z
1 0 1 1 11 + ; K Ä K ä
1 1 0 0 12 , < L Ö L ö
1 1 0 1 13 CR - = M M
1 1 1 0 14 ß . > N Ü N ü
1 1 1 1 15 / ? O O
function KirimSMS(Tujuan, Isi: string): boolean;
var
PDU,
udhi,
smstotal,
smsref,
tempisi,
s: string;
sms: tSMS;
i, p: integer;
begin
if not konek then begin
Result := false;
exit;
end;
sms := TSMS.Create;
sms.Number := tujuan;
sms.RequestReply := cbReply.Checked;
sms.FlashSMS := cbFlash.Checked;
sms.StatusRequest := cbReport.Checked;
sms.dcs := -1;
Result := true;
if length(isi) <= 160 then begin
sms.Text := isi;
sms.UDHI := '';
pdu := sms.PDU;
s := SendGetData('AT+CMGS=' + inttostr(sms.tplength) + #13,
'>');
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
s := SendGetData(PDU + #$1A, sOK);
Result := pos(sOK, s) > 0;
end
else begin
p := 153;
smstotal := IntToHex((length(isi) div p) + 1, 2);
smsRef := GetNextLongSMSRefference;
udhi := '050003' + smsRef + smstotal;
for i := 1 to StrToInt('$' + smstotal) do begin
tempisi := Copy(isi, 1, p);
Delete(isi, 1, p);
sms.Text := tempisi;
sms.UDHI := udhi + IntToHex(i, 2);
pdu := sms.PDU;
s := SendGetData('AT+CMGS=' + inttostr(sms.tplength) +
#13, '>');
s := SendGetData(PDU + #$1A, sOK);
Result := pos(sOK, s) > 0;
end;
end;
sms.Free;
end;
procedure CekSMS;
var
nomer,
tgl,
s : string;
i,j : integer;
a,
l: TListItem;
sms : tSMS;
begin
if not Konek then exit;
s := sendGetData('AT+CSMS=0'#13, sOK);
if Pos(sOK, s) = 0 then begin
ShowMessage('Media tidak mendukung fasilitas SMS');
exit;
end;
s := sendGetData('AT+CPMS="' + arSumber[cbSumber.ItemIndex]
+'"'#13, sOK);
if Pos(sOK, s) = 0 then begin
ShowMessage('Tidak dapat memilih media ' + cbSumber.Text);
exit;
end;
Pengantarmukaan Komputer dan Handphone
By: Muhammad Iqbal
s := sendGetData('AT+CMGF=0'#13, sOK);
if Pos(sOK, s) = 0 then begin
ShowMessage('Tidak dapat memilih format PDU');
exit;
end;
List.Clear;
sms := TSMS.Create;
for j := 4 downto 0 do begin
List.Text := SendGetData('AT+CMGL=' + IntToStr(j) +#13, sOK);
i := 0;
while i < List.Count do begin
s := List.Strings[i];
if copy(s, 1, 7) = '+CMGL: ' then begin
nomer := copy(s, 8, pos(',', s) - 8);
inc(i);
s := List.Strings[i];
sms.PDU := s;
l := ListSMS.Items.Add;
l.Caption := sms.number;
if sms.TimeStamp > 0 then tgl :=
DateTimeToStr(sms.TimeStamp)
else tgl := '-';
l.SubItems.Add(tgl);
l.SubItems.Add(sms.Text);
l.SubItems.Add('Phone');
l.SubItems.Add(arJenisSMS[j]);
l.SubItems.Add(nomer); // index di HP
l.SubItems.Add(nomer); // id SMS
a := lvSMS.Items.Add;
a.Caption := rubahKeNama(l.Caption);
a.SubItems := l.SubItems;
end;
inc(i);
end;
end;
sms.Free;
end;

Mengakses Port Parallel PC (LPT) dengan Delphi 7.0 Menggunakan Komponen Small Port

Mengakses Port Parallel PC (LPT) dengan Delphi 7.0 Menggunakan Komponen Small Port

Author: Tono maryono · Published: June 14, 2010 · Category: Hardware Komputer, Komputer Dasar, Pemrograman Delphi

Port Paralel / Port LPT meskipun sudah banyak ditinggalkan penggunaanya, masih dipergunakan oleh sebagian kalangan yang ingin mempelajari transmisi data secara parallel. Kalangan akademis (pelajar dan mahasiswa) masih mempelajari komunikasi data parallel sebagai sarana emanambah ilmu pengetahuan.

Port Paralel

Port Paralel atau Port Printer sebenarnya terdiri dari tiga bagian yang masing-masing diberi nama sesuai dengan tugasnya dalam melaksanakan pencetakan pada printer. Tiga bagian tersebut adalah Data Port (DP), Printer Control (PC), dan Printer Status (PS). DP Digunakan untuk mengirim data yang harus dicetak oleh printer, PC digunakan untuk mengirimkan kode-kode kontrol dari komputer ke printer, misalnya kode kontrol untuk menggulung kertas, dan PS digunakan untuk mengirimkan kode-kode status printer ke komputer, misalnya untuk menginformasikan bahwa kertas telah habis.

DP, PC, dan PS sebenarnya adalah port-port 8 bit, namun hanya DP yang benar-benar 8 bit. Untuk PC dan PS, hanya beberapa bit saja yang dipakai yang berarti hanya beberapa bit saja dari port-port ini yang dapat kita manfaatkan untuk keperluan interfacing. Port PC adalah port baca/tulis (read/write), PS adalah port baca saja (read only), sedangkan port DP adalah port baca/tulis (read/write). Akan tetapi, kemampuan ini hanya dimiliki oleh Enhanced Paralel Port (EPP), sedangkan port parallel standar / Standard Paralel Port (SPP) hanya memiliki kemampan tulis saja. Pada EPP, pengaturan arah jalur DP dilakukan lewat bit 5 PC. Jika bit 5 PC bernilai 0, maka jalur dwi-arah DP menjadi keluar ke port paralel, sebaliknya jika bit 5 PC bernilai 1, maka jalur dwi-arah DP menjadi masuk dari port parallel (Retna Prasetya : 2004)

Cara bikin game buat ps

Cara bikin game buat ps1
Silahkan Download BOOK

Cara Bikin game PS2
Silahkan Download BOOK

ALAT UKUR FREKUENSI

ALAT UKUR FREKUENSI


Download sofware disini

oleh:
tono maryono
(2A-17-0831130090)

ALAT UKUR FREKUENSI

IC INTERSIL tipe 7226B merupakan pencacah tepat untuk sebuah alatukur frekuensi yang sederhana tetapi dapat diandalkan, yang mencakup jangkah 9 MHz. Rangkaian alatukur ini terbagi ke dalam empat bagian fungsional:
· Tingkat masukan, TI, T2, N2, N3;
· Pengali, FFIFF2, IC3, IC4;
· Pencacah, IC5;
· Penampil Ld, ... Ld6
Secara umum rangkaian ini merupakan
rancangan baku.. Fungsi utama tingkat masukan adalah mengubah isyarat masukan menjadi denyut-denyut segiempat yang akan dium­pankan ke pencacah secara langsung ataupun melalui pengali. Tingkat ini bisa menangani masukan tegangan sampai 50 Veff, ini sudah cukup untuk kebanyakan pengukuran. Dioda D. dan D2 menghantar apabila tegangan, masukan di atas 600mV jadi impedansi masukannya terutama di­tentukan oleh harga R2, yakni sekitar 1 M. Pengali (x 100) khususnya penting untuk pengukuran frekuensi-frekuensi antara 5 Hz dan 1...2 kHz.
Pencacah, Intersil 7226B, berisi sebuah osilator kristal, sebuah basis waktu, sebuah pencacah, dekoder tujuh segmen, sebuah multiplekser, Beserta sejumlah penggerak untuk kendali langsung penampil LED. Didalam prototip kami sebuah kristal 1 Mhz digunakan untuk menggerakkan chip tetapi pilihan kristal 10 Mhz lebih murah boleh digunakan. Penampil LED yang popular adalah MAN 4060A .
Fungsi sakelar-sakelar adalah:
S1a menghubungkan tingkat masukan dengan pencacah secara langsung atau melalui pengali.
S1b menjamin posisi titik decimal yang betul apabila pengali berada dalam rangkaian.
S2 menentukan titik decimal yakni apakah penampil membaca Khz atau Mhz.
S3 adalah saklar on of utama.
S4 bertindak menguji penampil jika ditekan semua segmen akan menyala .

Akhirnya alat ukur ini tidak dilengkapi penampil, ini dipasang pada PCB terpisah.

DAFTAR KOMPONEN
D1,D2,D4,…D6 = 1N4148 D3 = LED (merah)
R, = 1 k D7 ... D10 = 1n4001
R2 = 1 M T1= BF 2564
R, R6 = 470 T2 = BF 494
R4=220 T3 = BC 547
R5 = 2,2 k IC1 = 74LSO4
R7, R12= 4,7K IC2 =4013
R8 = 18 k IC3 = 4046
R9 = 330 IC4 = 4518
R10,R24, = 100 k ICS = 7226B (Intersil)
R11,R21…R23 = 10 k IC6 = 7805 R13... R20 = 10 Ld, ... Ld6 = MAN 4640A
R25= 4,7 M
Lain-lain:
Kondensator: S, = sakelar tukar dua kutub
C1,C8,C11…C13= 100 nF S2 = sakelar tukar C2 = 100uF/16V S3 = sakelar on/off dua kutub
C3,C6 = 10 kF/16 V S4,S5 = sakelar tekan bebas
C4= 22 pF X, = kristal 1 MHz /10Mhz
C5 = 1000uF/V
C7-C9 = 33 pF
C10= trimer 40 pF

Apa itu Megaupload.com?

Apa itu Megaupload.com?

Download di sini

Megaupload.com adalah salah satu website penyedia jasa penyimpanan file dan hosting file secara online. Jasa penyimpanan file yang diberikan dari Megaupload.com sampai dengan 50GB untuk free membership account dan unlimited untuk premium account, dan transfer file yang bisa dilakukan sampai dengan 500MB perfile.

Jadi apa yang bisa Anda manfaatkan dari website seperti Megaupload.com yang menyediakan jasa penyimpanan file secara online?

1. Anda dapat menyimpan file Anda secara online, dan mendownloadnya di kemudian hari atau dilain tempat melalui internet secara online, sehingga Anda tidak memerlukan atau membawa USB Anda.

2. Anda dapat memberikan link download file Anda kepada siapa saja yang Anda inginkan agar mereka bisa mendownloadnya, misalkan hanya dengan memberikan link download maupun dengan mengirimkan link download ke email orang tersebut terutama bila file yang akan didownload sangat besar misalkan 100MB, bila Anda mengirimkan melalui email, mungkin penyedia layanan email tertentu akan menolak email Anda karena mengirimkan file yang diluar batasan limitnya, dan selain itu, mungkin penerima email Anda bisa juga terkejut melihat pada mail box nya email dari Anda memuat attachment file sebesar 100MB (contohnya). Tetapi dengan menggunakan Megaupload.com, Anda cukup dengan mengirimkan link downloadnya, sehingga orang tersebut bisa memutuskan akan mendownload file Anda atau tidak.

3. Bila Anda memiliki website dengan batasan web hosting space (besarnya file yang bisa Anda simpan pada hosting server Anda) yang terbatas, Anda bisa menggunakan website penyedia jasa penyimpanan file ini untuk menyimpan file Anda, dan tentunya juga akan menghemat Bandwidth website Anda, sebab bila file Anda sebesar 100MB (contoh), bila ada 100 orang yang mendownload, berapa besar Bandwidth Anda yang akan habis olehnya? Bila Bandwith Anda habis, website Anda tidak bisa diakses oleh pengunjung website Anda dalam bulan yang bersangkutan. Besarnya batasan Bandwidht Anda dapat dilihat di account hosting Anda, dan pemakaian Bandwidth ini akan direset perbulan.

Ketiga hal tersebut diatas, merupakan beberapa hal yang bisa Anda manfaatkan dari website yang menyediakan jasa penyimpanan file online.


Download di sini

Biasanya website penyedia jasa penyimpanan file online tersebut memberikan free membership dan premium membership. Dan untuk free membership, setiap download yang akan Anda lakukan, tidak langsung mendownlaod file tersebut, tetapi menampilkan halaman download website tersebut, yang tentunya menampilkan beberapa iklan dari website tersebut. Tetapi hal tersebut adalah wajar, karena Anda sudah bisa menggunakan media penyimpanan secara online dengan gratis.

Untuk premium account, biasanya Anda bisa langsung mendownload file Anda, tidak menampilkan halaman download dari website tersebut, sehingga tidak ada tampilan iklan dari website tersebut. Dan tentunya untuk premium account, Anda perlu membayar biaya penyimpanan file tersebut perbulannya.

Selamat Mencoba dan Semoga bermanfaat

Jenis mikrokontroler

Jenis mikrokontroler

Disini saya perkenalkan satu jenis mikrokontroler yang tidak asing lagi dan sudah mudah ditemui di pasaran. Mikrokontroler ini merupakan keluarga intel MCS51. Keuntungan mempelajari jenis mikrokontroler ini al : disamping itu sudah banyak beredar buku-buku terbitan dalam negri yang membahas mengenai mikrokontroller ini, kurikulum universitas dalam negri juga sudah mengacu ke jenis ini. Dan banyak peralatan industri yang memakai mikrokontroler ini. Jadi tidak ada salahnya kita mempelajarinya dan sekaligus mempraktekkannya dalam bentuk barang nyata. Disamping itu harganya juga cukup murah untuk tipe yang paling kecil.

Sebenarnya ada satu jenis lagi mikrokontroler yang cukup simple penggunaannya yaitu PIC mikrokontroler, tetapi pada saat saya mempelajarinya saya sudah terlanjur membuat jenis mikrokontroler intel ini, jadi mungkin akan saya bahas pada kesempatan lainnya.

B. KELUARGA MCS51

Dari jenis-jenis mikrokontroler intel keluarga MCS51, al :

1. 8031/8032 - tipe tidak ber-EPROM dan internal RAM 128/256 Bytes

2. 8051/8052 - tipe mempunyai ROM (diprogram dari pabrik 1 kali saja) 4k/8k dan internal RAM 128/256 Bytes

3. 8751/8752 - tipe mempunyai EPROM 4k/8k dan internal RAM 128/256 Bytes

4. 8951/8952 - tipe mempunyai EEPROM 4k/8k dan internal RAM 128/256 Bytes

Tipe 8051/8052 sudah jarang digunakan karena keterbatasannya hanya dapat diprogram sekali saja. Kalau salah dibuang. Type 8751/8752 dan 8951/8952 lebih mahal karena sudah terdapat ROM didalamnya. Tetapi keuntungannya IC dapat diprogram berulang kali. Tipe ini yang paling banyak digunakan. Tetapi harus diingat bahwa untuk mengisi program ke dalam IC dibutuhkan alat pengisi khusus untuk IC tersebut (Programmer komersil yang ada di pasaran bisa digunakan untuk memrogram IC ini). Untuk tipe 8031/8032 tidak mempunyai ROM internal, jadi harus menggunakan IC EPROM atau EEPROM dari luar


C. SKEMA RANGKAIAN

Rancangan board ini menggunakan tipe dasar yaitu tipe 8031/8032 dan EPROM 8kB atau 16kB. Tetapi tidak tertutup kemungkinan untuk menggunakan tipe yang lain, mengingat arsitektur untuk tiap-tiap tipe sama saja. Motifasi yang mendorong saya membuat board ini adalah untuk eksperimen- eksperimen I/O, ilmu robotik, dan ingin membuat rangkaian yang cukup kompleks disain PCB-nya.

Disamping menggunakan ROM, perlu juga memakai RAM untuk menyimpan program yang akan dijalankan. Disini dipakai RAM tipe 32kB, yang diharapkan cukup besar untuk menampung program yang akan kita buat nantinya. Selain itu juga disediakan perluasan I/O dengan memakai IC yang sudah tidak asing lagi yaitu PPI-8255, sehingga tersedia cukup banyak I/O untuk menunjang desain perangkat keras kita.

Untuk komunikasi dengan perangkat PC digunakan perantara RS232 yaitu IC MAX232/ ICL232, sehingga kita bisa menghubungkan development board kita dengan komputer PC untuk memasukkan program kita.

Ada 2 jenis badan program yaitu :

· program monitor; program yang diisi ke dalam ROM/EPROM dengan programmer dan bersifat permanen. Program monitor merupakan firmware dari rancangan board ini.

· program user; program yang disi ke dalam RAM dan tidak permanen. Setiap saat program ini bisa diganti dengan program lain sesuai dengan yang kita inginkan. Pemasukan program melalui program terminal dari komputer PC dan melalui perantara RS232. Program user merupakan software program aplikasi untuk hal apa digunakan board tersebut.

Board ini menggunakan IC tipe 8031 dan EPROM 8kB tipe 2764 untuk program monitornya. Sedangkan untuk RAM 32kB menggunakan tipe 62256. Bahasa yang digunakan untuk membuat program user adalah bahasa asembly, dan untuk expansinya nanti program user akan menggunakan bahasa BASIC. Cukup banyak compiler gratis di internet, dan untuk membuat program monitor ini, saya menggunakan compiler MASM51 dari MetaLink Corp. Selain itu dapat juga digunakan compailer-compiler lainnya seperti :

1. Assembler51 dari Rigel Corp.

2. Assembler31 dari Ken Stauffer

3. Assembler51 PseudoSam dari Pseudo Corp.

4. Assembler51 dari W. W. Heinz

8031 mempunyai I/O sebanyak 3 x 8-bit. Tetapi pada prakteknya sebagian akan digunakan untuk keperluan mikrokontroller itu sendiri, seperti untuk jalur komunikasi, jalur untuk frekwensi osilator, jalur untuk pengalamatan dan data yang di-multipleks-kan, dan jalur untuk I/O. Sehingga untuk keperluan kita kemungkinan hanya tersedia sejumlah 8-bit saja atau lebih I/O tersebut. Untuk itu digunakan IC PPI 8255 yang menambah jumlah I/O hingga 3 x 8-bit lagi. Dengan jumlah sekian, diharap cukup banyak untuk menampung perangkat keras yang akan dipasangkan ke mikrokontroller ini. Pengalamatan IC PPI ini mengikuti pengalamatan memori (terpetakan memori) dan bukan pengalamatan I/O. Sehingga satu blok memori akan hilang untuk penempatan alamat IC PPI ini (untuk penyederhanaan rangkaian, karena saya menggunakan IC dekoder 3 ke 8, dimana jumlah memori sebesar 64 kB akan dibagi menjadi 8 blok). Sisa pengalamatan disediakan untuk pengembangan yang akan datang. Untuk lebih jelasnya, berikut ini pengalamatan memori pada rancangan board ini :

· Alamat 0000 Hex ~ 1FFF Hex = ROM 8 kB (firmware, program monitor)

· Alamat 2000 Hex ~ 9FFF Hex = RAM 32 kB (program user)

· Alamat A000 Hex ~ BFFF Hex = PPI 8255 (sebenarnya diperlukan hanya 4 lokasi)

· Alamat C000 Hex ~ DFFF Hex = Tersedia untuk pengembangan

· Alamat E000 Hex ~ FFFF Hex = Tersedia untuk pengembangan

Berikut ini disain skema rangkaiannya (mcus8031.pdf).

D. LAYOUT PCB

Saya telah mendisain PCB untuk board ini sedemikian rupa agar dapat muat dalam ukuran sekecil mungkin yang masih dapat dikerjakan dengan tangan (untuk para hobby, buatan sendiri). PCB tersebut terdiri dari 2 lapis tentu saja. Untuk itu saya menggunakan teknik yang lebih maju yaitu dengan menggunakan teknik plastik transparan (Press N Peel). Beginilah cara saya membuatnya. Dengan demikian dapat diperoleh board berukuran kira-kira 8cm x 15 cm. Cukup kecil untuk digunakan sebagai otak robot! Hanya saja pada saat pembuatannya perlu ketelitian agar kedua gambar lapisan dapat tepat saling ketemu.

Berikut ini disain PCB-nya dan layout PCB-nya (mcup8031.pdf), layout mirrornya.

E. DAFTAR KOMPONEN

Komponen-komponen untuk membuat rangkaian dasar mikrokontroler ini adalah sebagai berikut :

1. Resistor :

R1 = 10 kOhm ............................................................ 1 pcs

R2 = 1 kOhm ............................................................. 1 pcs

2. Kapasitor :

C1, C4..C7 = 10 uF/25 V ................................................. 5 pcs

C2..C3 = 33 pF .......................................................... 2 pcs

C8 = 220 uF/25 V ........................................................ 1 pcs

C9 = 100 uF/16 V ........................................................ 1 pcs

C10..C16 = 100 nF ....................................................... 7 pcs

3. Semikonduktor :

IC1 = 8031AH (Mikrokontroler) ........................................... 1 pcs

IC1 = 8051AH (Opsional mikrokontroler + ROM) ............................ 1 pcs

IC1 = AT89C52 (Opsional mikrokontroler + PEROM) ......................... 1 pcs

IC2 = 74LS373 (Octal latch) ............................................. 1 pcs

IC3 = 2764 (8 kByte EPROM) .............................................. 1 pcs

IC3 = AT28C64 (Opsional 8 kByte EEROM) .................................. 1 pcs

IC3 = 6264 (Opsional 8 kByte RAM) ....................................... 1 pcs

IC4 = 62256 (32 kByte RAM) .............................................. 1 pcs

IC5 = 8255 (PPI) ........................................................ 1 pcs

IC6 = 74LS138 (3 to 8 channel decoder) .................................. 1 pcs

IC7 = ICL232 atau MAX232 (Serial COM) ................................... 1 pcs

IC8 = 74LS08 (Quad And gate) ............................................ 1 pcs

IC9 = 7805 (Variabel Regulator) ......................................... 1 pcs

D1 = 1N4148 (silicon diode) ............................................. 1 pcs

D2 ~ D5 = 1N4007 (silicon diode) ........................................ 4 pcs

LED1 = Red 3mm .......................................................... 1 pcs

4. Lain-lain :

Opsional IC soket untuk 40-pin .......................................... 2 pcs

Opsional IC soket untuk 28-pin .......................................... 2 pcs

Opsional IC soket untuk 20-pin .......................................... 1 pcs

Opsional IC soket untuk 16-pin .......................................... 2 pcs

Opsional IC soket untuk 14-pin .......................................... 1 pcs

IDC konektor,10-pin ..................................................... 8 pcs

Miniature push button switch (reset) .................................... 1 pcs

X'tal = 11.0592 MHz ..................................................... 1 pcs

SIP konektor, 2-pin (power supply) ...................................... 1 pcs

SIP konektor, 3-pin (serial com) ........................................ 1 pcs

Opsional jumper, 2pin ................................................... 1 pcs

PCB dua lapisan, ukuran kira-kira 10cm x 15cm ........................... 1 pcs

Transformer P=220V, S=9~12V/0.5A (Adaptor) .............................. 1 pcs

F. FIRMWARE

ROM 8 kB pada tahap awal akan disi dengan program monitor, dimana program monitor ini saya pergunakan dari rancangannya Paul Stoffregen (menggunakan bahasa rakitan) setelah dimodifikasi agar cocok dengan tipe 8031. Nantinya untuk eksperimen lanjut akan diisi dengan penterjemah BASIC untuk program monitor ini. Sehingga program user dapat menggunakan bahasa BASIC, yang lebih mudah dipahami. Tentu saja ROM tersebut dapat dibuat 2 buah, agar dapat dengan mudah bertukar versi firmwarenya. Yang satu pakai bahasa rakitan dan yang lain pakai bahasa BASIC. Tergantung pilihan pemakai. Untuk pengisian EPROM dapat digunakan EPROM programmer komersial atau programmer lainnya seperti 2764-programmer saya atau universal eprommer saya. Bisa juga bereksperimen dengan menggunakan EEPROM seperti tipe 2864. Untuk pengisiannya bisa menggunakan Willeprom ver 3.1s seperti kepunyaan saya ini.

Berikut ini program firmware tersebut :

1. Modifikasi rancangan Paul Stoffregen (PaulMon)

2. Penterjemah BASIC dengan sistem 8031 basic (Basic31 V1.2a)

3. Penterjemah BASIC dengan sistem 8052 basic (Basic52 V1.1)

Berikut ini beberapa tampilan hasil program monitor paulmon di layar monitor hyper terminal











var adfly_advert = 'int'; var adfly_advert = 'banner';