code
code
h>
#include <i2c.h>
#include <ds1307.h>
#include <stdio.h>
#include <alcd.h>
#include <delay.h>
#define pin_data PORTD.7
void dht22_calcular(){
m = (humi / 100) + 48;
n = (humi % 100)/10 + 48;
p = (humi % 10) + 48;
//-----------------------------------------------------------------------
void test_bit0(){
time = 0;
while(PIND.7 == 0){
time++;
}
a = time;
}
void test_bit1(){
time = 0;
while(PIND.7 == 1){
time++;
}
b = time;
}
//-----------------------------------------------------------------------
void dht22_data(){
unsigned char i;
while(PIND.7 == 1){};
//-----------------------------------------------------------------------
void dht22_start(){
DDRD.7 = 1;
pin_data = 0;
delay_ms(10);
pin_data = 1;
DDRD.7 = 0;
}
//-----------------------------------------------------------------------
void sensor_dht22(){
dht22_start();
dht22_data();
dht22_calcular();
}
void display_sensor(void){
lcd_gotoxy(0,0);
lcd_puts("humi : ");
lcd_gotoxy(0,1);
lcd_puts("temp : ");
sensor_dht22();
lcd_gotoxy(8,0);
lcd_putchar(m);
delay_ms(10);
lcd_putchar(n);
delay_ms(10);
lcd_putchar('.');
delay_ms(10);
lcd_putchar(p);
delay_ms(10);
lcd_puts(" %");
lcd_gotoxy(8,1);
lcd_putchar(x);
delay_ms(10);
lcd_putchar(y);
delay_ms(10);
lcd_putchar('.');
delay_ms(10);
lcd_putchar(z);
delay_ms(10);
lcd_puts(" 'C");
delay_ms(2000);
}
}
//unsigned char HOUR_ARL[15];
//unsigned char MIN_ARL[15];
void kiemtra_up(void){
if(PINB.1==0){
int a = 0;
while(PINB.1 == 0){
a++;
delay_ms(100);
if(a>20)
{
if(mode == 1){
lcd_gotoxy(0,1);lcd_puts(" Set time ");
hour++; delay_ms(200); if(hour>23) hour = 0;
}
if(mode == 3){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
dow++;
delay_ms(200);
if(dow > 7) dow = 1;
}
if(mode == 4){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
day++;
delay_ms(200);
if(day > 31) day = 1;
}
if(mode == 5){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
month++;
delay_ms(200);
if(month>12) month = 1;
}
if(mode == 6){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
year++;
delay_ms(200);
if(year>99) year = 00;
}
if(mode == 7){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
hoAl++;
delay_ms(200);
if(hoAl>23) hoAl = 0;
}
if(mode == 8){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
miAl++;
delay_ms(200);
if(miAl>59) miAl=0;
}
rtc_set_time(hour, min,sec);
rtc_set_date(dow,day,month,year);
}
}
if(a<20)
{
if(mode == 1){
lcd_gotoxy(0,1);lcd_puts(" Set time ");
hour++; delay_ms(200); if(hour>23) hour = 0;
}
if(mode == 3){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
dow++;
delay_ms(200);
if(dow > 7) dow = 1;
}
if(mode == 4){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
day++;
delay_ms(200);
if(day > 31) day = 1;
}
if(mode == 5){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
month++;
delay_ms(200);
if(month>12) month = 1;
}
if(mode == 6){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
year++;
delay_ms(200);
if(year>99) year = 00;
}
if(mode == 7){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
hoAl++;
delay_ms(200);
if(hoAl>23) hoAl = 0;
}
if(mode == 8){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
miAl++;
delay_ms(200);
if(miAl>59) miAl=0;
}
rtc_set_time(hour, min,sec);
rtc_set_date(dow,day,month,year);
}
}
}
void kiemtra_down(void){
if(PINB.0==0){
int a = 0;
while(PINB.0 == 0){
a++;
delay_ms(100);
if(a>20)
{
if(mode == 1){
lcd_gotoxy(0,1);lcd_puts(" Set time ");
hour--; delay_ms(200);
if(hour < 0) hour = 23;
}
if(mode == 4){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
day--;
delay_ms(200);
if(day < 1) day = 31;
}
if(mode == 5){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
month--;
delay_ms(200);
if(month < 1) month = 12;
}
if(mode == 6){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
year--;
delay_ms(200);
if(year < 00) year = 99;
}
if(mode == 7){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
hoAl--;
delay_ms(200);
if(hoAl < 0) hoAl = 23;
}
if(mode == 8){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
miAl--;
delay_ms(200);
if(miAl < 0) miAl = 59;
}
rtc_set_time(hour, min,sec);
rtc_set_date(dow,day,month,year);
}
}
if(a<20)
{
if(mode == 1){
lcd_gotoxy(0,1);lcd_puts(" Set time ");
hour--; delay_ms(200);
if(hour < 0) hour = 23;
}
if(mode == 3){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
dow--;
delay_ms(200);
if(dow < 1) dow = 7;
}
if(mode == 4){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
day--;
delay_ms(200);
if(day < 1) day = 31;
}
if(mode == 5){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
month--;
delay_ms(200);
if(month < 1) month = 12;
}
if(mode == 6){
lcd_gotoxy(0,0);
lcd_puts(" Set date ");
year--;
delay_ms(200);
if(year < 00) year = 99;
}
if(mode == 7){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
hoAl--;
delay_ms(200);
if(hoAl < 0) hoAl = 23;
}
if(mode == 8){
lcd_gotoxy(0,0);
lcd_puts(" Set Alarm ");
miAl--;
delay_ms(200);
if(miAl < 0) miAl = 59;
}
rtc_set_time(hour, min,sec);
rtc_set_date(dow,day,month,year);
}
}
//void settime(void){
// switch (mode){
// case 1:
// lcd_gotoxy(0,1);
// lcd_puts(" Set time ");
// if(PINB.1 == 0){
// hour++;
// delay_ms(500);
// if(hour>23) {
// hour = 0;}
// }
//
// if(PINB.0 == 0) {
// hour--;
// delay_ms(500);
// if( hour < 0 ){
// hour = 23;}
// }
// rtc_set_time(hour, min,sec);
// break;
// case 2:
// lcd_gotoxy(0,1);
// lcd_puts(" Set time ");
// if(PINB.1 == 0){
// min++;
// delay_ms(500);
// if(min>59){
// min=0;}
// }
//
// if(PINB.0 == 0) {
// min--;
// delay_ms(500);
// if(min<0){
// min = 59;}
// }
// rtc_set_time(hour, min,sec);
// break;
//
// }
// }
//void setdate(void){
// switch (mode){
// case 3:
// lcd_gotoxy(0,0);
// lcd_puts(" Set date ");
// if(PINB.1 == 0){
// dow++;
// delay_ms(500);
// if(dow>7) {
// dow=0; }
// }
//
// if(PINB.0 == 0){
// dow--;
// delay_ms(500);
// if(dow < 0) {
// dow = 7;}
// }
// rtc_set_date(dow,day,month,year);
// break;
//
// case 4:
// lcd_gotoxy(0,0);
// lcd_puts(" Set date ");
// if(PINB.1 == 0){
// day++;
// delay_ms(500);
// if(day>31){
// day=1;}
// }
//
// if(PINB.0 == 0){
// day--;
// delay_ms(500);
// if(day<1){
// day=31;}
// }
// rtc_set_date(dow,day,month,year);
// break;
//
// case 5:
// lcd_gotoxy(0,0);
// lcd_puts(" Set date ");
// if(PINB.1 == 0){
// month++;
// delay_ms(500);
// if(month>12){
// month=1;}
// }
//
// if(PINB.0 == 0){
// month--;
// delay_ms(500);
// if(month<1){
// month=12;}
// }
// rtc_set_date(dow,day,month,year);
// break;
//
// case 6:
// lcd_gotoxy(0,0);
// lcd_puts(" Set date ");
// if(PINB.1 == 0){
// year++;
// delay_ms(500);
// if(year>99){
// year=1;}
// }
//
// if(PINB.0 == 0){
// year--;
// delay_ms(500);
// if(year<1){
// year=99;}
// }
// rtc_set_date(dow,day,month,year);
// break;
// }
// }
switch(mode){
case 3:
break;
case 4:
lcd_gotoxy(4,1);
lcd_puts(" ");
delay_ms(20);
lcd_gotoxy(4,1);
lcd_putchar(day/10+48);
lcd_putchar(day%10+48);
break;
case 5:
lcd_gotoxy(7,1);
lcd_puts(" ");
delay_ms(20);
lcd_gotoxy(7,1);
lcd_putchar(month/10+48);
lcd_putchar(month%10+48);
break;
case 6:
lcd_gotoxy(12,1);
lcd_puts(" ");
delay_ms(20);
lcd_gotoxy(12,1);
lcd_putchar(year/10+48);
lcd_putchar(year%10+48);
break;
}
lcd_gotoxy(12,1);
lcd_putchar(year/10+48);
lcd_putchar(year%10+48);
lcd_gotoxy(7,1);
lcd_putchar(month/10+48);
lcd_putchar(month%10+48);
lcd_gotoxy(4,1);
lcd_putchar(day/10+48);
lcd_putchar(day%10+48);
lcd_gotoxy(6,1);
lcd_puts("/");
lcd_gotoxy(9,1);
lcd_puts("/");
lcd_gotoxy(10,1);
lcd_puts("20");
}
}
void main(void)
{
// Declare your local variables here
i2c_init();