Bab 2 Fajar Juli 12

advertisement
BAB II
DASAR TEORI
2.1
Mikrokontroler AVR ATmega8
AVR merupakan salah satu jenis mikrokontroler yang didalamnya terdapat
berbagai macam fungsi. Perbedaannya dengan mikrokontroler yang pada
umumnya digunakan seperti MCS 51 adalah AVR tidak perlu menggunakan
oscillator eksternal karena di dalamnya sudah terdapat internal oscillator. Selain
itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu adanya
tombol reset dari luar karena cukup hanya dengan mematikan power supply, maka
secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat
beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 bytes sampai dengan
512 bytes.
Dalam hal ini yang digunakan adalah AVR ATmega8, perbedaannya
dengan AVR AtmegaL hanyalah terdapat pada besarnya tegangan yang
diperlukan untuk bekerja. Untuk ATmega8 tipe L dapat bekerja pada tegangan
antara 2,7Vdc - 5,5Vdc, sedangkan untuk ATmega8 hanya dapat bekerja pada
tegangan 4,5Vdc – 5,5Vdc. Berikut adalah gambar dari blok diagram untuk
ATmega8.
6
7
Gambar 2.1 Konfigurasi Pin Mikrokontroler ATmega8
8
Gambar 2.2 Blok Diagram Fungsional ATmega8
ATmega8 memiliki pin yang masing-masing pin-nya memiliki fungsi yang
berbeda -beda baik sebagai port ataupun sebagai fungsi yang lain. Berikut akan
dijelaskan tentang kegunaan dari masing-masing kaki ATmega8.
9
a.
VCC
Merupakan sumber tegangan untuk digital sebesar + 5 Volt.
b.
GND
Merupakan ground untuk semua komponen.
c.
Port B
Tabel 2.1 Fungsi Dari P in-P in Pada Port B
Port Pin
PB7
Fungsinya
XTAL2 (Chip Clock Oscillator pin 2)
TOSC2 (Timer Oscillator pin 2)
PB6
XTAL1 (Chip Clock Oscillator pin1 or External clock input)
TOSC1 (Timer Oscillator pin 1)
PB5
SCK (SPI Bus Master clock Input)
PB4
MISO (SPI Bus Master Input/Slave Output)
PB3
MOSI (SPI Bus Master Output/Slave Input)
OC2 (Timer/Counter2 Output Compare Match Output)
PB2
SS (SPI Bus Master Slave select)
OC1B (Timer/Counter1 Output Compare Match B Output)
PB1
OC1A (Timer/Counter1 Output Compare Match A Output)
PB0
ICP 1 (Timer/Counter1 Input Capture Pin)
· PB7 (XTAL2 / TOSC2)
XTAL2: Chip Clock Oscillator Pin 2 . Digunakan sebagai pin clock untuk
osilator kristal atau frekuensi rendah kristal osilator. Ketika digunakan
sebagai pin clock , pin tidak dapat digunakan sebagai pin I/O.
TOSC2: Timer Oscillator pin 2. Digunakan hanya jika in ternal dikalibrasi
RC osilator dipilih sebagai sumber clock chip, dan asinkron timer
diaktifkan oleh pengaturan yang benar dalam ASSR. Ketika bit AS2 di
10
ASSR
diatur
(satu)
untuk
mengaktifkan
clock
asinkron
dari
Timer/Counter2 , pin PB7 diputus dari port, dan menjadi output penguat
pembalik osilator . Sebuah kristal Osilator tersambung ke pin ini, dan pin
tidak dapat digunakan sebagai I/O. Jika PB7 digunakan sebagai pin
pewaktu maka DDB7, PORTB7 dan PINB7 semua akan dibaca 0
· PB6 (XTAL1 / TOSC1)
XTAL1: Chip Clock Oscillator Pin 1. Digunakan untuk semua sumber
clock internal chip kecuali RC osilator dikalibrasi. Ketika digunakan
sebagai pin clock, pin tidak dapat digunakan sebagai pin I/O.
TOSC1: Timer Oscillator Pin 1. Digunakan hanya jika internal dikalibrasi
RC osilator dipilih sebagai sumber clock chip, dan asinkron timer
diaktifkan oleh pengaturan yang benar dalam ASSR. Ketika bit AS2 di
ASSR
diatur
(satu)
untuk
me ngaktifkan
clock
asinkron
dari
Timer/Counter2 , pin PB6 diputus dari port, dan menjadi masukan dari
penguat inverting osilator . Dalam mode ini, osilator kristal tersambung ke
pin
ini,
dan
pin
tidak
dapat
digunakan
sebagai
pin
I/O.
Jika PB6 digunakan sebagai pin pewaktu, DDB6, PORTB6 dan PINB6
semua akan dibaca 0.
· PB5 (SCK)
SCK: Master Clock Output, Slave Clock masukan pin untuk saluran SPI.
Ketika SPI diaktifkan sebagai Slave, pin ini dikonfigurasi sebagai masukan
terlepas dari pengaturan DDB5. Ketika SPI difungsikan sebagai master,
arah data pin ini dikontrol oleh DDB5. Ketika pin dipaksa oleh SPI untuk
menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB5.
11
· PB4 (MISO)
MISO: Master Data Input, Slave data output pin untuk saluran SPI. Ketika
SPI difungsikan sebagai master, pin ini dikonfigurasi sebagai masukan
terlepas dari pengaturan DDB4. Ketika SPI diaktifkan sebagai Slave, arah
data pin ini dikontrol oleh DDB4. Ketika pin dipaksa oleh SPI untuk
menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB4
· PB3 (MOSI)
MOSI : SPI Master Data Output, Slave data masukan untuk saluran SPI.
Ketika SPI diaktifkan sebagai slave , pin ini dikonfigurasi sebagai masukan
terlepas dari pengaturan DDB3. Ketika SPI difungsikan sebagai master,
arah data pin ini dikontrol oleh DDB3. Ketika pin dipaksa oleh SPI untuk
menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB3.
OC2,
Output
Compare Match
Output
(counter
keluaran
yang
membandingkan persamaan keluaran). Pin PB3 dapat berfungsi sebagai
keluaran eksternal untuk Timer/Counter2 pembanding kesamaan . Pin PB3
harus dikonfigurasi sebagai keluaran (set DDB3 (satu)) untuk melayani
fungsi ini. Pin OC2 juga merupakan pin keluaran untuk fungsi timer mode
PWM.
· PB2 (SS/OC1B)
SS: Slave Select Input. Ketika SPI diaktifkan sebagai slave, pin ini
dikonfigurasi sebagai input terlepas dari pengaturan DDB2. Sebagai
sebuah slave , SPI diaktifkan ketika pin ini bersinyal rendah. Ketika SPI
difungsikan sebagai master, arah data pin ini dikontrol oleh DDB2. Ketika
12
pin dipaksa oleh SPI untuk menjadi masukan, pull-up masih bisa dikontrol
oleh bit PORTB2.
OC1B , Output Compare Match B Output. Pin PB2 dapat berfungsi sebagai
keluaran eksternal untuk Timer/Counter1 pembanding kesamaan B. Pin
PB2 harus dikonfigurasi sebagai keluaran (DDB2 set (satu)) untuk
melayani fungsi ini. Pin OC1B juga merupakan pin keluaran untuk fungsi
timer mode PWM.
· PB1 (OC1A)
OC1A, Output Compare Match A Output.
Pin PB1 dapat berfungsi
sebagai keluaran eksternal untuk Timer/Counter1 pembanding kesamaan
A. Pin PB1 harus dikonfigurasi sebagai keluaran (DDB1 set (satu)) untuk
melayani fungsi ini. Pin OC1A juga merupakan pin keluaran untuk fungsi
timer mode PWM.
· PB0 (ICP1)
ICP1 - Timer/Counter1 Input Capture. Pin PB0 dapat bertindak sebagai
penerima masukan Timer/Counter1 .
Di dalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah
Port B adalah 8 buah pin mulai dari pin B.0 sampai dengan pin B.7. Tiap pin
dapat digunakan sebagai input dan juga output. Port B merupakan sebuah –
bit bi-directional I/O port dengan internal pull-up resistor. Sebagai masukan,
pin-pin yang terdapat pada port B yang secara eksternal diturunkan, maka
akan mengeluarkan arus jika pull-up resistor diaktifkan. Jika ingin
menggunakan tambahan kristal, maka cukup menggunakan kaki dari krisal
13
ke kaki pada pin port B. Namun jika tidak digunakan, maka cukup dibiarkan
saja. Penggunaan kegunaan dari masing-masing kaki ditentukan dari clock
fuse setting-nya
d.
Port C
Tabel 2.2 Fungsi Dari P in-P in Pada Port C
Port Pin
P C6
PC5
Fungsinya
RESET (Reset pin )
ADC5 (ADC Input Channel 5)
SCL (Two-wire Serial Bus Clock Line)
PC4
ADC4 (ADC Input Channel 4)
SDA (Two -wire Serial Bus Data Input/Output Line)
PC3
ADC3 (ADC Input Channel 3)
PC2
ADC2 (ADC Input Channel 2)
PC1
ADC1 (ADC Input Channel 1)
P C0
ADC0 (ADC Input Channel 0)
· PC6 (RESET)
RESET, Reset Pin : Ketika Fuse RSTDISBL diprogram, fungsi pin ini
sebagai normal I/O pin, dan bagian akan harus bergantung pada Power-on
Reset dan Reset Brown-out sebagai sumber resetnya. Ketika fuse
RSTDISBL adalah unprogrammed, sirkuit reset terhubung ke pin, dan pin
tidak dapat digunakan sebagai pin I/O.
Jika PC6 digunakan sebagai pin reset, DDC6, PORTC6 dan PINC6 semua
akan dibaca 0.
· PC5 (SCL)
SCL, Two -wire Serial Bus Clock Line : Apabila bit TWEN di TWCR
diatur (satu) untuk mengaktifkan Two -wire Serial Interface, pin PC5
14
terputus dari port dan menjadi clock Serial I/O pin untuk Two -wire Serial
Interface. Dalam mode ini, ada spike filter pada pin untuk menekan
lonjakan lebih pendek dari 50 ns pada sinyal masukan, dan pin didorong
oleh pengendali terbuka dengan keterbatasan slew-rate.
PC5 juga dapat digunakan sebagai input ADC Channel 5. input ADC
channel 5 menggunakan daya digital.
· PC4 (SDA)
SDA, Two -wire Serial Bus Data Input/Output Line : Apabila bit TWEN di
TWCR diatur (satu) untuk mengaktifkan Two-wire Serial Interface, PC4
pin diputus dari port dan menjadi data serial I/O pin untuk Two -wire Serial
Interface. Dalam mode ini, ada filter pada pin untuk menekan lonjakan
lebih pendek dari 50 ns pada sinyal input, dan pin didorong oleh
pengendali terbuka dengan keterbatasan slew-rate.
PC4 juga dapat digunakan sebagai input ADC Channel 4. ADC input
channel 4 menggunakan daya digital.
· PC3 (ADC3)
PC3 juga dapat digunakan sebagai input ADC Channel 3. ADC input
channel 3 menggunakan daya analog.
· PC2 (ADC2)
PC2 juga dapat digunakan sebagai input ADC Channel 2. ADC input
channel 2 menggunakan daya analog.
· PC1 (ADC1)
PC2 juga dapat digunakan sebagai input ADC Channel 1. ADC input
channel 1 menggunakan daya analog.
15
· PC0 (ADC0)
PC2 juga dapat digunakan sebagai input ADC Channel 0. ADC input
channel 0 menggunakan daya analog.
Port C merupakan sebuah 7-bit bi-directional I/O port yang
didalamnya masing-masing pin terdapat pull-up resistor. Jumlah pin-nya
hanya buah mulai darin pin C.0 sampai dengan pin C.6. Sebagai keluaran,
port C memiliki karakteristik yang sama dalam hal kemampuan menyerap
arus [sink] ataupun mengeluarkan arus [ source].
e.
Port D
Tabel 2.3 Fungsi Dari P in-P in Pada Port D
Port Pin
Fungsinya
PD7
AIN1 (Analog Comparator Negativ e Input)
PD6
AIN0 (Analog Comparator Positive Input)
PD5
T1 (Timer/Counter 1 External Counter Input)
PD4
XCK (USART External Clock Input/Output)
T0 (Timer/Counter 0 External Counter Input)
PD3
INT1 (External Interrupt 1 Input)
PD2
INT0 (External Interrupt 0 Input)
PD1
TXD (USART Output Pin )
PD0
RXD (USART Input Pin)
· PD7 (AIN1)
AIN1, Analog Comparator Negative Input. Konfigurasi port sebagai
masukan dengan internal pull-up tidak diaktifkan untuk menghindari
fungsi port digital yang mengganggu fungsi komparator Analog.
16
· PD6 (AIN0)
AIN0, Analog Comparator Positive Input. Konfigurasi port sebagai
masukan dengan internal pull-up tidak diaktifkan untuk menghindari
fungsi port digital yang mengganggu fungsi komparator Analog.
· PD5 (AIN1)
T1, sumber counter Timer/Counter1.
· PD4 (XCK and T0)
XCK, USART clock eksternal.
T0, sumber counter Timer/Counter0.
· PD3 (INT1)
INT1, External Interrupt source 1. Pin PD3 dapat berfungsi sebagai
sumber interupsi eksternal.
· PD2 (INT0)
INT0, External Interrupt source 0. P in PD2 dapat berfungsi sebagai
sumber interupsi eksternal.
· PD1 (TXD)
TXD, Transmit Data (Pin data keluaran untuk USART). Ketika USART
Transmiter diaktifkan, pin ini dikonfigurasi sebagai keluaran apapun nilai
DDD1.
· PD0 (RXD)
RXD, Receive Data (Pin data masukan untuk USART). Ketika USART
Receiver diaktifkan pin ini dikonfigurasi sebagai masukan tanpa nilai
DDD0. Ketika USART pin ini menjadi masukan, pull-up masih bisa
dikontrol oleh bit PORTD0
17
Port D merupakan 8-bit bi-directional I/O dengan internal pull-up
resistor. Fungsi dari port ini sama dengan port-port yang lain. Hanya saja
pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini
hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut
dengan I/O
f.
Reset / PC6
Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai w in I/O.
Untuk diperhatikan juga bahwa pin ini memiliki karakteristik yang berbeda
dengan pin-pin yang terdapat pada port C. Namun jika RSTDISBL Fuse tidak
diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level
tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari
pulsa minimum, maka akan menghasilkan suatu kondisi reset meskipun
clock-nya tidak bekerja.
g.
AVCC
Pada pin ini memiliki fungsi sebagai pemberi tegangan untuk ADC. Untuk
pin ini harus dihubungkan secara terpisah dengan VCC karena pin ini
digunakan untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan,
tetap saja disarankan untuk menghubungkan secara terpisah dengan VCC.
Cara menghubungkan AVCC adalah me lewati low-pass filter setelah itu
dihubungkan dengan VCC.
h.
AREFF
Merupakan pin referensi analog jika menggunakan ADC.
18
Pada AVR status register mengandung beberapa informasi mengenai hasil
dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini dapat digunakan
untuk mengubah arus program sebagai peningkat performa pengoperasian. Perlu
diketahui bahwa register ini di-update setelah semua operasi ALU (Arithmetic
Logic Unit). Hal tersebut seperti yang telah tertulis dalam data sheet khususnya
pada bagian Instuction Set Reference.
Dalam hal ini untuk beberapa kasus dapat membuang kebutuhan
penggunaan instruksi perbandingan yang telah didedikasikan serta dapat
menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana
dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah
rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari
interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut adalah
gambar Status Register.
Gambar 2.3 Status Register ATmega8
Akan dijelaskan kegunaan dari masing-masing bit yang terlihat diatas :
a.
Bit 7 (I)
Merupakan bit Global Interrupt Enable. Bit ini harus di-set supaya semua
perintah interupsi dapat dijalankan. Untuk fungsi interupsi individual akan
dijelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah
interupsi baik yang individual maupun yang secara umum akan diabaikan.
Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi
19
dijalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat
diset dan di-reset melalui aplikasi dengan instruksi SEI dan CLI..
b.
Bit 6 (T)
Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load)
dan BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit
yang telah dioperasikan. Sebuah bit dari sebuah register dalam register file
dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan
sebuah bit di dalam bit ini dapat disalin ke dalam sebuah bit di dalam register
pada register file dengan menggunakan perintah BLD.
c.
Bit 5 (H)
Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry
dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.
d.
Bit 4 (S)
Merupakan sign bit. Bit ini selalu merupakan sebuah eksklusif di antara
Negative Flag (N) dan Two’s Complement Overflow Flag (V). S = N + V .
e.
Bit 3 (S)
Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan
fungsi aritmatika dua komplemen
f.
Bit 2 (N)
Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative
di dalam sebuah fungsi logika atau aritmatika
g.
Bit 1 (Z)
Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah hasil nol “0”
dalam sebuah fungsi aritmatika atau logika
20
h.
Bit 0 (C)
Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa
dalam sebuah fungsi aritmatika dan logika.
2.2
Pe rangkat Lunak BASCOM
Pada tahun 1995 MCS mulai menjual BASCOM-LT, compiler BASIC
untuk Windows 3.1. Itu adalah aplikasi Windows pertama yang menawarkan solusi
lengkap dan terjangkau: editor, compiler, simulator dan pemrogram. BASCOMLT adalah 8.051 BASIC compiler. Untuk menggunakan layar LCD sangat
sederhana, hanya satu baris konfigurasi untuk menentukan pin yang digunakan.
Dan ketika Anda membutuhkan layar LCD yang berbeda, Anda hanya bisa
mengubah baris CONFIG .
Ketika windows 95 menjadi lebih merupakan standar industri, dengan versi
32 bit. Jadi BASCOM-LT ditulis ulang untuk sebagian besar dan juga mendukung
untuk array dan floating point (single) pun ditambahkan. Banyak perbedaan
varian 8051 membuat tidak mungkin untuk mendukung semua chip tetapi file
DAT yang mudah untuk ditambahkan oleh pengguna.
Ketika meluncurkan chip Atmel AVR, compiler 8051 ditulis ulang sekali
lagi untuk mendukung chip AVR yang kuat. Hasilnya adalah B ASCOM-AVR.
2.2.1 Compiler BASCOM -AVR
Compiler program yang digunakan adalah BASCOM-AVR. BASCOMAVR adalah program BASIC compiler berbasis Windows untuk mikrokontroler
ATmeg48,
ATmega
dan
yang
lainnya.
BASCOM-AVR
merupakan
21
pemprograman dengan bahasa tingkat tinggi BASIC yang dikembangkan dan
dikeluarkan oleh MSC Elecktronik.
Gambar 2.4 Tampilan Compiler BASCOM-AVR
2.2.2 Karakter Dalam BASCOM
Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet
(A-Z dan a-z), karakter numeric (0-9), dan karakter special.
Tabel 2.4 Karakter Spesial
Karakter
Nama
Blank
‘
Apostrophe
22
*
Asterisk (symbol perkalian)
+
Plus sign
,
Comma*+,-_/: ?
–
Minus sign
?
Period (decimal point)
/
Slash (division symbol) will be handled as\
:
Colon
“
Double quatation mark
;
Semicolon
<
Less than
=
Equal sign (assignment symbol or relational operator)
>
Greater than
\
Backspace (integer or word division symbol )
! ??
2.2.3 Tipe Data
Setiap variabel dalam BASCOM memiliki tipe data yang menunjukan daya
tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler.
Berikut adalah tipe data pada BASCOM berikut keterangannya.
Tabel 2.5 Tipe Data BASCOM
Tipe Data
Ukuran (byte)
Range
Bit
1/8
-
Byte
1
0 – 255
Integer
2
-32,768 - +32,767
World
2
0 – 65535
Long
4
-214783648 -+2147483647
Single
4
-
String
Hingga 254 byte
-
23
2.2.4 Variabel
Variabel dalam sebuah pemograman berfungsi sebagai tempat penyimpan
data atau penampungan data sementara, misalnya menampung hasil perhitungan,
menampung data hasil pembacaan register, dan lainnya. Variabel merupakan
pointer yang menunjukan pada alamat memori fisik dan mikrokontroler.
Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variabel :
a.
Nama variabel maksimum terdiri atas 32 karakter.
b.
Karakter biasa berupa angka atau huruf.
c.
Nama variabel harus dimulai dengan huruf.
d.
Variabel tidak boleh menggunakan kata-kata yang digunakan oleh
BASCOM, sebagai perintah, pernyataan, internal register, dan nama
operator ( AND, OR, DIM, dan lain-lain ).
Sebelum digunaka n, maka variabel harus dideklarasikan terlebih dahulu. Dalam
BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara
pertama adalah menggunakan pernyataan ‘DIM’ diikuti nama tipe datanya.
Contoh pe ndeklarasian menggunakan DIM sebagai berikut :
Dim Siklus_ke As Word
Dim Langkah As Byte
Dim A As Byte
Dim Off_time(6)as Byte
Dim P As Byte
2.2 .5 Alias
Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang
lain. Tujuannya adalah mempermudah proses pem programan. Umumnya alias
24
digunakan untuk mengganti nama variabel yang telah baku, seperti port
mikrokontroler.
LEDBAR alias P 1
Tombol1 alias P0.1
Tombol2 alias P0.2
Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah kondisi
PO.1. Selain mengganti nama port, kita dapa t pula menggunakan alias untuk
mengakses bit tertentu dari sebuah variabel yang telah dideklarasikan.
Dim LedBar as byte
Led1 as LedBar.0
Led2 as LedBar.1
Led3 as LedBar.2
2.2.6 Konstanta
Dalam BASCOM, selain variabel kita mengenal pula konstanta. Konstanta
merupakan variabel pula. Perbedaannya dengan variabel biasa adalah nilai yang
dikandung tetap. Dengan konstanta, kode program yang kita buat akan lebih
mudah dibaca dan dapat mencegah kesalahan penulisan pada program kita.
Sama seperti variabel, agar konstanta bias dikenali oleh program, maka harus
dideklarasikan terlebih dahulu. Berikut adalah cara pedeklarasian sebuah
konstanta.
Dim A As Const 5
Dim B1 As Const & B1001
Cara lain yang paling mudah :
Const Cbyte = &HF
Const Cint = -1000
Const Csingle = 1.1
Const Cstring = “test”
25
2.2.7 Array
Dengan array, bisa menggunakan sekumpulan variabel dengan nama dan
tipe yang sama. Untuk mengakses variabel tertentu dalam array, kita harus
menggunakan indeks. Indeks harus berupa angka dengan tipe data byte, integer,
atau word.
Proses pendeklarasian sebuah array hampir sama dengan variabel, namun
perbedaannya mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian
array;
Dim kelas (10) as byte
Dim c as integer
For C = 1 To 10
a(c) = 1 To 10
p1 = a(c)
Next
Program diatas membuat sebuah array dengan nama ‘kelas’yang berisi 10
elemen (1-10) dan kemudian seluruh elemennya diisikan dengan nilai c yang
berurutan. Untuk membacanya, menggunakan indeks dimana elemen disimpan.
Pada progra m diatas, elemen-elemen array dikeluarkan ke port 1 dari
mikrokontroler.
2.2.8
Operasi-operasi Dalam BASCOM
Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi,
membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan
menggunakan operator-operator yang tersedia di BASCOM dan bagaimana
sebuah pernyataan terbentuk dan dihasilkan dari operator-operator berikut :
a. Operator Aritmatika
Operator digunakan dalam perhitungan. Operator aritmatika meliputi
26
+( tambah) , - ( kurang), / (bagi), dan * ( kali).
b. Operator Relasi
Operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat
digunakan untuk membuat keputusan sesuai dengan program yang dibuat.
Operator relasi meliputi :
Tabel 2.6 Operator Relasi
Operator
=
<>
<
>
<=
>=
Relasi
Sama dengan
Tidak sama denga n
Lebih kecil dari
Lebih besar dari
Lebih kecil atau sama dengan
Lebih besar atau sama dengan
Pernyataan
X=Y
X = <> Y
X<Y
X>Y
X <= Y
X >= Y
c. Operator Logika
Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit
dan operasi bolean. Dala m BASCOM, ada empat buat operator logika,
yaitu AND, OR, NOT, dan XOR.
Operator logika bias pula digunakan untuk menguji sebuah byte dengan
pola bit tertentu, sebagai contoh :
Dim A As Byte
A = 63 And 19
PPRINT A
A = 10 or 9
PRTINT A
Output
16
11
d. Operasi Fungsi
Operasi fungsi digunakan untuk melengkapi operator yang sedehana.
27
2.3
Software Downloader ( Khazama AVR Programmer)
Khazama AVR Programmer merupakan software yang difungsikan sebagai
pengirim bilangan-bilangan heksadesimal ke IC ATmega8 dengan melalui
rangkaian mikrokontroler yang telah dirancang.
Gambar 2.5 Menu Pemilihan AVR
Gambar 2.6 Menu View Khazama
28
Cara menggunakannya adalah dengan cara meng-klik menu IC AVR
terlebih dahulu di open File -> AVR -> Mega dan lalu pilih IC AVR yang
digunakan, contoh ATmega8 atau ATmega48. Setelah AVR menu dipilih maka
masukan File Program yang telah dirancang di Software BASCOM-AVR melalui
View -> View Flash Hex Data atau View EEPROM Hex Data . Jika program
mikrokontroler telah terprogram di AVR Khazama maka software sudah siap
untuk di inject ke IC dengan mengklik “Auto Program” di software AVR
khazama
2.4
Regulator Tegangan
Regulator tegangan menggunakan IC LM 78XX, yaitu regulator tegangan
positif dengan 3 terminal yang dapat diperoleh dalam berbagai tegangan tetap
sehingga dapat digunakan dengan jelajahan penerapan yang lebar. Seri ini dapat
diperoleh dalam kemasan TO-3 aluminium yang dilengkapi dengan pembatas arus
untuk membatasi arus keluaran puncak pada harga yang aman. Selain itu uj ga
dilengkapi pengaman bagi daerah aman untuk transistor akhir guna membatasi
borosan (disipasi) daya internal. Apabila borosan daya internal menjadi terlampau
bagi benaman panas yang dikenakan, maka rangkaian penindas termik mengambil
alih dan mencegah IC menjadi terlampau panas.
Karakteristik dari regulator 78XX :
• arus keluaran maksimal 1 A,
• pengamanan pembebanan lebih termik secara internal,
• tidak diperlukan komponen eksternal tambahan,
• terdapat pengaman daerah aman untuk transistor keluara n,
29
• pembatas arus hubung singkat,
• dapat diperoleh dalam kemasan TO-3 aluminium.
Gambar 2. 7 (a) Simbol IC 78XX (b) Koneksi Pin 78XX
2.5
Transistor
Transistor adalah komponen aktif dengan arus, tegangan atau daya
keluarannya dikendalikan oleh arus masukan. Didalam system komunikasi,
tranistor digunakan sebagai penguat sinyal. Di dalam untai elektronis komputer
transistor digunakan untuk saklar elektronis laju tinggi. Transistor terdiri dari 3
terminal yaitu basis, kolektor dan emitor. Ada dua jenis transistor yaitu pnp dan
npn seperti terlihat Gambar 2.14.
Gambar 2.8 (a) Simbol Transistor PNP (b) Simbol Transistor NPN
30
Penggunaan transistor sebagai saklar yaitu dengan memanfaatkan daerah
jenuh (saturasi) dan daerah mati (cut off) transistor. Ketika transistor pada
daerahjenuh, maka arus mengalir tanpa halangan dari kolektor menuju emitor,
sedangkan arus kolektor jenuh. Kondisi ini menyerupai saklar pada kondisi
tertutup (ON). Untuk membuat kondisi transistor konduksi diperlukan arus basis.
Gambar 2.9 (a) Transistor Kondisi ON (b) Ekuivalen Saklar Tertutup
Pada kondisi transistor non konduktif (cut off) akan menyerupai saklar
pada kondisi terbuka (OFF). Konduksi non konduktif diperoleh dengan cara tidak
memberikan bias pada basis atau dengan cara memberi tegangan balik emitor
pada basis.
Gambar 2.10 (a) Transistor Kondisi OFF (b) Ekuivalen Saklar Terbuka
31
2.6
Saklar
2.6 .1 Saklar Tekan (push button)
Tombol tekan (push button ) merupakan komponen mekanis yang dapat
digunakan sebagai sarana untuk memberikan logika data. Tombol ini hanya
memberikan kondisi sesaat dalam menentukan logika data. Jadi setelah penekanan
dalam memberi logika, maka kondisi saklar kembali ke posisi semula.
Gambar 2.11 Push Button
2.6 .2 Saklar Geser (Toggle Switch)
Saklar adalah sebuah perangkat yang digunakan untuk memutuskan
jaringan listrik, atau untuk menghubungkannya. Jadi saklar pada dasarnya adalah
alat penyambung atau pemutus aliran listrik. Selain untuk jaringan listrik arus
kuat, saklar berbentuk kecil juga dipakai untuk alat komponen elektronika arus
lemah.
Secara sederhana, saklar terdiri dari dua bilah logam yang menempel pada
suatu rangkaian, dan bisa terhubung atau terpisah sesuai dengan keadaan sambung
(on) atau putus (off) dalam rangkaian itu. Material kontak sambungan umumnya
dipilih agar supaya tahan terhadap korosi. Kalau logam yang dipakai terbuat dari
bahan oksida biasa, maka saklar akan sering tidak bekerja. Untuk mengurangi
efek korosi ini, paling tidak logam kontaknya harus disepuh dengan logam anti
korosi dan anti karat. Pada dasarnya saklar tombol bisa diaplikasikan untuk sensor
32
mekanik, karena alat ini bisa dipakai pada mikrokontroller untuk pengaturan
rangkaian pengontrolan.
Gambar 2.12 Saklar Geser (Toggle Switch)
2.7
Penampil Seven Segment
Penampil seven segment
paling banyak digunakan pada aplikasi
mikrokontroler yang digunakan untuk menampilkan bilangan BCD yaitu
pengubahan bilangan biner ke bentuk desimal. Penampil seven segment terdiri
dari 7 buah LED dan menge nai macamnya ada dua buah seven segment yaitu
common anoda dan common katoda. Untuk menyalakan seven segment common
anoda (CA) tegangan di katoda lebih rendah dari pada di anoda sedangkan pada
common katoda (CC) tegangan di anoda harus lebih tinggi dari pa da tegangan di
katoda. Seven segment ini digunakan sebagai output counter pada mikrokontroler
dan dapat juga menampilkan karakter / alfanumerik sesuai dengan keinginan.
Gambar 2.13 : Penampil Seven Segment
Gambar 2.13 Penampil Seven Segment
33
Seven segment terdiri dari 2 common yaitu common anoda dan common katoda.
Gambar 2.14 Schematic Diagram Common Anoda
Gambar 2.15 Schematic Diagram Common Katoda
2.8
Relay
Relay merupakan saklar elektronis yang kerjanya berdasarkan perubahan
medan magnet. Dalam relay terdapat kumparan, bilamana kumparan tersebut
dialiri arus listrik maka akan menimbulkan medan magnet yang akan
menggerakkan saklar mekanis. Biasanya relay digerakkan oleh bantuan transistor,
yang akan mengaktif-tidakkan relay. Jadi yang dikontrol disini adalah
transistornya seperti yang dibahas pada transistor sebagai saklar
LS2
CENTRE
1
2
3
RB
2
TRA
RELAY
1
V IN
5
T1
4
T2
3
VCC
Gambar 2.16 Relay Mekanis
34
2.9
Resistor Variabel
Nilai resistansi resistor jenis ini dapat diatur dengan tangan, bila pengaturan
dapat dilakukan setiap saat oleh operator (ada tombol pengatur) dinamakan
potensiometer dan apabila pengaturan dilakukan dengan obeng dinamakan
trimmer potensiometer (trimpot). Tahanan dalam potensiometer dapat dibuat dari
bahan carbon dan ada juga dibuat dari gulungan kawat yang disebut potensiom eter
wirewound. Untuk digunakan pada voltage yang tinggi biasanya lebih disukai
jenis wirewound.
Gambar 2.17 Resistor Variabel
2.10 Kristal
Dalam pesawat radio, kristal banyak digunakan pada pembangkit frekuensi
tinggi (osilator) agar frekuensi osilator dapat dipertahankan stabil, disamping
frekuensi yang stabil, suatu osilator kristal mempunyai bandwidth yang sangat
sempit. Kristal yang dipakai dalam pesawat radio kebanyakan adalah sekeping
potongan kristal quartz. Frekuensi resonansinya tergantung pada ketebalan
kepingannya, misalnya untuk 7 MHz ketebalannya sekitar 0.9 mm.
Seperti kita ketahui bersama bahwa suatu kristal quartz dapat memberikan
efek piezoelectric . Material piezoelectric yang lain adalah garam Rochelle atau
35
nama kimianya Kalium Natrium Tartrat, kristal semacam ini kebanyakan
digunakan untuk microphon e atau untuk speaker headphone.
Untuk membuat kristal dengan frekuensi yang tinggi (di atas 20 MHz) agak
sulit membuat ketebalan yang akurat. Biasanya untuk frekuensi tinggi digunakan
kristal dengan frekuensi dibawah, selanjutnya pada osilator diberikan filter
sehingga menghasilkan output harmonicnya. Kristal yang bekerja pada frekuensi
sesuai ketebalan kepingan kristal disebut kristal fundamental dan kristal yang
bekerja 3 atau 5 kalinya disebut overtone.
Disamping penggunaannya sebagai osilator, microphone dan speaker,
kristal juga digunakan sebagai filter. Kristal filter terdiri atas suatu rangkaian
kristal berupa ladder filter atau rangkaian lattice filter.
Gambar 2.18 Kristal
2.11 Universal Serial Bus (USB)
Universal Serial Bus adalah standar bus serial untuk perangkat penghubung,
biasanya kepada komputer namun juga digunakan di peralatan lainnya seperti
konsol permainan, ponsel dan PDA. Sistem USB mempunyai desain yang
asimetris, yang terdiri dari pengontrol host dan beberapa peralatan terhubung yang
berbe ntuk pohon dengan menggunakan peralatan hub yang khusus.
36
Desain USB ditujukan untuk menghilangkan perlunya penambahan
expansion card ke ISA komputer atau bus PCI, dan memperbaiki kemampuan
plug-and-play
(pasang-dan-mainkan)
dengan
memperbolehkan
peralatan-
peralatan ditukar atau ditambah ke sistem tanpa perlu me reboot komputer. Ketika
USB dipasang, ia langsung dikenal sistem komputer dan memroses device driver
yang diperlukan untuk menjalankannya. USB dapat menghubungkan peralatan
tambahan komputer seperti mouse, keyboard , pemindai gambar, kamera digital,
printer, hard disk, dan komponen networking. USB kini telah menjadi standar bagi
peralatan multimedia seperti pemindai gambar dan kamera digital.
USB adalah host-centric bus di mana host/terminal induk memulai semua
transaksi. Paket pertama/penanda (token) awal dihasilkan oleh terminal untuk
menjelaskan apakah paket yang mengikutinya akan dibaca atau ditulis dan apa
tujuan dari perangkat dan titik akhir. Paket berikutnya adalah data paket yang
akan melaporkan apakah data atau penanda sudah diterima dengan baik atau pun
titik akhir gagal menerima data dengan baik.
Setiap proses transaksi pada USB terdiri atas:
·
Paket token/sinyal penanda (Header yang menjelaskan data yang
mengikutinya)
·
Pilihan paket data (termasuk tingkat muatan) dan
·
Status paket (untuk acknowledge/pemberitahuan hasil transaksi dan untuk
koreksi kesalahan)
37
Nomor kaki (dilihat pada soket):
Gambar 2.19 Pin USB
Tabel 2.7 Penetapan Pin USB
Penetapan kaki
Kaki
1
2
3
Fungsi
(4.75–5.25 V)
VBUS
DD+
4
Shell
GND
Shield
2.12 Infra Merah (Infra-Red Light)
Sebenarnya cahaya infra merah adalah cahaya biasa yang mempunyai
spectrum di bawah sinar tampak. Manusia tidak mampu melihat cahaya ini karena
panjang gelombang cahaya ini adalah 950nm, dibawah spektrum sinyal tampak.
Ini menjadi salah satu alasan kenapa sinyal infra merah dipilih dalam penggunaan
remote control, pemakai bisa merasakan efeknya, akan tetapi tidak bisa
melihatnya. Alasan lainnya adalah IR LED (Infra Red Light Emmiting Diode)
mudah dibuat dan sangat murah.
Meskipun manusia tidak mampu melihat sinar infra merah, bukan berarti tidak
bisa membuatnya menjadi tampak. Sebuah video kamera atau digital foto dapat
38
"melihat"nya, sebagaimana diperlihat pada gambar dibawah ini. Kamera mampu
menerima cahaya infra merah dengan baik
Gambar 2.20 Infra Merah
2.13 Penerima Sinyal Infra-Merah (IR)
Sebenarnya banyak konsep rangkaian yang digunakan, tetapi yang paling
umum digunakan adalah seperti dibawah.
Gambar 2.21 Blok Diagram Penerima IR
Pada gambar di atas dapat dilihat blok diagram dari Penerima IR. Blok
diagram diatas telah dibuat menjadi hanya 1 komponen saja. Gelombang sinar
infra merah diambil oleh diode dete ktor infra merah pada sisi paling kiri dari
diagram di atas. Sinyal ini lalu diperkuat dan dibatasi levelnya. Pembatas level
(limiter) bekerja sebagaimana yang akan mengatur rangkaian agar memperoleh
level pulsa yang konstan, tergantung kuat lemah sinyal dan banyaknya gangguan
noise. Hanya sinyal AC yang akan diteruskan ke Blok BPF (Band Pass Filter).
39
BPF ini diatur pada frekuensi tertentu. Umumnya antara 30kHz hingga 60kHz.
lebih lazim lagi adalah 37,9kHz.
Gambar 2.22 Penerima Remote (IR Remote Control)
2.14
Rangkaian Power Supply
Rangkaian power supply yang dibuat oleh perancang terdiri dari
transformator, rangkaian penyearah, filter dan regulator.
Gambar 2.23 Rangkaian Power Supply
Jenis transformator yang digunakan adalah transformator CT. Jenis
transformer ini akan mengubah tegangan 220 V AC pada sisi primer menjadi dua
buah tegangan 12 V AC yang berbeda fase sebesar 180° pada sisi sekundernya.
Selain kedua tegangan tersebut pada sisi sekunder dari transformer tedapat
terminal CT yang digunakan sebagai ground (GND).
40
Selain transformator CT, untuk menghasilkan tegangan simetris maka
diperlukan rangkaian penyearah jembatan yang terdiri dari 4 buah dioda 1N4001.
Penyearah jembatan ini akan mengubah tegangan AC menjadi tegangan DC.
Dioda 1N4001 memiliki kemampuan menghantar arus sebesar 1 Ampere.
Tegangan DC yang dihasilkan oleh penyearah jembatan berupa tegangan
DC dengan riak (ripple) yang relatif besar. Untuk mengurangi riak (ripple) pada
tegangan DC diperlukan suatu penapis (filter ). Rangkaian penapis (filter) berupa
rangkaian kapasitor yang dipasang sebelum dan sesudah IC regulator. Kapasitor
yang digunakan sebagai filter memiliki nilai 1000 µF / 35 V.
Sementara untuk menjaga tegangan agar berada pada nilai tegangan yang
dikehendaki maka diperlukan IC regula tor tegangan. Untuk tegangan sebesar 12V
yang dihasilkan oleh rangkaian penyearah dan filter kemudian diturunkan level
tegangannya dengan menggunakan IC LM7809 untuk mengurangi level
tegangannya dari 12V ke 9V, dan dari tegangan 9V diturunkan lagi ke tega ngan
5V maka digunakan IC regulator LM7805. Pada IC LM7809 disamping digunakan
untuk menurunkan tegangan, IC regulator tersebut pun untuk mencegah panas yang
terjadi pada komponen LM7805.
Download