목차
문제 1. 8051에서 사용할 수 있는 인터럽트의 종류 및 기능에 대해 간략히 설명하시오.
문제 2. 주어진 코드의 각 줄에 주석을 달아 설명하시오.
문제 3. 다음 페이지에 주어진 프로그램에 보면 다음 서브루틴이 있다.
문제 4. 주어진 프로그램을 실행하면 LED가 어떤 식으로 점멸하는지 설명하시오. (즉, 어떤 동작을 하였을 때 어떤 LED가 켜지고 꺼지는지, 또한 어떤 순서로 켜지는지 등 설명)
문제 5. 주어진 프로그램에는 인터럽트 우선순위를 나타내고 있지 않다. 만일 이 프로그램에서 이용하는 인터럽트의 우선순위를 가장 높게 하려 한다면 어떤 명령어를 어느 위치에 추가해야 하는지 설명하시오.
문제 2. 주어진 코드의 각 줄에 주석을 달아 설명하시오.
문제 3. 다음 페이지에 주어진 프로그램에 보면 다음 서브루틴이 있다.
문제 4. 주어진 프로그램을 실행하면 LED가 어떤 식으로 점멸하는지 설명하시오. (즉, 어떤 동작을 하였을 때 어떤 LED가 켜지고 꺼지는지, 또한 어떤 순서로 켜지는지 등 설명)
문제 5. 주어진 프로그램에는 인터럽트 우선순위를 나타내고 있지 않다. 만일 이 프로그램에서 이용하는 인터럽트의 우선순위를 가장 높게 하려 한다면 어떤 명령어를 어느 위치에 추가해야 하는지 설명하시오.
본문내용
인터럽트를 사용하는 부분은 아래와 같다.
EX1 = 1; // IE 레지스터의 EX1비트셋, 외부 인터럽트1(IE 1)을 사용하겠다는 선언
EA = 1; // 전체 인터럽트의 인에이블 문장
8051 CPU는 12번의 클럭신호중 10번째 클럭입력에서 인터럽트 체크를 한다. 한 번의 인터럽트 체크가 끝나고 그 다음 인터럽트 체크를 하기 전에 들어온 인터럽트는 CPU가 볼 때는 모두 동시에 발생한 것으로 간주한다. 이 경우 CPU에게 어떤 인터럽트를 먼저 처리할 것인가를 알려주어야 한다. 위 프로그램은 인터럽트가 하나만 사용되서 큰 영향이 없지만 만약 인터럽트가 2개이상 동시에 발생하면 기본 우선순위에 의해 외부 인터럽트 1(IE1)은 세 번째의 우선순위를 가진다. 사용자가 원하는대로 이 외부 인터럽트 1의 우선순위를 제일 높게 하려면 IP(interrupt priority) 레지스터를 이용하면 된다. IP 레지스터는 다음과 같은 구조이고 해당 비트 값이 1이면 높은 우선순위, 0이면 낮은 우선순위가 부여된다.
7
6
5
4
3
2
1
0
-
-
PT2
PS
PT1
PX1
PT0
PX0
여기서 우리가 관심있는 것은 외부인터럽트 1이므로 이것을 제어하는 비트인 PX1을 1로하고 나머지 비트는 0으로 한다. 8비트 2진수로 나타내면 xx00 0100이다. 헥사값으로 표현하면 0x04이다.
아래 그림을 참고하여 외부 인터럽트 신호가 IE 레지스터를 거친 후,
IP 레지스터를 거치므로 IP=0x04; 문장을
EX1 = 1;
EA = 1; → 아래에 넣어주면 외부 인터럽트 1이 제일 높은 우선순위로 설정된다.
EX1 = 1; // IE 레지스터의 EX1비트셋, 외부 인터럽트1(IE 1)을 사용하겠다는 선언
EA = 1; // 전체 인터럽트의 인에이블 문장
8051 CPU는 12번의 클럭신호중 10번째 클럭입력에서 인터럽트 체크를 한다. 한 번의 인터럽트 체크가 끝나고 그 다음 인터럽트 체크를 하기 전에 들어온 인터럽트는 CPU가 볼 때는 모두 동시에 발생한 것으로 간주한다. 이 경우 CPU에게 어떤 인터럽트를 먼저 처리할 것인가를 알려주어야 한다. 위 프로그램은 인터럽트가 하나만 사용되서 큰 영향이 없지만 만약 인터럽트가 2개이상 동시에 발생하면 기본 우선순위에 의해 외부 인터럽트 1(IE1)은 세 번째의 우선순위를 가진다. 사용자가 원하는대로 이 외부 인터럽트 1의 우선순위를 제일 높게 하려면 IP(interrupt priority) 레지스터를 이용하면 된다. IP 레지스터는 다음과 같은 구조이고 해당 비트 값이 1이면 높은 우선순위, 0이면 낮은 우선순위가 부여된다.
7
6
5
4
3
2
1
0
-
-
PT2
PS
PT1
PX1
PT0
PX0
여기서 우리가 관심있는 것은 외부인터럽트 1이므로 이것을 제어하는 비트인 PX1을 1로하고 나머지 비트는 0으로 한다. 8비트 2진수로 나타내면 xx00 0100이다. 헥사값으로 표현하면 0x04이다.
아래 그림을 참고하여 외부 인터럽트 신호가 IE 레지스터를 거친 후,
IP 레지스터를 거치므로 IP=0x04; 문장을
EX1 = 1;
EA = 1; → 아래에 넣어주면 외부 인터럽트 1이 제일 높은 우선순위로 설정된다.
키워드
추천자료
- 인터럽트와 DMA
- Embedded System에서 Real-Time OS 구현 및 응용
- PIC의 개념과 이를 이용한 LED포트 설계 및 인터럽트 구성
- [전자공학실험] 8051실험-타이머&외부 인터럽트를 이용한 시계설계
- AVR 마이크로콘트롤러의 개요및 ATmega128의 명령 세트
- 슈퍼스칼라 프로세서를 이용한 gcc 벤치마크에 대한 성능평가 분석
- 8051 조사
- VHDL 스테모터 결과보고서
- 실험 13. CMOS-TTL interface(예비보고서)
- c언어 프로그래밍언어 Team Project
- 7세그먼트 LED 응용 프로그램 [마컴 예비레포트]
- <컴퓨터를 구성하는 장치>!!!
- 임베디드embeded실습 레포트2
- AVR 스위치 입력관련기술과 키 디바운싱 기술에 대해서 (스위치 입력,키 디바운싱,키입력,키 ...
소개글