Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 09:11   #1
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию дипломный проект

Проект подачи звонков. Подскажите пожалуйста, как настроить подачу сигнала, нужно, чтобы 3 секунды сигнал шёл(звонок звенел), после чего сбрасывался. И при нажатии кнопки запоминалось определённое расписание. Т.е. это будет будний день, суббота или праздничный день.
Код:
#include <io.h>
// Alphanumeric LCD functions
#include <alcd.h>
#include <delay.h>
#asm
   .equ __ds1302_port=0x18 ;PORTB
   .equ __ds1302_io=2
   .equ __ds1302_sclk=1
   .equ __ds1302_rst=0
#endasm
#include <ds1302.h>
// Declare your global variables here
unsigned char second, minute, hour, date, month, year, dzntime;
bit menu = 0;
bit viwe = 1;
int editCount = 0;    
 //---------Вывод времени--------------------------------------------
void timeOut (void)
{      
  lcd_gotoxy(0,1);
  lcd_putchar(hour/10+0x30);
  lcd_putchar(hour%10+0x30);
  lcd_putchar(':'); 
  lcd_putchar(minute/10+0x30);
  lcd_putchar(minute%10+0x30);       
  lcd_putchar(':');
  lcd_putchar(second/10+0x30);
  lcd_putchar(second%10+0x30);                       
}
//---------Вывод времени конец--------------------------------------------
//---------Вывод даты--------------------------------------------
void dateout (void)
{      
  lcd_gotoxy(3,0);
  lcd_putchar(date/10+0x30);
  lcd_putchar(date%10+0x30);
  lcd_putchar(' '); 
  monthOut();  
  lcd_putchar(' ');
  lcd_putchar(year/10+0x30);
  lcd_putchar(year%10+0x30);                       
}
//---------Вывод даты конец--------------------------------------------

<!--тут у меня меню настройки часов, работает хорошо, кода много, не влазит, удалил... -->

void dzn (void){
/*switch (dzntime){
case 0: //будни
if (hour==8 && minute==30) {PORTD.6=1;}
if (hour==9 && minute==15) {PORTD.6=1;}
if (hour==9 && minute==20) {PORTD.6=1;}
if (hour==10 && minute==00) {PORTD.6=1;}

break;
case 1: //суббота
if (hour==8 && minute==30) {PORTD.6=1;}
if (hour==9 && minute==15) {PORTD.6=1;}
if (hour==9 && minute==20) {PORTD.6=1;}
if (hour==10 && minute==00) {PORTD.6=1;}
break;
case 2: //праздники
if (hour== && minute==) {PORTD.6=1;}
break;
*/
if (hour==10 && minute==33) {PORTD.6=1;} 
}
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (1<<PORTB1) | (1<<PORTB0);
// Port C initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (1<<PORTC1) | (1<<PORTC0);
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRD=(0<<DDD7) | (1<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTA Bit 0
// RD - PORTA Bit 1
// EN - PORTA Bit 2
// D4 - PORTA Bit 4
// D5 - PORTA Bit 5
// D6 - PORTA Bit 6
// D7 - PORTA Bit 7
// Characters/line: 8
rtc_init(0,0,0);
lcd_init(16);
#asm("sei")
while (1){ 
     rtc_get_time(&hour,&minute,&second);//Достаю время
     rtc_get_date(&date,&month,&year);//Достаю дату
     timeOut();
     dateout();
     dzn();     
     if (PINC.0 == 0) { //активация функции меню
     menu = 1;
     delay_ms(800);
     }
     menuView();        
}
}
Это вам не это
25-й кадр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Консультация] дипломный проект Igorek9494 Общие вопросы Delphi 4 21.05.2014 20:11
Куплю готовый дипломный проект vitalij-cher Фриланс 13 12.11.2013 02:43
Дипломный проект ИринаForeve Помощь студентам 1 28.04.2009 11:27
Создание arj архивов, дипломный проект Aндрей Помощь студентам 2 16.02.2009 12:40