Anda di halaman 1dari 20

Dasar

Dasar
Pemrograman
Pemrograman
C
C
Hendawan Hendawan Soebhakti Soebhakti
Oktober Oktober 2009 2009
Sistem Mikrokontroler Hendawan Soebhakti 2
Tujuan
Tujuan
Mampu membuat program mikrokontroler Mampu membuat program mikrokontroler
dengan bahasa C dengan bahasa C
Mampu menjelaskan struktur bahasa C Mampu menjelaskan struktur bahasa C
Sistem Mikrokontroler Hendawan Soebhakti 3
Sub
Sub
Pokok
Pokok
Bahasan
Bahasan
Library Library
Fungsi Fungsi
Tipe Data Tipe Data
Konstanta Konstanta
Variable Variable
Konversi Tipe Data Konversi Tipe Data
Sistem Mikrokontroler Hendawan Soebhakti 4
Struktur
Struktur
Program
Program
Bahasa
Bahasa
C
C
1. / *****************************************************
2. Pr oj ect : Tampi l an LED
3. Ver si on : 1
4. Dat e : 9/ 29/ 2009
5. Aut hor : Hendawan Soebhakt i
6. Company : Pol i t ekni k Bat am
7. Comment s:
8. Menampi l kan var i asi nyal a LED pada PORTA
9. *****************************************************/
10. #i ncl ude <mega8535. h>
11. #i ncl ude <del ay. h>
12. #def i ne on 1
13. #def i ne of f 0
14. / / Decl ar e your gl obal var i abl es her e
15. unsi gned char dat a; / / Gl obal Var i abl e
16. voi d Geser ( voi d) / / Funct i on
17. {
18. i nt i ; / / Local Var i abl e
19. dat a=0x01;
20. f or ( i =0; i <8; i ++)
21. { dat a=dat a<<1;
22. PORTA=dat a;
23. del ay_ms( 1000) ;
24. };
25. }
Komentar
Preprocessor directive : Memasukkan file header
Preprocessor directive : Mendefinisikan string
Global Variable
Fungsi
Sistem Mikrokontroler Hendawan Soebhakti 5
Struktur
Struktur
Program
Program
Bahasa
Bahasa
C
C
26. voi d mai n( voi d)
27. {
28. / / Decl ar e your l ocal var i abl es her e
29. / / I nput / Out put Por t s i ni t i al i zat i on
30. / / Por t A i ni t i al i zat i on
31. / / Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
32. / / St at e7=0 St at e6=0 St at e5=0 St at e4=0 St at e3=0 St at e2=0 St at e1=0 St at e0=0
33. PORTA=0x00;
34. DDRA=0xFF;
35. .
36. .
37. .
38. whi l e ( 1)
39. {
40. / / Pl ace your code her e
41. Geser ( ) ;
42. PORTA. 0=on;
43. del ay_ms( 1000) ;
44. PORTA. 0=of f ;
45. del ay_ms( 1000) ;
46. };
47. }
Fungsi main
Sistem Mikrokontroler Hendawan Soebhakti 6
Library
Library
Library adalah paket instruksi/program yang sudah jadi untuk memudahkan programmer.
Library dapat digunakan oleh program setelah kita memasukkan header file dengan
menggunakan preprocessor #i ncl ude, misalnya :
/ * Header f i l es ar e i ncl uded bef or e usi ng t he f unct i ons */
#i ncl ude <mat h. h> / / f or abs
#i ncl ude <st di o. h> / / f or put sf
voi d mai n( voi d) {
i nt a, b;
a=- 99;
/ * Her e you act ual l y use t he f unct i ons */
b=abs( a) ; / / Funct i on i n mat h. h
put sf ( Hel l o wor l d) ; / / Funct i on i n st di o. h
}
Sistem Mikrokontroler Hendawan Soebhakti 7
Library
Library
File library dapat dilihat pada C:\cvavr2\lib. Library yang disediakan oleh CodeVisionAVR
adalah :
Character Type Functions
Standard C Input/Output Functions
Standard Library Functions
Mathematical Functions
String Functions
Variable Length Argument Lists Macros
Non-local J ump Functions
BCD Conversion Functions
Gray Code Conversion Functions
Memory Access Functions
Delay Functions
LCD Functions
LCD Functions for displays with 4x40 characters
LCD Functions for displays connected in 8 bit memory mapped mode
Sistem Mikrokontroler Hendawan Soebhakti 8
Library
Library
I2C Bus Functions
National Semiconductor LM75 Temperature Sensor Functions
Dallas Semiconductor DS1621 Thermometer/Thermostat Functions
Philips PCF8563 Real Time Clock Functions
Philips PCF8583 Real Time Clock Functions
Dallas Semiconductor DS1302 Real Time Clock Functions
Dallas Semiconductor DS1307 Real Time Clock Functions
1 Wire Protocol Functions
Dallas Semiconductor DS1820/DS18S20 Temperature Sensors Functions
Dallas Semiconductor DS2430 EEPROM Functions
Dallas Semiconductor DS2433 EEPROM Functions
SPI Functions
Power Management Functions
Sistem Mikrokontroler Hendawan Soebhakti 9
Tipe
Tipe
Data
Data
Berikut ini adalah tabel semua tipe data yang disupport CodeVisionAVR C compiler :
1.175e-38 to 3.402e38 32 double
1.175e-38 to 3.402e38 32 float
-2147483648 to 2147483647 32 signed long int
0 to 4294967295 32 unsigned long int
-2147483648 to 2147483647 32 long int
-32768 to 32767 16 signed int
0 to 65535 16 unsigned int
-32768 to 32767 16 short int
-32768 to 32767 16 int
-128 to 127 8 signed char
0 to 255 8 unsigned char
-128 to 127 8 char
0 , 1 1 bit
Range Size (Bi ts) Type
Sistem Mikrokontroler Hendawan Soebhakti 10
Variable
Variable
Variable dapat berupa global variable, yaitu variable yang dapat diakses olehsemua
fungsi dalamprogram atau local variable yaitu variable yang hanya dapat diakses
didalamfungsi yang mendeklarasikan variable tersebut.
J ika tidak diinisialisasi, global variable secara otomatis akan bernila 0 saat program mulai
dijalankan/startup.
Local variable tidak secara otomatis diinisialisasi saat fungsi dipanggil.
Syntaksnya adalahsbb:
[ <st or age modi f i er >] <t ype def i ni t i on> <i dent i f i er >;
Sistem Mikrokontroler Hendawan Soebhakti 11
Variable
Variable
Contoh :
/ * Gl obal var i abl es decl ar at i on */
char a;
i nt b;
/ * and i ni t i al i zat i on */
l ong c=1111111;
voi d mai n( voi d)
{
/ * Local var i abl es decl ar at i on */
char d;
i nt e;
/ * and i ni t i al i zat i on */
l ong f =22222222;
}
Sistem Mikrokontroler Hendawan Soebhakti 12
Konstanta
Konstanta
Konstanta adalah variable yang diisi sekali dan tidak dapat diubah nilainya.
Konstanta akan tersimpan didalamFlash Memori mikrokontroler, oleh karena itu harus
didahului dengan preprocessor flash atauconst, misalnya :
f l ash i nt i nt eger _const ant =1234+5;
f l ash char char _const ant = a ;
f l ash l ong l ong_i nt _const ant 1=99L;
f l ash l ong l ong_i nt _const ant 2=0x10000000;
f l ash i nt i nt eger _ar r ay1[ ] ={1, 2, 3};
/ * The f i r st t wo el ement s wi l l be 1 and 2, t he r est wi l l be 0 */
f l ash i nt i nt eger _ar r ay2[ 10] ={1, 2};
f l ash i nt mul t i di m_ar r ay[ 2, 3] ={{1, 2, 3}, {4, 5, 6}};
f l ash char st r i ng_const ant 1[ ] =Thi s i s a st r i ng const ant ;
const char st r i ng_const ant 2[ ] =Thi s i s al so a st r i ng const ant ;
const f l oat phi =3. 14;
const char k=32;
Kontanta tidak dapat didefinisikan didalam fungsi.
Sistem Mikrokontroler Hendawan Soebhakti 13
Konversi
Konversi
Tipe
Tipe
Data
Data
Dalamoperasi data, maka data tersebut harus memiliki tipe yang sama, misalnya
sebuah operand bertipe char tidak dapat langsung dijumlahkan dengan operand yang
bertipe int. Untuk itu perlukonversi data agar keduanya memiliki tipe data yang sama.
Dalambahasa c terdapat fasilitas untuk mengkonversi tipe data.
Contoh :
voi d mai n( voi d) {
i nt a, c;
l ong b;
/ * The l ong i nt eger var i abl e b akan di konver si menj adi i nt eger
*/
c=a+( i nt ) b;
}
Sistem Mikrokontroler Hendawan Soebhakti 14
Fungsi
Fungsi
Sebuah program dapat dipecah menjadi beberapa fungsi (subprogram) untuk
memudahkan penyusunan program.
Sintaks Fungsi :
Type_f ungsi Nama_f ungsi ( ar gumen_f ungsi )
{
bl ok st at ement f ungsi
}
Type fungsi maksudnya sekumpulan eksekusi yang dipisahmempunyai hasil akhir
berupa sebuah nilai dengan tipe data tertentu, misal : integer, karakter, float,void(tak
bertipe)
contoh:
voi d t ambah( i nt x, i nt y)
{
i nt hasi l ;
hasi l =x+y;
r et ur n hasi l ;
}
Sistem Mikrokontroler Hendawan Soebhakti 15
Fungsi
Fungsi
Contoh 1 :
#i ncl ude <st di o. h>
i nt Tambah ( i nt x, i nt y)
{ i nt z;
z = x + y;
r et ur n ( z) ;
}
mai n ( )
{
i nt i , j , k;
i = 10;
j = 20;
k = Tambah( i , j ) ;
pr i nt f ( " The val ue of k i s%d\ n" , k) ;
}
Sistem Mikrokontroler Hendawan Soebhakti 16
Fungsi
Fungsi
Penjelasan :
Fungsi ini menambahkan dua nilai integer dan mengembalikan/return (menghasilkan)
hasil penjumlahannya.
Formal parameter :
int Tambah (int x, int y)
int adalah tipe data yang akan di-return
Tambah adalah nama fungsi
i nt x, i nt y adalah parameter dengan tipe data int.
Body of the function :
{
int z;
z = x + y;
return (z);
}
Didalambody of the function kita dapat mendeklarasikan variable atau statement.
Variable yang berada didalamfungsi disebut local variable. Fungsi dapat dipanggil
denganmenggunakan argument yang sesuai denganformal parameter. Argument ini
disebut actual parameter.
k = Tambah(i,j);
Selama dipanggil, nilai actual parameter dicopy ke dalamformal parameter dan
statement dididalamfungsi dijalankan.
Setelahmenjalankan statement return, tidak ada lagi statement didalamfungsi yang
dijalankan.
Sistem Mikrokontroler Hendawan Soebhakti 17
Prototipe Fungsi
Prototipe Fungsi
J ika sebuah fungsi ditulis sebelum mai n, maka fungsi tersebut dapat dipanggil didalam
body main.
J ika fungsi tersebut ditulis setelah mai n, maka didalam deklarasi main harus ditulis
prototype fungsi.
Contoh 1:
#i ncl ude <st di o. h>
mai n ( )
{ i nt i ;
voi d f 1( i nt k) ; / / D <- Prototype
i = 0;
pr i nt f ( " The val ue of i bef or e cal l %d \ n" , i ) ;
f 1 ( &i ) ; / / A
pr i nt f ( " The val ue of i af t er cal l %d \ n" , i ) ;
}
voi d f 1( i nt k) / / B
{
k = k + 10; / / C
}
Fungsi
Sistem Mikrokontroler Hendawan Soebhakti 18
Prototipe Fungsi
Prototipe Fungsi
Contoh 2:
#i ncl ude <st di o. h>
voi d f 1( i nt k) / / B
{
k = k + 10; / / C
}
mai n ( )
{
i nt i ;
i = 0;
pr i nt f ( " The val ue of i bef or e cal l %d \ n" , i ) ;
f 1 ( &i ) ; / / A
pr i nt f ( " The val ue of i af t er cal l %d \ n" , i ) ;
}
Fungsi
Sistem Mikrokontroler Hendawan Soebhakti 19
Prototipe Fungsi
Prototipe Fungsi
Penjelasan
Pada Contoh1, fungsi ditulis setelah main, maka kita harus menulis prototype
didalammain seperti terlihat pada statement D.
Pada Contoh2, fungsi ditulis diatas main, maka selama proses compile fungsi f1
sudah ikut di-compile, maka kita tidak perlumenulis prototype didalamfungsi.
Sistem Mikrokontroler Hendawan Soebhakti 20
Wassalamu Wassalamu alaikum alaikumwr.wb wr.wb. .

Anda mungkin juga menyukai