BAB II LANDASAN TEORI Temperatur merupakan salah satu

advertisement
BAB II
LANDASAN TEORI
Temperatur merupakan salah satu informasi yang sangat penting dalam menentukan kondisi
cuaca pada sebuah daerah. Temperatur juga merupakan salah satu kunci penting dalam dunia
pertanian atau perkebunan, industri makanan, industri elektronika dan lain-lain.
Pengukuran temperatur secara manual dapat dilakukan dengan termometer standart,
namun tidak ada alat yang dapat mengatur agar temperatur tetap dalam kondisi stabil, apalagi
temperatur harus dipantau terus menerus. Sehingga dibutuhkan alat pengukur temperatur
yang disertai dengan sistem kontrolnya. Yang artinya, temperatur dalam sebuah ruangan
dapat diukur secara otomatis, dan dapat dijaga secara otomatis pula, serta hasil data
temperatur dapat ditampilkan pada display. Berikut adalah gambaran umum sistem kendali
temperatur ruangan.
Gambar 2.1. Blok Diagram Sistem Kendali Temperatur Ruangan Secara Umum
Universitas Sumatera Utara
2.1. PERANGKAT KERAS
2.1.1. Sensor LM35
Sensor adalah piranti yang menghasilkan sinyal keluaran yang sebanding dengan parameter
yang diindera (sensing). Sensor LM35 adalah sensor temperatur semiconductor-junction yang
tegangan out putnya sebanding dengan temperatur dalam derajat Celcius (0 C). LM35
memiliki kelebihan dibandingkan sensor suhu berpresisi Kelvin, dimana pemakai tidak perlu
mengambil nilai tegangan konstan yang besar untuk mendapatkan skala celcius yang tepat.
LM35 memiliki keadaaan default yaitu akurasi ±¼ 0 C pada temperatur ruang dan ±3/ 4
0
C
pada range maksimum –55 sampai +150 0 C.
LM35 memiliki faktor skala linier +10.0 mV/0C, ini berarti untuk tiap kenaikan satu
derajat celcius pada suhu sekitar tegangan output akan naik 10 mV. Tegangan kerja dari
LM35 adalah 4 sampai 30 Volt dengan kuat arus sebesar 60 µA.
Gambar 2.2. Sensor Temperatur LM35DZ
Adapun beberapa kelebihan dari LM35 dari sensor temperatur lain adalah:
1.Hasil pengukuran lebih akurat dibandingkan dengan menggunakan thermistor.
2.Rangkaian sensor tertutup dan tidak bergantung (tidak terpengaruh) pada oksidasi.
3.LM35 menghasilkan tegangan keluaran lebih besar dibandingkan dengan
thermocouple dan tegangan keluaran tidak perlu diperbesar.
Universitas Sumatera Utara
2.1.2. Mikrokontroler
Mikroprosesor adalah CPU komputer, untuk dapat menggunakan secara umum, masih
diperlukan :
. Memory ( RAM , ROM ) dan juga decoder memory
. I / O dan decoder I / O
. Piranti khusus ( Interupsi, timer, counter, etc )
. Clock generator
Mikrokontroler didesain sebagai True Computer a chip,
jadi mikrokontroler sudah
mempunyai piranti – piranti tambahan untuk membangun suatu sistem komputer digital.
Mikrokontroler dirancang dengan instruksi yang bisa mengakses piranti terprogram dan
dioptimalkan untuk instruksi bit dan byte, sementara computer PC di desain dengan instruksi
untuk mengakses data multi byte.
Mikrokontroler merupakan suatu komponen elektronika yang di dalamnya terdapat
rangkaian mikroprosesor, memori (RAM atau ROM) dan I/O, rangkaian tersebut terdapat
dalam level chip atau biasa disebut single chip mikrokomputer. Pada mikrokontroler telah
terdapat komponen-komponen mikroprosesor dengan bus-bus internal yang saling
berhubungan. Komponen-komponen tersebut adalah RAM, ROM, timer, komponen I/O
paralel dan serial, dan interupsi kontroler.
Adapun keunggulan dari mikrokontroler adalah adanya sistem interupsi. Sebagai
perangkat kontrol penyesuaian, mikrokontroler sering disebut juga untuk menaikkan respon
semangat eksternal (interupsi) di waktu yang nyata. Perangkat tersebut harus melakukan
hubungan switching cepat, menunda satu proses ketika adanya respon eksekusi yang lain.
Universitas Sumatera Utara
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program
aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya
bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada
perbandingan RAM dan ROM-nya. Pada sistem komputer RAM dan ROM-nya besar.
Sedangkan pada mikrokontroler ROM dan RAM-nya terbatas.
2.1.2a. Mikrokontroler AT89S51
Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan
1 kristal
serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk
membentuk rangkaian reset. Dengan adanya rangkaian reset ini mikrokontroler AT89S51
secara otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi
maksimum 24 MHz dan kapasitor 33 piko-Farad dipakai untuk melengkapi rangkaian
oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.
Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler
memiliki dua macam memori yang sifatnya berbeda.
Read Only Memory (ROM)
yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya,
dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori
program.
Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk
menyimpan data ini disebut sebagai memori data.
Universitas Sumatera Utara
Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan
diproduksi secara massal, program diisikan ke dalam ROM pada saat IC mikrokontroler
dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler menggunakan ROM yang
dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau
PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang
kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih
murah.
Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun
hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.
Sarana Input/Ouput yang disediakan cukup banyak dan bervariasi. AT89S51
mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1
(P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).
AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa
dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD)
diletakan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana
input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa
berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1
berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur
input/ouput parelel kalau T0 dan T1 dipakai.
AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah
sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan
dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau
INT0 dan INT1 dipakai untuk menerima sinyal interupsi.
Universitas Sumatera Utara
Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang
secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister
(SFR).
IC mikrokontroler AT89S51 ditunjukkan pada gambar di bawah ini:
Gambar 2.3. IC Mikrokontroler AT89S51
Deskripsi pin-pin pada mikrokontroler AT89S51 :
Pin 1 sampai 8
Ini adalah port 1 yang merupakan saluran/bus I/O 8 bit dua arah. Dengan internal pull-up
yang dapat digunakan untuk berbagai keperluan. Pada port ini juga digunakan sebagai saluran
alamat pada saat pemrograman dan verfikasi.
Pin 9
Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi akan me-reset
mikrokontroler ini.
Pin 10 sampai 17
Ini adalah port 3 merupakan saluran/bus I/O 8 bit dua arah dengan internal pull-up yang
memiliki fungsi pengganti. Bila fungsi pengganti tidak dipakai, maka ini dapat digunakan
sebagai port paralel 8 bit serbaguna. Selain itu sebagian dari port 3 dapat berfungsi sebagai
Universitas Sumatera Utara
sinyal control pada saat proses pemrograman dan verifikasi. Adapun fungsi penggantinya
seperti pada tabel 2.2.
Tabel 2.1. Fungsi pengganti dari port 3
BIT
NAMA
FUNGSI ALTERNATIF
P3.0
RXD
Untuk menerima data port serial
P3.1
TXD
Untuk mengirim data port serial
P3.2
INTO
Interupsi eksternal 0
P3.3
INT1
Interupsi eksternal 1
P3.4
TO
Input eksternal waktu/pencacah 0
P3.5
T1
Input eksternal waktu/pencacah 1
P3.6
WR
Jalur menulis memori data eksternal
P3.7
RD
Jalur membaca memori data eksternal
Pin 18 dan 19
Ini merupakan masukan ke penguat osilator berpenguat tinggi. Pada mikrokontroler ini
memiliki seluruh rangkaian osilator yang diperlukan pada serpih yang sama
(on chip)
kecuali rangkaian kristal yang mengendalikan frekuansi osilatir. Karenanya pin 18 dan 19
sangat diperlukan untuk dihubungkan dengan kristal. Selain itu
XTAL 1 dapat juga
sebagai input untuk inverting oscillator amplifier dan input ke rangkaian internal clock
sedangkan XTAL 2 merupakan output dari inverting oscillator amplifier.
Pin 20
Merupakan ground sumber tegangan yang diberi symbol GND
Universitas Sumatera Utara
Pin 21 sampai 28
Ini adalah port 2 yang merupakan saluran/bus I/O 8 biit dua arah dengan internal pull-up. Saat
pengambilan data dari program memori eksternal atau selama mengakses data memori
eksternal yang menggunakan alamat 16 bit, port 2 berfungsi sebagai saluran/bus alamat tinggi
(A8 – A15). Sedangkan pada saat mengakses ke data memori eksternal yang menggunakan
alamat bit 8 bit , port 2 mengeluarkan isi dari P2 pada Special Function Register.
Pin 29
Program Store Enable (PSEN) merupakan sinyal pengontrol untuk mengakses program
memori eksternal masuk ke dalam bus selama proses pemberian/pengambilan instruksi
(fetching).
Pin 30
Address Latch Enable (ALE)/ PROG merupakan penahan alamat memori eksternal
(pada port 1) selama mengakses ke memori eksternal. Pena ini juga sebagai pulsa/ sinyal
input pemrograman (PROG)selama proses pemrograman.
Pin 31
External Access Enable (EA) merupakan sinyal kontrol untuk pembacaan memori program.
Apabila diset rendah (L) maka mikrokontroler akan melaksanakan seluruh instruksi dari
memori program eksternal, sedangkan apabila diset tinggi (H) maka mikrokontroler akan
melaksanakan instruksi dari memori program internal ketika isi program counter kurang dari
4096. ini juga berfungsi sebagai tegangan pemrograman (Vpp = +12 V) selama proses
pemrograman.
Universitas Sumatera Utara
Pin 32 sampai 39
Ini adalah port 0 yang merupakan saluran/bus I/O 8 bit open collector, dapat juga digunakan
sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program
eksternal. Pada saat proses pemrograman dan verifikasi, port 0 digunakan sebagai saluran/bus
data. Eksternal pull-ups diperlukan selama proses verifikasi.
Pin 40
Berfungsi sebagai VCC
2.1.2b. Instruksi Dasar Assembler
1. Kode Instruksi Mikrokontriler AT89S51
Mikrokontroler AT89S51 mempunyai 256 kode instruksi. Seluruh instruksi dapat
dikelompokkan dalam 4 bagian yang meliputi instruksi 1 byte sampai 4 byte. Semua instruksi
tersebut dapat dibagi menjadi lima kelompok menurut fungsinya, yaitu:
1. Instruksi Pemindah Data
2. Instruksi Aritmatika
3. Instruksi Logika dan Manipulasi Bit
4. Instruksi Percabangan
5. Instruksi Stack, I/O, dan Kontrol
2. Instruksi Pemindahan Data
Bagian instruksi ini hanya menyalin data suatu lokasi memori (sumber) ke lokasi tertentu
(tujuan), tanpa terjadi perubahan isi data dari sumber. Selain lokasi memori, data juga dapat
dipindahkan dari suatu register ke register lain, pemindahan (penyalinan) antar muka-register
dan antar muka-memori.
Universitas Sumatera Utara
3. Instruksi Aritmatika
Instruksi ini melaksanakan operasi aritmatika yang meliputi penjumlahan, pengurangan,
penambahan satu (increment), pengurangan satu(decrement), perkalian dan pembagian.
4. Instruksi Logika dan Manipulasi Bit
Instruksi ini berhubungan dengan operasi-operasi logika pada accumulator dan manipulasi
bit. Macam dan instruksi ini adalah AND, OR, XOR, perbandingan, pergeseran dan
komplemen data.
5. Instruksi Percabangan
Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini
program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. Instruksi ini
dibedakan atas percabangan bersyarat (misalnya CJNE) dan percabangan tanpa syarat
(misalnya ACALL).
6. Instruksi Stack, I/O, dan Kontrol
Instruksi ini mengatur penggunaan stack, membaca/menulis port I/O, serta pengontrolanpengontrolan.
2.1.3. ADC ( Analog to Digital Converter )
ADC adalah suatu rangkaian yang dapat mengubah tegangan analog menjadi data
digital. Input tegangan analog deferensial dapat meningkatkan common mode rejection dan
pengaturan offset tegangan input nilai nol. Tegangan referensi dapat diatur untuk
mendekodekan berapapun tegangan input pada resolusi 8 bit. ADC yang dipakai adalah jenis
ADC 0804 yang merupakan resolusi 8 bit,merupakan 20 pin dan waktu konversi 100
mikrosecond.
Universitas Sumatera Utara
WR : ( input ) pin ini digunakan untuk memulai konversi tegangan analog menjadi data
digital, dengan memberikan pulsa logika ” 0 ” pada pin ini.
INT: ( output ) pin ini digunakan sebagai indikator apabila ADC talah selesai
menkonversikan tegangan analog menjadi digital, dengan mengeluarkan logika ” 0 “
Vin : Tegangan analog input deferensial, input Vin (+) dan Vin (-) merupakan tegangan
deferensial yang akan mengambil nilai selisih dari kedua input. Dengan memanfaatkan input
Vin maka dapat dilakukan offset tegangan nol pada ADC
Vref : Tegangan referensi dapat diatur sesuai dengan input tegangan pada Vin (+) dan Vin (), Vref = Vin/2
Clock : Clock untuk ADC dapat diturunkan dari clock CPU atau RC eksternal dapat
ditambahkan untuk memberikan generator dari dalam. Clock IN menggunakan schmitt triger.
CS : agar ADC dapat aktif melakukan konversi data maka input Chip Select harus diberi
logika low. Data output akan berada pada kondisi three state apabila CS mendapatkan logika
high.
RD : agar data ADC dapat dibaca oleh sistem mikroprocesor maka pin RD harus diberi
logika low.
IC ADC 0804 dianggap dapat memenuhi kebutuhan dari rangkaian yang akan dibuat.
IC jenis ini bekerja secara cermat dengan menambahkan sedikit komponen sesuai dengan
spesifikasi yang harus diberikan dan dapat mengkonversikan secara cepat suatu masukan
tegangan. Hal-hal yang juga perlu diperhatikan dalam penggunaan ADC ini adalah tegangan
maksimum yang dapat dikonversikan oleh ADC dari rangkaian pengkondisi sinyal, resolusi,
pewaktu eksternal ADC, tipe keluaran, ketepatan dan waktu konversinya.
Universitas Sumatera Utara
Beberapa karakteristik penting ADC :
1. Waktu konversi
2. Resolusi
3. Ketidaklinieran
4. Akurasi
Ada banyak cara yang dapat digunakan untuk mengubah sinyal analog menjadi sinyal
digital yang nilainya proposional. Jenis ADC yang biasa digunakan dalam perancangan
adalah jenis successive approximation convertion atau pendekatan bertingkat yang memiliki
waktu konversi jauh lebih singkat dan tidak tergantung pada nilai masukan analognya atau
sinyal yang akan diubah. Dalam gambar 2.6 memperlihatkan diagram blok ADC tersebut.
Gambar 2.4. Diagram Blok ADC
Secara singkat prinsip kerja dari konverter A/D adalah semua bit-bit diset kemudian
diuji, dan bilamana perlu sesuai dengan kondisi yang telah ditentukan. Dengan rangkaian
yang paling cepat, konversi akan diselesaikan sesudah 8 clock, dan keluaran D/A merupakan
nilai analog yang ekivalen dengan nilai register SAR.
Universitas Sumatera Utara
Apabila konversi telah dilaksanakan, rangkaian kembali mengirim sinyal selesai
konversi yang berlogika rendah. Sisi turun sinyal ini akan menghasilkan data digital yang
ekivalen ke dalam register buffer. Dengan demikian, keluaran digital akan tetap tersimpan
sekalipun akan di mulai siklus konversi yang baru.
IC ADC 0804 mempunyai dua masukan analog, Vin (+) dan Vin (-), sehingga dapat
menerima masukan diferensial. Masukan analog sebenarnya (Vin) sama dengan selisih antara
tegangan-tegangan yang dihubungkan dengan ke dua pin masukan yaitu Vin= Vin (+) – Vin
(-). Kalau masukan analog berupa tegangan tunggal, tegangan ini harus dihubungkan dengan
Vin (+), sedangkan Vin (-) digroundkan. Untuk operasi normal, ADC 0804 menggunakan
Vcc = +5 Volt sebagai tegangan referensi.
IC ADC 0804 memiliki generator clock internal yang harus diaktifkan dengan
menghubungkan sebuah resistor eksternal (R) antara pin CLK OUT dan CLK IN serta sebuah
kapasitor eksternal (C) antara CLK IN dan ground digital.Untuk sinyal clock ini dapat juga
digunakan sinyal eksternal yang dihubungkan ke pin CLK IN. ADC 0804 memilik 8 keluaran
digital sehingga dapat langsung dihubungkan dengan saluran data mikrokomputer. Masukan
(chip select, aktif rendah) digunakan untuk mengaktifkan ADC 0804. Jika berlogika tinggi,
ADC 0804 tidak aktif (disable) dan semua keluaran berada dalam keadaan impedansi tinggi.
Masukan (write atau start convertion) digunakan untuk memulai proses konversi. Untuk
itu harus diberi pulsa logika 0. Sedangkan keluaran (interrupt atau end of convertion)
menyatakan akhir konversi. Pada saat dimulai konversi, akan berubah ke logika 1. Di akhir
konversi akan kembali ke logika 0.
Universitas Sumatera Utara
Mode Operasi ADC0804
a. Mode Operasi Kontinyu
Agar ADC0804 dapat dioperasikan pada mode operasi kontinyu (proses membaca terus
menerus dan tanpa proses operasi jabat tangan), maka penyemat CS dan RD ditanahkan,
sedangkan penyemat WR dan INTR tidak dihubungkan kemanapun. Prinsip kerja operasi
kontinyu ini yaitu ADC akan memulai konversi ketika INTR kembali tidak aktif (logika ‘1’).
Setelah proses konversi selesai, INTR akan aktif (logika ‘0’). Untuk memulai konversi
pertama kali WR harus ditanahkan terlebih dahulu, hal ini digunakan untuk mereset SAR.
Namun pada konversi berikutnya untuk mereset SAR dapat menggunakan sinyal INTR saat
aktif (logika ‘0’) dan mulai konversi saat tidak aktif (logika ‘1’).
Ketika selesai konversi data hasil konversi akan dikeluarkan secara langsung dari
buffer untuk dibaca karena RD ditanahkan. Saat sinyal INTR aktif, sinyal ini digunakan
untuk me-reset SAR. Saat INTR kembali tidak aktif (logika ‘1’) proses konversi dimulai
kembali.
b. Mode Operasi Hand-Shaking
ADC0804 dioperasikan pada mode hand shaking . Agar ADC dapat bekerja, CS harus
berlogika ‘0’. Ketika WR berlogika ‘0’, register SAR akan direset, sedangkan ketika sinyal
WR kembali ‘1’, maka proses konversi segera dimulai. Selama konversi sedang berlangsung,
sinyal INTR akan tidak aktif (berlogika ‘1’), sedangkan saat konversi selesai ditandai dengan
aktifnya sinyal INTR (logika ‘0’).
Universitas Sumatera Utara
Setelah proses konversi selesai data hasil konversi tetap tertahan pada buffer ADC.
Data hasil konversi tersebut akan dikeluarkan dengan mengirim sinyal RD berlogika ‘0’.
Setelah adanya sinyal sinyal RD ini, maka sinyal INTR kembali tidak aktif.
2.1.4. LCD (Liquid Crystal Display)
Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan menggunakan
mikrokontroler. LCD(Liquid Crystal Display) dapat berfungsi untuk menampilkan suatu nilai
hasil sensor ,menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler.Pada
praktek proyek ini,LCD yang digunakan adalah LCD 16 x 2 yang artinya lebar display 2 baris
16 kolom dengan 16 Pin konektor.
Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain:
VCC ( pin 1)
Merupakan sumber tegangan +5V
GND 0V ( pin 2)
Merupakan sambungan ground
VEE (pin 3)
Merupakan input tegangan Kontras LCD
RS Register Select (pin 4)
Merupakan register pilihan 0 = Register Perintah, 1 = Register Data
R/W (pin 5)
Merupakan read select , 1 = Read, 0 = Write
Enable Clock LCD (pin 6)
Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data
Universitas Sumatera Utara
D0 – D7 ( pin 7 – pin 14)
Merupakan Data Bus 1 – 7 ke port
Anoda (pin 15)
Merupakan masukan Tegangan positif backlight
Katoda (pin 16)
Merupakan masukanTegangan negatif backlight
Gambar 2.5 . LCD 2 X16
Display
karakter
pada
LCD
diatur
oleh
pin
EN,
RS
dan
RW:
Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sebuah data
sedang dikirimkan. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat
logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang
lain telah siap, set EN dengan logika “1” dan tunggu dan berikutnya di set EN ke logika low
“0” lagi. Jalur R/W adalah jalur kontrol Read/ Write. Ketika R/W berlogika low (0), maka
informasi pada bus data akan dituliskan pada layar LCD. Ketika R/W berlogika high ”1”,
maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi
umum pin R/W selalu diberi logika low “0”.
Gambar 2.6. Rangkaian skematik konektor yang dihubungkan dari LCD ke
Mikrokontroler
Universitas Sumatera Utara
2.2. Perangkat Lunak ( Bahasa BASIC Menggunakan BASCOM- 8051 )
Bascom-8051 adalah program BASIC compiler berbasis windows untuk mikrokontroler
keluarga 8051seperti AT89C51, AT89C2051, dan yang lainya. BASCOM-8051 merupakan
pemrograman dengan bahasa tingkat tinggi BASIC yang dikembangkan dan dikeluarkan oleh
MCS Elektronik.
Kita akan membahas penggunaan karakter, tipe data, variable, konstanta, opersai-operasi
aritmatika dan logika, array, dan control program.
2.2.1. Karakter BASCOM
Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-x),
karakter numeric (0-9), dan karakter special(lihat tabel:
Karakter
Nama
Blank
‘
Apostrophe
*
Asterik (symbol perkalian)
+
Plus sign
,
Comma
-
Minus sign
.
Period (decimal point)
/
Slash (division symbol)will be handled as\
:
Colon
“
Double quotation mark
;
Semicolon
<
Less than
=
Equal sign (assignment symbol or relational operator
>
Greater than
\
Backspace (integer or word division symbol)
Tabel 2.2 Karakter Spesial
Universitas Sumatera Utara
2.2.2. Tipe Data
Setiap variable dalam BASCOM memiliki tipe data yang menunjukan daya tampungnya. Hal
ini berhubungan dengan penggunaan memori mikrontroler. Berikut adalah tipe data pada
BASCOM berikut keterangannya.
Tipe Data
Ukuran (byte)
Range
Bit
1/8
-
Byte
1
0-255
Integer
2
-32,768-32,767
Word
2
0-65535
Long
4
-214783648-+2147483647
Single
4
-
String
Hingga 254
-
Tabel 2.3 Tipe Data
2.2.3. Variabel
Variable dalam sebuah pemrograman berfungsi sebagai tempat penyimpanan data atau
penampungan data sementara, misalnya menampung hasil perhitungan, menampung
data hasil pembacaan register, dan lainya. Variable merupakan pointer yang menunjukan
pada alamat memori fisik dan mikrontroler.
Dalam BASCOM , ada beberapa aturan dalam penamaan sebuah varibel:
a. Nama variable maksimum terdiri atas 32 karakter.
b. Karakter bias berupa angka atau huruf.
Universitas Sumatera Utara
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 digunakan, maka varibel harus dideklarasikan terlebih dahulu. Dalam BASCOM,
ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara pertama adalah
menggunakan pernyataan ‘DIM’ diikuti nama tipe datanya. Contoh pendeklarasian
menggunakan DIM sebagai berikut:
Dim nama as byte
Dim tombol 11 as integer
Dim tombol 12 as word
Dim tombol 13 as word
Dim tombol 14 as word
Dim kas as string*10
2.2.4. Alias
Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain. Tujuannya
adalah mempermudah proses pemrograman. Umumnya, alias dipergunakan untuk mengganti
nama variabel yang telah baku, seperti port mikrokontroller.
LEDBAR alias P1
Tombol1 alias P0.1
Tombol alias P0.2
Universitas Sumatera Utara
Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah kondisi P0.1. selain
mengganti nama port, kita dapat pula menggunakan alias untuk mengakeses bit tertentu dari
sebuah variabel yang telah dideklarasikan.
2.2.5. Konstanta
Dalam BASCOM, selain variabel kita mengenal pula
konstanta. Konstanta merupakan
variablel pula. Perbedaanya 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. Misalnya, kita akan lebih muda menulis phi daripada
menulis 3,14159867. Sama seperti variabel,agar konstanta bias dikenali oleh program, maka
harus dideklarasikan terlebih dahulu. Berikut adalah cara pendeklarasian sebuah konstanta.
Dim A As Const 5
Dim b1 As Const & B1001
Cara lain yang paling mudah:
Const Cybte = &HF
Const Cint = -1000
Const Csingle =1.1
Const Cstring = “ test”
Universitas Sumatera Utara
2.2.6. Array
Dengan array, kita bias 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. Artinya nilai maksimum sebuah
indeks sebesra 65535.
Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaannya kita
mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array:
Dim kelas (10) as byte
Dim C as Integer
For C = 1 to10
a (c) = c
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,
kita menggunakan indeks dimana elemen disimpan.
Pada program diatas, elemen-elemen arraynya dikeluarkan ke port 1 dari mikrokontroler.
Universitas Sumatera Utara
2.2.7. Operasi-Operasi Dalam BASCOM
Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi, membandingkan,
atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operatoroperator yang tersedia di BASCOM dan bagaimana sebuah pernyataan terbentuk dan
dihasilkan dan operator-oprerator berikut:
a.Oprator Aritmatika
Operator digunakan dalam perhitungan. Operator aritmatika meliputi + (tambah), (kurang), /
(bagi), dan * (kali).
b. Oprator Relasi
operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk
membuat keputusan sesuai dengan program yag kita buat. Operator relasi meliputi:
operaotor Relasi
Pernyataan
=
Sama dengan
X=Y
<>
Tidak sama dengan
X<>Y
<
Lebih kecil dari
X<Y
>
Lebih besar dari
X>Y
<=
Lebih kecil atau sama dengan
X<=Y
>=
Lebih besar atau sama dengan
X>=Y
Tabel 2.4. Tabel Operator Relasi
c. Operator Logika
operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean.
Dalam BASCOM, ada empat buah logika, yaitu AND ,OR, NOT, dan XOR.
do
X = 100
Cls
Universitas Sumatera Utara
Lcd "namaku Satih"
Lowerline
Lcd "nilaiku selalu";x
Cls
Lcd "<<<< Hebat >>>>"
For x=1 to 16
Shiflcd left
next
for x=1 to 32
shiftlcd right
Waims 200
next
x = 100
cls
lcd hex x
loop.
Penjelasan Programnya sebagai berikut:
a.Dim x As Byte
pernyataan di atas merupakan pendeklarasian variable xdengan ukuran byte.
b.Config LCD = 16*2
oleh karena itu, konfigurasi yang dapat kita lakukan adalah mendeklarsikannya delisting
program yang kita buat seperti dikonrolkan di atas.
c.CLS
Perintah CLS berfungsi membersihkan atau mengosongkan tampilan LCD
d.Lowerline
Perintah berfungsi memindahkan kursor ke baris bawah. Karena LCD yang digunakan adalah
LCD 2 x 16, maka LCD memiliki 2 baris dan kolom.
Universitas Sumatera Utara
e.X =100
Lcd “namaku Satih”
Lowerline
Lcd “ nilaiku selalu”:x
Ketika kita menjalankan perintah diatas, maka keluaranya adalah
Namaku Satih
Nilaiku selalu 100
Contoh di atas menunjukan bahwa kita dapat menampilkan isi sebuah varibel menggunakan
LCD hanya dengan menulis.
f.ShiftLCD left/right
a. Perintah digunakan untuk menggeser tampilan LCD ke kiri atau ke kanan sebanyak
1 langkah. Perintah berguna untuk menampilkan kalimat yang panjang dan membuat animasi
di LCD.
b.Lcdhex x
Perintah berfungsi mengirim isi sebuah variable ke LCD dalam format hexadecimal.
Jika kita menjalankan program, maka hasilnya 64.
Universitas Sumatera Utara
Download