MARIFATUL IMAN
NRP. 7203030038
Dosen Pembimbing:
AMANG SUDARSONO, ST
NIP. 132 300 371
Oleh:
MARIFATUL IMAN
7203 030 038
Disetujui oleh
3. Haniah Mahmudah, ST
NIP. 132 297 803
Mengetahui,
Ketua Jurusan Telekomunikasi
Wassalamualaikum Wr.Wb.
Penulis
UCAPAN TERIMA KASIH
1. Ayah & Ibu yang saya sayangi dan hormati, Kakakku (Alm. M. Nurul
Chakim), Neng Eli dan Nafi terima kasih telah memberikan kasih
sayang dan doa yang tak henti henti di panjatkan.
2. Keluarga Besar Alm. Sulchan dan Almh. Malichah Serta Keluarga
Besar Bapak Subandi B. dan Rani Matur sembah Nuwun atas
semangat dan doanya .
3. Bapak Dr. Ir. Titon Dutono, M.Eng, selaku Direktur Politeknik
Elektronika Negeri Surabaya.
4. Bapak Drs. Miftahul Huda, MT selaku ketua Jurusan Telekomunikasi
Politeknik Elektronika Negeri Surabaya.
5. Bapak Amang Sudarsono, ST dan Bapak Akuwan Saleh, SST selaku
dosen pembimbing.
6. Ibu Ir. Prima Kristalina, MT, Bapak I Gede Puja Astawa, ST, MT, dan
Ibu Haniah Mahmudah, ST selaku dosen penguji.
7. 3 TB Teman satu kelas 30 anak ini TOP BGT deh I Luv U &
Thanks For all serta smua Ce_21.
Dan mohon maaf apabila semua pihak yang banyak membantu dalam
proyek akhir ini tidak dapat disebutkan satu persatu. Akan tetapi, hanya ucapan
terima kasihlah yang dapat terlontarkan.
DAFTAR ISI
BAB V PENUTUP...............................................................................47
5.1..............................................................................KESIMPU
LAN.....................................................................................47
5.2SARAN................................................................................48
DAFTAR PUSTAKA...............................................................49
LAMPIRAN LISTING PROGRAM
LAMPIRAN DATA SHEET ATmega 8535
BIODATA PENULIS
DAFTAR GAMBAR
1.2 TUJUAN
Tujuan proyek akhir ini adalah merancang sebuah sistem yang mampu
mengontrol (opened atau closed) pintu garasi pada jarak jauh menggunakan
Short Message Service (SMS).
1.3 PERMASALAHAN
Adapun permasalahan pada pembuatan proyek akhir ini adalah
pengontrolan pintu garasi secara otomatis dari jarak jauh menggunakan
SMS dengan karakter opened/closed.
1.4 BATASAN MASALAH
Batasan masalah dalam proyek akhir ini adalah mengerjakan Input Karakter
SMS yang ada pada Handphone Server, Kemudian diproses untuk mengatur
pergerakan Motor DC.
1.5 METODOLOGI
Perencanaan dan pembuatan proyek akhir ini memerlukan langkah-
langkah penyelesaian sebagai berikut:
D Studi Literatur
Mempelajari prinsip kerja dari sistem membuka dan menutup pintu
garasi menggunakan teknologi SMS, yang dilanjutkan dengan
pembelajaran tentang karakteristik SMS, program bahasa C pada
CodeVisionAVR dan Mikrokontroller AVR ATmega8535.
D Perencanaan dan Pembuatan
Merencanakan dan membuat peralatan dan sistem yang dibutuhkan
secara perangkat keras.
D Pengujian Alat dan Analisa Sistem
Mengintegrasikan sistem antara perangkat keras dengan perangkat
lunak. Kemudian dilakukan pengujian antar segmen dan analisa
terhadap hasil yang telah didapatkan
Bab I Pendahuluan
Menguraikan tentang latar belakang, tujuan, permasalahan, batasan
masalah, metodologi, dan sistematika pembahasan masalah yang
digunakan dalam pembuatan proyek akhir ini.
Bab V Penutup
Berisi tentang kesimpulan dan saran yang berdasarkan analisa hasil data
yang diperoleh.
<Halaman ini sengaja dikosongkan>
BAB II
TEORI PENUNJANG
Gambar 2.3.
Arsitektur CPU dari AVR
2.1.3 eskripsi Mikrokontroller ATmega8535
VCC (power
supply)
GND
(ground)
Port A
(PA7..PA0)
Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga
berfungsi sebagai suatu Port I/O 8-bit dua arah, jika A/D Konverter
tidak digunakan. Pin - pin Port dapat menyediakan resistor
internal
pull-up (yang dipilih untuk masing-masing bit). Port A output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi
dan kemampuan sumber. Ketika pin PA0 ke PA7 digunakan sebagai
input dan secara eksternal ditarik rendah, pin pin akan
memungkinkan arus sumber jika resistor internal pull-up diaktifkan.
Pin Port A adalah tri-stated manakala suatu kondisi reset menjadi aktif,
sekalipun waktu habis.
Port B (PB7..PB0)
Port B adalah suatu Port I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Port B output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi
dan kemampuan sumber. Sebagai input, pin port B yang secara
eksternal ditarik rendah akan arus sumber jika resistor pull-up
diaktifkan. Pin Port B adalah tri-stated manakala suatu kondisi reset
menjadi aktif, sekalipun waktu habis.
Port C (PC7..PC0)
Port C adalah suatu Port I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Port C output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi
dan kemampuan sumber. Sebagai input, pin port C yang secara
eksternal ditarik rendah akan arus sumber jika resistor pull-up
diaktifkan. Pin Port C adalah tri-stated manakala suatu kondisi reset
menjadi aktif, sekalipun waktu habis.
Port D
(PD7..PD0)
Port D adalah suatu Port I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Port D output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi
dan kemampuan sumber. Sebagai input,
pin port D yang secara eksternal ditarik rendah akan arus sumber jika
resistor pull-up diaktifkan. Pin Port D adalah tri-stated manakala suatu
kondisi reset menjadi aktif, sekalipun waktu habis.
RESET (Reset
input)
XTAL1 (Input
Oscillator)
XTAL2 (Output
Oscillator)
AVCC adalah pin penyedia tegangan untuk port A dan A/D
Konverter
AREF adalah pin referensi analog untuk A/D konverter.
2.1.4. Port Sebagai Input / Output Digital
ATmega8535 mempunyai empat buah port yang bernama PortA, PortB,
PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan
pilihan internal pull-up.
Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan
PINxn. Huruf x mewakili nama huruf dari port sedangkan huruf n mewakili
nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat
pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit
DDxn dalam regiter DDRx (Data Direction Register) menentukan arah pin. Bila
DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px
berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi
sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan
resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output.
Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin
terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila
PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port
akan berlogika 0.
Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0)
ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan
apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1)atau kondisi output
low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima
sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan
perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini
bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk
mematikan semua pull-up dalam semua port. Peralihan dari kondisi input
dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama.
Maka harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi
output high (DDxn=1, PORTxn=0) sebagai kondisi transisi. Lebih detil
mengenai port ini dapat dilihat pada manual datasheet dari IC ATmega8535.
Tabel 2.1.
Konfigurasi Pin Port
2.1.5.1. Program
Memori
608 lokasi alamat data memori menunjuk register file, I/O memori, dan
internal data SRAM. Yang pertama 96 lokasi alamat file register dan I/O
memori penempatan menunjuk Memori I/O dan yang berikutnya 512 lokasi
alamat internal data SRAM.
Lima perbedaan mode pengalamatan data memori cover:
Langsung,Tidak langsung dengan jarak, Tidak langsung, Tidak langsung
dengan Pre-Decrement, dan Tidak langsung dengan Post-Increment. Di dalam
file register, register R26 ke R31 memiliki fitur penunjukan pengalamatan
register tidak langsung.
Jangkauan pengalamatan langsung adalah keseluruhan ruang data.
Mode Tidak langsung dengan jarak jangkauan 63 lokasi alamat dari alamat
dasar yang diberi oleh Y- atau Z-Register. Manakala penggunaan register mode
tidak langsung dengan pre-decrement otomatis dan postincrement, alamat
register X, Y, dan Z adalah decremented atau incremented.
32 tujuan umum kerja register, 64 I/O register, dan 512 bytes data internal
SRAM di dalam ATmega8535 adalah semua dapat diakses melalui semua mode
pengalamatan.
Gambar 2.5.
Pemetaan Data Memori
2.2 BAHASA C
6. C adalah bahasa yang terstruktur.
7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat
Menengah.
8. Bahasa C adalah kompiler
Gambar 2.6.
Proses Kompilasi-Linking dari program C.
2.2.2 Struktur Penulisan Program C
Fungsi_Fungsi_Lain()
{ Fungsi fungsi lain yang
statemen statemen Ditulis oleh Pemrograman
} Komputer
2.2.3.2 Operator
Operator atau tanda operasi adalah suatu tanda atau simbol yang
digunakan untuk suatu operasi tertentu.
Gambar 2.7.
Prinsip Kerja Motor DC
Apabila sebuah belitan terletak dalam medan magnet yang homogen, arah
gerakan ditunjukkan seperti gambar diatas, karena kedua sisi lilitan mempunyai
arus yang arahnya berlawanan.
(a) (b)
Gambar 2.8. Motor DC
a. Konstruksi Motor DC
b. Diagram Skematik Motor
Kumparan penguat dihubungkan seri, jangkar merupakan besi laminasi
yang bergerak untuk mengurangi arus eddy. Letak kumparan jangkar pada slot
besi disebelah luar permukaan jangkar. Pada jangkar terdapat komutator yang
terbentuk silender dan isolasi sisi kumparan
dihubungkan dengan segmen komutator pada beberapa bagian yang berbeda,
sesuai dengan jenis lilitannya.
V ............................................. (2.1)
n= s
Ia.Ra
C.
Dimana : n = Kecepatan Putaran
Vs = Tegangan Shunt ( Volt)
Ia = Arus Armature (Ampere)
Ra = Resistansi Armature ( Ohm)
C = Kopel
= 2
Fluks (Wb/m )
2. Karakteristik Torsi
............................................... (2.2)
= K.Ia.
Dimana : = Torsi
K = Konstanta
Ia = Arus Armature (Ampere)
2
= Fluks (Wb/m )
2. 4. DRIVER MOTOR DC
Gambar 2.9.
Rangkaian Driver Motor DC
Gambar 2.10.
Dasar Pengaturan Arah Putar Motor
Gambar 2.11.
Pengatur Arah dengan Menggunakan Saklar
Gambar 2.12.
Format Pengiriman Data Serial
Gambar 2.13.
IC Serial MAX 232
Gambar 2.15.
RS232 (Sebagai Komunikasi Serial )
Tabel 2.4.
Fungsi masing-masing pin RS232
BAB III
PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS
DAN LUNAK
Pada bab ini akan dibahas sistem perencanaan dan pembuatan perangkat
keras dan perangkat lunak yang dibuat yang meliputi :
1. Proses Kerja Sistem
2. Perencanaan dan Pembuatan Perangkat Keras
3. Perencanaan dan Pembuatan Perangkat Lunak
Gambar 3.1
Blok Diagram Sistem
3.2. PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS
Perencanaan perangkat keras pada proyek akhir ini menggunakan
ATmega8535 sebagai otak sistem. Empat port yang dimiliki oleh chip ini yang
digunakan sebagai jalur bi-directional dengan pilihan internal pull-up. Untuk
saluran komunikasi Handphone dengan mikrokontroller menggunakan konektor
default Siemens yang terhubung ke Handphone, kemudian diujung yang satunya
terhubung ke mikrokontroller menggunakan komunikasi serial RS232 yang
menggunakan DB9 sebagai konektornya.
Gambar 3.2.
Rangkaian Pengubah Level Tegangan
Ada 4 kapasitor yang digunakan dalam rangkaian ini yaitu pada pin 1 (+)
dengan pin 3 (-), pin 4 (+) dengan pin 5 (-), pin 2 (+) dengan pin 16 (-). Untuk
pin 6, karena bertegangan -10 Volt maka terhubung dengan kaki kapasitor (-)
sedangkan Ground (+). Koneksi antara IC MAX232 dengan RS232 terhubung
melalui pin 14 (driver 1 output) yaitu sebagai Tx (transmitter) dengan DB9 pin2
(received data) dan pin 13 (receiver 1 input) sebagai Rx (receiver) dengan DB9
pin 3 (transmitted data). Sedangkan pin 12 dan pin 13 menuju ke
mikrokontroller.
Tabel 3.1
Konfigurasi Pin IC MAX 232
Gambar 3.5.
Flowchart Utama
3.3.2. Kontrolling
1. Pencarian file dilakukan pada direktori khusus (direktori file include, yang
bisa disetel melalui kompiler).
#include <mega8535.h>
#include <stdio.h>
#include <delay.h>
bit flag_no,xpsn;
#define enter putchar(13)
#define buka PORTA.6
#define tutup PORTA.7
#define xbuka PORTA.4
#define xtutup
PORTA.5 flash unsigned
char
no[13]={"085648565249"},psn1[13]={"6F78D95D2603"},psn2[13]={"63F67B5E2603"};
unsigned char rx_no[13],rx_psn[13],i,hasil;
3. Membuat fungsi untuk mengirim laporan membuka dari mikrokontroller ke
handphone user
void report1()
{ printf("at"); putchar(13);
while (getchar()!='O');
if (getchar()=='K')
PORTA.2=1;
printf("at+cmgs=28");putchar(13)
; while (getchar()!=62);
if (getchar()==32)
{ printf("07912658050000F001000D91265846585642F900000F"
);
printf("E8F01C242E97DDA037BCEC2E9301");// "has been
opened"
putchar(26);
PORTA.2=0;
}
void report2()
{ printf("at"); putchar(13);
while (getchar()!='O');
if (getchar()=='K')
PORTA.2=1;
printf("at+cmgs=24");putchar(13)
; while (getchar()!=62);
if (getchar()==32)
{ printf("07912658050000F001000D91265846585642F900000
F");
printf("E8F01C242E97DDA031FB3D2F9301");// "has been
closed"
putchar(26);
PORTA.2=0;}
}
Baud rate yang digunakan dalam komunikasi serial ini adalah 19200 bps.
Penentuan baud rate sangat bergantung pada crystal yang digunakan, crystal ini
adalah sebagai oscillator. Crystal yang digunakan adalah 20,000 MHz.
Penghitungannya adalah sebagai berikut :
f OSC
................................................ (3.1)
19200 = 16(UBRR +
1)
19200 = 20.000MHz
(3.2)
16(UBRR +
1)
3.3.5 CodeVisionAVR
CodeVisionAVR merupakan software C- cross compiler,
dimana program dapat ditulis menggunakan bahasa-C. Dengan
menggunakan pemrograman bahasa-C diharapkan waktu disain
(deleloping time) akan menjadi lebih singkat. Setelah program
dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat
kesalahan (error) maka proses download dapat dilakukan.
Mikrokontroller AVR mendukung sistem download secara ISP
(In-System Programming). Cara memulai project baru pada
CodeVisionAVR adalah :
1. Jalankan software CodeVisionAVR.
Gam
bar 3.
8.
Code
Visio
n
AVR
2. Buat project baru Pilih File-7New Pilih project lalu tekan tombol
OK.
Creat
3. Kemudian muncul dialog apakah akan menggunakan CodeWizard AVR
untuk mempermudah merancang kerangka program. Pilih YES. dengan portB.
Gambar 3.10.
Pilihan untuk menggunakan CodeWizardAVR
Gambar 3.11.
Menseting Jenis Chip Port I/O
5. Kemudian pilih File-7Generate, Save and Exit.
Gambar 3.12.
Menghasilkan Kode Program
BAB IV
PENGUJIAN ALAT DAN ANALISA
Gambar 4.1.
Pengujian Komunikasi Serial pada Hyper Terminal
Tabel 4.1
Hasil Pengujian Komunikasi Serial
Input dari Keyboard Output RS232
a a
b b
c c
dst dst
Berdasarkan Tabel diatas maka dapat di analisa bahwa ketika diberi input
FFH atau karakter opened maka LED 1 akan menyala sehingga
mengkondisikan relay 1 bergerak ke kanan (pintu terbuka). Dan sebaliknya jika
diberi input 00H atau karakter closed maka LED 2 akan menyala sehingga
mengkondisikan relay 2 bergerak ke kiri (pintu tertutup).
Tabel 4.3
Hasil Pengujian Driver Dengan Beban (Motor DC)
No Input Output (Arah Putar Motor DC)
1. FF H (opened) KANAN
2. 00 H (closed) KIRI
Berdasarkan Tabel diatas maka dapat di analisa bahwa ketika diberi input
FFH atau karakter opened maka arah putar motor DC akan bergerak ke kanan
(pintu terbuka). Dan sebaliknya jika diberi input 00H atau karakter closed maka
arah putar motor DC akan bergerak ke kiri (pintu tertutup). Apabila semua
langkah sudah terpenuhi maka rangkaian driver sudah siap untuk dihubungkan
dengan ATmega8535.
Gambar 4.4
Blok Diagram Pengujian Sistem
Tabel 4.4
Hasil Pengujian Sistem Keseluruhan
No User Server Report kondisi MotorDC
pintu
1. opened opened has been opened Buka Putar kanan
2. closed closed has been closed Tutup Putar Kiri
Berdasarkan Tabel diatas maka dapat di analisa bahwa ketika
Handphone User mengirimkan SMS dengan karakter opened ke Handphone
Server yang kemudian karakter tersebut akan diproses oleh mikrokontroller
untuk membuka pintu dengan menggerakkan arah putar motor DC ke kanan.
Setelah pintu terbuka maka mikrokontroller akan mengirimkan laporan
(report) berupa karakter has been opened ke Handphone User.
Dan sebaliknya ketika Handphone User mengirimkan SMS dengan
karakter closed ke Handphone Server yang kemudian karakter tersebut akan
diproses oleh mikrokontroller untuk menutup pintu dengan menggerakkan arah
putar motor DC ke kiri. Setelah pintu tertutup maka mikrokontroller akan
mengirimkan laporan (report) berupa karakter has been closed ke
Handphone User.
<Halaman ini sengaja dikosongkan>
BAB V
PENUTUP
5.1ESIMPULAN
Setelah melakukan proses pengujian dan analisa terhadap sistem yang telah
dibuat dapat diambil kesimpulan bahwa:
5.2 SARAN
Listing Program
#include <mega8535.h>
#include <stdio.h>
#include <delay.h>
// Declare your global variables here
bit flag_no,xpsn;
int no_hp;
#define enter putchar(13)
#define buka PORTA.6
#define tutup PORTA.7
#define xbuka PORTA.4
#define xtutup PORTA.5
void set_noecho()
{ printf("ate0"); enter; while(getchar()!='O')
{printf("ate0"); enter;}; delay_ms(100);
}
void ready_gsm()
{ printf("at");enter; while(getchar()!='O')
{printf("at");enter;}; delay_ms(500);
}
void delete()
{ PORTA.1=1;
printf("at+cmgd=1");putchar(13);
// while(getchar()!='O'){printf("at+cmgd=1");enter;};
delay_ms(300);
PORTA.1=0;
}
void scan_number() //manual scan number is easier to compare with
reference Number........!
{ rx_no[0]='0';
rx_no[2]=getchar();rx_no[1]=getchar();rx_no[4]=getchar();rx_no[3]=g
etchar();
rx_no[6]=getchar();rx_no[5]=getchar();rx_no[8]=getchar();rx_
etchar( no[7]=g
);
rx_no[10]=getchar();rx_no[9]=getchar();getchar();rx_no[11]=getchar()
;
}
void cek_number1()
{ unsigned char hasil;
for(i=0;i<12;i++)
//cek no 1
{
hasil=rx_no[i]-
no1[i]; if(i==11
&& hasil==0)
{ flag_no=1;
no_h
p=1;
retur
n
flag
_no;
}
if(hasil!=0)
{ break;
}
}
}
void cek_number2()
{ unsigned char hasil;
for(i=0;i<12;i++)
//cek no 2
{
hasil=rx_no[i]-
no2[i]; if(i==11
&& hasil==0)
{ flag_no=1;
no_h
p=1;
retur
n
flag
_no;
} 12;i++)
if(h
=0) //cek no 3
{ {
hasil=rx_no[i]-
br no2[i]; if(i==11
e && hasil==0)
k;
}
}
}
void
cek_nu
mber3()
{
u
n
s
i
g
n
e
d
c
h
a
r
h
a
s
i
l
;
f
o
r
(
i
=
0
;
i
<
{ flag_no=1;
no_hp=1;
return flag_no;
}
if(hasil!=0)
{ break;
}
}
}
void report1()
{ printf("at"); putchar(13);
while (getchar()!='O');
if (getchar()=='K')
PORTA.2=1;
printf("at+cmgs=28");putchar(13);
while (getchar()!=62);
if (getchar()==32)
{ if(no_hp==1)
{ printf("07912658050000F001000D91265846585642F900
");
}
if(no_hp==2)
{
printf("");
}
if(no_hp==3)
{ printf("06912618010000240D91261833925801F500")
printf("E8F01C242E97DDA037BCEC2E9301");// "has
been opened" putchar(26);
PORTA.2=0;
}
void report2()
{ printf("at"); putchar(13);
while (getchar()!='O');
if (getchar()=='K')
PORTA.2=1;
printf("at+cmgs=24");putchar(13)
; while (getchar()!=62);
if (getchar()==32)
{ if(no_hp==1)
{ printf("07912658050000F001000D91265846585642F900
");
if(no_hp==2)
{
printf("");
}
if(no_hp==3)
{ printf("06912618010000240D91261833925801F500")
printf("E8F01C242E97DDA031FB3D2F9301");// "has
been closed"
putchar(26);
PORTA.2=0;
} }
void compare_sms()
{
if(flag_no==1) //command bellow will be accesed if SMS
from number
................
{ xpsn=0;
for(i=0;i<=11;i++) //bukA
{ hasil=rx_psn[i]-psn1[i];
if(i==11&& hasil==0)
{ xpsn=1;tutup=1;
buka=0;report1();
}
if(h
} asil!
has =0)
il= brea
0; k;
if(!xpsn)
{ for(i=0;i<=11;i++) //tutp
{
hasi
l=rx
_ps
n[i]-
psn
2[i];
if(i=
=11
&&
hasi
l==
0)
{
xpsn=1;buka=1;tutup=0;report2();
}
if(hasil!=0) break;
} ............................................be sure that GSM is
hasil=rea printf("at+cmgl=0");enter;dat=getchar();//............AT+C
0; dy MGL=0 to read
}
} UNREAD SMS (New SMS)
}
void
cek_new_S
MS()
{
unsigned
char dat;
P
O
R
T
A
.
0
=
1
;
r
e
a
d
y
_
g
s
m
(
)
;
/
/
.
.
.
.
.
.
.
.
.
//.....................................+ as header New SMS and E indicate ERROR / No
New SMS
while(dat!='+'&& dat!='O'){printf("at+cmgl=0");enter;dat=getchar();};
if(dat=='+') //............................... !=R (ERROR) indicate recieve New
SMS
{ for(i=0;i<=25;i++) getchar();//43
scan_number();
for(i=0;i<=19;i++) getchar();
for(i=0;i<12;i++) rx_psn[i]=getchar();
//...............................masukkan psn
cek_number1();//....................................................Cek no
USER cek_number2();
cek_number3();
cek=cek_number1();
if cek==1
delay_ms(1000);
compare_sms(); //....................................compare SMS with
reference data
delay_ms(1000);
for(i=0;i<10;i++){ rx_no[i]=0;}//................................CLEAR NO in
SRAM uC
for(i=0;i<=5;i++){ rx_psn[i]=0;}//..............................CLEAR
PSN in SRAM uC
}
else
{
}
delete(); //..........................................DELETE SMS
in HP delay_ms(2000);
PORTA.0=0;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func0=Out Func1=Out Func2=Out Func3=Out Func4=Out Func5=Out
Func6=Out Func7=Out
// State0=0 State1=0 State2=0 State3=0 State4=0 State5=0 State6=0 State7=0
PORTA=0xC0;
DDRA=0xFF;
// Port B initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In
Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In
Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In
Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 19200
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x23;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
// Analog Comparator Output: Off
ACSR=0x80;
SFIOR=0x00;
ready_gsm();
set_noecho();//.............................................Turn off GSM ECHO */
//delay_ms(1000);
while (1)
{
// Place your code here
cek_new_SMS();
delay_ms(1000);
};
}
LAMPIRAN DATA SHEET
MIKROKONTROLLER AVR ATmega8535
BIODATA PENULIS