2.1 Inclinometer
Menurut web yang disponsori oleh dataacquisitionweb (“Inclinometers”), Inclinometer adalah alat yang digunakan untuk mengukur sudut dari kelerengan atau kemiringan suatu bidang. Incliometers dikenali juga sebagai tilt sensor (sensor sudut), tilt indicator, slope meter, slope gauge, gradient meter, gradiometer, level gauge & level meter.
Kebanyakan DC accelerometer (sensor accelerometer dengan supply menggunakan tegangan DC dan output berupa tegangan DC) dengan tingkat sensitivitas yang tinggi (>200mv/g) dapat digunakan sebagai inclinometers. DC acclerometers ini dapat mengukur konstan akselerasi atau statik akselerasi contohnya gravitasi. Dengan sumbu dari sensor yang searah dengan gravitasi maka didapat tegangan output yang proportional terhadap 1g (9.807 m/s2) dari akselerasi.
Inclinometer biasa diaplikasikan untuk mendeteksi kemiringan bor untuk penambangan, kegunaan dalam bidang militer seperti mengatur derajat pada tank untuk menembak, rotary device untuk memoles intan, untuk satelit mengarahkan signal dan lain-lain.
2.2. MX2125 Dual-Axis Accelerometer
MX2125 adalah sensor buatan dari Memsic yang dapat mendeteksi akselerasi. MX2125 accelerometer mendeteksi akselerasi pada dua sudut.
Akselerasi dideteksi berdasarkan posisi dari sensor.
2.2.1. Karakterisitik Operasional MX2125
Sensor yang digunakan MX2125 memiliki karakteristik sebagai berikut:
• Keluaran berupa pulsa digital secara kontinyu dengan frekuensi sebesar 100Hz.
• MX 2125 dapat bekerja baik pada temperatur 0° hingga 70°C.
• Mampu mengukur sudut dengan batasan maksimal sebesar 50°.
• Memiliki range keluaran sebesar + 2g dan T2 sebesar 10 miliseconds.
• Power Supply sebesar 3 hingga 5,25 VDC.
• Konsumsi arus sebesar 100µA.
2.2.2. Konfigurasi Pin-pin pada MX2125
Tabel 2.1. Konfigurasi Pin
Pin Name Description
1 Tout Temperature(Analog Voltage)
2 DOUTY Y-Axis Acceleration Digital Signal 3 Gnd Ground
4 Gnd Ground
5 DOUTX Y-Axis Acceleration Digital Signal 6 VCC Digital Supply Voltage
Sumber: Memsic Corporation, MX2125GL Datasheets. 2004. 20 Mei 2006. p.6.
<http://www.Parallax.com/accesories/sensors/ MX2125GL Datasheets..pdf>.
Gambar 2.1. Pin Description
Sumber: Memsic Corporation, It’All About Angles. 2004. 20 Mei 2006. p.6.
<http://www.Parallax.com/accesories/sensors/it’s all about angles.pdf>.
2.2.3. Cara kerja sensor
Pada MX2125 terdapat gelembung gas dengan elemen pemanas pada bagian tengah dan empat temperatur sensor pada tiap tepinya. Pada saat sensor dinyalakan, elemen pemanas mulai bekerja dan memanaskan gelembung gas yang berada di inti sensor. Seperti pada udara, jika dipanaskan akan naik ke atas.
Sedangkan pada keadaan dingin akan bergerak ke bawah. Dan ini juga berlaku
pada gas yang berada dalam MX2125, dimana gas akan naik (jika dipanaskan) dan turun (jika didinginkan). Jadi setiap ada perubahan akselerasi atau posisi sensor mengakibatkan gelembung gas pada di dalam sensor juga ikut bergerak dan sensor mengeluarkan pulsa dari pin Doutx dan Douty.
Gambar 2.2. Ruang Gas Pada MX2125
Sumber: Memsic Corporation, Accelerometers Getting Started. 2004. 20 Mei 2006. p.3.
<http://www.Parallax.com/accesories/sensors/Accelerometers Getting Started.pdf>.
Gambar 2..3. Hubungan Sensor Dengan Gravitasi
Dapat kita lihat massa gas yang terpanaskan memiliki gravitasi, di mana gravitasi selalu menuju ke arah bumi. Sudut A merupakan sudut yang diukur oleh sensor (merupakan kemiringan garis normal dengan dasar sensor). Dari letak gas yang terpanaskan dapat diketahui posisi sudut.
2.2.4. Format Pengoperasian MX2125
MX2125 memiliki dua duty cycle PWM. Akselerasi proportional terhadap ratio T1/T2. Pada saat kedaaan datar yaitu terletak pada sudut 0°
terhadap bumi memiliki 50% duty cycle dan sensivity scale factor sebesar 12,5%
perubahan tiap g. Pulsa keluaran memiliki perioda sebesar 10ms jadi pada saat keadaan 0° memiliki pulsa high dengan waktu sebesar 5ms.
Gambar 2.4. Contoh Pulsa MX2125
Sumber: Memsic Corporation, It’All About Angles. 2004. 20 Mei 2006. p.2.
<http://www.Parallax.com/accesories/sensors/it’s all about angles.pdf>.
(2.1)
Sumber: Memsic Corporation, It’All About Angles. 2004. 20 Mei 2006. p.2.
<http://www.Parallax.com/accesories/sensors/it’s all about angles.pdf>.
Setiap perubahan posisi sudut pada sensor MX2125 akan mengalami perubahan pada nilai T1 di mana akan menjadi besar atau lebih kecil. Dengan menggunakan rumus pada 2.1 untuk menemukan A(g), berdasarkan A(g) yang didapat dapat ditentukan nilai sudut dengan rumus: Sudut =A(g) x k (Dengan nilai k yang diambil dari tabel 2.2 di bawah ini).
Tabel 2.2. Konstanta
Inclination Range ( º arc)
K
( º arc/g) Maximum Error ( º arc) +10 57.50 +0.02 +20 58.16 +0.16 +30 59.04 +0.48 +40 60.47 +1.13 +50 62.35 +2.24
Sumber: Memsic Corporation, It’All About Angles. 2004. 20 Mei 2006. p.3.
<http://www.Parallax.com/accesories/sensors/it’s all about angles.pdf>.
2.3. LCD
Sebagai interface untuk menampilkan sudut digunakan LCD 16 characters x 2 lines. LCD yang digunakan pada tugas akhir ini adalah tipe 16x2 dengan fitur – fitur sebagai berikut:
• Dua baris 5x7 dot matrik TN liquid crystal display + cursor , tiap baris dapat menampilkan maksimal 16 karakter.
• Duty ratio : 1/8
• Character generator ROM untuk192 jenis karakter dengan karakter font : dot matrik 5 x7.
• Character generator RAM untuk 8 jenis karakter dengan karakter font : dot matrik 5 x7.
• 80 x 8 bit Display Data RAM (kapasitas maksimum 80 karakter).
• Dapat menggunakan 4 pin maupun 8 pin untuk data.
• Beragam instruction function seperti Display Clear, Cursor Home, Display on/off, Cursor on/off, Display Character Blink, Cursor Shift, dan Display Shift.
• Sirkuit osilator built-in dan built in automatic reset at power-on.
• Temperatur daerah kerja : 0° C – 50° C.
2.3.1. Konfigurasi Pin LCD
Tabel 2.3. Daftar Pin LCD
Pin Name Description
1 Vss Power Supply (0V,Gnd) 2 Vcc Power Supply For Logic 3 Vee Power Supply For LCD Drive 4 Rs Register Select Signal 5 R/W Read/Write Select Signal 6 E Enable Signal
7 DB0 Data Bus Line/Non Connection at 4 bit Operation 8 DB1 Data Bus Line/Non Connection at 4 bit Operation 9 DB2 Data Bus Line/Non Connection at 4 bit Operation 10 DB3 Data Bus Line/Non Connection at 4 bit Operation 11 DB4 Data Bus Line
12 DB5 Data Bus Line 13 DB6 Data Bus Line 14 DB7 Data Bus Line 15 V
16 V
Sumber: SEIKO LCD Module User Manual. 2004. 20 Mei 2006. p.1.
Penjelasan masing – masing pin adalah sebagai berikut:
• Vss/pin 2, Pin Ground.
• VDD/pin 1, Pin Supply 5 volt.
• VLCD/ pin 3, terminal power supply untuk men-drive LCD. Kontras pada tampilan dapat bervariasi dengan mengubah – ubah VLCD.
• RS/ pin 4, merupakan pin Register Selection Signal. Bila diberi logika ‘0’
akan terpilih register instruksi. Dan bila diberi logika ‘1’, maka akan terpilih register data.
• R/W, merupakan pin read/write signal. . Bila diberi logika ‘0’, akan terpilih write. Dan bila diberi logika ‘1’, maka akan terpilih read.
• E, merupakan sinyal enable yang berfungsi mengaktifkan write/read data.
• DB0/ pin 10 – DB7 /pin 14, merupakan pin data 4 bit untuk LCD.
• V+BL (pin 15) dan V-BL (pin 16), merupakan pin catu daya untuk backlight LCD.
2.3.2. Format Pengoperasian
Dalam hal ini digunakan 4 bit operation.Untuk pengoperasian pada LCD memerlukan inisialisi sebelum menampilkan suatu karakter pada LCD, dengan urutan inisialisi sebagai berikut:
Gambar 2.5. Flowchart Inisialisasi LCD
Tunggu sebelum 15ms setelah Vcc naik sampai 4,5v Power On
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
Tunggu lebih dari 4.1 ms
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
Tunggu lebih dari 100μs
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
0 0 0 0 1 0
0 0 N F * *
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 I/D S
2.3.3 Instruction Code Pada LCD
Kode-kode instruksi pada Liquid Crystal Display (LCD) dapat dilihat pada tabel 2.4. ini berikut ini:
Tabel 2.4. Instruction Set Pada LCD
Sumber: SEIKO LCD Module User Manual. 2004. 20 Mei 2006. p.6.
Berikut ini adalah penjelasan dari kode-kode instruksi pada Liquid Crystal Display (LCD).
• Display Clear. Membersihkan semua tampilan pada LCD dan mengembalikan kursor ke posisi awal.
• Cursor Home. Mengembalikan kursor ke posisi awal.
• Entry Mode Set. Mengatur pergerakan arah kursor dan menentukan pergeseran display.
• Display On/Off Control. (D) untuk mengontrol On/Off Display, (C) untuk mengontrol On/Off kursor, (B) untuk mengatur aktif tidaknya kedipan kursor.
• Cursor or Display Shift. Menggerakkan kursor dan menggeser display tanpa merubah isi DD RAM.
• Function Set. Mengatur panjang data pada LCD, yaitu 4 bit atau 8 bit.
• Write Data. Menulis data ke DD RAM atau CG RAM.
• Read Data. Membaca data dari DD RAM atau CG RAM.
2.3.4 Pemilihan Register
Pemilihan register (Register Selection) terdiri dari empat macam, ditunjukkan oleh tabel berikut ini.
Tabel 2.5. Register Selection
Sumber: SEIKO LCD Module User Manual. 2004. 20 Mei 2006. p.8.
2.3.5 Kode-kode Bentuk Karakter
Kode-kode bentuk karakter (Character Font Codes) dapat dilihat pada gambar berikut ini.
Tabel 2.6. Kode Karakter
Sumber: SEIKO LCD Module User Manual. 2004. 20 Mei 2006. p.11.
2.4. Mikrokontroller ATMega8
Struktur dasar ATMega8 digambarkan secara blok diagram seperti gambar di bawah ini.
Gambar 2.6. Blok Diagram ATMega8
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.2.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
ATMega8 memiliki keistimewaan sebagai berikut:
• 1Kb internal SRAM
• 8Kb Flash Memory
• 512 bytes EEPROM
• 23 jalur Input-Output
• 8 bit timer/counter
• 16 bir timer/counter
• 8-,9-,10- bit PWM
• On-chip Analog comparator
• Full duplex UART
• SPI serial Interface for In-System Programming
• Internal ADC (Analog to Digital Converter) 10 bit
• Internal Power on Reset
2.4.1. Penjelasan Fungsi pin ATMega8
Gambar 2.7. Konfigurasi pin ATMega8
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.2.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
ATMega8 memiliki konfigurasi pin seperti tampak pada gambar 2.7.
dengan fungsi masing-masing pin adalah sebagai berikut:
• VCC
Tegangan Sumber
• GND (Ground) Ground
• Port B (PB7..PB0), Port C (PC6..PC0), Port D (PD7..PD0)
Port B, C, dan D merupakan port I/O yang mempunyai sifat bi-directional dengan setiap pin memiliki internal pull-up resistor. Dimana tiap Port memiliki kemampuan untuk mengalirkan (source) arus ataupun menerima arus (sink).
Output buffer port dapat mengalirkan arus sebesar 20 mA. Pada saat Port dalam keadaan sebagai input dan di pull-down secara eksternal, port akan mengalirkan arus ketika internal pull-up resistor diaktifkan. Pada tiap port baik B, C, ataupun D memiliki pin-pin yang memiliki fungsi khusus
Pada Port B terdapat pin-pin seperti PB6 bisa digunakan sebagai input dari inverting oscillator amplifier serta sebagai input dari internal clock operating circuit dengan cara mengatur clock selection fuse setting. Demikian halnya dengan PB7 dengan mengatur clock selection fuse setting, PB7 bisa digunakan sebagai output dari inverting oscillator amplifier. Pin-pin port B yang juga memiliki fungsi-fungsi khusus antara lain:
• SCK-port B, bit 5
Input pin clock untuk up/downloading memory.
• MISO-port B, bit 4
Pin output data untuk uploading memory.
• MOSI-port B, bit 3
Pin input data untuk downloading memory.
Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti yang tertera pada tabel 2.7. di bawah ini:
Tabel 2.7. Fungsi Khusus Port B
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.56.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
Sedangkan pada Port C terdapat juga pin-pin yang memiliki fungsi khusus yaitu dapat berfungsi sebagai channel ADC(Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang tertera pada tabel 2.8. di bawah ini.
Tabel 2.8. Fungsi Khusus Port C
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.59.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
Dan yang terakhir pada Port D. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang tertera pada tabel 2.9. di bawah ini.
Tabel 2.9. Fungsi Khusus Port D
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.61.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
• PC6/RESET
Jika RSTDISBL Fuse telah terprogram, PC6 dapat digunakan sebagai I/O pin (karakteristik pin pada PC6 berbeda dengan pin yang lain pada port C). Jika RSTDISBL tidak terprogram, maka PC6 digunakan sebagai reset. Jika logic 0 lebih besar dari pulsa minimum akan mereset microcontroller. Meskipun dalam keadaan clock tidak berjalan.
• AVCC
AVcc adalah power supply untuk pin A/D converter, port c (3..0) dan ADC (7..6). Seharusnya AVcc dihubungkan secara eksternal dengan Vcc, meskipun tidak mengunakan ADC. Jika ADC digunakan AVcc harus dihubungkan dengan Vcc melalui low pass filter.
• AIN0 – port D, bit 0
Analog comparator positive input. Pin ini dapat menjadi positif input pada On-chip Analog Comparator ketika pin ini dikonfigurasikan sebagai input (DDB0 pada kondisi clear [0]) dan internal MOS pull-up resistor mati (PB0 pada kondisi clear [0]).
• AIN1 – port D, bit 1
Analog comparator negative input. Pin ini dapat menjadi negatif input pada On chip Analog Comparator ketika pin ini dikonfigurasikan sebagai input
(DDB1 pada kondisi clear [0]) dan internal MOS pull-up resistor mati (PB1 pada kondisi clear [0]).
• T0 – port D, bit 4
Timer 0 clock source.
• TI – port D, bit 5
Timer 1 clock source.
• INT0 – port D, bit 2
Eksternal interrupt source 1. Pin ini dapat menjadi eksternal interrupt source untuk MCU.
• INT1 – port D, bit 3
Eksternal interrupt source 1. Pin ini dapat menjadi eksternal interrupt source untuk MCU.
• RXD, port D, bit 0
Receive (pin data input untuk UART). Ketika UART transmitter aktif, pin ini dikonfigurasikan sebagai input tanpa memperdulikan nilai dari DDRD0.
Ketika UART memaksa pin ini sebagai input, logika “1” pada port D akan menyalakan internal pull-up.
• TXD
Transmit data (pin data output untuk UART). Ketika UART transmitter aktif, pin ini dikonfigurasikan sebagai output tanpa memperdulikan nilai dari DDRD1.
• AREF
AREF merupakan pin tegangan analog referensi untuk ADC.
• XTAL1
Merupakan pin untuk inverting oscillator amplifier dan input dari rangkaian internal clock.
• XTAL2
Merupakan output dari inverting oscillator amplifier.
Gambar 2.8. Rangkaian crystal.
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.25.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
2.4.2. Arsitektur ATMega8
Struktur arsitektur dan peta memory ATMega8 dapat digambarkan secara blok diagram seperti pada gambar 2.8, dan gambar 2.9.
Gambar 2.9. Arsitektur ATMega8 AVR RISC
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.7.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
Gambar 2.10. Peta memory ATMega8
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.2.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
2.4.3. SRAM Data Memory
Pada Gambar 2.11. di bawah ini menunjukkan bagaimana memory data ATMega8 diatur.
Gambar 2.11. Pengaturan SRAM ATMega8
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.16.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
Pada pengaturan SRAM pada ATMega8 1120 lokasi data memory digunakan sebagai alamat register file, I/O memory, dan internal data SRAM. 96 lokasi memory yang pertama digunakan untuk alamat register file dan I/O memory, dan 1024 berikutnya mengalamatkan untuk internal data SRAM. Ada lima cara pengalamatan yang berbeda yaitu: Direct, Indirect with Displacement, Indirect, Indirect with Pre-decrement, dan Indirect with Post-increment. Pada registers R26 sampai 31 dalam registers file mewakili indirect addresing pointer registers.
Pengalamatan Direct melingkupi seluruh alamat data yang kosong. Pada indirect with displacment dapat mencapai 63 lokasi alamat dari base address yang diberikan dari Y dan Z register. Ketika menggunakan mode registers indirect addressing dengan automatic pre-decrement dan post-increment, address registers X,Y dan Z dapat terjadi dikurang atau ditambahkan.
Dengan 32 general purpose working registers, 64 I/O registers, dan 1024 bytes dari internal data SRAM pada ATMega8 semua dapat diakses semua melalui addressing mode.
2.4.4. Sumber Reset
Selama reset, semua register I/O dikembalikan pada nilai awalnya dan program mulai dieksekusi pada alamat 00H. Instruksi yang diletakan pada alamat 00H harus berupa instruksi RJMP (Relative Jump) menuju rutin yang menangani reset. Apabila program tidak pernah menggunakan interrupt, maka interrupt vector tidak akan digunakan dan kode program biasa dapat diletakkan pada alamat vektor ini. Rangkaian dari logika reset dapat dilihat pada gambar 2.12. ATMega8 memiliki 4 sumber reset, yaitu:
• Power-on Reset: MCU dalam keadaan reset ketika tegangan supply berada di bawah tegangan power-on reset.
• External Reset: MCU dalam keadaan reset ketika sebuah level tegangan low terdapat pada pin Reset selama lebih dari 50nS.
• Watchdog Reset: MCU dalam keadaan reset ketika watchdog diaktifkan dan watchdog timer berakhir
• Brown-out Reset: MCU dalam keadaan reset ketika nilai dari sumber tegangan (VCC) berada di bawah brown-out reset threshold (VBOT) dan brown-out detector dalam keadaan enable.
Gambar 2.12. Logika reset
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.36.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
2.4.5. Memory I/O
Definisi dari alamat I/O ATMega8 dapat dilihat pada tabel 2.10.
Tabel 2.10. Alamat I/O ATMega8
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.284.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
2.4.5.1. Status register – SREG
Gambar 2.13. Register SREG
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.9.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
• Bit 7 – I: Global Interrupt Enable
Global Interrupt Enable harus diset (1) untuk memungkinkan menjalankan interrupt. Kontrol interrupt individu dijalankan dalam register kontrol yang berbeda. Jika Global Iinterrupt Enable bernilai (0), tidak ada interrupt yang dilaksanakan, dan di-set oleh instruksi RETI untuk menjalankan interrupt berikutnya.
• Bit 6 – T: Bit Copy Storage
Instruksi Bit Copy BLD (Bit LoaD) dan BST (Bit Store) menggunakan T- bit sebagai sumber dan tujuan untuk bit yang dioperasikan. Sebuah bit dalam register dalam register file dapat disalin ke T oleh instruksi BST, dan bit di T dapat disalin ke register di dalam register file oleh instruksi BLD.
• Bit 5 – H: Half Carry Flag
Half Carry Flag H, mengindikasikan sebuah half-carry dalam beberapa operasi matematika.
• Bit 4 – S: Sign Bit, S = N + V
S-bit selalu terpisah atau diantara Negative Flag N dan two’s Complement Overflow Flag V.
• Bit 3 – V: Two’s Complement Overflow Flag
Two’s Complement Overflow Flag V mendukung dua komplemen aritmatika
• Bit 2 – N: Negative Flag
Negative Flag mengindikasikan hasil negatif setelah operasi aritmatika dam logika dijalankan.
• Bit 1 – Z: Zero Flag
Zero Flag Z mengindikasikan hasil kosong (0) setelah operasi aritmatika dan logika dijalankan.
• Bit 0 – C: Carry Flag
Carry Flag C mengindikasikan sebuah Carry dalam operasi aritmatika atau logika.
2.4.5.2. Stack Pointer – SP
Pada ATMega8 terdapat 16-bit stack pointer yang terdiri dari dua 8 – bit register. Stack pointer menunjuk ke stack dari SRAM dimana subroutine dan interrupt diletakkan. Ruang Stack dalam data SRAM ini harus didefinisikan oleh program sebelum subroutine dipanggil atau interrupt dijalankan. Stack pointer akan berkurang satu ketika data dimasukkan ke dalam stack (dengan menggunakan instruksi PUSH) dan akan berkurang dua (jika alamat dimasukkan ke dalam stack) dengan pemanggilan subroutine atau Interrupt. Stack Pointer akan bertambah satu, jika data dikeluarkan dari stack menggunakan instruksi POP. Dan akan bertambah dua ketika alamat dikeluarkan dari stack dengan kembalinya dari subroutine RET atau dari interrupt RETI.
Gambar 2.14. Register Stack Pointer ATMega8
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.11.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
2.4.6. Timer/counter
ATMega8 memiliki dua buah timer/counter. Satu 8-bit timer/counter dan yang satunya 16-bit timer/counter. Timer/counter ini dapat digunakan sebagai
timer dengan internal clock atau digunakan sebagai counter dengan sebuah koneksi eksternal yang menghasilkan counting. Kecepatan counter pada timer/counter ini dapat dilihat pada tabel 2.11.
Tabel 2.11. Clock Prescale Select
Sumber: Atmel Corporation, ATMega8 8 bit AVR Microcontroller Datasheet.
2003. 20 Mei 2005. p.70.
<http://www.atmel.com/dyn/resources/pro_documents/doc2485.pdf>.
2.5. BASCOM AVR
BASCOM AVR merupakan singkatan dari Basic Compiler AVR.
BASCOM AVR merupakan compiler bahasa basic untuk microcontroller AVR BASCOM AVR produk dari MCS Electronics yang saat ini sudah mencapai versi 1.11.7.7. Dengan menggunakan BASCOM AVR ini maka programmer mendapatkan kemudahan memprogram microcontroller. Software BASCOM AVR berpenampilan IDE (Integrated Development Environment ) yaitu memiliki kemampuan pengetikan program, compilation , dan pemrograman dalam satu software.
Sebelum memprogram sebuah microcontroller menggunakan BASCOM AVR, tipe microcontroller yang digunakan harus di-setting terlebih dahulu di menu Option. Pada bagian setting ada beberapa parameter yang harus diperhatikan yaitu : tipe microcontroller, kecepatan crystal yang digunakan, kecepatan baudrate serial, konfigurasi pin yang berhubungan dengan peripheral, dan lain-lain. Tampilan software BASCOM AVR dapat dilihat pada gambar 2.15 hingga 2.16.
Gambar 2.15. Tampilan Utama Software BASCOM AVR
Gambar 2.16. Tampilan Option Chip Software BASCOM AVR
Gambar 2.17. Tampilan Option Communication Software BASCOM AVR
2.6. Rangkaian ISP ( In System Programming )
Untuk mem-program microcontroller digunakan rangkaian ISP (In System Programming) seperti pada gambar 2.18 . Microcontroller ATmega 16
dan ATmega 8 yang digunakan telah men-support fungsi ISP. Dengan adanya ISP memungkinkan pemrograman microcontroller pada rangkaian, tanpa harus melepas microcontroller dari rangkaian seperti pada cara pemrograman konvensional menggunakan programmer.
Gambar 2.18. Rangkaian ISP ( In System Programmer )
ISP ini menggunakan LPT port atau printer port pada PC (Personal Computer). Program download yang digunakan sudah terintegrasi dengan software BASCOM AVR. Tipe ISP yang digunakan ini identik dengan tipe ISP STK 200 yang dibuat oleh Atmel. Sehingga setting programmer pada software BASCOM AVR di-set tipe STK 200. Pada gambar 2.19 dan 2.20 merupakan tampilan option dan programmer dari software BASCOM AVR.
Gambar 2.19. Tampilan Option Programmer Software BASCOM AVR
Gambar 2.20. Tampilan Programmer Software BASCOM AVR