instruksi

Upload: edan3321

Post on 06-Jan-2016

3 views

Category:

Documents


0 download

DESCRIPTION

pokoke ngunu

TRANSCRIPT

nstruksi-instruksi pada Codevision AVR.Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan Codevision AVR. AVRSTUDIO merupakan software 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 (Integrated Development 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-System Programming). 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 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//komentar

1. Program Kontrola. Percabangan Perintah if dan ifelsePerintah if dan ifelse.. 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)Looping adalah pengulangan satu atau beberapa perintah sampai mencapai keadaan tertentu. Ada tiga perintah looping, yaitu: for ,while , dan dowhile. Sintaks loop for dapat 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 dengan variable kontrol, nama_variable++ dan nama_variable--, menyatakan proses increment dan proses decrement pada variable kontrol.whilePerintah while dapat melakukan looping apabila persyaratannya benar. Sintaks perintah while dapat dituliskan sebagai berikut : nama_varible = nilai_awal;while (syarat_loop){Statement_yang_akan_diulang;Nama_variable++;}

2. Library Function pada CodeVisionAVRa. Fungsi Input/OutputFungsi-fungsi input/Output berada didalam file stdio.h, pada subdirektori \INC. berikut ini beberapa fungsi I/O dasar yang disediakan pada CodeVision.a. char getchar(void) : menghasilkan nilai balikan berupa karakter yang diterima dari UART, menggunakan system polling (menerima data serial)b. void putchar(char c): mengirim karakter c menggunakan UART, menggunakan system polling (mengirimkan data serial)Sebelum menggunakan fungsi ini, lakukan terlebih dahulu pengaturan konfigurasi komunikasi serial:1) Inisialisasi baudrate UART2) Mengaktifkan transmitter UART3) Mengaktifkan receiver UARTFungsi I/O yang lebih tinggi lainnya menggunakan fungsi getchar dan putchar, seperti:a. void puts(char *str) : output, menggunakan putchar, null mengakhiri karakter string, berlokasi di SRAM.b. void putsf(char flash *str) : output, menggunakan putchar, null mengakhiri karakter string, berlokasi di FLASH.c. void printf(char flash *fmtstr[ , arg1, arg2, ...]) : output text yang terformat, menggunakan putchar, sesuai dengan format specifiers dalam fmtstr 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.a. unsigned char cabs(signed char x): menghasilkan nilai absolute dari byte xb. unsigned int abs(int x): menghasilkan nilai absolute dari bilangan integer xc. unsigned long labs(long x): menghasilkan nilai absolute dari bilangan long integer x.d. float fabs(float x): menghasilkan nilai absolute dari bilangan floating point xe. signed char cmax(signed char a,signed char b) : menghasilkan nilai maksimum dari byte a dan b.f. int max(int a,int b) : menghasilkan nilai maksimum dari integer a dan b.

c. Fungsi LCDFungsi LCD ditunjukkan untuk memudahkan interfacing antara program C dan modul alphanumeric LCD yang dibuat dengan chip Hitachi HD44780 atau yang serupa chip Hitachi HD44780. fungsi ini berada di dalam file lcd.h, pada subdirektori \INC. Header ini harus dimasukan (include) jika kita akan menggunakan fungsi-fungsi LCD. Sebelum menggunakan fungsi ini, terlebih dahulu harus diatur port mikrokontroler yang digunakan untuk komunikasi dengan modul LCD. Format LCD dalam lcd.h mendukung: 1x8, 2x12, 3x12, 1x16, 2x16, 2x20, 4x20, 2x24, dan 2x40 karakter. Fungsi-fungsi untuk mengakses LCD diantaranya adalah:a. 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.b. void lcd_clear(void): menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0.c. 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.d. void lcd_putchar(char c): menampilkan karakter c pada LCDe. void lcd_puts(char *str): menampilkan string yang disimpan pada SRAM pada LCD.f. void lcd_putsf(char flash *str): menampilkan string yang disimpan pada flash pada LCD.

d. Fungsi DelayMenghasilkan delay dalam program-C. Berada pada header delay.h yang harus dimasukkan (include) sebelum digunakan. Sebelum memanggil fungsi, interupsi harus dimatikan terlebih dahulu, bila tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR yang digunakan pada menu Project Configur C Compiler Code Generation.Fungsi delay yang dihasilkan adalah:a. void delay_us(unsigned int n) : fungsi ini menghasilkan delay selama n -detik, n adalah nilai konstan.b. void delay_ms(unsigned int n) : fungsi ini menghasilkan delay selama n mili-detik, n adalah nilai konstan.

Kedua fungsi tersebut secara otomatis akan me-reset watchdog-timer setiap 1 mili-detik dengan mengaktifkan instruksi wdr.Fungsi fungsi lain seperti fungsi akses memori, I2C, maxim/dallas semiconductor DS1302 Real Time Clock, 1 Wire Protocol, SPI, Power Management dapat dilihat pada manual CodeVisionAVR, CodeVisionAVR user manual.