Вс ноя 18, 2012 18:13:43
/*****************************************************
CodeWizardAVR V2.04.4a Advanced
Chip type : ATmega8
AVR Core Clock frequency: 4,000000 MHz
*****************************************************/
#include <mega8.h>
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#asm
.equ __ds1302_port=0x15 ;PORTC
.equ __ds1302_io=5
.equ __ds1302_sclk=4
.equ __ds1302_rst=3
#endasm
#include <ds1302.h>
unsigned char hour=1,min=1,sek=1; //часы, минуты, секунды
unsigned char day=18,month=11,year=12; //день, месяц, год
unsigned char myday=0; // день недели
unsigned int y=0, m=0;
void main(void)
{
ACSR=0x80;
SFIOR=0x00;
// DS1302 Real Time Clock initialization
// Trickle charger: Off
rtc_init(0,0,0);
lcd_init(16);
while (1)
{
rtc_get_time(&hour,&min,&sek); //считать время
rtc_get_date(&day,&month,&year); //считать дату
// ---------- вычислить день недели по дате ----------
y = year+2000;
m=month;
if (m > 2) { m -= 2; }
else { m += 10; y--; }
myday = (((day) + y + (y>>2) + ((31 * m) / 12)) % 7);
if (myday == 0) myday = 7;
//-
lcd_gotoxy(0,0);
lcd_putchar(hour/10+0x30);
lcd_putchar(hour%10+0x30);
lcd_putchar(':');
lcd_putchar(min/10+0x30);
lcd_putchar(min%10+0x30);
lcd_putchar('.');
lcd_putchar(sek/10+0x30);
lcd_putchar(sek%10+0x30);
lcd_gotoxy(0,1);
lcd_putchar(day/10+0x30);
lcd_putchar(day%10+0x30);
lcd_putchar('.');
lcd_putchar(month/10+0x30);
lcd_putchar(month%10+0x30);
lcd_putchar('.');
lcd_putsf("20");
lcd_putchar((year/10)%10+0x30);
lcd_putchar(year%10+0x30);
lcd_putchar(' ');
lcd_putchar(myday%10+0x30);
};
}
Вс ноя 18, 2012 20:04:58
Вс ноя 18, 2012 22:51:31
New_myday=myday-1;
if (New_myday == 0) New_myday = 7;
//и вывод на дисплей
lcd_putchar(New_myday%10+0x30);
Вс ноя 18, 2012 23:18:03
Не знаю почему у меня по по формуле (урезаной) получился сдвиг недели на плюс один день
Вт ноя 20, 2012 15:39:30
TovsCat писал(а):Не знаю почему у меня по по формуле (урезаной) получился сдвиг недели на плюс один день,
Ср дек 26, 2012 14:26:40
Valeri S писал(а):M169 писал
Доброго времени суток.
У меня к вам просьба, посмотрите, пожалуйста, на секундное двоеточие несколько минут внимательно, что Вы видите?
простите что стаким опозданием отвечаю на ваш вопрос.
эти часы я собрал для своих друзей по работе.
если посмотреть на точки то они, как маятник
тридцать секунд в одну сторону потом не большая
заминка и в обратную сторону.
с уважением Валерий
Чт дек 27, 2012 07:50:54
Чт дек 27, 2012 11:10:54
santy писал(а):Еще небольшая подсветка сегментов идет, правда днем не заметно, только ночью, из-за чего интересно?
Чт дек 27, 2012 13:14:42
m169 писал(а):Понизьте напряжение питания на индикаторах. С помощью подстроичных резисторов, в цепи DC-DC преобразователей.
Вт апр 16, 2013 14:02:45
Вт май 07, 2013 15:14:19
Ср май 08, 2013 09:36:29
Пт май 31, 2013 19:46:26
svinuk писал(а): ...откуда взять +5В и +9В для питания индикаторов, ведь основное питание у нас 15В.
Сб июн 01, 2013 22:37:27
Вс июн 02, 2013 16:46:38
Вс июн 02, 2013 18:03:24
Пн авг 05, 2013 14:48:04
Пн авг 05, 2013 21:36:22
svinuk писал(а):...Выложите кто-нибудь фьюзы, а то в первом посте все ссылки мертвы...
Вт авг 06, 2013 15:11:59
Чт авг 15, 2013 21:12:31
NickNI писал(а):svinuk писал(а): ...откуда взять +5В и +9В для питания индикаторов, ведь основное питание у нас 15В.
Посмотреть схему в первом посте...