목차
문제 1. 프로그램 각 줄에 주석을 다시오.
문제 2. 프로그램에서 문장 ① 은 외부 인터럽트 1의 트리거 조건을 에지트리거로 하기 위한 것이다. 적합한 프로그램 문장으로 채우시오.
문제 3. 프로그램에서 ②, ③, ④ 는 현재시간을 문자 LCD에 출력하기 위해 문자 데이터 변수에 현재시간을 할당하는 과정이다. 적합한 변수를 쓰시오.
문제 4. 프로그램에서 ⑤ 는 알람이 떴는지를 확인하는 과정이다. 적합한 문장으로 채우시오.
문제 5. 프로그램에서 ⑥ 은 수행 중인 타이머 0을 정지하기 위한 것이다. 적합한 프로그램 문장으로 채우시오.
문제 6. 주어진 프로그램을 이용할 때 알람은 얼마동안 떠 있게 되는지 설명하시오.
문제 7. 각 상황에 따라 문자 LCD의 출력이 어떻게 변경되는지 LCD 창을 그리고 각 Line별 문자의 변화에 대해 설명을 해보시오.
문제 2. 프로그램에서 문장 ① 은 외부 인터럽트 1의 트리거 조건을 에지트리거로 하기 위한 것이다. 적합한 프로그램 문장으로 채우시오.
문제 3. 프로그램에서 ②, ③, ④ 는 현재시간을 문자 LCD에 출력하기 위해 문자 데이터 변수에 현재시간을 할당하는 과정이다. 적합한 변수를 쓰시오.
문제 4. 프로그램에서 ⑤ 는 알람이 떴는지를 확인하는 과정이다. 적합한 문장으로 채우시오.
문제 5. 프로그램에서 ⑥ 은 수행 중인 타이머 0을 정지하기 위한 것이다. 적합한 프로그램 문장으로 채우시오.
문제 6. 주어진 프로그램을 이용할 때 알람은 얼마동안 떠 있게 되는지 설명하시오.
문제 7. 각 상황에 따라 문자 LCD의 출력이 어떻게 변경되는지 LCD 창을 그리고 각 Line별 문자의 변화에 대해 설명을 해보시오.
본문내용
1초가 되는
if문에 걸려있으므로 1초마다 is_alarm이 1인지 확인해서 맞으면 alarm_duration이 1씩 감소해서
마침내 0이 되면 is_alarm이 0이 되어 알람메시지가 사라지게 된다. 이 과정이 5번 반복해서
alarm_duration이 0이 되므로 알람메시지는 5초 동안 떠있다가 사라지게된다.
따라서 alarm_duration 변수를 조절함으로서 메시지를 몇 초 동안 뜨게 할지 정할 수 있다.
문제 7. 각 상황에 따라 문자 LCD의 출력이 어떻게 변경되는지 LCD 창을 그리고 각 Line별 문자의 변화에 대해 설명을 해보시오.
- 우선 맨처음엔 Lcd_Clr(); 함수에 의해 LCD화면이 초기화 되고
프로그램을 실행시키면 타이머0 인터럽트가 동작해서 시계가 작동하게 된다.
시, 분, 초 초기값이 2, 59, 0이었으므로 2시 59분 00초부터 시계가 돌아가기 시작한다.
Line1에는 위와 같은 시간이 나타나고 Line2에는 is_alarm의 값에 의해 메시지표시의 유무가 정해지고
Line3에는 pause의 값에 의해 정지와 러닝이 정해진다 is_alarm과 pause 의 초기값들이 0이므로
종합적으로 맨처음 시계가 작동할때는 아래와 같은 화면을 볼 수 있다.
(Line1→) 02:59:00
(Line2→)
(Line3→) Running!
시계가 작동하다가 설정해 놓은 알람시간 (02:59:07)과 일치하면 인터럽트 서브루틴의 if조건에 의해
is_alrarm=1이 되고 Line2에 alarm!이 출력된다.
(Line1→) 02:59:07
(Line2→) alram!
(Line3→) Running!
그리고 alarm_duration의 조건에 의해 5초뒤에는 is_alarm=0이 되어 알람메시지가 사라지게된다.
(Line1→) 02:59:12
(Line2→)
(Line3→) Running!
시계가 계속 동작하다가 외부인터럽트1을 통해 타이머0을 중지시키면 puase값이 반전되서
pause=1이 되고 Line3에 Puase!가 뜨게 된다. 이 때 TR0값도 반전되서 시계도 멈춘다
(Line1→) 02:59:17
(Line2→)
(Line3→) Pause!
여기에서 다시 외부인터럽트 1 버튼을 누르면 다시 TR0=1, Pause=0이 돼서 시계가 돌아가고
Line3에는 Running!이 뜨게 된다.
(Line1→) 02:59:19
(Line2→)
(Line3→) Running!
if문에 걸려있으므로 1초마다 is_alarm이 1인지 확인해서 맞으면 alarm_duration이 1씩 감소해서
마침내 0이 되면 is_alarm이 0이 되어 알람메시지가 사라지게 된다. 이 과정이 5번 반복해서
alarm_duration이 0이 되므로 알람메시지는 5초 동안 떠있다가 사라지게된다.
따라서 alarm_duration 변수를 조절함으로서 메시지를 몇 초 동안 뜨게 할지 정할 수 있다.
문제 7. 각 상황에 따라 문자 LCD의 출력이 어떻게 변경되는지 LCD 창을 그리고 각 Line별 문자의 변화에 대해 설명을 해보시오.
- 우선 맨처음엔 Lcd_Clr(); 함수에 의해 LCD화면이 초기화 되고
프로그램을 실행시키면 타이머0 인터럽트가 동작해서 시계가 작동하게 된다.
시, 분, 초 초기값이 2, 59, 0이었으므로 2시 59분 00초부터 시계가 돌아가기 시작한다.
Line1에는 위와 같은 시간이 나타나고 Line2에는 is_alarm의 값에 의해 메시지표시의 유무가 정해지고
Line3에는 pause의 값에 의해 정지와 러닝이 정해진다 is_alarm과 pause 의 초기값들이 0이므로
종합적으로 맨처음 시계가 작동할때는 아래와 같은 화면을 볼 수 있다.
(Line1→) 02:59:00
(Line2→)
(Line3→) Running!
시계가 작동하다가 설정해 놓은 알람시간 (02:59:07)과 일치하면 인터럽트 서브루틴의 if조건에 의해
is_alrarm=1이 되고 Line2에 alarm!이 출력된다.
(Line1→) 02:59:07
(Line2→) alram!
(Line3→) Running!
그리고 alarm_duration의 조건에 의해 5초뒤에는 is_alarm=0이 되어 알람메시지가 사라지게된다.
(Line1→) 02:59:12
(Line2→)
(Line3→) Running!
시계가 계속 동작하다가 외부인터럽트1을 통해 타이머0을 중지시키면 puase값이 반전되서
pause=1이 되고 Line3에 Puase!가 뜨게 된다. 이 때 TR0값도 반전되서 시계도 멈춘다
(Line1→) 02:59:17
(Line2→)
(Line3→) Pause!
여기에서 다시 외부인터럽트 1 버튼을 누르면 다시 TR0=1, Pause=0이 돼서 시계가 돌아가고
Line3에는 Running!이 뜨게 된다.
(Line1→) 02:59:19
(Line2→)
(Line3→) Running!
키워드
추천자료
- 하드웨어에 관한 모든 것
- 메모리들의 종류와 설명 그리고 그 이해
- 자바의 주요역할
- [공과대]-CPU 동향 분석
- 임베디드시스템에대한논의
- 메모리의 종류와 동작
- 컴퓨터 분해 및 내부구조 분석 보고서
- [A+]시각장애인을 위한 교육공학의 의미와 종류및 기기
- 반도체산업 - 정의, 범위, 관련기업, 주요 생산품, 시장구조, 유망분야, 국내외 기술개발동향...
- [컴퓨터][CPU][중앙처리장치][주기억장치][보조기억장치][메인보드]컴퓨터의 구성, CPU(중앙...
- 인텔의 진화과정 및 상표전략 요약본
- DRM(디지털저작권관리)의 정의와 업체 동향, DRM(디지털저작권관리)의 영향, DRM(디지털저작...
- 컴퓨터 공학 - 메모리 정의와 메모리종류
소개글