Jumat, 21 Agustus 2015

Materi Mikroprosesor

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.
Seri
Flash (kbytes)
RAM (bytes)
EEPROM (kbytes)
Pin I/O
Timer 16-bit
Timer 8-bit
UART
PWM
ADC 10-bit
SPI
ISP
ATmega8
8
1024
0.5
23
1
1
1
3
6/8
1
Ya
ATmega8535
8
512
0.5
32
2
2
1
4
8
1
Ya
ATmega16
16
1024
0.5
32
1
2
1
4
8
1
Ya
ATmega162
16
1024
0.5
35
2
2
2
6
8
1
Ya
ATmega32
32
2048
1
32
1
2
1
4
8
1
Ya
ATmega128
128
4096
4
53
2
2
2
8
8
1
Ya
ATtiny12
1
-
0.0625
6
-
1
-
-
-
-
Ya
ATtiny2313
2
128
0.125
18
1
1
1
4
-
1
Ya
ATtiny44
4
256
0.25
12
1
1
-
4
8
1
Ya
ATtiny84
8
512
0.5
12
1
1
-
4
8
1
Ya

 
 
Keterangan: 
  1. Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler
  2. RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running
  3. EEPROM  (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running
  4. ·         Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program
  5. Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa 
  6. UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous
  7. PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa
  8. 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
  9. SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous
  10.  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”)



1 komentar:

luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com