Часы реального времени
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
/p>
delaynote = (tmp>>5)&0x07;// Код длительности(freqnote!=0)// Если не пауза
{// включаем звукA=notefreq[freqnote];A=0x40;
}_note(pausedelay[delaynote]); // выдерживаем длительность нотыA=0x00; //выключаем звук
delay_note(8); //выдерживаем паузу
//чтоб две ноты не сливались в одну++;// Следующая нота
} _clear();
} Display()
{ (al_cl==0) //режим Alarm/clock(+)
{
/// Условия часов.(sec>59) // если сек = 60
{++; // добавляем 1 к переменной "минута"
sec=0; //зануляем переменную "секунда" _set_time(hour,min,sec);
}(min>59) // если мин = 60
{++; // добавляем 1 к переменной "час"
min=0; // зануляем переменную "минута" _set_time(hour,min,sec);
}(hour>23) // так как у нас часы имеют 24 часовый формат
{ // при достижении 24 часов, онулируем все переменные.
hour=min=sec=0;++; _set_time(hour,min,sec); _set_date(day,month,year);
} ((month==2) && ((year%4)==0))
{(day > max_day[month-1]+1) day=1;(day==0) day = max_day[month-1]+1;
}
{(day > max_day[month-1]) day=1;(day==0) day = max_day[month-1];
}
(month>11)
{=day=1;++; _set_date(day,month,year);
} _get_time(&hour,&min,&sec); //считать время_get_date(&day,&month,&year); //считать дату _gotoxy(4,0); _putchar(hour/10+0x30);_putchar(hour+0x30);_putchar(:);_putchar(min/10+0x30);_putchar(min+0x30);_putchar(:);_putchar(sec/10+0x30);_putchar(sec+0x30); _gotoxy(4,1);_putchar(day/10+0x30);_putchar(day+0x30);_putchar(.);_putchar(month/10+0x30);_putchar(month+0x30);_putchar(.);_putchar(year/10+0x30);_putchar(year+0x30);
}
{ (min_b>59) // если мин = 60
{_b++; // добавляем 1 к переменной "час" =0; // зануляем переменную "минута"
}(hour_b>23) // так как у нас часы имеют 24 часовый формат
{ // при достижении 24 часов, онулируем все переменные.
hour_b=0;_b=0; _b++;
} ((month_b==2) && ((year%4)==0))
{(day_b > max_day[month_b-1]+1) day_b=1;(day_b==0) day_b = max_day[month_b-1]+1;
}
{(day_b > max_day[month_b-1]) day_b=1;(day_b==0) day_b = max_day[month_b-1];
}(month_b>11)
{=1;=1;
} _gotoxy(0,0); _putchar(A);_putchar(l);_putchar(.);_putchar( );_putchar(hour_b/10+0x30);_putchar(hour_b+0x30);_putchar(:);_putchar(min_b/10+0x30);_putchar(min_b+0x30);_gotoxy(4,1);_putchar(day_b/10+0x30);_putchar(day_b+0x30);_putchar(.);_putchar(month_b/10+0x30);_putchar(month_b+0x30);
}
}Setings()
{ (al_cl==0) //режим Alarm/clock(+)
{(PINB.0==0) //+1 HOUR
{_ms(250); // задержка 1/4 сек. (для удобства) выбора++;_set_time(hour,min,sec);
}(PINB.2==0) // +10 MIN
{_ms(250); (min<50)min+=10; _set_time(hour,min,sec);
}(PINB.3==0) // +1 MIN
{_ms(250); ++; _set_time(hour,min,sec);
}(PINB.4==0) // +1 DAY
{_ms(250); ++; _set_date(day,month,year);
} (PINB.5==0) // +1 MONTH
{_ms(250); ++; _set_date(day,month,year);
} (PINB.7==0)
{_ms(250); _cl=1;
}
}
{ (PINB.0==0)
{_ms(250); _b++;
}(PINB.2==0)
{_ms(250); (min_b<50)min_b+=10;
}(PINB.3==0)
{_ms(250);_b++;
}(PINB.4==0)
{_ms(250); _b++;
}(PINB.5==0)
{_ms(250); _b++;
} (PINB.7==0)
{_ms(250); _cl=0; _clear();
}
}
}main(void)
{tmp;=0xFF; =0x02;=0xFF;=0x00;
=0xFF;=0x00;
=0x80;A=0x00;B=0x05;H=0x00;L=0x00;H=0x00;L=0x00;AH=0xB7;AL=0x00;BH=0x00;BL=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization=0x10;
// LCD module initialization_init(16);();
// Global enable interrupts
#asm("sei")c_init();_init(0,1,0);=rtc_read(0x00);=tmp&0b01111111;_write(0x00,tmp);=rtc_read(0x02);=tmp&0b10111111;_write(0x02,tmp);_set_date(day,month,year); //установить дату: день,месяц,год
rtc_set_time(hour,min,sec); //установить время: часы, минуты, секунды
lcd_clear(); (1)
{ ();(hour==hour_b && min==min_b && day==day_b && month==month_b) // срабатывание будильника
Alarm();
};
}
1.