Anda di halaman 1dari 12

Tipe-tipe Data

Tipe-tipe data disediakan untuk menyimpan data yang akan diproses. Secara umum, program menyimpan data di dalam variables. Jenis data yang dapat dimiliki oleh variables pada program ditentukan oleh tipe data. Tipe data ditempelkan pada variables pada saat deklarasinya dan akan tetap melekat selama siklus hidup program tersebut. Tipe data mengindikasikan suatu variables. Mengindikasikan informasi apa yang disimpan pada variable, jumlah memori (bytes) yang dapat dialokasikan untuk menyimpan data dalam variables, dan operasi-operasi valid yang dapat dijalankan oleh variables tersebut. Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel.  Konstanta menyatakan nilai yang tetap.  Variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung. Berdasarkan jenis/tipenya, data dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar. y y y y y Bilangan bulat (integer) int (short int, long int, signed int, unsigned int) Bilangan real presisi-tunggal float Bilangan real presisi-ganda Karakter char Tak-bertipe (void), double

Penulisan pendefinisian variable dan konstanta unsigned char data,data1; float data2; int data3; int data_array[5]={0,1,2,3,4}; char data_array2[3];

DEKLARASI ARRAY
Variable array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variable array c di atas adalah : int c[7]; Perlu diperhatikan bahwa C secara otomatis menyediakan lokasi memori yang sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0. Nilai suatu variable array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya; Int c[7] = {-45, 0, 6, 72, 1543, 43, 4} Berarti setiap lokasi memori dari variable array c langsung diisi dengan nilai-nilai yang dituliskan didalam tanda kurung kurawal. Banyaknya lokasi memori dapat secara otomatis disediakan sesuai degan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variable array dengan 10 lokasi memori: int x []={10, 15 12, 5, 13, 9, 6, 17, 25, 31}; Contoh penggunaan array
//prog LED berjalan #include<mega8535.h> #include<delay.h> void main(void) { char urutan[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; char i; DDRC=0xff; //sebagai output dihubungkan dengan led PORTC=0Xff;

while(1) { for(i=0;i<8;i++) { PORTC=urutan[i]; //mengambil data dari array urutan, i sebagai indeks delay_ms(500); } } }

eeprom
unsigned char eeprom ee_Mode; unsigned char eeprom ee_array[5]={0}; EEPROM (Electricaly Erasable Programmable ROM) - Data pada EEPROM dapat diisi, dihapus atau dirubah secara random dan individual dirangkaian, seperti halnya RAM, tetapi data tetap tersimpan meskipun catu padam. Contoh penggunaan eeprom;
#include<mega8535.h> #include<delay.h> unsigned char eeprom ee_data; unsigned char data; void main(void){ DDRB=0xff; //portb sebagai output dihubungkan dengan led

DDRA=0x00; //sebagai input berupa tombol PORTB=0xff; PORTA=0xff; while(1){ PORTB= ee_data; if(PINA.0==0){ delay_ms(100);ee_data =0xf0;}; if(PINA.1==0){ delay_ms(100);ee_data =0x0f;};} //matikan led di portb //pull up

Akses LCD 16x2


Dalam kamus besar bahasa ke wikepedia, arti dari LCD (Liquid Crystal Display atau dapat di bahasa Indonesia-kan sebagai tampilan Kristal Cair ) adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD bisa memunculkan gambar atau tulisan (berwarna juga bisa dong) dikarenakan terdapat banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau disebut sebagai titik cahaya, namun kristal cair ini tidak memancarkan cahaya sendiri. Sumber cahaya di dalam sebuah perangkat LCD adalah lampu neon berwarna putih di bagian belakang susunan kristal cair tadi. Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring. Dalam menampilkan karakter untuk membantu menginformasikan proses dan control yang terjadi dalam suatu program robot kita sering menggunakan LCD juga. Yang sering digunakan dan paling murah adalah LCD dengan banyak karakter 16x2. Maksudnya semacam fungsi tabel di ms office. 16 menyatakan kolom dan 2 menyatakan baris.

Dari datasheet akan kita peroleh informasi-informasi seperti ini : Fungsi pin yang terdapat pada LCD ditunjukkan seperti pada Tabel 1

Konfigurasi pin dari LCD ditunjukkan pada Gambar dibawah ini

Modul LCD memiliki karakteristik sebagai berikut: Terdapat 16 x 2 karakter huruf yang bisa ditampilkan. Setiap huruf terdiri dari 5x7 dot-matrix cursor. Terdapat 192 macam karakter. Terdapat 80 x 8 bit display RAM (maksimal 80 karakter). Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit. Dibangun dengan osilator lokal. Satu sumber tegangan 5 volt. Otomatis reset saat tegangan dihidupkan.

Bekerja pada suhu 0oC sampai 55oC. Dalam codevision avr, lcd 16x2 diakses dengan 4bit.

Contoh program lcd;


#include <mega8535.h> #include <lcd.h> #include <stdio.h> #include <delay.h> // Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR #asm .equ __lcd_port=0x15 ;PORTC #endasm int LCD; char lcd_buffer[33]; unsigned char x,y,hasil,hasil_1,hasil_2; void main (void){ //PORT initialization as input or output DDRA=DDRB=0x00; DDRC=DDRD=PORTB=0xFF; PORTA=PORTC=0x00; LCD=1; lcd_init(16); // inisialisasi lcd, kolom modul lcd =16. lcd_gotoxy(0,0); // ke kolom x=0 dan baris y=0

lcd_putsf("Ngetes LCD"); //menampilkan tulisan Ngetes LCD lcd_gotoxy(0,1); // kebaris ke 2 y=1 lcd_putsf("Program C & AVR"); delay_ms(500); x=1;y=1; ulang: hasil=x+y; lcd_clear(); lcd_gotoxy(0,0); sprintf(lcd_buffer,"hsl:%i",hasil); lcd_puts(lcd_buffer); lcd_gotoxy(8,0); sprintf(lcd_buffer,"hsl-1:%i",hasil_1); lcd_puts(lcd_buffer); lcd_gotoxy(0,1); sprintf(lcd_buffer,"hsl-2:%i",hasil_2); lcd_puts(lcd_buffer); hasil_2=hasil_1; hasil_1=hasil; x++; delay_ms(500); goto ulang; } //======================================================================= //kelabel ulang //label ulang

Pada program diatas, terdapat beberapa perintah.. #include <lcd.h> //meng-include kan fungsi-fungsi lcd

// Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR // inisialisasi lcd dipasang diport mana #asm .equ __lcd_port=0x15 ;PORTC #endasm lcd_init(16); //inisialisasi lcd, yang digunakan adalah 16 baris

lcd_clear(); lcd_gotoxy(x,y); lcd_putsf( coba );

//meng-clear lcd, menulis kosong di lcd //melompat ke kolom x dan baris y (x,y adalah nilai) //menuliskan ke lcd, apa yang tertulis di dalam tanda petik dua, baik itu spasi

menampilkan variable di lcd


#include <stdio.h> char lcd_buffer[33]; //dipersiapkan dulu untuk fungsi sprintf //mempersiapkan buffer

sprintf(lcd_buffer,"hsl-1:%i",hasil_1); lcd_puts(lcd_buffer);

//menampilkan tulisan hsl-1 dengan variable hasil_1 //menampilkan isi buffer

perintah-perintah dalam menampilkan di lcd, %i = variable yang ditampilkan berupa integer %c=variable yang ditampilkan berupa caracter Contoh
#include <mega8535.h> #include <lcd.h> #include <stdio.h> #include <delay.h> // Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR #asm .equ __lcd_port=0x15 ;PORTC #endasm unsigned char tulis[5]={ m , i , c , r , o }; unsigned char i; void main(void){ lcd_init(16); // inisialisasi lcd, kolom modul lcd =16. while(1){ for(i=0;i<5;i++){ lcd_clear(); lcd_gotoxy(i,0); // ke kolom x=0 dan baris y=0 sprintf(lcd_buffer,"%c",tulis[i]); lcd_puts(lcd_buffer); delay_ms(200);}}}

%f=menampilkan tipe float %d=menampilkan bilangan bulat /n=pindah ke baris selanjutnya

operasi-operasi valid yang dapat dijalankan oleh variables tipe data. Gunakan yang sesuai, pemilihan data memepengaruhi memory yang dipakai dan ketelitian. Contoh kasus
#include <mega8535.h> #include <lcd.h> #include <stdio.h> #include <delay.h> #asm .equ __lcd_port=0x15 ;PORTC #endasm unsigned char data1=9; signed char data2=-10; int data; float data3; void main(void){ data1=data1+data2; lcd_init(16); lcd_clear(); lcd_gotoxy(0,0); sprintf(lcd_buffer,"hasilnya=%i",data1); lcd_puts(lcd_buffer); delay_ms(200); data=data1/2; lcd_clear(); sprintf(lcd_buffer,"9/2=%i",data); lcd_puts(lcd_buffer); delay_ms(200); data=20.4; lcd_clear();

sprintf(lcd_buffer,"20.4=%i",data); lcd_puts(lcd_buffer); delay_ms(200); data3=5/2; lcd_clear(); sprintf(lcd_buffer,"5/2=%f",data3); lcd_puts(lcd_buffer); delay_ms(200); }

dot matriks
Dot matrik 5 x7 memilki arti bahwa 1 dot matrik berukuran 5 kolom x 7 baris susunan LED. Jadi 1 dot matriki terdapat 35 buah LED. Berikut adalah ilustrasi 3 buah dot matrik yang sudah terpakai untuk menampilkan beberapa karakter.

Setiap karakter antar dot matrik sebaiknya diberi spasi agar karakter yang tampil terlihat jelas dan tidak tampak berdekatan. Dalam setiap display dotmatrik selalu terdapat istilah baris dan kolom. Jumlah baris selalu sama dengan 7. Tapi jumlah kolom tergantung dari banyak nya dot matriks yang di pasang. Prinsip kerja dot matrik sebenarnya menggunakan system Scanning kolom. Scanning kolom adalah pada satu waktu dari sekian banyak kolom pada gambar 1 hanya satu kolom yang menyala merah. Karena proses pengulangan penyalaan kolom dari kolom 1 sampai kolom 15 begitu cepat dan berulang-ulang maka huruf A tampak nyala bersamaan. Proses scanning kolom yang cepat menipu mata atau penglihatan manusia sehingga mata menangkap huruf A seolah-olah menyala

secara bersamaan. Apabila proses scanning kolom dipelankan sampai mata dapat melihat, maka pergeseran penyalaan kolom akan terlihat satu persatu. Contoh program
#include <mega8535.h> #include <delay.h> unsigned char kolom[5]={0b00000001, 0b00000010, 0b00000100, 0b00001000,0b00010000}; unsigned char baris[5]={0b11000000, 0b10110111, 0b10110111, 0b10110111,0b11000000}; char i; void tampil(){ for(i=0;i<5;i++){ PORTB=kolom[i]; PORTD=baris[i]; delay_ms(1);}} void main(void){ DDRB=DDRD=0xff;PORTD=0xff;PORTB=0x00; while(1){ tampil();} }

Tugas untuk di rumah,, Berhubung pada pertemuan ini, banyak temen-temen yang mengikuti TO, diberikan tugas dirumah, jika dapat mengerjakan dengan benar, akan di anggap hadir, tugas di kumpul pertemuan selanjutnya. Untuk yang pada pertemuan ini hadir dan dapat mengerjakan tugas ini, akan mendapat nilai tambah. 1. 2. Buatlah program menjalankan tampilan di lcd 16x2. Tampilannya belajar bareng di Micro club dte Tapi dengan catatan tulisannya bergerak kekanan dan kekiri. Buatlah tulisan di dot matrik, cukup gunakan satu saja, dengan tampilan micro dte , ditampilkan bergantian,, m >>> i >>> c >>> r >>> 0 >>> [spasi] >>> d >>> t >>> e

Tugas bonus,, tugas bonus, jika dikerjakan, nilai ujian akan ditambah dengan 10 (nilai ujian range 100), Buat lah program dot matrik, dengan mengguakan 5 buah dot matriks, dengan menampilkan tulisan berjalan asyiknya belajar bareng di micro club dte

Selamat mengerjakan...

Contoh rangkaian yang bisa dipakai

Anda mungkin juga menyukai