koding

6
#include <mega8535.h> //fungsi pengarah yang mengatakan kepada kompiler untuk meletakan kode dari header file #include <delay.h> //fungsi tunda #include <stdio.h> //library pada bahasa C yang digunakan untuk operasi input-output #include <alcd.h> //library untuk lcd char kata0[16],kata1[16],kata2[16],kata3[16]; //char = tipe data 8 bit unsigned int loop,val_timer,tim0,tim1,tim2; //unsigned int = tipe data 16 bit , tim = inisial time unsigned int val_tim0,val_tim1,val_tim2; //unsigned int = tipe data 16 bit unsigned int co0,co1,co2; //unsigned int = tipe data 16 bit , co = inisial counter void display(void){ //inisiasi untul program yang muncul pada display sprintf(kata0,"waktu= %5i",val_timer); //untuk menampilkan sesuatu pada layar sprintf(kata1,"A=%3i tA=%5i",co0,val_tim0); //untuk menampilkan sesuatu pada layar sprintf(kata2,"B=%3i tB=%5i",co1,val_tim1); //untuk menampilkan sesuatu pada layar sprintf(kata3,"C=%3i tC=%5i",co2,val_tim2); //untuk menampilkan sesuatu pada layar lcd_gotoxy(0,0); //untuk mensetting posisi karakter pertama lcd_puts(kata0); //untuk memunculkan kata yang telah diinisialkan

Upload: chika-olviani

Post on 12-Jul-2016

214 views

Category:

Documents


2 download

DESCRIPTION

coding

TRANSCRIPT

Page 1: koding

#include <mega8535.h> //fungsi pengarah yang mengatakan kepada kompiler untuk meletakan kode dari header file

#include <delay.h> //fungsi tunda

#include <stdio.h> //library pada bahasa C yang digunakan untuk operasi input-output

#include <alcd.h> //library untuk lcd

char kata0[16],kata1[16],kata2[16],kata3[16]; //char = tipe data 8 bit

unsigned int loop,val_timer,tim0,tim1,tim2; //unsigned int = tipe data 16 bit , tim = inisial time

unsigned int val_tim0,val_tim1,val_tim2; //unsigned int = tipe data 16 bit

unsigned int co0,co1,co2; //unsigned int = tipe data 16 bit , co = inisial counter

void display(void){ //inisiasi untul program yang muncul pada display

sprintf(kata0,"waktu= %5i",val_timer); //untuk menampilkan sesuatu pada layar

sprintf(kata1,"A=%3i tA=%5i",co0,val_tim0); //untuk menampilkan sesuatu pada layar

sprintf(kata2,"B=%3i tB=%5i",co1,val_tim1); //untuk menampilkan sesuatu pada layar

sprintf(kata3,"C=%3i tC=%5i",co2,val_tim2); //untuk menampilkan sesuatu pada layar

lcd_gotoxy(0,0); //untuk mensetting posisi karakter pertama

lcd_puts(kata0); //untuk memunculkan kata yang telah diinisialkan

lcd_gotoxy(0,1); //untuk mensetting posisi karakter kedua

lcd_puts(kata1); //untuk memunculkan kata yang telah diinisialkan

lcd_gotoxy(0,2); //untuk mensetting posisi karakter ketiga

lcd_puts(kata2); //untuk memunculkan kata yang telah diinisialkan

lcd_gotoxy(0,3); //untuk mensetting posisi karakter keempat

lcd_puts(kata3); //untuk memunculkan kata yang telah diinisialkan

Page 2: koding

}

CODING INTERRUPT

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void)

{

// Place your code here

val_tim0=tim0; //inisialisasi waktu

tim0=0; //timer dalam kondisi awal low

co0++; //counter bertambah

}

// External Interrupt 1 service routine

interrupt [EXT_INT1] void ext_int1_isr(void)

{

// Place your code here

val_tim1=tim1; //inisialisasi waktu

tim1=0; //timer dalam kondisi awal low

co1++; //counter bertambah

}

// External Interrupt 2 service routine

interrupt [EXT_INT2] void ext_int2_isr(void)

{

// Place your code here

Page 3: koding

val_tim2=tim2; //inisialisasi waktu

tim2=0; //timer dalam kondisi awal low

co2++; //counter bertambah

}

CODING TIMER

// Timer 0 overflow interrupt service routine

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

// Place your code here

loop++;

if(loop==20000){

loop=0;

val_timer++;

tim0++;

tim1++;

tim2++;

}

}

// Declare your global variables here

void main(void)

{

PORTB|=1<<2; //nilai pin kedua bernilai high

PORTD|=1<<2 | 1<<3; //nilai pin kedua dan ketiga bernilai high

Page 4: koding

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: 4000,000 kHz

// Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=0x01; //setting skala clock = 1

TCNT0=0x00; //setting nilai awal timer

OCR0=0x00; //output compare register tidak difungsikan

// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge (aktif jika mendapat transisi dari high ke low)

// INT1: On

// INT1 Mode: Falling Edge (aktif jika mendapat transisi dari high ke low)

// INT2: On

// INT2 Mode: Falling Edge (aktif jika mendapat transisi dari high ke low)

GICR|=0xE0; //general input control register

MCUCR=0x0A; //MCU Control and Status Register

MCUCSR=0x00; //MCU Control and Status Register

GIFR=0xE0; //General Interrupt Flag Register

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x01; // untuk mengendalikan interrup mana yang akan diaktifkan

// Alphanumeric LCD initialization

// Connections specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

Page 5: koding

// RS - PORTC Bit 0

// RD - PORTC Bit 1

// EN - PORTC Bit 2

// D4 - PORTC Bit 4

// D5 - PORTC Bit 5

// D6 - PORTC Bit 6

// D7 - PORTC Bit 7

// Characters/line: 16

lcd_init(16);

// Global enable interrupts

#asm("sei")

lcd_clear();

lcd_gotoxy(0,0);

while (1)

{

// Place your code here

display();

}

}