Perancangan Sistem Kontrol Lampu Dengan Memanfaatkan Modem Wavecome Sebagai Sms Gateway
BAB II
LANDASAN TEORI
Dalam Bab ini penulis akan membahas tentang komponen- komponen yang di
gunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan
menyimpang dari topic utama laporan ini, maka setiap komponen hanya di bahas
sesuai fungsi nya pada masing- masing unit nya.
2.1 Mikrokontroler ATMega32
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah
chip. Didalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM,
memori program, atau keduanya), dan perlengkapan input output. Mikrokontroler
merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan
elektronik, yang menekankan efisiensi dan efektifitas biaya.Secara harfiahnya bisa
disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya
banyak memerlukan komponen-komponen pendukung, mikrokontroler bisa
mereduksi komponen IC TTL dan CMOS yangseringkali masih diperlukan untuk
aplikasi kecepatan tinggi atau sekedarmenambah jumlah saluran masukan dan
keluaran (I/O). Dengan kata lain,mikrokontroler adalah versi mini atau mikro dari
sebuah komputer karenamikrokontroler sudah mengandung beberapa periferal
yang langsung bisadimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital keanalog (DAC), konversi analog ke digital dan sebagainya hanya
menggunakansistem minimum yang tidak rumit atau kompleks.
19
Universitas Sumatera Utara
2.1.1 Arsitektur Mikrokontroler AVR ATmega32
Mikrokontroler AVR ATMega32 merupakan sebuah mikrokontroler low
power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini
memiliki karakteristik sebagai berikut.
1. Menggunakan arsitektur AVR RISC
*131 perintah dengan satu clock cycle
*32 x 8 register umum
2. Data dan program memori
*32 Kb In-System Programmable Flash
*2 Kb SRAM
*1 Kb In- System EEPROM
3. 8 Channel 10-bit ADC
4. Two Wire Interface
5. USART Serial Communication
6. Master/Slave SPI Serial Interface
7. On-Chip Oscillator
8. Watch-dog Timer
9. 32 Bi-directional I/O
10. Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32
register umum. Semua register tersebut langsung terhubung dengan Arithmetic
Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu
perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif
Universitas Sumatera Utara
dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC
biasa..arsitektur mikrokontroler AVR atmega32 yaitu seperti berikut :
Gambar 2.1 Arsitektur AVR ATMega32
2.1.2 Fitur ATMega32
Berikut ini adalah fitur-fitur yang dimiliki oleh ATMega32:
1. Frekuensi clock maksimum 16 MHz
2. Jalur I/O 32 buah yang terbagi dalam Port A,Port B,Port C,Port D.
3. Analog to Digital Converter 10 bit sebanyak 8 input,4 chanel PWM
4. Timer/Counter sebanyak 3 buah
Universitas Sumatera Utara
5. CPU 8 bit yang terdiri dari 32 register
6. SRAM sebesar 2K Byte
7. Memori flash sebesar 32K Byte dengan kemampuan read while write
8. Port komunikasi SPI
9. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
10. Analog Comparator
11. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps.
2.1.3 Konfigurasi Pin ATMega32
Konfigurasi pin ATMega32 dengan kemasan 40 pin DIP (Dual In-line Package)
dapat dilihat pada Gambar 2.1. Dari gambar tersebut dapatdijelaskan fungsi
darimasing – masing pin ATMega32 sebagai berikut :
1.VCC merupakan pin yang berfungsi sebagai masukan catu daya
2.GND merupakan pin Ground
3.Port A (PA0…PA7) merupakan pin input/output dua arah danpin masukan
ADC
4.Port B (PB0…PB7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
5.Port C (PC0…PC7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
6.Port D (PD0…PD7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
7.RESET merupakan pin yang digunakan untuk me-reset mikrokontroler
8.XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
Universitas Sumatera Utara
9.AVCC merupakan pin masukan tegangan untuk ADC
10.AREF merupakan pin masukan tegangan untuk ADC
Selain fitur tersebut diatas, masing – masing pin pada
mikrokontroler memiliki
fungsi khusus diantaranya :
Tabel 2.1 : Fungsi Khusus Port B
Pin
Fungsi Khusus
PD7
SCK (SPI Bus Serial Clock)
PD6
MISO (SPI Bus Master Input/Slave Output)
PD5
MOSI (SPI Bus Master Output/Slave Input)
PD4
SS (SPI Slave Select Input )
AIN1 (Analog Comparator Negative Input )
PD3
OC0 (Timer/Counter0 Output Compare Match Output )
AIN0 (Analog Comparator Positive Input )
PD2
INT2 (External Interrupt 2 Input)
PD1
T1 (Timer/Counter1 External Counter Input )
T0 T1 (Timer/Counter0 External Counter Input )
PD0
XCK (USART External Clock Input/Output)
Tabel 2.2 : Fungsi Khusus Port C
Pin
Fungsi Khusus
PD7
TOSC2 (Timer Oscillator Pin2)
PD6
TOSC1 (Timer Oscillator Pin1)
PD5
TDI (JTAG Test Data In)
Universitas Sumatera Utara
PD4
TDO (JTAG Test Data out )
PD3
TMS (JTAG Test Mode Select )
PD2
TCK (JTAG Test Clock)
PD1
SDA (Two-wire Serial Bus Data Input/Output Line)
PD0
SCL (Two-wire Serial Bus Cock Line)
Tabel 2.3 : Fungsi Khusus Port D
Pin
Fungsi Khusus
PD7
OC2 (Timer/Counter2 Output Compare Match Output )
PD6
ICP (Timer/Counter1 Input Capture Pin)
PD5
OC1A (Timer/Counter1 Output Compare A Match Output )
PD4
OC1B (Timer/Counter1 Output Compare B Match Output)
PD3
INT1 (External Interrupt 1 Input)
PD2
INT0 (External Interrupt 0 Input )
PD1
TXD (USART Output Pin)
PD0
RXD (USART Input Pin)
Universitas Sumatera Utara
Gambar 2.2 Konfigurasi Pin ATMega32
2.1.4 Deskripsi pin-pin pada mikrokontroler ATMega32:
1. Port A
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus
sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara
langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi
sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi
khusus pin-pin port A dapat ditabelkan seperti yang tertera pada table.
Tabel 2.4 Fungsi khusus port A
Port
Alternate Function
PA7
ADC7 (ADC input channel 7)
PA6
ADC6 (ADC input channel 6)
PA5
ADC5 (ADC input channel 5)
Universitas Sumatera Utara
PA4
ADC4 (ADC input channel 4)
PA3
ADC3 (ADC input channel 3)
PA2
ADC2 (ADC input channel 2)
PA1
ADC1 (ADC input channel 1)
PA0
ADC0 (ADC input channel 0)
2. Port B
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
mengandung internal pull-up resistor.Output buffer port B dapat mengalirkan arus
sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara
external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
SCK port B, bit 7
Input pin clock untuk up/downloading memory.
MISO port B, bit 6
Pin output data untuk uploading memory.
MOSI port B, bit 5
Pin input data untuk downloading memory.
Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada table
Tabel 2.5 Fungsi khusus port B
Port
Alternate Function
PB7
SCK (SPI Bus Serial Clock)
PB6
MISO (SPI Bus Master Input/Slave Output)
Universitas Sumatera Utara
PB6
MOSI (SPI Bus Master Output/Slave Input)
PB5
SS (SPI Slave Select Input)
AIN1 (Analog Comparator Negative Input)
PB3
OCO (Timer/Counter0 Output Compare Match Output)
AIN0 (Analog Comparator Positive Input)
PB2
INT2 (External Interrupt 2 Input)
PB1
T1 (Timer/Counter1 External Counter Input)
T0 (Timer/Counter External Counter Input) XCK (USART
PB0
External Clock Input/Output)
3. Port C
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port C dapat mengalirkan arus
sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down secara
langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.6 Fungsi khusus port C
Port
Alternate Function
PC7
TOSC2 (Timer Oscillator Pin 2)
PC6
TOSC1 (Timer Oscillator Pin 1)
PC6
TD1 (JTAG Test Data In)
PC5
TD0 (JTAG Test Data Out)
Universitas Sumatera Utara
PC3
TMS (JTAG Test Mode Select)
PC2
TCK (JTAG Test Clock)
PC1
SDA (Two-wire Serial Bus Data Input/Output Line)
PC0
SCL (Two-wire Serial Bus Clock Line)
4. Port D
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port D dapat mengalirkan arus
sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down secara
langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.7 Fungsi khusus port D
Port
Alternate Function
PD7
OC2 (Timer / Counter2 Output Compare Match Output)
PD6
ICP1 (Timer/Counter1 Input Capture Pin)
PD6
OCIB (Timer/Counter1 Output Compare B Match Output)
PD5
TD0 (JTAG Test Data Out)
PD3
INT1 (External Interrupt 1 Input)
PD2
INT0 (External Interrupt 0 Input)
PD1
TXD (USART Output Pin)
PD0
RXD (USART Input Pin)
Universitas Sumatera Utara
5. RESET
RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah
(aktif Low) selama minimal 1,5us.
6. XTAL2
Merupakan out put dari penguat dari osilator pembalik
7. XTAL1
Merupakan input ke penguat osilator pembalik dan input ke internal clock.
8. AVcc
Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC
yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc
melalui lowpass filter.
9. AREF
AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi
ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali
jika board memiliki anlaog ground yang terpisah.
2.1.5 Peta Memory ATMega32
Mikrokontroller ATMega32 memiliki 3 jenis memori yaitu memori
program, memori data dan memori EEPROM. Ketigannya memiliki ruang-ruang
tersendiri dan terpisah seperti terlihat pada gambar 2.3
Universitas Sumatera Utara
Gambar 2.3 Organisasi memori ATMega32
1. Memori Program
ATMega32 memiliki kapasitas memori program sebesar 8 Kbyte yang
terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki
lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering
dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu
program boot dan juga bagian program aplikasi.
2. Memori Data
ATMega32 memiliki kapasitas memori data sebesar 608 byte yang
terbagi menjadi 3 bagian yaitu register serba guna,register I/O dan SRAM.32 byte
alamat terendah digunakan untuk register serbaguna yaitu R0 –14 R31. 64 byte
berikut nya digunakan untuk register I/O yang digunakan untuk mengatur fasilitas
Universitas Sumatera Utara
timer /counter, interrupsi, ADC, USART, SPI, EEPROM dan port I/O seperti Port
A, Port B, Port C, dan Port D.Selanjutnya 512 byte diatasnya digunakan untuk
memory data SRAM .
Jika register-register I/O diatas diakses seperti mengakses data pada
memori ( Jika kita menggunakan instruksi LD atau ST ) maka register I/O diatas
menempati alamat 0020-005F. Tetapi jika registerregister I/O diakses seperti
mengakses I/O pada umumnya (menggunakan instruksi IN/IOUT) maka register
I/O diatas menempati alamat memori0000h – 003Fh.
32 Register
64 I/O Register
$0000 - $001F
$0020 - $005F
$0060
$0000
64 I/O Register
$003F
(b)
Internal SRAM
(512 x 8)
$025F
(a)
Gambar 2.4 (a) Register I/O Sebagai Memori Data, (b) Register I/O sebagai
I/O
3.Memori EEPROM
ATMega32 memiliki memori EEPROM sebesar 512 byte yang terpisah
dari memori program maupun dari memori data.Memori EEPROM ini hanaya
dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM
Addres ( EEARH-EEARL),register EEPROM Data (EEDR) dan register
Universitas Sumatera Utara
EEPROM control ( EECR). Untuk megakses memory EEPROM ini diperlakukan
sperti mengakses data eksternal sehingga waktu dari eksekusi relatif lebih lama
dibadingkan jika kita mengakses data dari SRAM.
2.1.6 Status Register ( SREG)
Register SREG digunakan untuk menyimpan informasi dari hasil operasi
aritmatika yang terakhir .Informasi-informasi dari register SREG dapat digunakan
untuk mengubah alur program, yang sedang dijalankan dengan mengunakan
instruksi percabangan . Data SREG akan selalu berubah jika setiap instruksi atau
operasi pada ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi
percabangan baik karena instruksi maupun lompatan.
Gambar 2.5 Status Register
Status Register ATMega32 :
Bit 7 – I : Global Interrupt Enable
Bit I digunakan untuk mengaktifkan interrupsi secara umum ( interrupsi global)
.Jika bit I benilai „1‟ maka interrupsi secara umum akan aktif , tetapi jika bernilai
„0‟ maka tidak ada satupun interrupsi yang aktif.Pengaturan jenis-jenis interrupsi
apa sja yang akan aktif dilakukan dengan mengatur register kontrol yang sesuai
dengan jenis interrupsi tersebut, dengan terlebih dahulu mengaktifkan interupsi
global ,yaitu bit I diset‟1‟.
Universitas Sumatera Utara
Bit 6 – T : Bit Copy Storage
Bit T digunakan untuk mementukan bit sumber atau bit tujuan pada instruksi bit
copy.Pada instruksi BST ,data akan dicopy dari register ke bit T( Bit T sebagai
tujuan) sedangkan pada instruksi BLD, bit T akan di copy ke register ( Bit T
Sebagai Sumber).
Bit 5 – H : Half carry Flag
Bit H digunakan untuk menunjukkan ada tidaknya setengah carry pada operasi
aritmatika BCD ,yaitu membagi satu byte data menjadi dua bagian ( masingmasing 4 bit) dan masing-masing bagian dianggap sebagai 1 digit desimal.
4.Bit 4 – S: Sign bit
Bit S merupakan kombinasi antara bit V dan bit N, yaitu dengan meng-XOR-kan
bit V dan bit N.
Bit 3 – V : Two‟s Complement over flow flag
Bit V digunakan untuk mendukun operasi aritmatika komplemen 2.Jika terjadi
luapan pada operasi aritmatika bilangan komplemen 2 maka akan menyebabkan
bit V bernilai „1‟.
Bit 2 - N : Negative Flag
Bit N digunakan untuk menunjukkan apakah hasil sebuah operasi aritmatika
ataupun operasi logika bernilai negatif atau tidak.Jika hasilnya negatif maka bit N
bernilai „1‟ dan jika hasilnya bernilai positif maka bit N bernila‟0‟.
Bit 1 - Z : Zero Flag
Bit Z digunakan untuk menunjukkan hasil operasi aritmatika ataupun operasi
logika apakah bernilai nol atau tidak.Jika hasilnya nol maka bit Z bernilai „1‟ dan
jika hasilnya tidak nol maka bit Z bernilai‟0‟.
Universitas Sumatera Utara
Bit 0 – C : Carry flag
Bit C digunakan untuk menunjukkan hasil operasi aritmatika ataupun logika
apakah ada carry atau tidak.Jika ada carry maka bit C bernilai‟1‟ dan jikatidak
ada carry maka bit C akan bernilai „0‟.
2.1.7 Register Serba guna ( General Purpose Register)
ATMega32 memiliki 32 byte register serbaguna yang terletak pada awal
alamat RAM. Dari 32 byte register serba guna 6 byte terakhir juga digunakan
sebagai register pointer yaitu register pointer X,register pointer Y dan Register
pointer Z.
Gambar 2.6 Register Serba guna
2.1.8USART ( Universal Synchronous and Asynchoronous Serial Receiver
And Transmitter)
Universal Synchronous Serial Receiver and Transmitter (USART) juga
merupakan
salah
satu
metode
komunikasi
serial
yang
dimiliki
oleh
Universitas Sumatera Utara
ATMega32.USART merupakan komunikasi yang memiliki fleksibilitas yang
tinggi, yang dapat kita gunakan untuk melakukan transfer data baik antara
mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang
memiliki fitur UART.
USART memungkinkan transmisi data baik secara synchronous maupun
asynchronous sehingga dengan demikian USART pasti kompatibel dengan
UART. Pada ATMega32,pengaturan secara umum pengaturan mode komunikasi
baik Synchronous maupun Asynchronous adalah sama , perbedaannya hanya
terletak pada sumber clocknya saja. Pada mode Asynchronous masing – masing
Peripheral memiliki sumber clock sendiri sedang kan pada mode Synchronous
hanya ada satu sumber clock yang digunakan secra bersama- sama. Dengan
demikian secara hardware untuk mode Asynchronous hanya membutuhkan 2 pin
yaitu TXD dan RXD sedangkan untuk mode Synchronous harus 3 pin yaitu
TXD,RXD dan XCK
2.2 Modem GSM
Modem
adalah
sebuah
alat
yang
dapat
membuat
komputer
terkoneksidengan internet melalui line telepon standar. Modem banyak
digunakankomputer rumah dan jaringan sederhana untuk dapat berkomunikasi
denganjutaan komputer lain dalam lalu lintas internet. Kata Modem itu
sendirimerupakan
kependekan
dariModulator
Demodulator.
Ini
berarti
Modembekerja dengan cara mengubah informasi digital dari komputer pengirim
kedalam bentuk sinyal analog yang ditransmisikan melaluli line telepon.
Selanjutnya Modem pada komputer penerima akan mengubah ulang sinyal
analog ke sinyal digital.Modem GSM adalah sebuah perangkat Modem Wireless
Universitas Sumatera Utara
Plug andPlay dengan konektivitas GSM/GPRS untuk aplikasi-aplikasi machine
tomachine. GSM Modul atau Modem GSM adalah jenis khusus dari modemyang
menerima kartu SIM, dan mengoperasikan selama berlangganan keoperator
mobile, seperti ponsel. Modem GSM dihubungkan dengan suatuinterface yang
memungkinkan aplikasi seperti SMS untuk mengirim danmenerima pesan melalui
Modem. Beberapa fungsi kegunaan modem ini dimasyarakat adalah antara lain:
· SMS Broadcast application
· SMS Quiz application
· SMS Polling
· SMS auto-reply
· M2M integration
· Aplikasi Server Pulsa
· Telemetri
· Payment Point Data
Pada
pembuatan
proyek
ini,
digunakan
Modem
GSM
Serial
WavecomFastrack M1306B.Untuk Modem seri ini memiliki dua type konektor
yaitu
serial dan USB[12].
Gambar 2.7Modem GSM Fastrack M1306B
Universitas Sumatera Utara
Spesifikasi modem WAVECOM FASTRACK M1306B:
· Dual-band GSM 900/1800MHZ & GPRS Class 10
· GSM Dual Band antenna
· Power Supply with 4 pin connector (untuk serial)
· Standard USB 2.0 interface (untuk USB)
· Input Voltage : 5V-32V
· Maximum transmitting speed 253KBps
· Support AT-Command
· Dimensi : 74×54×25mm
2.2.1 AT-Command
AT-Command adalah singkatan dari Attention Command.ATCommand adalah
perintah yang digunakan dalam komunikasi dengan serialport. Pada awalnya
standar perintah ini untuk modem-modem telepon PSTN,akan tetapi perintah ini
sekarang dikembangkan juga untuk modem-modemGSM. Perintah AT-Command
dapat diberikan kepada handphone atauGSM/CDMA modem untuk melakukan
sesuatu hal, termasuk untukmengirim dan menerima SMS.Dengan memberikan
perintah ini di dalamkomputer/mikrokontroller maka perangkat kita dapat
melakukan pengirimanatau penerimaan SMS secara otomatis untuk mencapai
tujuan tertentu.Untuk memulai suatu perintah AT-Command, diperlukan prefiks
“AT” atau “at” dalam setiap perintah AT-Command.[6]
Universitas Sumatera Utara
Tabel 2.8 Tabel Set AT-Command
2.2.2Short Message Service (SMS)
Short Message Service (SMS) merupakan salah satu tipe InstantMessaging
(IM) yang memungkinkan user untuk bertukar pesan singkat. SMSdihantarkan
pada channel signal Global System for Mobile Communication(GSM). Dewasa
ini perkembangan teknologi yang sangat pesat membuatteknologi SMS ini banyak
digemari masyarakat karena teknologi ini bersifatpraktis, murah dan mudah untuk
digunakan.Sebuah pesan SMS maksimal terdiri dari 140 bytes, yang berarti
dapatmemuat 140 karakter 8-bit, 160 karakter 7-bit atau 70 karakter 16-bit
untukbahasa Jepang, bahasa Mandarin dan bahasa Korea yang memakai
Hanzi(Aksara Kanji/Hanja). User pun dapat mengirim pesan SMS yang lebih
dari140 bytes dengan catatan membayar lebih dari sekali biaya kirim
SMS.[5]21SMS menjamin pengiriman pesan oleh jaringan, jika terjadi
kegagalanmaka disimpan di jaringan atau yang disebut SMS Center (SMSC). Di
SMSCpesan disimpan dan dicoba untuk mengirimkannya selama beberapa
Universitas Sumatera Utara
kali.Batas waktu yang telah ditentukan untuk menyimpannya biasanya sekitar
1hari atau 2 hari, lalu pesan dihapus.
2.2.3 Database
Database merupakan sekumpulan data yang terintegrasi yang diorganisasi
untuk memenuhi kebutuhan pemakai untuk keperluan organisasiyang dimana
dapat dipakai hanya sekali atau berulang yang dimana dalambentuk digital.Salah
satu komponen penting dalam penggunaan databaseadalah DataBase Management
System (DBMS).DBMS ini bertugas untukmenangani semua akses ke database
dan bertanggug jawab untuk menerapkanpemeriksaan otorisasi dan prosedur
validasi.
2.2.4 Microsoft Office Access
Salah satu software atau aplikasi yang banyak digunakan untukmembuat
suatu database sederhana adalah Microsoft Access. Micosoft Access merupakan
software yang dikeluarkan oleh microsoft untuk membuat aplikasidatabase.
Sofware ini cocok untuk kalangan industri kecil atau rumah tangga,
karena kapasitas datanya yang mencapai 4 GB. Program ini banyak dipakaikarena
kemudahannya dalam mengolah database.
2.3ICMAX232
MAX232 merupakan salah satu jenis IC rangkaian antar muka dual RS232 transmitter / receiver yang memenuhi semua spesifikasi standar EIA-232-E.
IC MAX232 hanya membutuhkan power supply 5V ( single power supply )
sebagai catu. IC MAX232 di sini berfungsi untuk merubah level tegangan pada
COM1 menjadi level tegangan TTL / CMOS. IC MAX232 terdiri atas tiga bagian
yaitu dual charge-pump voltage converter, driver RS232, dan receiver
Universitas Sumatera Utara
Pengubahan tingkat tegangan listrik dari tingkat serial CMOS/TTL ke tingkat
teganganRS-232 seringkali gampang-gampang susah untuk dilakukan. Gampang
karena sekarang sudah banyak tersedia IC yang sudah siap pakai tetapi susah
karena kadang orang lupa dan salah melakukan konfigurasi jalur komunikasi.
Gambar 2.8 fisik IC MAX232
2.4 Komunikasi Serial
Pada PC / laptop standar, biasanya terdapat sebuah port untuk komunikasi
serial.Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman
data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel
seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali
detak. Beberapa contoh penerapan komunikasi serial ialah mouse, scanner dan
sistem akuisisi data yang terhubung ke port serial COM1/COM2. Sistem antar
muka komunikasi serial RS232 sering digunakan sebagai antar muka antara
komputer dengan mikrokontroler. Agar level tegangan data serial dari
mikrokontroler setara dengan level tegangan komunikasi port serial PC,
diperlukan MAX232 untuk mengubah ke tegangan TTL/CMOS logic level
Universitas Sumatera Utara
RS232. MAX232 menggunakan sistim komunikasi simplex sehingga difungsikan
untuk mengubah dari arus dan tegangan logika TTL menjadi arus tegangan logika
komputer (RS232).
2.4.1 Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan adalah Standar
RS232 yang dikembangkan oleh Electronic Industri Association (EIA/TIA) yang
pertama kali dipublikasikan pada tahun 1962.Ini terjadi jauh sebelum IC TTL
populer sehingga sinyal ini tidak ada hubungan sama sekali dengan level tegangan
IC TTL. Standar ini hanya menyangkut komunikasi antara (Data Terminal
Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit
Terminating Equipment – DCE). Standar sinyal RS232 memiliki ketentuan level
tegangan sebagai berikut :
• Logika 1 disebut „Mark‟ terletak antara -3 Volt sampai -25 Volt
• Logika „0‟ disebut „space‟ terletak antara +3 Volt samapai +25 Volt.
• Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu daerah
tegangan yang tidak memiliki level logika pasti sehingga harus dihindari.
Demikian juga level tegangan dibawah -25 Volt dan diatas +25 Volt juga harus
dihindari karena bisa merusak line driver pada saluran RS232
Gambar dibawah adalah contoh level tegangan RS232 pada pengiriman huruf “A”
dalam format ASCII tanpa bit paritas.
Universitas Sumatera Utara
Gambar 2.9 Level Tegangan RS232 pada Pengiriman Huruf “A” Tanpa Bit
Paritas
2.4.2 Port Komunikasi Serial
Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampil port
serial DB9 yang umum digunakan sebagai port serial
Gambar 2.10Port DB9 Jantan
Gambar 2.11 Port DB9 Betina
Universitas Sumatera Utara
Untuk menghubungkan antara 2 buah PC, biasanya digunakan format null mode,
dimana pin TxD dihubungkan dengan RxD pasangan, pin Sinyal ground (5)
dihubungkan dengan SG di pasangan, dan masing masing pin DTR, DSR dan CD
dihubung singkat, dan pin RTS dan CTS dihubung singkat di setiap devais.
Gambar.2.12 Susunan Pin Konektor DB9
Tabel 2.9 Fungsi Susunan Konektor DB9
Universitas Sumatera Utara
Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari
port serial tersebut.Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan
COM2.Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760
(2F8h).Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer
yang digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan
alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk
COM2. Berikut adalah nama – nama register yang digunakan beserta alamatnya
Tabel 2.10 Nama – Nama Register.
Keterangan Register
• RX Buffer , digunakan untuk menampung dan menyimpan data dari DCE.
• TX Buffer , digunakan untuk menampung dan menyimpan data yang akan
dikirim ke port serial.
• Baud Rate Divisor Latch LSB , digunakan untuk menampung byte bobot rendah
untuk pembagi clock pada IC UART agar didapat baud rate yang tepat.
• Baud Rate Divisor Latch MSB , digunakan untuk menampung byte bobot tinggi
untuk pembagi clock pada IC UART sehingga total angka pembagi adalah 4 byte
yang dapat dipilih dari 0001h sampai FFFFh.
Berikut adalah tabel angka pembagi yang sering digunakan :
Universitas Sumatera Utara
Tabel 2.11Angka Pembagi
2.4.3Koneksi Ke RS232 Port
Koneksi TXD dan RXD MCU MCS-51 dengan port serial komputer selain level
tegangannya harus disesuaikan, cara koneksikan juga perlu diperhatikan. Ada
semacam protokol komunikasi, bila DTE hendak menghubungi DCE atau
sebaliknya, untuk ‟DCE‟ yang berupa MCU MCS-51 ini, protokol perlu diakali,
lebih sederhana prosesnya, sehingga tidak memrlukan software yang rumit, tetapi
masih tetap handal. Selain sinyal data, terdapat sinyal – sinyal protokol
komunikasi serial pada komputer dan dihubungkan keluar melalui konektor male
DB9 (komputer baru) dan DB25 (Komputer lama), nama sinyal – sinyal tersebut
adalah:
• RD, Receive Data (RXD).
• TD, Transmit Data
• SG, Signal Ground
• DTR, Data Terminal Ready
• DSR, Data Set Ready
• CD, Carrier Detect
• RTS, Request To Send
Universitas Sumatera Utara
• CTS, Clear To Send.
Tabel 2.12 Koneksi Null Mode
Komunikasi asinkron yang sederhana yang disebut sebagai null modem, adalah
dengan menghubungkan pin- pin DTR, DSR dan CD serta RTS dengan CTS.
Sedangkan sinyal data input masuk RD dan sinyal transmit output adalah TD.
Konvertor level untuk saat ini tersedia dalam bentuk ic, contoh adalah ICL232
dari Harris semikonduktor, MAX232 dari Maxim.
Gambar 2.13IC MAX232
Protokol standar yang mengatur komunikasi melalui serial port disebut
RS-232 (Recommended Standard-232) yang dikembangkan oleh EIA (Electronic
Universitas Sumatera Utara
Industries
Association).Interfacing
RS-232
menggunakan
komunikasi
asyncronous di mana sinyal clock tidak dikirimkan bersamaan dengan data. Setiap
word data disingkronisasikan menggunakan sebuah start bit dan sebuah stop bit.
Jadi, sebuah frame data terdiri dari sebuah start bit, diikuti bit-bit data dan diakhiri
dengan stop bit. Jumlah bit data yang digunakan dalam komunikasi serial adalah 8
bit. Encoding yang digunakan dalam komunikasi serial adalah NRZ (Non-Returnto-Zero), di mana bit 1 dikirimkan sebagai high value dan bit 0 sebagai low value.
Komunikasi serial merupakan hal yang penting dalam system embedded, karena
dengan
komunikasi
serial
kita
dapat
dengan
mudah
menghubungkan
mikrokontroler dengan devais lainnya. Port serial pada mikrokontroler terdiri atas
dua pin yaitu RXD dan TXD. RXD berfungsi untuk mengirim data dari komputer
atau perangkat lainnya, standard komunikasi serial untuk computer adalah RS232, RS-232 mempunyai standard tegangan yang berbeda dengan serial port
mikrokontroler, sehingga agar sesuai dengan RS-232 maka dibutuhkan suatu
rangkaian level converter, IC yang digunakan bermacam-macam, tapi yang paling
mudah dan sering digunakan ialah IC MAX232/HIN232. Pada prinsipnya,
komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit,
sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer
yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh
komunikasi serial ialah mouse, scanner, dan system akuisisi data yang terhubung
ke port COM1/COM2.
Jika ingin menggunakan mikrokontroler untuk berkomunikasi dengan komputer
atau device lainnya maka Rx dan Tx tidak bisa langsung dihubungkan begitu saja
dengan device tersebut karena level sinyal yang digunakan berbeda-beda.
Universitas Sumatera Utara
Contohnya komunikasi serial untuk komputer menggunakan sinyal RS232 yaitu
sinyal yang gelombang level sinyalnya antara +25V sampai -25V. Oleh karena
itu, jika ingin diharapkan terjadi komunikasi antara mikrokontroler dengan
komputer dibutuhkan sebuah buffer yang dapat mengubah sinyal level TTL dari
mikrokontroler menjadi sinyal level RS232. Salah satu Buffer yang sering
digunakan adalah IC MAX232CPE dan menggunakan transistor NPN maupun
PNP.
Gambar 2.14merupakan penggunaan ic max 232 dalam rangkaian sebagai
komunikasi serial.
2.5 Bahasa Pemograman C
Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis
Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar
ANSI ( American National Standards Institute ), yang digunakan sebagai referensi
dari berbagai versi C yang beredar dewasa ini termasuk Turbo C.
Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh
karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa
Universitas Sumatera Utara
rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa
C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++
(diciptakan oleh Bjarne Struostrup dari AT % TLab). Bahasa C++ adalah
pengembangan dari bahasa C. bahasa C++ mendukung konsep pemrograman
berorientasu objek dan pemrograman berbasis windows.
Sampai
sekarang
bahasa
C++
terus
brkembang
dan
hasil
perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C
dan C++ yang dinamakan java). Istilah prosedur dan fungsi dianggap sama dan
disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya
adalah sebuah fungsi yang tidak memiliki tipe data kembalian (void). Hingga kini
bahasa ni masih popular dan penggunaannya tersebar di berbagai platform dari
windows samapi linux dan dari PC hingga main frame.
Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut :\
Kelebihan Bahasa C:
·
Bahasa C tersedia hampir di semua jenis computer.
·
Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua
jenis computer.
·
Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya
terdapat 32 kata kunci.
·
Proses executable program bahasa C lebih cepat
·
Dukungan pustaka yang banyak.
·
C adalah bahasa yang terstruktur
·
Bahasa C termasuk bahasa tingkat menengah
Universitas Sumatera Utara
penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman
yangberorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah.
Melainkan
berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan
cepat.secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki
kemudahan dalammenyusun programnya semudah bahasa tingkat tinggi namun
dalam mengesekusiprogram secepat bahasa tingkat rendah.
Kekurangan Bahasa C:
·
Banyaknya operator serta fleksibilitas penulisan program kadangkadangmembingungkan pemakai.
·
Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
·
2.5.1 Struktur Bahasa C
a. Program bahasa C tersusun atas sejumlah blok fungsi.
b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan
suatu proses tertentu.
c. Tidak ada perbedaan antara prosedur dan fungsi.
d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main”
(Program Utama).
e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”.
f. Setiap statemen diakhiri dengan semicolon (titik koma).
Universitas Sumatera Utara
2.5.2 Pengenal
Pengenal (identifier) merupakan sebuah nama yang didefenisikan oleh
pemrograman untuk menunjukkan indetitas dari sebuah konstanta, variable,
fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenal dapat
ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi atura
berikut :
Karakter pertama tidak boleh menggunakan angka
Karakter kedua dapat berupa huruf, angka, atau garis bawah.
Tidak boleh menggunakan spasi.
Bersifat Case Sensitive, yaitu huru capital dan huruf kecil dianggap
berbeda.
Tidak boleh mengunakan kata – kata yang merupakan sitaks maupun
operator dalam pemrograman C, misalnya : Void, short, const, if, static, bit,
long, case, do, switch dll.
2.5.3 Tipe Data
Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat
belajar bahasa pemrograman.Kita harus dapat menentukan tipe data yang tepat
untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun
karakter.Hal ini bertujuan agar program yang kita buat tidak membutuhkan
pemesanan kapling memori yang berlebihan. Seorang programmer yang handal
harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan
dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C
dibagi menjadi beberapa bagian antara lain sebagai Berikut
Universitas Sumatera Utara
Macam-Macam Tipe Data Pada Bahasa C :
1. Tipe Data Karakter
Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada
sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data
yang dapat disimpan pada variabel yang bertipe data char adalah -127 - 127.
Sedangkan untuk tipe data unsigned char adalah dari 0 - 255. Pada dasarnya setiap
karakter memiliki nilai ASCII, nilai inilah yang sebetulnya disimpan pada variabel
yang bertipe data karakter ini.
2. Tipe Data Bilangan Bulat
Tipe data bilangan bulat atau dapat disebut juga bilangan desimal
merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat
bermacam-macam tipe data yang dapat kita gunakan untuk menampung bilangan
bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu
memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti
berikut, kiata akan melakukan operasi penjumlahan nilai 300 dan 100 dan
hasilnya akan disimpan pada variabel c.
Jika dilihat, hasil dari penjumlahan tersebut nilainya akan lebih besar dari
255 dan nilainya pasti positif, oleh karena itu sebaiknya kita menggunakan tipe
data unsigned int. Namun berbeda halnya jika saya ingin melakukan operasi
pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya
digunakan variabel dengan tipe data int.
3. Tipe Data Bilangan Berkoma
Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk
menampung data yang berkoma. Tipe data tersebut adalah float dan double.
Universitas Sumatera Utara
Double lebih memiliki panjang data yang lebih banyak dibandingkan float. Tipe
data double dapat digunakan jika kita membutuhkan variabel yang dapat
menampung tipe data berkoma yang bernilai besar.
Tabel 2.13Tipe Data
Tipe Data
Ukuran
Jangkauan Nilai
Bit
1 byte
0 atau 1
Char
1 byte
-128 s/d 127
Unsigned Char
1 byte
0 s/d 255
Signed Char
1 byte
-128 s/d 127
Int
2 byte
-32.768 s/d 32.767
Short Int
2 byte
-32.768 s/d 32.767
Unsigned Int
2 byte
0 s/d 65.535
Signed Int
2 byte
-32.768 s/d 32.767
Long Int
4 byte
-2.147.483.648 s/d 2.147.483.647
Unsigned Long Int
4 byte
0 s/d 4.294.967.295
Signed Long Int
4 byte
-2.147.483.648 s/d 2.147.483.647
Float
4 byte
1.2*10-38 s/d 3.4*10+38
Double
4 byte
1.2*10-38 s/d 3.4*10+38
2.5.4 Konstanta Dan Variabel
Konstanta dan variable merupakan sebuah tempat untuk menyimpan data
yang berada di dalam memori.Konstanta berisi data yang nilainya tetap dan tidak
dapat diubah selama program dijalankan, sedangkan variable berisi data yang bisa
berubah nilainya pada saat program dijalankan.
Universitas Sumatera Utara
2.5.5IDENTIFIER
Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh
pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable,
nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll).
Identifier punya ketentuan sebagai berikut :
1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang
diperhatikan hanya 32 karakter pertama saja).
2. Case sensitive: membedakan huruf besar dan huruf kecilnya.
3.
Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh
angka.
4. Tidak boleh mengandung spasi atau blank.
5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.
Universitas Sumatera Utara
LANDASAN TEORI
Dalam Bab ini penulis akan membahas tentang komponen- komponen yang di
gunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan
menyimpang dari topic utama laporan ini, maka setiap komponen hanya di bahas
sesuai fungsi nya pada masing- masing unit nya.
2.1 Mikrokontroler ATMega32
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah
chip. Didalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM,
memori program, atau keduanya), dan perlengkapan input output. Mikrokontroler
merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan
elektronik, yang menekankan efisiensi dan efektifitas biaya.Secara harfiahnya bisa
disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya
banyak memerlukan komponen-komponen pendukung, mikrokontroler bisa
mereduksi komponen IC TTL dan CMOS yangseringkali masih diperlukan untuk
aplikasi kecepatan tinggi atau sekedarmenambah jumlah saluran masukan dan
keluaran (I/O). Dengan kata lain,mikrokontroler adalah versi mini atau mikro dari
sebuah komputer karenamikrokontroler sudah mengandung beberapa periferal
yang langsung bisadimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital keanalog (DAC), konversi analog ke digital dan sebagainya hanya
menggunakansistem minimum yang tidak rumit atau kompleks.
19
Universitas Sumatera Utara
2.1.1 Arsitektur Mikrokontroler AVR ATmega32
Mikrokontroler AVR ATMega32 merupakan sebuah mikrokontroler low
power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini
memiliki karakteristik sebagai berikut.
1. Menggunakan arsitektur AVR RISC
*131 perintah dengan satu clock cycle
*32 x 8 register umum
2. Data dan program memori
*32 Kb In-System Programmable Flash
*2 Kb SRAM
*1 Kb In- System EEPROM
3. 8 Channel 10-bit ADC
4. Two Wire Interface
5. USART Serial Communication
6. Master/Slave SPI Serial Interface
7. On-Chip Oscillator
8. Watch-dog Timer
9. 32 Bi-directional I/O
10. Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32
register umum. Semua register tersebut langsung terhubung dengan Arithmetic
Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu
perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif
Universitas Sumatera Utara
dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC
biasa..arsitektur mikrokontroler AVR atmega32 yaitu seperti berikut :
Gambar 2.1 Arsitektur AVR ATMega32
2.1.2 Fitur ATMega32
Berikut ini adalah fitur-fitur yang dimiliki oleh ATMega32:
1. Frekuensi clock maksimum 16 MHz
2. Jalur I/O 32 buah yang terbagi dalam Port A,Port B,Port C,Port D.
3. Analog to Digital Converter 10 bit sebanyak 8 input,4 chanel PWM
4. Timer/Counter sebanyak 3 buah
Universitas Sumatera Utara
5. CPU 8 bit yang terdiri dari 32 register
6. SRAM sebesar 2K Byte
7. Memori flash sebesar 32K Byte dengan kemampuan read while write
8. Port komunikasi SPI
9. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
10. Analog Comparator
11. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps.
2.1.3 Konfigurasi Pin ATMega32
Konfigurasi pin ATMega32 dengan kemasan 40 pin DIP (Dual In-line Package)
dapat dilihat pada Gambar 2.1. Dari gambar tersebut dapatdijelaskan fungsi
darimasing – masing pin ATMega32 sebagai berikut :
1.VCC merupakan pin yang berfungsi sebagai masukan catu daya
2.GND merupakan pin Ground
3.Port A (PA0…PA7) merupakan pin input/output dua arah danpin masukan
ADC
4.Port B (PB0…PB7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
5.Port C (PC0…PC7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
6.Port D (PD0…PD7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
7.RESET merupakan pin yang digunakan untuk me-reset mikrokontroler
8.XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
Universitas Sumatera Utara
9.AVCC merupakan pin masukan tegangan untuk ADC
10.AREF merupakan pin masukan tegangan untuk ADC
Selain fitur tersebut diatas, masing – masing pin pada
mikrokontroler memiliki
fungsi khusus diantaranya :
Tabel 2.1 : Fungsi Khusus Port B
Pin
Fungsi Khusus
PD7
SCK (SPI Bus Serial Clock)
PD6
MISO (SPI Bus Master Input/Slave Output)
PD5
MOSI (SPI Bus Master Output/Slave Input)
PD4
SS (SPI Slave Select Input )
AIN1 (Analog Comparator Negative Input )
PD3
OC0 (Timer/Counter0 Output Compare Match Output )
AIN0 (Analog Comparator Positive Input )
PD2
INT2 (External Interrupt 2 Input)
PD1
T1 (Timer/Counter1 External Counter Input )
T0 T1 (Timer/Counter0 External Counter Input )
PD0
XCK (USART External Clock Input/Output)
Tabel 2.2 : Fungsi Khusus Port C
Pin
Fungsi Khusus
PD7
TOSC2 (Timer Oscillator Pin2)
PD6
TOSC1 (Timer Oscillator Pin1)
PD5
TDI (JTAG Test Data In)
Universitas Sumatera Utara
PD4
TDO (JTAG Test Data out )
PD3
TMS (JTAG Test Mode Select )
PD2
TCK (JTAG Test Clock)
PD1
SDA (Two-wire Serial Bus Data Input/Output Line)
PD0
SCL (Two-wire Serial Bus Cock Line)
Tabel 2.3 : Fungsi Khusus Port D
Pin
Fungsi Khusus
PD7
OC2 (Timer/Counter2 Output Compare Match Output )
PD6
ICP (Timer/Counter1 Input Capture Pin)
PD5
OC1A (Timer/Counter1 Output Compare A Match Output )
PD4
OC1B (Timer/Counter1 Output Compare B Match Output)
PD3
INT1 (External Interrupt 1 Input)
PD2
INT0 (External Interrupt 0 Input )
PD1
TXD (USART Output Pin)
PD0
RXD (USART Input Pin)
Universitas Sumatera Utara
Gambar 2.2 Konfigurasi Pin ATMega32
2.1.4 Deskripsi pin-pin pada mikrokontroler ATMega32:
1. Port A
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus
sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara
langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi
sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi
khusus pin-pin port A dapat ditabelkan seperti yang tertera pada table.
Tabel 2.4 Fungsi khusus port A
Port
Alternate Function
PA7
ADC7 (ADC input channel 7)
PA6
ADC6 (ADC input channel 6)
PA5
ADC5 (ADC input channel 5)
Universitas Sumatera Utara
PA4
ADC4 (ADC input channel 4)
PA3
ADC3 (ADC input channel 3)
PA2
ADC2 (ADC input channel 2)
PA1
ADC1 (ADC input channel 1)
PA0
ADC0 (ADC input channel 0)
2. Port B
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
mengandung internal pull-up resistor.Output buffer port B dapat mengalirkan arus
sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara
external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
SCK port B, bit 7
Input pin clock untuk up/downloading memory.
MISO port B, bit 6
Pin output data untuk uploading memory.
MOSI port B, bit 5
Pin input data untuk downloading memory.
Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada table
Tabel 2.5 Fungsi khusus port B
Port
Alternate Function
PB7
SCK (SPI Bus Serial Clock)
PB6
MISO (SPI Bus Master Input/Slave Output)
Universitas Sumatera Utara
PB6
MOSI (SPI Bus Master Output/Slave Input)
PB5
SS (SPI Slave Select Input)
AIN1 (Analog Comparator Negative Input)
PB3
OCO (Timer/Counter0 Output Compare Match Output)
AIN0 (Analog Comparator Positive Input)
PB2
INT2 (External Interrupt 2 Input)
PB1
T1 (Timer/Counter1 External Counter Input)
T0 (Timer/Counter External Counter Input) XCK (USART
PB0
External Clock Input/Output)
3. Port C
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port C dapat mengalirkan arus
sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down secara
langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.6 Fungsi khusus port C
Port
Alternate Function
PC7
TOSC2 (Timer Oscillator Pin 2)
PC6
TOSC1 (Timer Oscillator Pin 1)
PC6
TD1 (JTAG Test Data In)
PC5
TD0 (JTAG Test Data Out)
Universitas Sumatera Utara
PC3
TMS (JTAG Test Mode Select)
PC2
TCK (JTAG Test Clock)
PC1
SDA (Two-wire Serial Bus Data Input/Output Line)
PC0
SCL (Two-wire Serial Bus Clock Line)
4. Port D
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port D dapat mengalirkan arus
sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down secara
langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.7 Fungsi khusus port D
Port
Alternate Function
PD7
OC2 (Timer / Counter2 Output Compare Match Output)
PD6
ICP1 (Timer/Counter1 Input Capture Pin)
PD6
OCIB (Timer/Counter1 Output Compare B Match Output)
PD5
TD0 (JTAG Test Data Out)
PD3
INT1 (External Interrupt 1 Input)
PD2
INT0 (External Interrupt 0 Input)
PD1
TXD (USART Output Pin)
PD0
RXD (USART Input Pin)
Universitas Sumatera Utara
5. RESET
RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah
(aktif Low) selama minimal 1,5us.
6. XTAL2
Merupakan out put dari penguat dari osilator pembalik
7. XTAL1
Merupakan input ke penguat osilator pembalik dan input ke internal clock.
8. AVcc
Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC
yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc
melalui lowpass filter.
9. AREF
AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi
ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali
jika board memiliki anlaog ground yang terpisah.
2.1.5 Peta Memory ATMega32
Mikrokontroller ATMega32 memiliki 3 jenis memori yaitu memori
program, memori data dan memori EEPROM. Ketigannya memiliki ruang-ruang
tersendiri dan terpisah seperti terlihat pada gambar 2.3
Universitas Sumatera Utara
Gambar 2.3 Organisasi memori ATMega32
1. Memori Program
ATMega32 memiliki kapasitas memori program sebesar 8 Kbyte yang
terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki
lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering
dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu
program boot dan juga bagian program aplikasi.
2. Memori Data
ATMega32 memiliki kapasitas memori data sebesar 608 byte yang
terbagi menjadi 3 bagian yaitu register serba guna,register I/O dan SRAM.32 byte
alamat terendah digunakan untuk register serbaguna yaitu R0 –14 R31. 64 byte
berikut nya digunakan untuk register I/O yang digunakan untuk mengatur fasilitas
Universitas Sumatera Utara
timer /counter, interrupsi, ADC, USART, SPI, EEPROM dan port I/O seperti Port
A, Port B, Port C, dan Port D.Selanjutnya 512 byte diatasnya digunakan untuk
memory data SRAM .
Jika register-register I/O diatas diakses seperti mengakses data pada
memori ( Jika kita menggunakan instruksi LD atau ST ) maka register I/O diatas
menempati alamat 0020-005F. Tetapi jika registerregister I/O diakses seperti
mengakses I/O pada umumnya (menggunakan instruksi IN/IOUT) maka register
I/O diatas menempati alamat memori0000h – 003Fh.
32 Register
64 I/O Register
$0000 - $001F
$0020 - $005F
$0060
$0000
64 I/O Register
$003F
(b)
Internal SRAM
(512 x 8)
$025F
(a)
Gambar 2.4 (a) Register I/O Sebagai Memori Data, (b) Register I/O sebagai
I/O
3.Memori EEPROM
ATMega32 memiliki memori EEPROM sebesar 512 byte yang terpisah
dari memori program maupun dari memori data.Memori EEPROM ini hanaya
dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM
Addres ( EEARH-EEARL),register EEPROM Data (EEDR) dan register
Universitas Sumatera Utara
EEPROM control ( EECR). Untuk megakses memory EEPROM ini diperlakukan
sperti mengakses data eksternal sehingga waktu dari eksekusi relatif lebih lama
dibadingkan jika kita mengakses data dari SRAM.
2.1.6 Status Register ( SREG)
Register SREG digunakan untuk menyimpan informasi dari hasil operasi
aritmatika yang terakhir .Informasi-informasi dari register SREG dapat digunakan
untuk mengubah alur program, yang sedang dijalankan dengan mengunakan
instruksi percabangan . Data SREG akan selalu berubah jika setiap instruksi atau
operasi pada ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi
percabangan baik karena instruksi maupun lompatan.
Gambar 2.5 Status Register
Status Register ATMega32 :
Bit 7 – I : Global Interrupt Enable
Bit I digunakan untuk mengaktifkan interrupsi secara umum ( interrupsi global)
.Jika bit I benilai „1‟ maka interrupsi secara umum akan aktif , tetapi jika bernilai
„0‟ maka tidak ada satupun interrupsi yang aktif.Pengaturan jenis-jenis interrupsi
apa sja yang akan aktif dilakukan dengan mengatur register kontrol yang sesuai
dengan jenis interrupsi tersebut, dengan terlebih dahulu mengaktifkan interupsi
global ,yaitu bit I diset‟1‟.
Universitas Sumatera Utara
Bit 6 – T : Bit Copy Storage
Bit T digunakan untuk mementukan bit sumber atau bit tujuan pada instruksi bit
copy.Pada instruksi BST ,data akan dicopy dari register ke bit T( Bit T sebagai
tujuan) sedangkan pada instruksi BLD, bit T akan di copy ke register ( Bit T
Sebagai Sumber).
Bit 5 – H : Half carry Flag
Bit H digunakan untuk menunjukkan ada tidaknya setengah carry pada operasi
aritmatika BCD ,yaitu membagi satu byte data menjadi dua bagian ( masingmasing 4 bit) dan masing-masing bagian dianggap sebagai 1 digit desimal.
4.Bit 4 – S: Sign bit
Bit S merupakan kombinasi antara bit V dan bit N, yaitu dengan meng-XOR-kan
bit V dan bit N.
Bit 3 – V : Two‟s Complement over flow flag
Bit V digunakan untuk mendukun operasi aritmatika komplemen 2.Jika terjadi
luapan pada operasi aritmatika bilangan komplemen 2 maka akan menyebabkan
bit V bernilai „1‟.
Bit 2 - N : Negative Flag
Bit N digunakan untuk menunjukkan apakah hasil sebuah operasi aritmatika
ataupun operasi logika bernilai negatif atau tidak.Jika hasilnya negatif maka bit N
bernilai „1‟ dan jika hasilnya bernilai positif maka bit N bernila‟0‟.
Bit 1 - Z : Zero Flag
Bit Z digunakan untuk menunjukkan hasil operasi aritmatika ataupun operasi
logika apakah bernilai nol atau tidak.Jika hasilnya nol maka bit Z bernilai „1‟ dan
jika hasilnya tidak nol maka bit Z bernilai‟0‟.
Universitas Sumatera Utara
Bit 0 – C : Carry flag
Bit C digunakan untuk menunjukkan hasil operasi aritmatika ataupun logika
apakah ada carry atau tidak.Jika ada carry maka bit C bernilai‟1‟ dan jikatidak
ada carry maka bit C akan bernilai „0‟.
2.1.7 Register Serba guna ( General Purpose Register)
ATMega32 memiliki 32 byte register serbaguna yang terletak pada awal
alamat RAM. Dari 32 byte register serba guna 6 byte terakhir juga digunakan
sebagai register pointer yaitu register pointer X,register pointer Y dan Register
pointer Z.
Gambar 2.6 Register Serba guna
2.1.8USART ( Universal Synchronous and Asynchoronous Serial Receiver
And Transmitter)
Universal Synchronous Serial Receiver and Transmitter (USART) juga
merupakan
salah
satu
metode
komunikasi
serial
yang
dimiliki
oleh
Universitas Sumatera Utara
ATMega32.USART merupakan komunikasi yang memiliki fleksibilitas yang
tinggi, yang dapat kita gunakan untuk melakukan transfer data baik antara
mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang
memiliki fitur UART.
USART memungkinkan transmisi data baik secara synchronous maupun
asynchronous sehingga dengan demikian USART pasti kompatibel dengan
UART. Pada ATMega32,pengaturan secara umum pengaturan mode komunikasi
baik Synchronous maupun Asynchronous adalah sama , perbedaannya hanya
terletak pada sumber clocknya saja. Pada mode Asynchronous masing – masing
Peripheral memiliki sumber clock sendiri sedang kan pada mode Synchronous
hanya ada satu sumber clock yang digunakan secra bersama- sama. Dengan
demikian secara hardware untuk mode Asynchronous hanya membutuhkan 2 pin
yaitu TXD dan RXD sedangkan untuk mode Synchronous harus 3 pin yaitu
TXD,RXD dan XCK
2.2 Modem GSM
Modem
adalah
sebuah
alat
yang
dapat
membuat
komputer
terkoneksidengan internet melalui line telepon standar. Modem banyak
digunakankomputer rumah dan jaringan sederhana untuk dapat berkomunikasi
denganjutaan komputer lain dalam lalu lintas internet. Kata Modem itu
sendirimerupakan
kependekan
dariModulator
Demodulator.
Ini
berarti
Modembekerja dengan cara mengubah informasi digital dari komputer pengirim
kedalam bentuk sinyal analog yang ditransmisikan melaluli line telepon.
Selanjutnya Modem pada komputer penerima akan mengubah ulang sinyal
analog ke sinyal digital.Modem GSM adalah sebuah perangkat Modem Wireless
Universitas Sumatera Utara
Plug andPlay dengan konektivitas GSM/GPRS untuk aplikasi-aplikasi machine
tomachine. GSM Modul atau Modem GSM adalah jenis khusus dari modemyang
menerima kartu SIM, dan mengoperasikan selama berlangganan keoperator
mobile, seperti ponsel. Modem GSM dihubungkan dengan suatuinterface yang
memungkinkan aplikasi seperti SMS untuk mengirim danmenerima pesan melalui
Modem. Beberapa fungsi kegunaan modem ini dimasyarakat adalah antara lain:
· SMS Broadcast application
· SMS Quiz application
· SMS Polling
· SMS auto-reply
· M2M integration
· Aplikasi Server Pulsa
· Telemetri
· Payment Point Data
Pada
pembuatan
proyek
ini,
digunakan
Modem
GSM
Serial
WavecomFastrack M1306B.Untuk Modem seri ini memiliki dua type konektor
yaitu
serial dan USB[12].
Gambar 2.7Modem GSM Fastrack M1306B
Universitas Sumatera Utara
Spesifikasi modem WAVECOM FASTRACK M1306B:
· Dual-band GSM 900/1800MHZ & GPRS Class 10
· GSM Dual Band antenna
· Power Supply with 4 pin connector (untuk serial)
· Standard USB 2.0 interface (untuk USB)
· Input Voltage : 5V-32V
· Maximum transmitting speed 253KBps
· Support AT-Command
· Dimensi : 74×54×25mm
2.2.1 AT-Command
AT-Command adalah singkatan dari Attention Command.ATCommand adalah
perintah yang digunakan dalam komunikasi dengan serialport. Pada awalnya
standar perintah ini untuk modem-modem telepon PSTN,akan tetapi perintah ini
sekarang dikembangkan juga untuk modem-modemGSM. Perintah AT-Command
dapat diberikan kepada handphone atauGSM/CDMA modem untuk melakukan
sesuatu hal, termasuk untukmengirim dan menerima SMS.Dengan memberikan
perintah ini di dalamkomputer/mikrokontroller maka perangkat kita dapat
melakukan pengirimanatau penerimaan SMS secara otomatis untuk mencapai
tujuan tertentu.Untuk memulai suatu perintah AT-Command, diperlukan prefiks
“AT” atau “at” dalam setiap perintah AT-Command.[6]
Universitas Sumatera Utara
Tabel 2.8 Tabel Set AT-Command
2.2.2Short Message Service (SMS)
Short Message Service (SMS) merupakan salah satu tipe InstantMessaging
(IM) yang memungkinkan user untuk bertukar pesan singkat. SMSdihantarkan
pada channel signal Global System for Mobile Communication(GSM). Dewasa
ini perkembangan teknologi yang sangat pesat membuatteknologi SMS ini banyak
digemari masyarakat karena teknologi ini bersifatpraktis, murah dan mudah untuk
digunakan.Sebuah pesan SMS maksimal terdiri dari 140 bytes, yang berarti
dapatmemuat 140 karakter 8-bit, 160 karakter 7-bit atau 70 karakter 16-bit
untukbahasa Jepang, bahasa Mandarin dan bahasa Korea yang memakai
Hanzi(Aksara Kanji/Hanja). User pun dapat mengirim pesan SMS yang lebih
dari140 bytes dengan catatan membayar lebih dari sekali biaya kirim
SMS.[5]21SMS menjamin pengiriman pesan oleh jaringan, jika terjadi
kegagalanmaka disimpan di jaringan atau yang disebut SMS Center (SMSC). Di
SMSCpesan disimpan dan dicoba untuk mengirimkannya selama beberapa
Universitas Sumatera Utara
kali.Batas waktu yang telah ditentukan untuk menyimpannya biasanya sekitar
1hari atau 2 hari, lalu pesan dihapus.
2.2.3 Database
Database merupakan sekumpulan data yang terintegrasi yang diorganisasi
untuk memenuhi kebutuhan pemakai untuk keperluan organisasiyang dimana
dapat dipakai hanya sekali atau berulang yang dimana dalambentuk digital.Salah
satu komponen penting dalam penggunaan databaseadalah DataBase Management
System (DBMS).DBMS ini bertugas untukmenangani semua akses ke database
dan bertanggug jawab untuk menerapkanpemeriksaan otorisasi dan prosedur
validasi.
2.2.4 Microsoft Office Access
Salah satu software atau aplikasi yang banyak digunakan untukmembuat
suatu database sederhana adalah Microsoft Access. Micosoft Access merupakan
software yang dikeluarkan oleh microsoft untuk membuat aplikasidatabase.
Sofware ini cocok untuk kalangan industri kecil atau rumah tangga,
karena kapasitas datanya yang mencapai 4 GB. Program ini banyak dipakaikarena
kemudahannya dalam mengolah database.
2.3ICMAX232
MAX232 merupakan salah satu jenis IC rangkaian antar muka dual RS232 transmitter / receiver yang memenuhi semua spesifikasi standar EIA-232-E.
IC MAX232 hanya membutuhkan power supply 5V ( single power supply )
sebagai catu. IC MAX232 di sini berfungsi untuk merubah level tegangan pada
COM1 menjadi level tegangan TTL / CMOS. IC MAX232 terdiri atas tiga bagian
yaitu dual charge-pump voltage converter, driver RS232, dan receiver
Universitas Sumatera Utara
Pengubahan tingkat tegangan listrik dari tingkat serial CMOS/TTL ke tingkat
teganganRS-232 seringkali gampang-gampang susah untuk dilakukan. Gampang
karena sekarang sudah banyak tersedia IC yang sudah siap pakai tetapi susah
karena kadang orang lupa dan salah melakukan konfigurasi jalur komunikasi.
Gambar 2.8 fisik IC MAX232
2.4 Komunikasi Serial
Pada PC / laptop standar, biasanya terdapat sebuah port untuk komunikasi
serial.Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman
data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel
seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali
detak. Beberapa contoh penerapan komunikasi serial ialah mouse, scanner dan
sistem akuisisi data yang terhubung ke port serial COM1/COM2. Sistem antar
muka komunikasi serial RS232 sering digunakan sebagai antar muka antara
komputer dengan mikrokontroler. Agar level tegangan data serial dari
mikrokontroler setara dengan level tegangan komunikasi port serial PC,
diperlukan MAX232 untuk mengubah ke tegangan TTL/CMOS logic level
Universitas Sumatera Utara
RS232. MAX232 menggunakan sistim komunikasi simplex sehingga difungsikan
untuk mengubah dari arus dan tegangan logika TTL menjadi arus tegangan logika
komputer (RS232).
2.4.1 Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan adalah Standar
RS232 yang dikembangkan oleh Electronic Industri Association (EIA/TIA) yang
pertama kali dipublikasikan pada tahun 1962.Ini terjadi jauh sebelum IC TTL
populer sehingga sinyal ini tidak ada hubungan sama sekali dengan level tegangan
IC TTL. Standar ini hanya menyangkut komunikasi antara (Data Terminal
Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit
Terminating Equipment – DCE). Standar sinyal RS232 memiliki ketentuan level
tegangan sebagai berikut :
• Logika 1 disebut „Mark‟ terletak antara -3 Volt sampai -25 Volt
• Logika „0‟ disebut „space‟ terletak antara +3 Volt samapai +25 Volt.
• Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu daerah
tegangan yang tidak memiliki level logika pasti sehingga harus dihindari.
Demikian juga level tegangan dibawah -25 Volt dan diatas +25 Volt juga harus
dihindari karena bisa merusak line driver pada saluran RS232
Gambar dibawah adalah contoh level tegangan RS232 pada pengiriman huruf “A”
dalam format ASCII tanpa bit paritas.
Universitas Sumatera Utara
Gambar 2.9 Level Tegangan RS232 pada Pengiriman Huruf “A” Tanpa Bit
Paritas
2.4.2 Port Komunikasi Serial
Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampil port
serial DB9 yang umum digunakan sebagai port serial
Gambar 2.10Port DB9 Jantan
Gambar 2.11 Port DB9 Betina
Universitas Sumatera Utara
Untuk menghubungkan antara 2 buah PC, biasanya digunakan format null mode,
dimana pin TxD dihubungkan dengan RxD pasangan, pin Sinyal ground (5)
dihubungkan dengan SG di pasangan, dan masing masing pin DTR, DSR dan CD
dihubung singkat, dan pin RTS dan CTS dihubung singkat di setiap devais.
Gambar.2.12 Susunan Pin Konektor DB9
Tabel 2.9 Fungsi Susunan Konektor DB9
Universitas Sumatera Utara
Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari
port serial tersebut.Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan
COM2.Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760
(2F8h).Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer
yang digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan
alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk
COM2. Berikut adalah nama – nama register yang digunakan beserta alamatnya
Tabel 2.10 Nama – Nama Register.
Keterangan Register
• RX Buffer , digunakan untuk menampung dan menyimpan data dari DCE.
• TX Buffer , digunakan untuk menampung dan menyimpan data yang akan
dikirim ke port serial.
• Baud Rate Divisor Latch LSB , digunakan untuk menampung byte bobot rendah
untuk pembagi clock pada IC UART agar didapat baud rate yang tepat.
• Baud Rate Divisor Latch MSB , digunakan untuk menampung byte bobot tinggi
untuk pembagi clock pada IC UART sehingga total angka pembagi adalah 4 byte
yang dapat dipilih dari 0001h sampai FFFFh.
Berikut adalah tabel angka pembagi yang sering digunakan :
Universitas Sumatera Utara
Tabel 2.11Angka Pembagi
2.4.3Koneksi Ke RS232 Port
Koneksi TXD dan RXD MCU MCS-51 dengan port serial komputer selain level
tegangannya harus disesuaikan, cara koneksikan juga perlu diperhatikan. Ada
semacam protokol komunikasi, bila DTE hendak menghubungi DCE atau
sebaliknya, untuk ‟DCE‟ yang berupa MCU MCS-51 ini, protokol perlu diakali,
lebih sederhana prosesnya, sehingga tidak memrlukan software yang rumit, tetapi
masih tetap handal. Selain sinyal data, terdapat sinyal – sinyal protokol
komunikasi serial pada komputer dan dihubungkan keluar melalui konektor male
DB9 (komputer baru) dan DB25 (Komputer lama), nama sinyal – sinyal tersebut
adalah:
• RD, Receive Data (RXD).
• TD, Transmit Data
• SG, Signal Ground
• DTR, Data Terminal Ready
• DSR, Data Set Ready
• CD, Carrier Detect
• RTS, Request To Send
Universitas Sumatera Utara
• CTS, Clear To Send.
Tabel 2.12 Koneksi Null Mode
Komunikasi asinkron yang sederhana yang disebut sebagai null modem, adalah
dengan menghubungkan pin- pin DTR, DSR dan CD serta RTS dengan CTS.
Sedangkan sinyal data input masuk RD dan sinyal transmit output adalah TD.
Konvertor level untuk saat ini tersedia dalam bentuk ic, contoh adalah ICL232
dari Harris semikonduktor, MAX232 dari Maxim.
Gambar 2.13IC MAX232
Protokol standar yang mengatur komunikasi melalui serial port disebut
RS-232 (Recommended Standard-232) yang dikembangkan oleh EIA (Electronic
Universitas Sumatera Utara
Industries
Association).Interfacing
RS-232
menggunakan
komunikasi
asyncronous di mana sinyal clock tidak dikirimkan bersamaan dengan data. Setiap
word data disingkronisasikan menggunakan sebuah start bit dan sebuah stop bit.
Jadi, sebuah frame data terdiri dari sebuah start bit, diikuti bit-bit data dan diakhiri
dengan stop bit. Jumlah bit data yang digunakan dalam komunikasi serial adalah 8
bit. Encoding yang digunakan dalam komunikasi serial adalah NRZ (Non-Returnto-Zero), di mana bit 1 dikirimkan sebagai high value dan bit 0 sebagai low value.
Komunikasi serial merupakan hal yang penting dalam system embedded, karena
dengan
komunikasi
serial
kita
dapat
dengan
mudah
menghubungkan
mikrokontroler dengan devais lainnya. Port serial pada mikrokontroler terdiri atas
dua pin yaitu RXD dan TXD. RXD berfungsi untuk mengirim data dari komputer
atau perangkat lainnya, standard komunikasi serial untuk computer adalah RS232, RS-232 mempunyai standard tegangan yang berbeda dengan serial port
mikrokontroler, sehingga agar sesuai dengan RS-232 maka dibutuhkan suatu
rangkaian level converter, IC yang digunakan bermacam-macam, tapi yang paling
mudah dan sering digunakan ialah IC MAX232/HIN232. Pada prinsipnya,
komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit,
sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer
yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh
komunikasi serial ialah mouse, scanner, dan system akuisisi data yang terhubung
ke port COM1/COM2.
Jika ingin menggunakan mikrokontroler untuk berkomunikasi dengan komputer
atau device lainnya maka Rx dan Tx tidak bisa langsung dihubungkan begitu saja
dengan device tersebut karena level sinyal yang digunakan berbeda-beda.
Universitas Sumatera Utara
Contohnya komunikasi serial untuk komputer menggunakan sinyal RS232 yaitu
sinyal yang gelombang level sinyalnya antara +25V sampai -25V. Oleh karena
itu, jika ingin diharapkan terjadi komunikasi antara mikrokontroler dengan
komputer dibutuhkan sebuah buffer yang dapat mengubah sinyal level TTL dari
mikrokontroler menjadi sinyal level RS232. Salah satu Buffer yang sering
digunakan adalah IC MAX232CPE dan menggunakan transistor NPN maupun
PNP.
Gambar 2.14merupakan penggunaan ic max 232 dalam rangkaian sebagai
komunikasi serial.
2.5 Bahasa Pemograman C
Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis
Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar
ANSI ( American National Standards Institute ), yang digunakan sebagai referensi
dari berbagai versi C yang beredar dewasa ini termasuk Turbo C.
Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh
karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa
Universitas Sumatera Utara
rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa
C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++
(diciptakan oleh Bjarne Struostrup dari AT % TLab). Bahasa C++ adalah
pengembangan dari bahasa C. bahasa C++ mendukung konsep pemrograman
berorientasu objek dan pemrograman berbasis windows.
Sampai
sekarang
bahasa
C++
terus
brkembang
dan
hasil
perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C
dan C++ yang dinamakan java). Istilah prosedur dan fungsi dianggap sama dan
disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya
adalah sebuah fungsi yang tidak memiliki tipe data kembalian (void). Hingga kini
bahasa ni masih popular dan penggunaannya tersebar di berbagai platform dari
windows samapi linux dan dari PC hingga main frame.
Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut :\
Kelebihan Bahasa C:
·
Bahasa C tersedia hampir di semua jenis computer.
·
Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua
jenis computer.
·
Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya
terdapat 32 kata kunci.
·
Proses executable program bahasa C lebih cepat
·
Dukungan pustaka yang banyak.
·
C adalah bahasa yang terstruktur
·
Bahasa C termasuk bahasa tingkat menengah
Universitas Sumatera Utara
penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman
yangberorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah.
Melainkan
berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan
cepat.secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki
kemudahan dalammenyusun programnya semudah bahasa tingkat tinggi namun
dalam mengesekusiprogram secepat bahasa tingkat rendah.
Kekurangan Bahasa C:
·
Banyaknya operator serta fleksibilitas penulisan program kadangkadangmembingungkan pemakai.
·
Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
·
2.5.1 Struktur Bahasa C
a. Program bahasa C tersusun atas sejumlah blok fungsi.
b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan
suatu proses tertentu.
c. Tidak ada perbedaan antara prosedur dan fungsi.
d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main”
(Program Utama).
e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”.
f. Setiap statemen diakhiri dengan semicolon (titik koma).
Universitas Sumatera Utara
2.5.2 Pengenal
Pengenal (identifier) merupakan sebuah nama yang didefenisikan oleh
pemrograman untuk menunjukkan indetitas dari sebuah konstanta, variable,
fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenal dapat
ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi atura
berikut :
Karakter pertama tidak boleh menggunakan angka
Karakter kedua dapat berupa huruf, angka, atau garis bawah.
Tidak boleh menggunakan spasi.
Bersifat Case Sensitive, yaitu huru capital dan huruf kecil dianggap
berbeda.
Tidak boleh mengunakan kata – kata yang merupakan sitaks maupun
operator dalam pemrograman C, misalnya : Void, short, const, if, static, bit,
long, case, do, switch dll.
2.5.3 Tipe Data
Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat
belajar bahasa pemrograman.Kita harus dapat menentukan tipe data yang tepat
untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun
karakter.Hal ini bertujuan agar program yang kita buat tidak membutuhkan
pemesanan kapling memori yang berlebihan. Seorang programmer yang handal
harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan
dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C
dibagi menjadi beberapa bagian antara lain sebagai Berikut
Universitas Sumatera Utara
Macam-Macam Tipe Data Pada Bahasa C :
1. Tipe Data Karakter
Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada
sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data
yang dapat disimpan pada variabel yang bertipe data char adalah -127 - 127.
Sedangkan untuk tipe data unsigned char adalah dari 0 - 255. Pada dasarnya setiap
karakter memiliki nilai ASCII, nilai inilah yang sebetulnya disimpan pada variabel
yang bertipe data karakter ini.
2. Tipe Data Bilangan Bulat
Tipe data bilangan bulat atau dapat disebut juga bilangan desimal
merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat
bermacam-macam tipe data yang dapat kita gunakan untuk menampung bilangan
bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu
memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti
berikut, kiata akan melakukan operasi penjumlahan nilai 300 dan 100 dan
hasilnya akan disimpan pada variabel c.
Jika dilihat, hasil dari penjumlahan tersebut nilainya akan lebih besar dari
255 dan nilainya pasti positif, oleh karena itu sebaiknya kita menggunakan tipe
data unsigned int. Namun berbeda halnya jika saya ingin melakukan operasi
pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya
digunakan variabel dengan tipe data int.
3. Tipe Data Bilangan Berkoma
Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk
menampung data yang berkoma. Tipe data tersebut adalah float dan double.
Universitas Sumatera Utara
Double lebih memiliki panjang data yang lebih banyak dibandingkan float. Tipe
data double dapat digunakan jika kita membutuhkan variabel yang dapat
menampung tipe data berkoma yang bernilai besar.
Tabel 2.13Tipe Data
Tipe Data
Ukuran
Jangkauan Nilai
Bit
1 byte
0 atau 1
Char
1 byte
-128 s/d 127
Unsigned Char
1 byte
0 s/d 255
Signed Char
1 byte
-128 s/d 127
Int
2 byte
-32.768 s/d 32.767
Short Int
2 byte
-32.768 s/d 32.767
Unsigned Int
2 byte
0 s/d 65.535
Signed Int
2 byte
-32.768 s/d 32.767
Long Int
4 byte
-2.147.483.648 s/d 2.147.483.647
Unsigned Long Int
4 byte
0 s/d 4.294.967.295
Signed Long Int
4 byte
-2.147.483.648 s/d 2.147.483.647
Float
4 byte
1.2*10-38 s/d 3.4*10+38
Double
4 byte
1.2*10-38 s/d 3.4*10+38
2.5.4 Konstanta Dan Variabel
Konstanta dan variable merupakan sebuah tempat untuk menyimpan data
yang berada di dalam memori.Konstanta berisi data yang nilainya tetap dan tidak
dapat diubah selama program dijalankan, sedangkan variable berisi data yang bisa
berubah nilainya pada saat program dijalankan.
Universitas Sumatera Utara
2.5.5IDENTIFIER
Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh
pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable,
nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll).
Identifier punya ketentuan sebagai berikut :
1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang
diperhatikan hanya 32 karakter pertama saja).
2. Case sensitive: membedakan huruf besar dan huruf kecilnya.
3.
Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh
angka.
4. Tidak boleh mengandung spasi atau blank.
5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.
Universitas Sumatera Utara