Часы реального времени

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

/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.