พอดีว่าผมจะทำเครื่องให้อาหารปลาอัตโนมัติครับ แล้วมันติดตรงที่ว่าไม่สามามารถกดปุ่มตั้งเวลา ตั้งวันที่ได้ครับ ขอความช่วยเหลือหน่อยครับผม ขอบคุณมากครับ
.
.
.
.
++++นี่คือชุดโปรแกรมครับ++++
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use i2C(master,sda=PIN_C4,scl=PIN_C3)
#define ADDR_DS1307 0xD0
#include <lcd.c>
#define use_portd_d true
#define sw_hr_day input(pin_B0)
#define sw_min_month input(pin_B1)
#define sw_sec_year input(pin_B2)
#define sw_setTime input(pin_B3)
#define sw_setDate input(pin_B4)
#define sw_setFeed1 input(pin_B5)
#define sw_setFeed2 input(pin_B6)
unsigned int8 hour,min1,sec,day,month,year;
unsigned int8 h1,m1,s1,h2,m2,s2;
int h1_a,h1_b,h1_c,h2_a,h2_b,h2_c;
int m1_a,m1_b,m1_c,m2_a,m2_b,m2_c;
int s1_a,s1_b,s1_c,s2_a,s2_b,s2_c;
/********************************Data Types**********************************/
typedef struct
{
BYTE sec;
BYTE min;
BYTE hr;
BYTE day;
BYTE date;
BYTE month;
BYTE year;
}
DS1307_RTC;
DS1307_RTC RTC;
/******************************Proto Types*********************************/
Void DS1307_Write(unsigned char ctl,unsigned char dat);
BYTE DS1307_Read(unsigned char ctl);
Void DS1307_WriteDate(void);
Void DS1307_WriteTime(void);
Void DS1307_ReadDate(void);
Void DS1307_ReadTime(void);
/*********************************DS1307 Write****************************/
void DS1307_Write(unsigned char ctl,unsigned char dat)
{
i2c_start(); //Start condition
i2c_write(ADDR_DS1307); //Device Address-Write
i2c_write(ctl); //Control byte
i2c_write(dat); //Write date
i2c_stop(); //Stop condition
}
/*****************************DS1307 Read**********************************/
BYTE DS1307_Read(unsigned char ctl)
{
BYTE dat;
i2c_start(); //Start condition
i2c_write(ADDR_DS1307); //Device Address-Write
i2c_write(ctl); //Control byte
i2c_start();
i2c_write(ADDR_DS1307+1); //Device Address-Read
dat=i2c_read(0); //Read date , Not ACK
i2c_stop(); //Stop condition
return(dat); //return date
}
/******************************DS1307 Write Date****************************/
void DS1307_WriteDate(void)
{
DS1307_Write(0x04,RTC.date);
DS1307_Write(0x05,RTC.month);
DS1307_Write(0x06,RTC.year);
}
/******************************DS1307 Write Time****************************/
void DS1307_WriteTime(void)
{
DS1307_Write(0x00,RTC.sec);
DS1307_Write(0x01,RTC.min);
DS1307_Write(0x02,RTC.hr);
}
/******************************DS1307 ReadDate****************************/
void DS1307_ReadDate(void)
{
RTC.date=DS1307_Read(0x04);
RTC.month=DS1307_Read(0x05);
RTC.year=DS1307_Read(0x06);
}
/********************************Set Feeds Time****************************/
void Feed1 (void)
{
if(sw_setFeed1==0)
{
lcd_gotoxy(1,1);printf(lcd_putc," Set Feed Time1 ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Hour: ");
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(h1<23)
{h1++;}
else
{h1=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",h1);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Min : ");
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(m1<59)
{m1++;}
else
{m1=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",m1);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(100);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Sec : ");
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(s1<59)
{
s1++;
}
else
{
s1=0;
}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",s1);
delay_ms(500);
}
else;
}
while(sw_setFeed1!=0);
delay_ms(50);
h1_a=(h1)/10;
h1_b=(h1);
h1_c=((h1_a<<4)|(h1_b));
m1_a=(m1)/10;
m1_b=(m1);
m1_c=((m1_a<<4)|(m1_b));
s1_a=(s1)/10;
s1_b=(s1);
s1_c=((s1_a<<4)|(s1_b));
}
}
/***********************************Set Feeds Time2*****************************/
void Feed2(void)
{
if(sw_setFeed2==0)
{
lcd_gotoxy(1,1);printf(lcd_putc," Set Feed Time2 ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Hour: ");
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(h2<23)
{h2++;}
else
{h2=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",h2);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Min: ");
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(m2<59)
{m2++;}
else
{m2=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",m2);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Sec: ");
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(s2<59)
{
s2++;
}
else
{
s2=0;
}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",s2);
delay_ms(500);
}
else;
}
while(sw_setFeed2!=0);
delay_ms(500);
h2_a=(h2)/10;
h2_b=(h2);
h2_c=((h2_a<<4)|(h2_b));
m2_a=(m2)/10;
m2_b=(m2);
m2_c=((m2_a<<4)|(m2_b));
s2_a=(s2)/10;
s2_b=(s2);
s2_c=((s2_a<<4)|(s2_b));
}
}
/******************************DS1307 ReadDate******************************/
void DS1307_ReadTime(void)
{
RTC.sec=DS1307_Read(0x00);
RTC.min=DS1307_Read(0x01);
RTC.hr=DS1307_Read(0x02);
//Check Feed Time 1& Check Feed Time 2//
if(((RTC.hr==h1_c)&&

RTC.min==m1_c))||(( RTC.hr==h2_c)&&

RTC.min==m2_c)))
{
output_high(PIN_E0);
if(((RTC.hr==h1_c)&&

RTC.min==m1_c)&&

RTC.sec>6))||((RTC.hr==h2_c)&&

RTC.min==m2_c)&&

RTC.sec>6)))
{
output_low(PIN_E0);
}
}
else
output_low(PIN_E0);
}
/***************************DS1307 SetDate***************************************/
void DS1307_SetDate(void)
{
int day_a,day_b,day_c;
int month_a,month_b,month_c;
int year_a,year_b,year_c;
delay_ms(500);
lcd_gotoxy(1,1);printf(lcd_putc," Set..Date ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Days: ");
delay_ms(500);
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(day<31)
{day++;}
else
{day=1;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",day);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Month: ");
delay_ms(500);
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(month<12)
{month++;}
else
{month=1;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",month);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Years: ");
delay_ms(500);
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(year<20)
{year++;}
else
{year=1;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",year);
delay_ms(500);
}
else;
}
while(sw_setDate!=0);
delay_ms(500);
day_a=(day)/10;
day_b=(day);
day_c=((day_a<<4)|(day_b));
month_a=(month)/10;
month_b=(month);
month_c=((month_a<<4)|(month_b));
year_a=(year)/10;
year_b=(year);
year_c=((year_a<<4)|(year_b));
RTC.date=day_c;
RTC.month=month_c;
RTC.year=year_c;
}
/*************************DS1307 SetTime**********************************/
void DS1307_SetTime(void)
{
int hour_a,hour_b,hour_c;
int min1_a,min1_b,min1_c;
int sec_a,sec_b,sec_c;
lcd_gotoxy(1,1);printf(lcd_putc," Set Real Time ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Hour: ");
delay_ms(1000);
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(hour<23)
{hour++;}
else
{hour=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",hour);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Min: ");
delay_ms(500);
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(min1<59)
{min1++;}
else
{min1=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",min1);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(100);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\sec: ");
delay_ms(500);
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(sec<59)
{sec++;}
else
{sec=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",sec);
delay_ms(200);
}
else;
}
while(sw_setTime!=0);
delay_ms(50);
hour_a=(hour)/10;
hour_b=(hour);
hour_c=((hour_a<<4)|(hour_b));
min1_a=(min1)/10;
min1_b=(min1);
min1_c=((min1_a<<4)|(min1_b));
sec_a=(sec)/10;
sec_b=(sec);
sec_c=((sec_a<<4)|(sec_b));
RTC.hr=hour_c;
RTC.min=min1_c;
RTC.sec=sec_c;
}
/****************************Main Function*************************************/
void main()
{
lcd_init();
lcd_gotoxy(2,1);printf(lcd_putc,"\f*****EnE_#06*****\n AUTO FISH FEED\n");
delay_ms(10000);
while(TRUE)
{
DS1307_ReadDate();
DS1307_ReadTime();
delay_ms(100);
if(sw_setTime==0)
{
delay_ms(100);
DS1307_SetTime(); // Set Time
DS1307_WriteTime(); // Write Time
}
if(sw_setdate==0)
{
delay_ms(100);
DS1307_SetDate(); // Set Date
DS1307_WriteDate(); // Write Date
}
if(sw_setFeed1==0)
{
delay_ms(100);
Feed1();
}
if(sw_setFeed2==0)
{
delay_ms(100);
Feed2();
}
lcd_gotoxy(2,1);
printf(lcd_putc,"\fDate:%X/%X/%X\n",RTC.date,RTC.month,RTC.year);
lcd_gotoxy(1,2); printf(lcd_putc,"Time:%X:%X:%X",RTC.hr,RTC.min,RTC.sec);
delay_ms(1000);
}
}
.
.
.
.
ช่วยหน่อยนะครับ ขอบคุณมากๆ
ช่วยแก้ไขโปรแกรม PIC หน่อยครับ
.
.
.
.
++++นี่คือชุดโปรแกรมครับ++++
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use i2C(master,sda=PIN_C4,scl=PIN_C3)
#define ADDR_DS1307 0xD0
#include <lcd.c>
#define use_portd_d true
#define sw_hr_day input(pin_B0)
#define sw_min_month input(pin_B1)
#define sw_sec_year input(pin_B2)
#define sw_setTime input(pin_B3)
#define sw_setDate input(pin_B4)
#define sw_setFeed1 input(pin_B5)
#define sw_setFeed2 input(pin_B6)
unsigned int8 hour,min1,sec,day,month,year;
unsigned int8 h1,m1,s1,h2,m2,s2;
int h1_a,h1_b,h1_c,h2_a,h2_b,h2_c;
int m1_a,m1_b,m1_c,m2_a,m2_b,m2_c;
int s1_a,s1_b,s1_c,s2_a,s2_b,s2_c;
/********************************Data Types**********************************/
typedef struct
{
BYTE sec;
BYTE min;
BYTE hr;
BYTE day;
BYTE date;
BYTE month;
BYTE year;
}
DS1307_RTC;
DS1307_RTC RTC;
/******************************Proto Types*********************************/
Void DS1307_Write(unsigned char ctl,unsigned char dat);
BYTE DS1307_Read(unsigned char ctl);
Void DS1307_WriteDate(void);
Void DS1307_WriteTime(void);
Void DS1307_ReadDate(void);
Void DS1307_ReadTime(void);
/*********************************DS1307 Write****************************/
void DS1307_Write(unsigned char ctl,unsigned char dat)
{
i2c_start(); //Start condition
i2c_write(ADDR_DS1307); //Device Address-Write
i2c_write(ctl); //Control byte
i2c_write(dat); //Write date
i2c_stop(); //Stop condition
}
/*****************************DS1307 Read**********************************/
BYTE DS1307_Read(unsigned char ctl)
{
BYTE dat;
i2c_start(); //Start condition
i2c_write(ADDR_DS1307); //Device Address-Write
i2c_write(ctl); //Control byte
i2c_start();
i2c_write(ADDR_DS1307+1); //Device Address-Read
dat=i2c_read(0); //Read date , Not ACK
i2c_stop(); //Stop condition
return(dat); //return date
}
/******************************DS1307 Write Date****************************/
void DS1307_WriteDate(void)
{
DS1307_Write(0x04,RTC.date);
DS1307_Write(0x05,RTC.month);
DS1307_Write(0x06,RTC.year);
}
/******************************DS1307 Write Time****************************/
void DS1307_WriteTime(void)
{
DS1307_Write(0x00,RTC.sec);
DS1307_Write(0x01,RTC.min);
DS1307_Write(0x02,RTC.hr);
}
/******************************DS1307 ReadDate****************************/
void DS1307_ReadDate(void)
{
RTC.date=DS1307_Read(0x04);
RTC.month=DS1307_Read(0x05);
RTC.year=DS1307_Read(0x06);
}
/********************************Set Feeds Time****************************/
void Feed1 (void)
{
if(sw_setFeed1==0)
{
lcd_gotoxy(1,1);printf(lcd_putc," Set Feed Time1 ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Hour: ");
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(h1<23)
{h1++;}
else
{h1=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",h1);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Min : ");
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(m1<59)
{m1++;}
else
{m1=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",m1);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(100);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Sec : ");
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(s1<59)
{
s1++;
}
else
{
s1=0;
}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",s1);
delay_ms(500);
}
else;
}
while(sw_setFeed1!=0);
delay_ms(50);
h1_a=(h1)/10;
h1_b=(h1);
h1_c=((h1_a<<4)|(h1_b));
m1_a=(m1)/10;
m1_b=(m1);
m1_c=((m1_a<<4)|(m1_b));
s1_a=(s1)/10;
s1_b=(s1);
s1_c=((s1_a<<4)|(s1_b));
}
}
/***********************************Set Feeds Time2*****************************/
void Feed2(void)
{
if(sw_setFeed2==0)
{
lcd_gotoxy(1,1);printf(lcd_putc," Set Feed Time2 ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Hour: ");
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(h2<23)
{h2++;}
else
{h2=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",h2);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Min: ");
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(m2<59)
{m2++;}
else
{m2=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",m2);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Sec: ");
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(s2<59)
{
s2++;
}
else
{
s2=0;
}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",s2);
delay_ms(500);
}
else;
}
while(sw_setFeed2!=0);
delay_ms(500);
h2_a=(h2)/10;
h2_b=(h2);
h2_c=((h2_a<<4)|(h2_b));
m2_a=(m2)/10;
m2_b=(m2);
m2_c=((m2_a<<4)|(m2_b));
s2_a=(s2)/10;
s2_b=(s2);
s2_c=((s2_a<<4)|(s2_b));
}
}
/******************************DS1307 ReadDate******************************/
void DS1307_ReadTime(void)
{
RTC.sec=DS1307_Read(0x00);
RTC.min=DS1307_Read(0x01);
RTC.hr=DS1307_Read(0x02);
//Check Feed Time 1& Check Feed Time 2//
if(((RTC.hr==h1_c)&&
{
output_high(PIN_E0);
if(((RTC.hr==h1_c)&&
{
output_low(PIN_E0);
}
}
else
output_low(PIN_E0);
}
/***************************DS1307 SetDate***************************************/
void DS1307_SetDate(void)
{
int day_a,day_b,day_c;
int month_a,month_b,month_c;
int year_a,year_b,year_c;
delay_ms(500);
lcd_gotoxy(1,1);printf(lcd_putc," Set..Date ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"Days: ");
delay_ms(500);
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(day<31)
{day++;}
else
{day=1;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",day);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Month: ");
delay_ms(500);
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(month<12)
{month++;}
else
{month=1;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",month);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Years: ");
delay_ms(500);
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(year<20)
{year++;}
else
{year=1;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",year);
delay_ms(500);
}
else;
}
while(sw_setDate!=0);
delay_ms(500);
day_a=(day)/10;
day_b=(day);
day_c=((day_a<<4)|(day_b));
month_a=(month)/10;
month_b=(month);
month_c=((month_a<<4)|(month_b));
year_a=(year)/10;
year_b=(year);
year_c=((year_a<<4)|(year_b));
RTC.date=day_c;
RTC.month=month_c;
RTC.year=year_c;
}
/*************************DS1307 SetTime**********************************/
void DS1307_SetTime(void)
{
int hour_a,hour_b,hour_c;
int min1_a,min1_b,min1_c;
int sec_a,sec_b,sec_c;
lcd_gotoxy(1,1);printf(lcd_putc," Set Real Time ");
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Hour: ");
delay_ms(1000);
do
{
if(sw_hr_day==0)
{
delay_ms(50);
if(hour<23)
{hour++;}
else
{hour=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",hour);
delay_ms(500);
}
else;
}
while(sw_min_month!=0);
delay_ms(500);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\Min: ");
delay_ms(500);
do
{
if(sw_min_month==0)
{
delay_ms(50);
if(min1<59)
{min1++;}
else
{min1=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",min1);
delay_ms(500);
}
else;
}
while(sw_sec_year!=0);
delay_ms(100);
lcd_gotoxy(1,2);printf(lcd_putc," ");
lcd_gotoxy(1,2);printf(lcd_putc,"\sec: ");
delay_ms(500);
do
{
if(sw_sec_year==0)
{
delay_ms(50);
if(sec<59)
{sec++;}
else
{sec=0;}
lcd_gotoxy(10,2);printf(lcd_putc,"%d",sec);
delay_ms(200);
}
else;
}
while(sw_setTime!=0);
delay_ms(50);
hour_a=(hour)/10;
hour_b=(hour);
hour_c=((hour_a<<4)|(hour_b));
min1_a=(min1)/10;
min1_b=(min1);
min1_c=((min1_a<<4)|(min1_b));
sec_a=(sec)/10;
sec_b=(sec);
sec_c=((sec_a<<4)|(sec_b));
RTC.hr=hour_c;
RTC.min=min1_c;
RTC.sec=sec_c;
}
/****************************Main Function*************************************/
void main()
{
lcd_init();
lcd_gotoxy(2,1);printf(lcd_putc,"\f*****EnE_#06*****\n AUTO FISH FEED\n");
delay_ms(10000);
while(TRUE)
{
DS1307_ReadDate();
DS1307_ReadTime();
delay_ms(100);
if(sw_setTime==0)
{
delay_ms(100);
DS1307_SetTime(); // Set Time
DS1307_WriteTime(); // Write Time
}
if(sw_setdate==0)
{
delay_ms(100);
DS1307_SetDate(); // Set Date
DS1307_WriteDate(); // Write Date
}
if(sw_setFeed1==0)
{
delay_ms(100);
Feed1();
}
if(sw_setFeed2==0)
{
delay_ms(100);
Feed2();
}
lcd_gotoxy(2,1);
printf(lcd_putc,"\fDate:%X/%X/%X\n",RTC.date,RTC.month,RTC.year);
lcd_gotoxy(1,2); printf(lcd_putc,"Time:%X:%X:%X",RTC.hr,RTC.min,RTC.sec);
delay_ms(1000);
}
}
.
.
.
.
ช่วยหน่อยนะครับ ขอบคุณมากๆ