PENGENALAN BAHASA ASSEMBLY & C Sugondo Hadiyoso Aplikasi Mikrokontroler (DTG2K3)
ASSEMBLY AVR Studio
ASSEMBLY Penggunaan I/O Port Instruksi I/O in : membaca data I/O Port atau internal peripheral register (Timers, UART, dsb) ke dalam register contoh : in r16,PinA out : menulis data sebuah register ke I/O port atau ke internal peripheral register contoh : out PortA,r16 Ldi (load immediate) : menulis konstanta ke register sebelum konstanta itu dituliskan ke I/O port contoh : ldi r16,0b1111111 ;bentuk biner out PortD,r16 ;portD high semua
sbi (set bit I/O) : untuk membuat logika high satu bit I/O register contoh : sbi PortB,7 ;set bit ke-7 Port B cbi (clear bit I/O) : untuk membuat logika low satu bit I/O register contoh : cbi PortB,7 ;clear bit ke-7 Port B sbic (skip if bit in I/O is cleared) : untuk mengecek apakah bti I/O register clear. Jika ya, skip satu perintah dibawahnya contoh : sbic PortA,3 ; skip perintah jika bit ke 3 Port A clear Sbis (skip if bit in I/O is set) : untuk mengecek apakah bti I/O register set. Jika ya, skip satu perintah dibawahnya contoh : sbis PortA,3 ; skip perintah jika bit ke 3 Port A set
Contoh program assembly .include"C:\Appnotes\m8535def.inc" .org 0x0000 rjmp main main: ldi r16, low(RAMEND) out SPL, r16 ldi r16, high(RAMEND) out SPH, r16 ldi r16,0xff out PORTA,r16 cbi PORTA,0 cbi PORTA,1
Bahasa C SEJARAH SINGKAT Bahasa Pemrograman C diciptakan dan dikembangkan oleh Brian Kernighan dan Denis Ritchie di Bell Research Labs. Bahasa Pemrograman C secara khusus diciptakan dengan tujuan agar para programmer (orang yang membuat program komputer) dapat mengakses seluruh internal register. Pada awal tahun 1960-an, sistem operasi komputer mulai menjadi jauh lebih kompleks daris ebelumnya karena adanya pengenalan multi terminal dan kemampuan multi prosessor. Pada saat itu, sistem operasi diciptakan dengan menggunkan bahasa assembly (bahasa pemrograman tingkat rendah). Di mana banyak pengembang yang menyadari bahwa suatu sistem operasi dapat dikembangkan lebih lagi, tidak cukup hanya dengan menggunakan bahasa assembly. Inilah asal mula Bahasa C yang dimplementasikan pada Digital Equipment Corporation PDP-7. Pada perkembangan selanjutnya Bahasa Pemrograman C digunakan untuk mengimplementasikan Sistem Operasi Unix.
Sebuah berkas program C terdiri dari beberapa unsur, yaitu dokumentasi program , pengarah prapengolahan, bagian deklarasi global, sebuah fungsi main ( ), dan fungsi-fungsi buatan pemrogram. Masing-masing fungsi ini terdiri dari badan fungsi yang memuat deklarasi lokal dan kode program yang dapat dieksekusi.
Contoh Program Sederhana #include <avr/io.h> int main(void) {unsigned char i=0x01; for(;;) { PORTB=i; i=(i<<1)|(i>>7); } return(0);
Format Penulisan Bahasa C Bagian Komentar untuk memberi keterangan pada program agar mudah dibaca. Ini akan diabaikan oleh kompiler co : /*…….*/ untuk komentar bentuk paragraf // untuk komentar bentuk perbaris sebelum enter Bagian preprocessor preprocessor #include biasanya digunakan untuk menyertakan file header(.h) atau file library. File include berguna untuk memberitahu kompiler agar membaca file yang di include-kan lebh dahulu agar mengenali definisi-definisi yang digunakan dalam program agar tidak dianggap error. co : #include <avr/io.h>
3. Bagian deklarasi variabel global variabel global dideklarasikan di luar semua fungsi termasuk fungsi utama dan letaknya harus di atas. Dapat diakses oleh semua pernyataan dalam program. cara penulisan : TipeData namaVariabel; unsigned char suhu; 4. Bagian Prototype fungsi berguna untuk mendeklarasikan fungsi yang ditulis di bawah fungsi “main”. TipeData namaFUNGSI(TipeData,….,…); co : unsigned int kuadrat (unsigned char x)
4. Bagian fungsi utama/main bagian ini merupakan bagian fungsi pertama yang akan dieksekusi dengan urutan dari atas ke bawahdan akan loncat-loncat ke fungsi lain bergantung instruksi yang ada didalamnya. cara penulisan tanpa nilai balik (output) dan tanpa parameter input NamaFungsi (); dengan nilai balik (output) dan tanpa parameter VariabelPENAMPUNG = namaFUNGSI(); dengan nilai balik dan nilai parameter VariabelPENAMPUNG=NamaFUNGSI(Variabel_atau_kostanta,….,….)
5. Define konstanta untuk mendifinisikan konstanta atau makro 5. Define konstanta untuk mendifinisikan konstanta atau makro. cara penulisan : #define identifier konstanta contoh : define suhu 100
6. If dan endif digunakan untuk mengetes ekspresi yang valid untuk kode program dibawahnya hingga endif cara penulisan : #if (ekspresi) kode program ……………………… #endif contoh : #define pembagi 15 #if (pembagi>0) y=x/pembagi;
7. If , else, dan endif digunakan untuk mengetes ekspresi yang valid untuk mengolah kode program di bawahnya atau jika tidak valid maka kode program di bawah #else hingga#endif cara penulisan : #if (ekspresi) kode program ……………………… #else #endif contoh : #define pembagi 15 #if (pembagi>0) y=x/pembagi; y=0;
Tipe Data