2.3. AT Command
AT Command adalah semua
perintah yang dikirimkan ke modem yang diawali dengan AT.[1]
Kata AT berasal dari kata “attention” dikarenakan perintah AT
dikirimkan lebih dulu atau di utamakan sebelum perintah lain untuk mendapat
respon dari modem.[2]
AT Command diperkenalkan oleh
Dennis Hayes pada tahun 1977 yang dikenal dengan “smart modem”.Modem bekerja
pada baud rate 300 bps. Modem ini terdiri dari sederet instruksi yang mengatur
komunikasi dan fitur-fitur di dalamnya. Salah satu contoh sederhana penggunaan
AT Command misalnya komunikasi dua buah komputer menggunakan port COM (port
R-232). AT Command mempunyai dua mode, yaitu mode data (data mode) dan mode
perintah (command mode). Untuk berpindah dari mode data menuju mode perintah
dipisahkan oleh tiga tanda plus dan jeda selama satu detik.
Dalam perkembangannya AT Command
banyak diterapkan pada mobile handset (telepon sellular). Instruksi dasar AT Command digunakan hampir
oleh semua merk telepon sellular. Namun demikian, ada beberapa instruksi yang
ditambahkan sendiri pada handset tersebut oleh vendor pembuatnya.
Penggunaan AT Command pada handset telah
mempermudah untuk mengetahui segala informasi yang terdapat pada handset
tersebut. Dengan
menggunkan instruksi tertentu kita akan dapat mengetahui merk, nomor IME dll.
Selain itu dengan AT Command kita bisa menyetting instruksi atau mengaktifkan
instruksi pada handset untuk melakukan fungsi tertentu, misalnya melakukan
panggilan, mengirim sms, dsb.Pelu diketahui pula bahwa masing-masing vendor
handset biasanya menyertakan AT Command yang mendukung produk tersebut.
Dibalik
tampilan menu Message pada sebuah handphone sebenarnya ada AT Command
yang bertugas mengirim atau menerima data dari atau ke SMSC.
AT
Command yang berhubungan dengan SMS yang dipakai sebagai berikut:
AT+CMGL
|
List SMS
|
Test command
AT+CMGL=?
|
Response
+CMGL: (list of supported <stat>s)
Parameter
<stat>
0 ”REC UNREAD”: received unread messages (default)
1 ”REC READ”: received read messages
2 ”STO UNSENT”: stored unsent messages
3 ”STO SENT”: stored sent messages
4 ”ALL”: all messages
|
Write command
AT+CMGL
[=<stat>]
|
Parameter
<stat> See Test command
Response
If PDU mode (+CMGF=0) and command are successful:
+CMGL:<index>,<stat>,[<alpha>],<length>
<CR><LF><pdu>[<CR><LF>
+CMGL: <index>,<stat>,[alpha],<length>
<CR><LF><pdu><CR><LF>
[...]]
Parameter
<pdu> The PDU begins with the service-center address (according
to
GSM04.11), followed by the TPDU according to GSM03.40 in
hexadecimal format
|
Lanjutan Tabel 2.2 AT Command yang digunakan
AT+CMGR
|
Read in an SMS
|
Test command
AT+CMGR=?
|
Response
OK
|
Write command
AT+CMGR=
<index>
|
Parameter
<index> Index of message in selected memory
<mem1>
Response
If PDU mode (+CMGF=0) and
command are successful:
+CMGR:
<stat>,[<alpha>],<length><CR><LF><pdu>
Parameter
<pdu> Siehe “AT+CMGL”
otherwise:
+CMS ERROR: <err>
|
AT+CMGS
|
Send an SMS
|
Test command
AT+CMGS=?
|
Response
OK
|
Write command
If PDU mode (+CMGF=0)
+CMGS=<length><CR>PDU is given
<ctrl-Z/ESC>
|
Parameter
<length> Length of PDU
<pdu> See ”AT+CMGL”
<mr> Message reference
Response
If sending is successful:
+CMGS: <mr>
If sending is not
successful:
+CMS ERROR: <err>
|
AT+CMGD
|
Delete an SMS in the SMS memory
|
Test command
At+CMGD=?
|
Response
OK
|
Write command
AT+CMGD=
<index>
|
Parameter
<index> Index of message in the selected
memory <mem1>
Response
OK/ERROR/+CMS ERROR
|
2.4 Dot
Matrik Display
Dot matrik merupakan himpunan (array) dari titik-titik yang digunakan
untuk menampilkan karakter, simbol, dan gambar. Display dot matrik adalah perangkat display yang dapat digunakan untuk menampilkan informasi yang
memerlukan perangkat display
sederhana dengan resolusi terbatas. Tampilan terdiri dari matrik lampu yang
disusun dalam konfigurasi persegi yang mana dengan switching pada lampu yang dipilih, teks atau gambar sederhana dapat
ditampilkan. Sebuah kontroler dot matrik mengubah instruksi dari procesor menjadi sinyal pada sebagian
lampu dalam matrik sehingga tampilan yang diperlukan dapat dihasilkan.
Display dot matrik umum disebut juga LED display. Kebanyakan LED bekerja di
daerah inframerah dan cahaya tampak, meskipun sekarang ada UV LEDs. LED
merupakan medium penunjuk yang lebih dapat dihandalkan daripada sumber cahaya
lainnya seperti lampu neon dan bola lampu pijar.
LED display
mempunyai daya guna yang tinggi dan sangat cocok untuk berbagai aplikasi
pengukuran. LED display dapat berupa display numerik atau display alpha numerik. Display numerik hanya menampilkan angka, sedangkan display alpha numerik dapat menampilkan
angka dan huruf.
LED display dapat memiliki common anoda
atau common katoda. Pada konfigurasi common
anoda semua segment pada LED berbagi satu pin anoda. Dalam konfigurasi common katoda semua LED berbagi satu pin
katoda. Common cathode adalah
rangkaian standard dimana katodanya dihubungkan pada titik ‘umum’ pada
rangkaian, biasanya ground.
Spesifikasi display yang perlu dipertimbangkan ketika mencari digital LED display adalah jumlah baris dan jumlah
karakter tiap barisnya. Pilihan warna standard untuk LED adalah merah standard,
kuning, merah dengan efisiensi tinggi, oranye, hijau, dan biru. Spesifikasi display lainnya yang perlu
dipertimbangkan antara lain panjang gelombang warna, dan jarak pandang. Panjang
gelombang dari display ditentukan
oleh warna dari LED. Jarak pandang ditentukan oleh kebutuhan ukuran minimum
dari objek yang harus dapat dilihat oleh pengguna. Sudut pandang pada sumbu x
dan y juga perlu untuk dipertimbangkan. Sudut pandang dari display adalah sudut antara garis normal ke permukaan display dan sumbu visual/penglihatan
pengguna.
2.5 Teori
Penguat ( Buffer ) Transistor Darlington
Rangkaian penguat ( buffer ) yang
berdasarkan teori Darlington sangat banyak
kita temukan di dunia elektronika, salah satunya dengan menggunakan ULN 2003. Buffer (ULN2003) adalah suatu komponen
yang berfungsi sebagai penguat Arus. Komponen ini dapat digunakan sebagai
penguat input (data bergerak dari A
menuju B) dan juga dapat dipakai sebagai penguat output (data bergerak dari B menuju A). Pengaturan untuk fungsi buffer ini dipengaruhi oleh beberapa pin dimana pada ULN2003 pin ini terdapat pada kaki ke 1 dinamakan dengan DIR aktif high serta kaki ke 19 dinamakan dengan
OE aktif low.
Agar buffer
berfungsi sebagai input maka pin OE
harus berada pada posisi low dan pin
DIR juga berada pada posisi low. Namun jika buffer akan difungsikan sebagai output
maka pin DIR harus berada pada posisi low
dan OE pada posisi low. Tabel
2.1 menunjukkan tabel kebenaran (Truth Table) dan gambar 2.1 menunjukkan
diagram skematik dari ULN 2003.
Tabel 2.3 Truth Tabel
IC ULN2003[4]
Gambar 2.7 Diagram skematik ULN 2003[5]
2. 6 Teori scanning
kolom
Pada Tugas Akhir ini sistem scanning yang digunakan untuk display
dot matrik adalah scanning kolom. Diantarnya salah satunya
dengan menggunakan 74LS164atau SIPO (serial input parallel output).
Dengan menggunakan sistem ini
tampilan akan dibuat dengan menampilkan tiap kolom dot matrik satu– persatu,
dimana kolom – kolom dot matrik dihubungkan pada output 74LS164 dan 7 baris dot matrik dihubungkan pada port B mikrokontroler.
Untuk membuat scanning kolom maka input
74LS164 diberi logika high kemudian
pada pin clock diberi logika low –
high – low untuk memberikan input clock dengan
tetap memberi logika high pada pin input.
2.7 Mikrokontroler AT Mega16
2.7.1 Gambaran Umum ATmega16
AVR merupakan seri mikrokontroler
CMOS 8-bit buatan Atmel,berbasis arsitektur ISC (Reduced Instruction Set
Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR
mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode
compare, interrupt internal dan eksternal, serial UART, programmable Watchdog
Timer, dan mode power saving. Mempunyai ADC dan PWM internal. AVR juga
mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program
untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.
Atmega16 adalah mikrokontroler
CMOS 8-bit daya-rendah berbasis arsitektur RISC yang ditingkatkan. Kebanyakan
instruksi dikerjakan pada satu siklus clock, Atmega16 mempunyai throughput mendekati
1 MIPS per MHz membuat disainer sistem untuk mengoptimasi komsumsi daya versus
kecepatan proses. Pada umumnya mikrokontroler terdiri dari bagian-bagian
sebagai berikut: Alamat (address), Data, Pengendali, Memori (RAM atu
ROM), dan bagian input-Output.
Arsitektural ATmega16 adalah
sebagai berikut:
Gambar 2.8 Blok
Diagram ATmega16
2.7.2 Konfigurasi pin-pin ATmega16
o VCC
Sebagai tegangan penyuplai.
o Ground
Sebagai ground.
o Port A (PA7..PA0)
Port A sebagai input analog ke A/D
konverter. Port A juga sebagai 8-bit bi-directional port I/O, jika A/D
konverter tidak digunakan. Pin-pin port dapat menyediakan resistor-resistor
internal pull-up. Ketika port PA0…PA7 digunakan sebagai input dan pull
eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up
diaktifkan. Pin-pin port A adalah tristate ketika kondisi reset menjadi aktif sekalipun
clock tidak aktif.
Gambar 2.9 ATmega16
o Port B (PB7..PB0)
Port B adalah port I/O 8-bit bi-directional dengan
resistor-resistor internal pull-up. Buffer output port B mempunyai karaketristik drive yang
simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai
input, port B yang mempunyai pull eksternal yang rendah akan menjadi sumber
arus jika resistor-resistor pull-up diaktifkan. Pin-pin port B adalah
tri-state ketika kondisi reset menjadi aktif seklipun clock tidak aktif.
o Port C (PC7..PC0)
Port C adalah port I/O 8-bit
bi-directional dengan resistorresistor internal pull-up. Buffer output port C
mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink
dan source yang tinggi. Sebagai input, port C yang mempunyai pull eksternal
yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan.
Pin-pin port C adalah tri-state ketika kondisi reset menjadi aktif seklipun clock
tidak aktif. Jika antarmuka JTAG enable, resistor-resistor pull26 up
pada pin-pin PC5(TDI), PC3(TMS), PC2(TCK) akan diktifkan sekalipun terjadi reset.
o Port D (PD7..PD0)
Port D adalah port I/O 8-bit
bi-directional dengan resistorresistor internal pull-up. Buffer output port D
mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink
dan source yang tinggi. Sebagai input, port D yang mempunyai pull eksternal
yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan.
Pin-pin port D adalah tri-state ketika kondisi reset menjadi aktif seklipun clock
tidak aktif.
o Reset
Input Reset, pulsa akan menjadi
minimum sekalipun clock bekerja.
o XTAL1
Input ke Inverting
Oscillator Amplifier.
o XTAL2
Output dari Inverting
Oscillator Amplifier.
o AREF
AREF adalah referensi analog ke
A/D converter.
2.7.3 Program Memori
2.7.3.1 Flash Memori
ATmega16 memiliki 16K byte flash
memori dengan lebar 16 atau 32 bit. Kapasitas memori itu sendiri terbagi
manjadi dua bagian yaitu bagian boot program dan bagian aplikasi program.
Gambar 2.10 Peta Memori Flash
Flash memori memiliki kemampuan
mencapai 10.000 write dan
erase.
2.7.3.2 Memori SRAM
Penempatan memori data yang lebih
rendah dari 1120 menunjukkan register, I/O memori, dan data internal SRAM. 96
alamat memori pertama untuk file register dan memori I/O, dan 1024 alamat
memori berikutnya untuk data internal SRAM. Lima mode pengalamatan yang berbeda
pada data memori yaitu direct, indirect, indirect dis-placement, indirect
pre-decreament dan indirect post-increament . Pada file register,
mode indirect mulai dari register R26-R31. Pengalamatan mode direct mencapai
keseuruhan kapasitas data. Pengalamatan mode indirect dis-placement mencapai 63
alamat memori dari register X atau Y. Ketika meggunakan mode pengalamatan
indirect dengan pre-decrement dan post increment register X, Y,
dan Z akan di-dicrement-kan atau di-increment-kan. Pada ATMega16 memiliki 32
register, 64 register I/O dan 1024 data internal SRAM yang dapat mengakses
semua mode-mode pengalamatan
2.7.3.3 Memori EEPROM
Pada EEPROM ATmega16 memiliki
memori sebesar 512 byte dengan daya tahan 100.000 siklus write/read.
Register-register pada memori
EEPROM :
o Bit 15..9
Bit ini sebagai bit-bit bank
pada Atmega16 dan akan selalu membaca zero.
o Bit 8..0
Bit-bit ini sebagai alamat
EEPROM.
o Bit 7..4
Bit-bit ini sebagai data EEPROM.
o Bit 3
Bit ini sebagai Enable Interupt Ready pada
EEPROM.
o Bit 2
Bit ini sebagai Enable Interupt Master pada
EEPROM.
o Bit 1
Bit ini sebagai write enable pada EEPROM.
o Bit 0
Bit ini sebagai read enable pada EEPROM.
2.7.4 Port
sebagai input/output digital
Seperti yang telah disebutkan ATmega16 mempunyai empat
buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut
merupakan jalur bidirectional 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. Kita harus menggunakan kondisi tri-state
(DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi
transisi.
2.8 BAHASA C
Sejarah dan Standar C
Akar dari bahasa C adalah dari bahasa BCPL yang dikembangkan oleh Mrtin
Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thomson yang
kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah Bahasa C oleh Dennis Ricthie
sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT
dan T Bell Laboratories). Bahasa C pertama kali digunakan di computer Digital
Equipment Corporation PDP-11 yang menggunakan system opersi UNIX C adalah
bahasa yang standar, artinya suatu program yang ditulis dengan bahasa C
tertentu akan dapat dikonversi dengan bahasa C yang lain dengan sedikit
modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan dari
standar UNIX ini diambil dari buku yang ditulis oleh Brian Kerningan dan
Dennis Ritchie berjudul “The C Programming Language”, diterbitkan oleh
Prentice-Hall tahun 1978. Deskripsi C dari Kerninghan dan Ritchie ini kemudian
kemudian dikenal secara umum sebagai “K dan R C”.
Tipe Data
Didalam bahasa pemrograman computer, data yang digunakan umumnya dibedakan
menjadi data nilai numerik dan nilai karakter. Nilai numerik
dapat dibedakan lagi menjadi nilai numerik integer dan nilai numerik
pecahan. Nilai numeric pecahan dapat dibedakan lagi menjadi nilai
numerik pecahan ketetapan tungga dan nilai numerik pecahan ketetapan
ganda. Bahasa-bahasa pemrograman computer membedakan
data ke dalam beberapa tipe dengan tujuan supaya data menjadi efisien dan
efektif.
C menyediakan lima macam tipe data dasar, yaitu tipe data integer (nilai
numerik bulat yang dideklarasikan dengan int), floatingpoint
(nilai numerik pecahan ketetapan tunggal yang dideklarasikan dengan float),
double-precision (nilai numerik pecahan ketetapan ganda yang
dideklarasikan dengan double), karakter (dideklarasikan dengan char),
dan kosong (dideklarasikan dengan void). Int, float, double dan char dapat dikombinasikan dengan
pengubah (modifier) signed, unsigned, long dan short.
Statemen Bahasa C
Statemen
if
- Bentuk if Tunggal Sederhana
Sintak dari bentuk if tunggal sederhana adalah sebagai berikut:
if(kondisi) statement;
- Bentuk if –else
Sintak dari bentuk
statemen if –else adalah sebagai berikut:
if(kondisi)
statemen;
Else statemen;
- Bentuk if –else-if…else
Bentuk ini
disebut dengan if-else-if tangga,karena memiliki bentuk seperti tangga.
Sintakdari bentuk ini adalah sebagai berikut:
if(kondisi1)
statemen;
else if(kondisi2)
statemen;
ekse if(kondisi3)
statemen;
.
.
else
statemen;
- Bentuk if Bersarang
Statemen if
bersarang (nested if) merupkan statemen if yang berada
di dalam (merupakan bagian dari) statemen if lainnya. Bentuk dari
sttemen ini adalah sebagai berikut:
If(kondisi1)
If(kondisi2)
.
.
if(kondisin)
statemen;
else
statemen;
.
else
statemen;
else
statemen;
Statemen
switch
- Statemen switch Tunggal
Bentuk
sintak dari statement switch tunggal adalah sebagai berikut:
switch(kondisi)
{
case konstanta1:
statemen-statemen;
break;
case konstanta2:
statemen-statemen;
break;
.
.
default;
statemen-statemen;
}
- Statemen switch Bersarang
Statemen switch
bersarang adalah statemen switch yang satu berada didalam statemen switch
yang lain.
Perulangan
- Statemen for
Statemen for
mempunyai bentuk umum sebagai berikut:
for(awal,
akhir, peningkatan) statemen;
- Perulangan while
Bentuk umum
dari statemen while adalah sebagai berikut:
while(kondisi) statemen;
- Perulangan do – while
Bentuk umum
dari perulangan ini adalah sebagai berikut:
do statemen
while (kondisi);
Lompatan
Statemen goto
dapat digunakan untuk melompati dari suatu proses ke bagian proses yang
lainnya di dalam program.Bentuk umum dari statemen goto adalah sebagai
berikut:
goto label;
0 komentar:
Posting Komentar