5
BAB II PENGENALAN BAHASA C
2.1. PENDAHULUAN
Bahasa pemrograman C adalah sebuah bahasa mid-level, namun memiliki fitur highlevel seperti support pada fungsi dan modul dan juga memiliki fitur lowlevel seperti mengakses
hardware melalui pointer. Dengan menggunakan bahasa C, kita dapat dengan mudah untuk pindah ke jenis mikrokontroler yang lain, lebih mudah dan cepat dalam menulis kode
program, dan lebih mudah dimengerti, dan lebih mudah dalam melakukan debugging. Berikut penjelasan kode kode dasar bahasa C untuk pemrograman mikrokontroler keluarga MCS51
yang sering digunakan:
2.2. PREPROSESOR
Merupakan bagian program yang digunakan untuk mendefenisikan library berupa file header .h yang ikutkan include ke dalam program. Beberapa contoh penggunaannya: include
mengikutsertakan file at89x51.h include include
2.3. TIPE DATA
char : 1 byte -128 sd 127 unsigned char : 1 byte 0 sd 255
int : 2 byte -32768 sd 32767 unsigned int : 2 byte 0 sd 65535
long : 4 byte -2147483648 sd 2147483647 unsigned long : 4 byte 0 sd 4294967295
float : bilangan desimal array : kumpulan data-data yang sama tipenya.
Terkadang untuk mendefenisikan tipe data dengan nama tersendiri dapat menggunakan keyword typedef.
Perhatikan contoh berikut : typedef unsigned char ubyte; ubyte merupakan nama lain dari tipe data unsigned char
2.4. DEKLARASI VARIABEL , KONSTANTA DAN ALAMAT IO
Variabel merupakan lokasi memori tempat penyimpanan data yang nilai datanya dapat diubah pada saat program dijalankan. Sementara Konstanta merupakan lokasi memori
penyimpan data yang nilai datanya tetapkonstan.
6
Ketika kita mendeklarasikan suatu variabel atau konstanta secara otomatis compiler bahasa C akan mengalokasikan sebuah lokasi memori pada RAM internal MCS51 yang akan
digunakan untuk menyimpan nilai data dari variabelkonstanta tersebut. Untuk mendeklarasikan variabel data penulisan kode programnya sebagai berikut: [tipe data] [nama
variabel] [= nilai awal Optional] Contoh:
int counter = 0; unsigned char sum;
Untuk mendeklarasikan konstanta penulisannya adalah sebagai berikut: [define] [nama konstanta] [nilai konstanta]
Contoh: define phi 3.14
define data_led 0xFF Selain variabel dan konstanta kita juga dapat mendeklarasikan sebuah variabel data dari
sebuah PORT IO atau Memori External dengan alamat tertentu. Yaitu dengan cara mengalokasikan lokasi memori alamat PORT IO secara manual menggunakan kata kunci
xdata atalamat Contoh penggunaan xdata at0x4002
include xdata at0x4002
unsigned char PORT_LED; unsigned char data_led
void main { PORT_LED = 0x40; }
Pada contoh program diatas, alamat 0x4002 dialokasikan sebagai alamat PORT_LED.Alamat external ini merupakan alamat yang dikeluarkan melaui Bus Alamat dari
MCS51. Tipe data yang harus digunakan untuk mendeklarasikan sebuah PORT adalah unsigned char.
Contoh menuliskanmengeluarkan data ke sebuah PORT Output
[nama_port] = [data_port] PORT_LED = 0x40;
membaca data dari sebuah PORT Input [variabel_data] = [nama_port]
7
data_led = PORT_LED;
2.5. STRUKTUR PERCABANGAN