JAM DIGITAL MENGGUNAKAN MIKROKONTROLLER AVR AT90S8535

/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :jam digital menggunakan rtc dengan tampilan LCD
Version :1.0
Date : 12/25/2012
Author : mbah ddt
Company : ITATS
Comments:


Chip type : AT90S8535
AVR Core Clock frequency: 11.059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/


#include <90s8535.h>
#include <stdio.h>
#include <delay.h>

#define pb1 PINB.0
#define pb2 PINB.1
#define pb3 PINB.2
#define pb4 PINB.3

#define off 0x00
#define on 0x02
#define timer TCCR0

// I2C Bus functions#asm
#asm
.equ __i2c_port=0x1B ;PORTA
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>

// DS1307 Real Time Clock functions
#include<ds1307.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#define RTC_ADDR 0xD0

unsigned char buff[33],hour,minute,second,date,month,year,mode=1,hari=0,i;


// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
i++;
if(i==255)
{
if(mode==0)
{
rtc_get_time(&hour,&minute,&second);
rtc_get_date(&date,&month,&year);
i2c_start();
i2c_write(0xd0);
i2c_write(0x03);
i2c_start();
i2c_write(0xd1);
hari=i2c_read(0);
i2c_stop();
}

lcd_gotoxy(0,0);
lcd_putsf("Pukul");
sprintf(buff," %2d:%2d:%2d",hour,minute,second);
lcd_puts(buff);


}

}

void set_clock(void) // prosedur mengeset waktu
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Atur Waktu");
while(pb2==1)
{
lcd_gotoxy(0,1);
sprintf(buff,"[%2d]:%2d:%2d",hour,minute,second);
lcd_puts(buff);
if(pb3==0)
{
delay_ms(15);
if(pb3==0)
{
hour++;
if(hour==24)hour=0;
lcd_gotoxy(0,1);
sprintf(buff,"[%2d]:%2d:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(700);
while(pb3==0)
{
hour++;
if(hour==24)hour=0;
lcd_gotoxy(0,1);
sprintf(buff,"[%2d]:%2d:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(200);
}
}

}
if(pb4==0)
{
delay_ms(15);
if(pb4==0)
{
hour--;
if(hour==-1)hour=23;
lcd_gotoxy(0,1);
sprintf(buff,"[%2d]:%2d:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(700);
while(pb4==0)
{
hour--;
if(hour==-1)hour=23;
lcd_gotoxy(0,1);
sprintf(buff,"[%2d]:%2d:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(200);
}
}

}
}
delay_ms(15);
while(pb2==0);
while(pb2==1)
{
lcd_gotoxy(0,1);
sprintf(buff,"%2d:[%2d]:%2d",hour,minute,second);
lcd_puts(buff);
if(pb3==0)
{
delay_ms(15);
if(pb3==0)
{
minute++;
if(minute==60)minute=0;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:[%2d]:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(700);
while(pb3==0)
{
minute++;
if(minute==60)minute=0;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:[%2d]:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(200);
}
}

}
if(pb4==0)
{
delay_ms(15);
if(pb4==0)
{
minute--;
if(minute==-1)minute=59;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:[%2d]:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(700);
while(pb4==0)
{
minute--;
if(minute==-1)minute=59;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:[%2d]:%2d",hour,minute,second);
lcd_puts(buff);
delay_ms(200);
}
}

}
}
delay_ms(15);
while(pb2==0);
while(pb2==1)
{
lcd_gotoxy(0,1);
sprintf(buff,"%2d:%2d:[%2d]",hour,minute,second);
lcd_puts(buff);
if(pb3==0)
{
delay_ms(15);
if(pb3==0)
{
second++;
if(second==60)second=0;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:%2d:[%2d]",hour,minute,second);
lcd_puts(buff);
delay_ms(700);
while(pb3==0)
{
second++;
if(second==60)second=0;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:%2d:[%2d]",hour,minute,second);
lcd_puts(buff);
delay_ms(200);
}
}

}
if(pb4==0)
{
delay_ms(15);
if(pb4==0)
{
second--;
if(second==-1)second=59;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:%2d:[%2d]",hour,minute,second);
lcd_puts(buff);
delay_ms(700);
while(pb4==0)
{
second--;
if(second==-1)second=59;
lcd_gotoxy(0,1);
sprintf(buff,"%2d:%2d:[%2d]",hour,minute,second);
lcd_puts(buff);
delay_ms(200);
}
}

}
}
delay_ms(15);
while(pb2==0);
rtc_set_time(hour,minute,second);
delay_ms(200);
while(pb2==0);
i2c_start();
i2c_write(0xd0);
i2c_write(0x03);
i2c_write(hari);
i2c_stop();
lcd_clear();
delay_ms(500);

}


// Declare your global variables here

//void siaga(void)
//{


//}

void main(void)
{

PORTB=0xFF;// port b sebagai input pull up

PORTD=0x00; //port D berlogika 0
DDRD=0xFF; //Arah data port D output

timer=off;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;


// I2C Bus initialization
i2c_init();

// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);

// LCD module initialization
lcd_init(16);

// Global enable interrupts
#asm("sei")


delay_ms(1000);
timer=on;
mode=0;


while (1) //Program utama
{

//Setting waktu

if(pb1==0)
{
delay_ms(15);
if(pb1==0)
{
while(pb1==0);
mode=1;
timer=off;
set_clock();
timer=on;
mode=0;
}
}
if(pb2==0)
{
delay_ms(15);
if(pb2==0)
{
while(pb2==0);
mode=0;

}
}
if(pb3==0)
{
delay_ms(15);
if(pb3==0)
{
while(pb3==0);
sprintf(buff,"pb_3");

}
}
if(pb4==0)
{
delay_ms(15);
if(pb4==0)
{
while(pb4==0);
sprintf(buff,"pb_4");


}
}










};
}

Senin, 16 Agustus 2010

TIDAK ADA YANG SIA-SIA

Optimisme adalah memandang hidup ini sebagai persembahan yang terbaik. Tidak ada sesuatu yang terjadi begitu saja dan mengalir sia-sia. Pasti ada tujuan. Pasti ada maksud. Mungkin saja anda baru mengalami pengalaman buruk yang tidak mengenakkan, maka keburukan itu hanya karena anda melihat dari salah satu sisi mata uang saja. Bila anda berani menengok kesisi yang lain,anda akan menemukan pemandangan yang jauh berbeda.
Anda tidak harus menjadi orang yang tersenyum atau menampakkan wajah yang selalu ceria. Optimisme terletak di dalam hati. Bukan hanya terpampang di muka. Jadilah optimis, karena hidup ini terlalu rumit untuk dipandang dengan mengerutkan alis.
Setiap tetes air yang keluar dari mata air tahu mereka mengalir menuju ke laut. Meski harus melalui anak sungai, selokan dan kali keruh, danau dan muara, mereka yakin perjalanan mereka bukan tanpa tujuan. Bahkan, ketika menunggu di samudra, setiap tetes air tahu suatu saat panas dan angin akan membawa mereka ke pucuk-pucuk gunung. Menjadi awan dan menurunkan hujan. Sebagian menyuburkan rerumputan, sebagian tertampung dalam sumur-sumur. Sebagian kembali ke laut.adakah sesuatu yang sia-sia dari setiap tetes air yang anda temui di selokan rumah anda?.
Kebahagiaan anda tumbuh dan berkembang manakala anda membantu orang lain. Namun,bilamana anda tidak mencoba membantu sesama, kebahagiaan akan layu dan mengering.Kebahagiaan bagaikan sebuah tanaman, harus di sirami setiap hari dengan sikap dan tindakan memberi.(J.Donald Walters)

Tidak ada komentar:

Posting Komentar