본문내용
{
char Time_buf[16];
//day를 나눈 나머지에 의해 Mon. ~ Sun. 표시
if (day%7 == 0)
sprintf(Time_buf,"%cM %02u:%02u:%02u Mon.",ap,hour,min,sec);
else if(day%7 == 1)
sprintf(Time_buf,"%cM %02u:%02u:%02u Tue.",ap,hour,min,sec);
else if(day%7 == 2)
sprintf(Time_buf,"%cM %02u:%02u:%02u Wed.",ap,hour,min,sec);
else if(day%7 == 3)
sprintf(Time_buf,"%cM %02u:%02u:%02u Thu.",ap,hour,min,sec);
else if(day%7 == 4)
sprintf(Time_buf,"%cM %02u:%02u:%02u Fri.",ap,hour,min,sec);
else if(day%7 == 5)
sprintf(Time_buf,"%cM %02u:%02u:%02u Sat.",ap,hour,min,sec);
else
sprintf(Time_buf,"%cM %02u:%02u:%02u Sun.",ap,hour,min,sec);
Command(HOME);
LCD_String(Time_buf);
}
//알람 비교 함수
void Alarm_Led(void)
{
if (alarm%2 == 0) PORTB=off;//알람 세팅이 안된경우 Led OFF
else
{if(al_apm==apm && al_hour==hour && al_min==min) PORTB=led;
//알람 세팅값과 현재 시각이 같으면 All Led On
else PORTB=on; //알람 세팅만 되어있고 현재시각이 다르면 상위 4개 Led On
}
}
//2번째 줄 알람시간 표시 함수
void Alarm_Display(void)
{
char Time_buf[16];
{ if (alarm%2 == 0)
sprintf(Time_buf,"%cM %02u:%02u:%02u OFF",al_ap,al_hour,al_min,al_sec);
else
sprintf(Time_buf,"%cM %02u:%02u:%02u ON ",al_ap,al_hour,al_min,al_sec);
}
Command(LINE2);
LCD_String(Time_buf);
}
//시간 증가 함수
void Count_up(void)
{
if(sec != 59) sec=sec+1;
else{
sec = 0;
if(min != 59) min=min+1;
else{
min = 0;
if (hour < 11)hour=hour+1;
else if (hour==11)
{ {if(apm!=0) day=day+1;} // PM -> AM 변경시 day 1증가
apm=~apm; // PM <-> AM 변경시 apm반전, 시간증가
hour=hour+1; }
else if(hour == 12) hour=1;//13시가 되면 1시로 셋
}
}
if (apm==0) ap='A';// apm이 0일시 ap에 A 입력
else ap='P';// apm이 0이 아닐시 ap에 P 입력
Time_Display();
Alarm_Led();
}
//타이머/카운터1 오버플로 인터럽트 서비스 루틴
//1초마다 인터럽트 발생 1/16us X 1024 (FFFF-C2F6) = 1s
interrupt [TIM1_OVF] void timer1_ovf(void)
{
TCNT1 = 0xC2F6;
if(set == 0) Count_up();
if(set == 1) Command(0x87);
else if(set == 2) Command(0x84);
else if(set == 3) Command(0x8C);
else if(set == 4) Command(0xC7);
else if(set == 5) Command(0xC4);
else if(set == 6) Command(0xCC);
}
//외부 인터럽트 요구 0 서비스 루틴
interrupt [EXT_INT0] void external_int0(void)
{
Command(CURON);
if(set != 6) set++;
else set = 0;
}
//외부 인터럽트 요구1 서비스 루틴
//분, 시, 요일과 알람 세팅및 시 분 증가
interrupt [EXT_INT1] void external_int1(void)
{
if(set == 1)// 시계 분 설정
{
if(min != 59) min=min+1;
else min = 0;
}
else if(set == 2)// 시계 시간 설정
{
if (hour < 11)hour=hour+1;
else if (hour == 11)apm=~apm,hour=hour+1;
else if (hour == 12)hour=1;
}
else if(set==3)day=day+1;// 시계 요일 설정
else if(set == 4)// 알람 분 설정
{
if(al_min != 59) al_min=al_min+1;
else al_min=0;
}
else if(set == 5)// 알람 시간 설정
{
if (al_hour < 11) al_hour=al_hour+1;
else if (al_hour==11) al_apm = ~al_apm,al_hour = al_hour+1;
else if (al_hour==12) al_hour=1;
}
else if(set == 6) alarm = alarm+1 ;// 알람 On, Off 설정
if(apm==0) ap='A';
else ap='P';
if (al_apm == 0) al_ap='A';
else al_ap='P';
Time_Display();
Alarm_Display();
Alarm_Led();
}
//메인 함수
void main(void)
{
LCD_init();
Timer_Interrupt_Initialize();
External_Interrupt_Initialize();
Time_Display();
Alarm_Display();
Alarm_Led();
SREG = 0x80;
while(1);
}
char Time_buf[16];
//day를 나눈 나머지에 의해 Mon. ~ Sun. 표시
if (day%7 == 0)
sprintf(Time_buf,"%cM %02u:%02u:%02u Mon.",ap,hour,min,sec);
else if(day%7 == 1)
sprintf(Time_buf,"%cM %02u:%02u:%02u Tue.",ap,hour,min,sec);
else if(day%7 == 2)
sprintf(Time_buf,"%cM %02u:%02u:%02u Wed.",ap,hour,min,sec);
else if(day%7 == 3)
sprintf(Time_buf,"%cM %02u:%02u:%02u Thu.",ap,hour,min,sec);
else if(day%7 == 4)
sprintf(Time_buf,"%cM %02u:%02u:%02u Fri.",ap,hour,min,sec);
else if(day%7 == 5)
sprintf(Time_buf,"%cM %02u:%02u:%02u Sat.",ap,hour,min,sec);
else
sprintf(Time_buf,"%cM %02u:%02u:%02u Sun.",ap,hour,min,sec);
Command(HOME);
LCD_String(Time_buf);
}
//알람 비교 함수
void Alarm_Led(void)
{
if (alarm%2 == 0) PORTB=off;//알람 세팅이 안된경우 Led OFF
else
{if(al_apm==apm && al_hour==hour && al_min==min) PORTB=led;
//알람 세팅값과 현재 시각이 같으면 All Led On
else PORTB=on; //알람 세팅만 되어있고 현재시각이 다르면 상위 4개 Led On
}
}
//2번째 줄 알람시간 표시 함수
void Alarm_Display(void)
{
char Time_buf[16];
{ if (alarm%2 == 0)
sprintf(Time_buf,"%cM %02u:%02u:%02u OFF",al_ap,al_hour,al_min,al_sec);
else
sprintf(Time_buf,"%cM %02u:%02u:%02u ON ",al_ap,al_hour,al_min,al_sec);
}
Command(LINE2);
LCD_String(Time_buf);
}
//시간 증가 함수
void Count_up(void)
{
if(sec != 59) sec=sec+1;
else{
sec = 0;
if(min != 59) min=min+1;
else{
min = 0;
if (hour < 11)hour=hour+1;
else if (hour==11)
{ {if(apm!=0) day=day+1;} // PM -> AM 변경시 day 1증가
apm=~apm; // PM <-> AM 변경시 apm반전, 시간증가
hour=hour+1; }
else if(hour == 12) hour=1;//13시가 되면 1시로 셋
}
}
if (apm==0) ap='A';// apm이 0일시 ap에 A 입력
else ap='P';// apm이 0이 아닐시 ap에 P 입력
Time_Display();
Alarm_Led();
}
//타이머/카운터1 오버플로 인터럽트 서비스 루틴
//1초마다 인터럽트 발생 1/16us X 1024 (FFFF-C2F6) = 1s
interrupt [TIM1_OVF] void timer1_ovf(void)
{
TCNT1 = 0xC2F6;
if(set == 0) Count_up();
if(set == 1) Command(0x87);
else if(set == 2) Command(0x84);
else if(set == 3) Command(0x8C);
else if(set == 4) Command(0xC7);
else if(set == 5) Command(0xC4);
else if(set == 6) Command(0xCC);
}
//외부 인터럽트 요구 0 서비스 루틴
interrupt [EXT_INT0] void external_int0(void)
{
Command(CURON);
if(set != 6) set++;
else set = 0;
}
//외부 인터럽트 요구1 서비스 루틴
//분, 시, 요일과 알람 세팅및 시 분 증가
interrupt [EXT_INT1] void external_int1(void)
{
if(set == 1)// 시계 분 설정
{
if(min != 59) min=min+1;
else min = 0;
}
else if(set == 2)// 시계 시간 설정
{
if (hour < 11)hour=hour+1;
else if (hour == 11)apm=~apm,hour=hour+1;
else if (hour == 12)hour=1;
}
else if(set==3)day=day+1;// 시계 요일 설정
else if(set == 4)// 알람 분 설정
{
if(al_min != 59) al_min=al_min+1;
else al_min=0;
}
else if(set == 5)// 알람 시간 설정
{
if (al_hour < 11) al_hour=al_hour+1;
else if (al_hour==11) al_apm = ~al_apm,al_hour = al_hour+1;
else if (al_hour==12) al_hour=1;
}
else if(set == 6) alarm = alarm+1 ;// 알람 On, Off 설정
if(apm==0) ap='A';
else ap='P';
if (al_apm == 0) al_ap='A';
else al_ap='P';
Time_Display();
Alarm_Display();
Alarm_Led();
}
//메인 함수
void main(void)
{
LCD_init();
Timer_Interrupt_Initialize();
External_Interrupt_Initialize();
Time_Display();
Alarm_Display();
Alarm_Led();
SREG = 0x80;
while(1);
}
추천자료
유비쿼터스 컴퓨팅 혁명 wearable computer
[유비쿼터스] RFID-USN 기술의 사회적 수용
RF를 이용한 장애물 피하는 모형자동차
방송신호압축에 대해..
반도체산업 - 정의, 범위, 관련기업, 주요 생산품, 시장구조, 유망분야, 국내외 기술개발동향...
[CPU][중앙처리장치][Intel][인텔][AMD]CPU(중앙처리장치)의 정의, CPU(중앙처리장치)의 구조...
[CPU][중앙처리장치][인텔][비인텔계열]CPU(중앙처리장치)의 개념, CPU(중앙처리장치)의 구조...
[CPU][중앙처리장치]CPU(중앙처리장치)의 역사, CPU(중앙처리장치)의 구조, CPU(중앙처리장치...
[컴퓨터][CPU][중앙처리장치][주기억장치][보조기억장치][메인보드]컴퓨터의 구성, CPU(중앙...
8051 조사
컴퓨터의 이해
컴퓨터의 이해 (이혜진)
컴퓨터의 이해 레포트
컴퓨터의이해[1]
소개글