1 PENDAHULUAN
1.1 Apa itu Mikrokontroler?
Komputer hadir dalam kehidupan manusia baru 50 tahun
terakhir, namun efeknya sangat besar dalam mengubah kehidupan manusia, bahkan
melebihi penemuan manusia lainnya seperti radio, telepon, automobil, dan
televisi. Begitu banyak aplikasi memanfaatkan komputer, terutama dalam
pemanfaatan kemampuan chip mikroprosesor di dalamnya yang dapat melakukan
komputasi sangat cepat, dapat bekerja sendiri dengan diprogram, dan dilengkapi
memori untuk menyimpan begitu banyak data. Seiring dengan perkembangan zaman,
semakin luaslah kebutuhan akan kemampuan seperti yang dimiliki oleh komputer,
sehingga menyebabkan munculnya terobosan-terobosan baru yang salah satunya
adalah dibuatnya chip mikrokontroler.
Mikrokontroler
adalah single chip computer yang memiliki kemampuan untuk diprogram dan
digunakan untuk tugas-tugas yang berorientasi kontrol. Mikrokontroler datang
dengan dua alasan utama, yang pertama adalah kebutuhan pasar (market need) dan yang kedua adalah
perkembangan teknologi baru. Yang dimaksud dengan kebutuhan pasar adalah
kebutuhan yang luas dari produk-produk elektronik akan perangkat pintar sebagai
pengontrol dan pemroses data. Sedangkan yang dimaksud dengan perkembangan
teknologi baru adalah perkembangan teknologi semikonduktor yang memungkinkan
pembuatan chip dengan kemampuan komputasi yang sangat cepat, bentuk yang
semakin mungil, dan harga yang semakin murah.
1.2 Perbedaan
Mikrokontroler dan Mikroprosesor
Terdapat perbedaan yang signifikan antara mikrokontroler dan
mikroprosessor. Perbedaan yang utama antara keduanya dapat dilihat dari dua
faktor utama yaitu arsitektur perangkat keras (hardware architecture) dan aplikasi masing-masing.
Ditinjau dari segi arsitekturnya, mikroprosesor hanya
merupakan single chip CPU, sedangkan mikrokontroler dalam IC-nya selain CPU
juga terdapat piranti lain yang memungkinkan mikrokontroler berfungsi sebagai
suatu single chip computer. Dalam sebuah IC mikrokontroler telah terdapat ROM,
RAM, EPROM, serial interface dan paralel interface, timer, interrupt
controller, konverter Anlog ke Digital, dan lainnya (tergantung feature yang
melengkapi mikrokontroler tersebut).
Sedangkan dari segi aplikasinya, mikroprosessor hanya
berfungsi sebagai Central Processing Unit yang menjadi otak komputer, sedangkan
mikrokontroller, dalam bentuknya yang mungil, pada umumnya ditujukan untuk
melakukan tugas–tugas yang berorientasi kontrol pada rangkaian yang membutuhkan
jumlah komponen minimum dan biaya rendah (low cost).
1.3 Aplikasi
Mikrokontroler
Karena kemampuannya yang tinggi, bentuknya yang kecil,
konsumsi dayanya yang rendah, dan harga yang murah maka mikrokontroler begitu
banyak digunakan di dunia. Mikrokontroler digunakan mulai dari mainan
anak-anak, perangkat elektronik rumah tangga, perangkat pendukung otomotif,
peralatan industri, peralatan telekomunikasi, peralatan medis dan kedokteran,
sampai dengan pengendali robot serta persenjataan militer. Terdapat beberapa
keunggulan yang diharapkan dari alat-alat yang berbasis mikrokontroler (microcontroller-based solutions) :
·
Kehandalan tinggi (high
reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration)
·
Ukuran yang semakin dapat
diperkecil (reduced in size)
·
Penggunaan komponen
dipersedikit (reduced component count)
yang juga akan menyebabkan biaya produksi dapat semakin ditekan (lower manufacturing cost)
·
Waktu pembuatan lebih singkat (shorter development time) sehingga lebih
cepat pula dijual ke pasar sesuai kebutuhan (shorter time to market)
·
Konsumsi daya yang rendah (lower power consumption)
1.4 Perkembangan
Mikrokontroler
Karena kebutuhan yang tinggi terhadap “chip-chip pintar”
dengan berbagai fasilitasnya, maka berbagai vendor juga berlomba untuk
menawarkan produk-produk mikrokontrolernya. Hal tersebut terjadi semenjak tahun
1970-an. Motorola mengeluarkan seri
mikrokontroler 6800 yang terus dikembangkan hingga sekarang menjadi 68HC05,
68HC08, 68HC11, 68HC12, dan 68HC16. Zilog juga mengeluarkan seri mikroprosesor
Z80-nya yang terkenal dan terus dikembangkan hingga kini menjadi Z180 dan
kemudian diadopsi juga oleh mikroprosesor Rabbit. Intel mengeluarkan
mikrokontrolernya yang populer di dunia yaitu 8051, yang karena begitu
populernya maka arsitektur 8051 tersebut kemudian diadopsi oleh vendor lain
seperti Phillips, Siemens, Atmel, dan vendor-vendor lain dalam produk
mikrokontroler mereka. Selain itu masih ada mikrokontroler populer lainnya
seperti Basic Stamps, PIC dari Microchip, MSP 430 dari Texas Instrument dan
masih banyak lagi.
Selain mikroprosesor dan mikrokontroler, sebenarnya telah
bemunculan chip-chip pintar lain seperti DSP prosesor dan Application Spesific
Integrated Circuit (ASIC). Di masa depan, chip-chip mungil berkemampuan sangat
tinggi akan mendominasi semua desain elektronik di dunia sehingga mampu
memberikan kemampuan komputasi yang tinggi serta meminimumkan jumlah
komponen-komponen konvensional.
2 MIKROKONTROLER AVR
Mikrokontroler AVR merupakan salah satu jenis arsitektur
mikrokontroler yang menjadi andalan Atmel. Arsitektur ini dirancang memiliki
berbagai kelebihan dan merupakan penyempurnaan dari arsitektur
mikrokontroler-mikrokontroler yang sudah ada.
Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel
dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high
performance. Di Indonesia, mikrokontroler AVR banyak dipakai karena fiturnya
yang cukup lengkap, mudah untuk didapatkan, dan harganya yang relatif
terjangkau.
2.1 Varian
Mikrokontroler AVR
Antar seri mikrokontroler AVR memiliki beragam tipe dan
fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set
instruksi yang relatif tidak berbeda. Tabel 2.1 membandingkan beberapa seri
mikrokontroler AVR buatan Atmel.
|
Keterangan:
- Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler
- RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running
- EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running
- · Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program
- Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa
- UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous
- PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa
- ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu
- SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous
- ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal
2.2 Arsitektur
Mikrokontroler AVR
Mikrokontroler AVR sudah menggunakan konsep arsitektur
Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan
single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan
RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat
berlangsung sangat cepat dan efisien. Blok
sistem mikrokontroler AVR dapat dilihat dalam Gambar 2.1.
Gambar 2.1 Blok Diagram
Mikrokontroler AVR
Salah satu seri mikrokontroler AVR yang banyak menjadi
andalan saat ini adalah tipe ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak
digunakan untuk sistem yang relatif sederhana dan berukuran kecil. Berikut
adalah feature-feature mikrokontroler seri ATtiny2313.
·
Kapasitas memori Flash 2 Kbytes
untuk program
·
Kapasitas memori EEPROM 128
bytes untuk data
·
Maksimal 18 pin I/O
·
8 interrupt
·
8-bit timer
·
Analog komparator
·
On-chip oscillator
·
Fasilitas In System Programming
(ISP)
Sedangkan ATmega8535 banyak digunakan untuk sistem yang
kompleks, memiliki input sinyal analog, dan membutuhkan memori yang relatif
lebih besar. Berikut adalah feature-feature mikrokontroler seri ATmega8535.
·
Memori Flash 8 Kbytes untuk
program
·
Memori EEPROM 512 bytes untuk
data
·
Memori SRAM 512 bytes untuk
data
·
Maksimal 32 pin I/O
·
20 interrupt
·
Satu 16-bit timer dan dua 8-bit
timer
·
8 channel ADC 10 bit
·
Komunikasi serial melalui SPI
dan USART
·
Analog komparator
·
4 I/O PWM
·
Fasilitas In System Programming
(ISP)
2.3 Peta Memori
Mikrokontroler AVR
Gambar 2.2 memperlihatkan peta memori mikrokontroler AVR
yang dapat dijelaskan sebagai berikut:
Gambar 2.2 Peta memori
mikrokontroler AVR
2.3.1 Memori Program
Mikrokontroler AVR memiliki 8 kbyte On Chip In System
Reprogrammable Flash Memory untuk menyimpan program. Karena semua instruksi AVR
The ATmega8535
contains 8K bytes On-chip In-System Reprogrammable Flash memory
for program
storage. Since all AVR instructions are 16 or 32 bits wide, the Flash is
organized as 4K x
16. For software security, the Flash Program memory space is
divided into two
sections, Boot Program section and Application Program section.
The Flash memory
has an endurance of at least 10,000 write/erase cycles. The
ATmega8535
Program Counter (PC) is 12 bits wide, thus addressing the 4K program
memory locations.
The operation of Boot Program section and associated Boot Lock
bits for software
protection are described in detail in “Boot Loader Support – Read-
While-Write
Self-Programming” on page 224. “Memory Programming” on page 237 contains
a detailed
description on Flash Programming in SPI or Parallel Programming
mode.
Constant tables
can be allocated within the entire program memory address space (see
the LPM – Load Program Memory instruction
description).
2.3.2 Memori Data
2.4 Penjelasan Fungsi
Pin Mikrokontroler AVR
IC mikrokontroler dikemas (packaging) dalam bentuk yang
berbeda. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar
2.3 menunjukkan salah satu bentuk IC seri mikrokontroler AVR ATmega8535.
Gambar 2.3 Bentuk fisik
Mikrokontroler ATMega8535
Berikut adalah penjelasan fungsi tiap kaki.
A. Port A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu
sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin
port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain
itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D
converter.
B. Port B
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu
sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin
port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.
Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang
dapat dilihat dalam Tabel 2.2.
Tabel 2.2 Fungsi Khusus Port B
Port Pin
|
Fungsi
Khusus
|
PB0
|
T0
= timer/counter 0 external counter input
|
PB1
|
T1
= timer/counter 0 external counter input
|
PB2
|
AIN0
= analog comparator positive input
|
PB3
|
AIN1
= analog comparator negative input
|
PB4
|
SS
= SPI slave select input
|
PB5
|
MOSI
= SPI bus master output / slave input
|
PB6
|
MISO
= SPI bus master input / slave output
|
PB7
|
SCK
= SPI bus serial clock
|
C. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu
sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin
port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain
itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai
oscillator untuk timer/counter 2.
D. Port D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu
sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin
port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain
itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti
yang dapat dilihat dalam Tabel 2.3.
Tabel 2.3 Fungsi Khusus Port D
Port Pin
|
Fungsi
Khusus
|
PD0
|
RDX
(UART input line)
|
PD1
|
TDX
(UART output line)
|
PD2
|
INT0
( external interrupt 0 input )
|
PD3
|
INT1
( external interrupt 1 input )
|
PD4
|
OC1B
(Timer/Counter1 output compareB match output)
|
PD5
|
OC1A
(Timer/Counter1 output compareA match output)
|
PD6
|
ICP
(Timer/Counter1 input capture pin)
|
PD7
|
OC2
(Timer/Counter2 output compare match output)
|
E. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini
diberi masukan low selama minimal 2 machine cycle maka system akan di-reset.
F. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan
input ke internal clock operating circuit.
G. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.
H. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki
ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
I. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk
operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan
ke kaki ini.
J. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke
GND, kecuali jika board memiliki anlaog ground yang terpisah.
2.5 Rangkaian Sistem
Minimum AVR 8535
Sistem minimum (sismin) mikrokontroler adalah rangkaian
elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler.
Sismin ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan
fungsi tertentu. Di keluarga mikrokontroler AVR, seri 8535 adalah salah satu
seri yang sangat banyak digunakan.
Untuk membuat rangkaian sismin Atmel AVR 8535 diperlukan
beberapa komponen yaitu:
- IC mikrokontroler
ATmega8535
- 1 XTAL 4 MHz atau 8 MHz
(XTAL1)
- kapasitor kertas yaitu dua
22 pF (C2 dan C3) serta 100 nF (C4)
- 1 kapasitor elektrolit 4.7
uF (C12) 2 resistor yaitu 100 ohm (R1) dan 10 Kohm (R3)
- 1 tombol reset pushbutton
(PB1)
Selain itu tentunya diperlukan power suply yang bisa
memberikan tegangan 5V DC.
Rangkaian sistem minimum ini sudah siap untuk menerima
sinyal analog (fasilitas ADC) di port A. Rangkaiannya dapat dilihat dalam
Gambar 2.4.
Gambar 2.4 Sistem Minimum
Mikrokontroler ATMega 8535
3 PEMROGRAMAN
BAHASA C UNTUK AVR
Bahasa C luas digunakan untuk pemrograman berbagai jenis
perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level
language, dimana memudahkan programmer menuangkan algoritmanya. Untuk
mengetahui dasar bahasa C dapat dipelajari sebagai berikut.
3.1 Struktur Penulisan Program
Struktur
penulisan bahasa C secara umum terdiri atas empat blok, yaitu header, deklarasi
konstanta global dan atau variable, fungsi dan atau prosedur (dapat di bawah
program utama), dan program utama.
CONTOH
|
|
/*
HEADER untuk memanggil library yang akan digunakan */
#include
< [library1.h] > // Opsional
#include
< [library2.h] > // Opsional
#define
[nama1] [nilai] ; // Opsional
#define
[nama2] [nilai] ; // Opsional
/*
Deklarasi konstanta dan atau variabel global */
[global
variables] // Opsional
/*
Deklarasi fungsi dan atau prosedur */
[functions]
// Opsional
/*
Program utama */
void
main(void)
{
/*
Deklarasi konstanta dan atau variabel lokal */
[Deklarasi
local variable/constant]
[Isi
Program Utama]
}
|
#include
<mega8535.h>
#include
<stdio.h>
unsigned
char dt, xx;
char
buf[33];
unsigned
char lampu (unsigned char bitn)
{
PORTA=bitn
& 0x3C;
}
void
main (void);
{
char
data;
PORTA=0x00;
DDRA=0xF0;
While
(1)
{
…
};
}
|
3.2 Tipe Data
Tabel 3.1 memperlihatkan tipe-tipe variable data yang dapat
digunakan di compiler Code Vision AVR.
Tabel 3.1 Tipe Data
Tipe
|
Size (bit)
|
Range
|
Bit
|
1
|
0,1
|
Char
|
8
|
-128 to 127
|
unsigned char
|
8
|
0 to 255
|
signed char
|
8
|
-128 to 127
|
Int
|
16
|
-32768 to
32767
|
short int
|
16
|
-32768 to
32767
|
unsigned int
|
16
|
0 to 65535
|
signed int
|
16
|
-32768 to
32767
|
long int
|
32
|
-2147483648
to 2147483647
|
unsigned long int
|
32
|
0 to
4294967292
|
signed long int
|
32
|
-2147483648
to 2147483647
|
Float
|
32
|
±1.175e-38
to ±3.402e38
|
Double
|
32
|
±1.175e-38
to ±3.402e38
|
3.3 Deklarasi Variabel
dan Konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat
diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak
dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan:
Global variabel/konstanta yang dapat diakses di seluruh
bagian program.
Local variabel/konstanta yang hanya dapat diakses oleh
fungsi tempat dideklarasikannya.
Identifikasi label, variable dan fungsi dapat berupa huruf
(A…Z, a…z) dan angka (0…9), juga karakter underscore (_). Meskipun begitu identifikasi hanya bisa
dimulai dengan huruf atau karakter underscore. Yang lebih penting lagi,
identifikasi ini Case sensitive, yaitu huruf besar dan huruf kecil berbeda.
Misalnya, variable1 tidak sama dengan Variable1. Identifikasi bisa memuat
sebanyak 32 karakter.
Penulisan konstanta adalah sebagai berikut:
- Integer atau long integer
dapat ditulis dengan format decimal (contoh 1234), biner dengan awalan 0b
(contoh 0b101001), heksadesimal dengan awalan 0x (contoh 0xff) atau octal
dengan awalan 0 (contoh 0777).
- Unsigned integer ditulis
dengan diakhiri U (contoh 10000U)
- Long integer ditulis
dengan diakhiri L (contoh 99L)
- Unsigned long integer
ditulis dengan diakhiri UL (contoh 99UL)
- Floating point ditulis
dengan diakhiri F (contoh 1.234F)
- Karakter harus dituliskan
dalam tanda kutip (contoh ‘a’)
- String harus dalam tanda
kutip dua (contoh “Saya Belajar C”).
3.4 Komentar
Komentar diawali dengan tanda /* dan diakhiri dengan */
Contoh:
/* Ini komentar */
/* Ini komentar
Multi baris */
Sedangkan komentar satu baris bisa dengan tanda //
Contoh:
// Ini juga komentar
3.5 Reserved Keywords
Berikut ini adalah daftar kata baku yang tidak bisa dipakai
(reserved keywords) untuk label, identifikasi atau variabel.
Break
|
Flash
|
Signed
|
Bit
|
Float
|
Sizeof
|
Case
|
For
|
Sfrb
|
Char
|
Funcused
|
Sfrw
|
Const
|
Goto
|
Static
|
Continue
|
If
|
Struct
|
Default
|
Inline
|
Switch
|
Do
|
Int
|
Typedef
|
Double
|
Interrupt
|
Union
|
Eeprom
|
Long
|
Unsigned
|
Else
|
Register
|
Void
|
Enum
|
Return
|
Volatile
|
Extern
|
Short
|
While
|
3.6 Statement
Statement adalah setiap operasi dalam pemrograman, harus
diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali
dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /*
] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar.
Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu
3.7 Function dan
Prosedur
Function
adalah bagian program yang dapat dipanggil oleh program utama.
Penulisan :
[tipe data hasil] [nama function]([tipe data input 1],[tipe
data input 2])
{
[statement] ;
}
Prosedur
adalah suatu kumpulan instruksi untuk mengerjakan suatu keperluan tertentu
tanpa mengembalikan suatu nilai.
Penulisan:
void [nama prosedur] ([parameter1, parameter2])
{
[statement]
}
3.8 Conditional
statement dan looping
3.8.1 if else
If else digunakan untuk penyeleksian kondisi
if ( [persyaratan] ) {
[statement1];
[statement2];
}
else {
[statement3];
[statement4];
}
3.8.2 For
For digunakan untuk looping dengan jumlah yang sudah
diketahui
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) {
[statement1];
[statement2];
}
3.8.3 While
While digunakan untuk
looping jika dan selama memenuhi syarat tertentu
while ( [persyaratan] ) {
[statement1];
[statement2];
}
3.8.4 Do while
Do while digunakan
untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
do {
[statement1];
[statement2];
}
while ( [persyaratan] )
3.8.5 Switch case
Switch case digunakan
untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) {
case [nilai1]: [statement];
break;
case [nilai2]: [statement];
break;
}
3.9 Operasi logika dan
biner
3.9.1 Operasi Logika
AND : &&
NOT : !
OR : ||
3.9.2 Operasi Biner
AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~
3.10 Operasi Relasional
(perbandingan)
Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=
3.11 Operasi aritmatika
+ , - , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di
tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
% : sisa bagi
++ , -- : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30
a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30x5 =
150.
a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 =
33.
a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6.
a-- ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.
3.12 Memasukkan Bahasa
Assembly (in line assembly)
Dalam pemrograman dengan bahasa C, bahasa assembly masih
dapat dimasukkan ke dalam program C. Struktur penulisannya pun juga mudah,
yaitu:
…
#asm // dimulai
dengan #asm
nop // blok bahasa assembly
nop
#endasm // diakhiri dengan #endasm
…
Atau jika hanya beberapa instruksi maka bisa dituliskan
dengan;
…
#asm(“nop`nop`nop”)
makasih banyak min
BalasHapussolder uap