intruksi bahasa c

6
Instruksi-instruksi pada Codevision AVR Posted on December 9, 2011 Pada postingan kali ini saya akan membahas mengenai instruksi yang umum digunakan pada program-program mikrokontroler sederhana. Untuk lebih jelasnya mari kita pelajari bahasan dibawah ini. Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan Codevision AVR. AVRSTUDIO merupakansoftware khusus untuk bahasa assembly yang mempunyai fungsi sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi, dan download program ke IC mikrokontroler AVR. Sedangkan Codevision AVR merupakan software C-cross compiler, dimana program dapat ditulis dalam bahasa C, Codevision memiliki IDE (IntegratedDevelopment Environment) yang lengkap, di mana penulisan program, compile, link, pembuatan kode mesin (assembler) dan download program ke chip AVR dapat dilakukan pada codevision, selain itu ada fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroler yang sudah deprogram. Proses download program ke IC mikrokontroler AVR dapat menggunakan system download secara ISP (In-SystemProgramming). In- System programmable Flash on-chip mengizinkan memori program untuk diprogram ulang dalam system menggunakan hubungan serial SPI (Andrianto, 2008: 17). Berikut ini penjelasan penggunaan program dalam bahasa C di software Codevision AVR. Preprocessor (#): Digunakan untuk memasukkan (include) text dari file lain, mendefinisikan macro yang dapat mengurangi beban kerja pemrograman dan meningkatkan legibility source code (mudah dibaca). #define : Digunakan untuk mendefinisikan macro Contoh : #define ALFA oxff

Upload: fauzan-anshari

Post on 02-Oct-2015

20 views

Category:

Documents


11 download

DESCRIPTION

bahasa C

TRANSCRIPT

Instruksi-instruksi pada Codevision AVRPosted onDecember 9, 2011Pada postingan kali ini saya akan membahas mengenai instruksi yang umum digunakan pada program-program mikrokontroler sederhana. Untuk lebih jelasnya mari kita pelajari bahasan dibawah ini.Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL menggunakansoftwareAVR STUDIO dan Codevision AVR. AVRSTUDIO merupakansoftwarekhusus untuk bahasaassemblyyang mempunyai fungsi sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi, dandownloadprogram ke IC mikrokontroler AVR. Sedangkan Codevision AVR merupakansoftwareC-cross compiler, dimana program dapat ditulis dalam bahasa C, Codevision memiliki IDE (IntegratedDevelopmentEnvironment) yang lengkap, di mana penulisan program,compile,link, pembuatan kode mesin (assembler) dandownloadprogram kechipAVR dapat dilakukan padacodevision, selain itu ada fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroler yang sudah deprogram. Prosesdownloadprogram ke IC mikrokontroler AVR dapat menggunakansystemdownloadsecara ISP (In-SystemProgramming).In-SystemprogrammableFlashon-chipmengizinkan memori program untuk diprogram ulang dalam system menggunakan hubungan serial SPI (Andrianto, 2008: 17).Berikut ini penjelasan penggunaan program dalam bahasa C di software Codevision AVR.

Preprocessor (#):Digunakan untuk memasukkan (include) text dari file lain, mendefinisikan macro yang dapat mengurangi beban kerja pemrograman dan meningkatkan legibility source code (mudah dibaca).#define: Digunakan untuk mendefinisikan macroContoh : #define ALFA oxff#define SUM(a,b) a+b#define sensor PIN.2#define pompa PORTB.oKomentarPenulisan komentar untuk beberapa baris komentar sekaligus/*komentar..*/Penulisan komentar untuk satu baris saja//komentar1.Program Kontrola.PercabanganPerintah if danifelsePerintahifdanifelse.. digunakan untuk melakukan operasi percabangan bersyarat. Sintaks penulisan if dapat ditulis sebagai berikut : if();Sintaks perintah if else dapat dituliskan sebagai berikut: if(); else ;b.Looping (pengulangan)Loopingadalah pengulangan satu atau beberapa perintah sampai mencapai keadaan tertentu. Ada tiga perintahlooping, yaitu:for ,while, dandowhile. Sintaksloop fordapat dituliskan sebagai berikut :forUntuk pengulangan yang melakukan proses increment for(nama_variable = nilai_awal;syarat_loop;nama_variable ++) {statement_yang_diulang; } //untuk pengulangan yang melakukan proses decrementFor(nama_varible=nilai_awal;syarat_loop;nama_variable ){Statement_yang_diulang;}Syarat_loop adalah pernyataan relasional yang menyatakan syarat berhentinya pengulangan, biasanya barkaitan denganvariable kontrol,nama_variable++ dannama_variable, menyatakan prosesincrementdan prosesdecrementpada variable kontrol.whilePerintahwhiledapat melakukanloopingapabila persyaratannya benar. Sintaks perintah while dapat dituliskan sebagai berikut :nama_varible = nilai_awal;while(syarat_loop){Statement_yang_akan_diulang;Nama_variable++;}2.Library FunctionpadaCodeVisionAVRa. FungsiInput/OutputFungsi-fungsiinput/Outputberada didalam file stdio.h, pada subdirektori \INC. berikut ini beberapa fungsi I/O dasar yang disediakan padaCodeVision.1. char getchar(void): menghasilkan nilai balikan berupa karakter yang diterima dari UART, menggunakansystem polling(menerima data serial)2. void putchar(char c): mengirim karakter c menggunakan UART, menggunakansystem polling(mengirimkan data serial)Sebelum menggunakan fungsi ini, lakukan terlebih dahulu pengaturan konfigurasi komunikasi serial:1) InisialisasibaudrateUART2) MengaktifkantransmitterUART3) MengaktifkanreceiverUARTFungsi I/O yang lebih tinggi lainnya menggunakan fungsigetchardanputchar, seperti:1. void puts(char *str):output,menggunakanputchar,nullmengakhiri karakterstring, berlokasi di SRAM.2. void putsf(char flash *str):output, menggunakanputchar,nullmengakhiri karakterstring, berlokasi di FLASH.3. void printf(char flash *fmtstr[ , arg1, arg2, ...]):outputtext yang terformat, menggunakanputchar, sesuai dengan formatspecifiersdalamfmtstr string.b. Fungsi MatematikaFungsi ini berada di dalam file math.h, pada subdirektori \INC. Berikut ini sebagian dari beberapa fungsi-fungsi matematika yang disediakan pada CodeVision.1. unsigned char cabs(signed char x): menghasilkan nilaiabsolutedaribytex2. unsigned int abs(int x): menghasilkan nilaiabsolutedari bilanganintegerx3. unsigned long labs(long x): menghasilkan nilaiabsolutedari bilanganlong integerx.4. float fabs(float x): menghasilkan nilaiabsolutedari bilanganfloating pointx5. signed char cmax(signed char a,signed char b): menghasilkan nilai maksimum daribytea dan b.6. int max(int a,int b): menghasilkan nilai maksimum dariintegera dan b.c. Fungsi LCDFungsi LCD ditunjukkan untuk memudahkaninterfacingantara program C dan modulalphanumericLCD yang dibuat denganchipHitachi HD44780 atau yang serupachipHitachi HD44780. fungsi ini berada di dalamfilelcd.h, pada subdirektori \INC.Headerini harus dimasukan (include) jika kita akan menggunakan fungsi-fungsi LCD. Sebelum menggunakan fungsi ini, terlebih dahulu harus diaturportmikrokontroler yang digunakan untuk komunikasi dengan modul LCD. Format LCD dalam lcd.h mendukung: 18, 212, 312, 116, 216, 220, 420, 224, dan 240 karakter. Fungsi-fungsi untuk mengakses LCD diantaranya adalah:1. unsigned char lcd_init(unsigned char lcd_columns): untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi karakter pada baris ke-0. jumlah kolom pada LCD harus disebutkan (misal, 16). Kursor tidak di tampakkan. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain.2. void lcd_clear(void): menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0.3. void lcd_gotoxy(unsigned char x, unsigned char y): meletakkan posisi karakter pada kolom ke-x baris ke-y. Nomor baris dan kolom dimulai dari nol.4. void lcd_putchar(char c): menampilkan karakter c pada LCD5. void lcd_puts(char *str): menampilkanstringyang disimpan pada SRAM pada LCD.6. void lcd_putsf(char flash *str): menampilkanstringyang disimpan padaflashpada LCD.d. FungsiDelayMenghasilkandelaydalam program-C. Berada padaheaderdelay.hyang harus dimasukkan (include) sebelum digunakan. Sebelum memanggil fungsi,interupsiharus dimatikan terlebih dahulu, bila tidak makadelayakan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensiclockchipIC AVR yang digunakan pada menuProjectConfigurCCompilerCode Generation.Fungsi delay yang dihasilkan adalah:1. void delay_us(unsigned int n): fungsi ini menghasilkandelayselama n -detik, n adalah nilai konstan.2. void delay_ms(unsigned int n): fungsi ini menghasilkandelayselama n mili-detik, n adalah nilai konstan.Kedua fungsi tersebut secara otomatis akan me-resetwatchdog-timersetiap 1 mili-detik dengan mengaktifkan instruksiwdr.Fungsi fungsi lain seperti fungsi akses memori, I2C, maxim/dallassemiconductorDS1302Real Time Clock, 1Wire Protocol, SPI,Power Managementdapat dilihat pada manualCodeVisionAVR,CodeVisionAVRuser manual.