• 검색 결과가 없습니다.

우석대학교 에너지전기공학과

N/A
N/A
Protected

Academic year: 2021

Share "우석대학교 에너지전기공학과"

Copied!
3
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

6 장 인터럽트 (주관식 연습문제)

43. 인터럽트 발생시 되돌아 올 주소를 기억하는 데 사용되는 레지스터는? (풀이) 스택 포인터(Stack Pointer) 44. 인터럽트의 우선순위를 결정하는 하드웨어 방법인 데이지 체인이 무엇인지 설명하여라. (풀이) 하드웨어 방법으로 입·출력 장치의 우선순위를 결정하는 방식이며, 모든 입·출력 장치들을 직렬로 연결하여 CPU 와 전기적으로 가까운 장치가 높은 우선순위를 갖는다. 응답속도가 빠르지만 우선순위 변경이 어려 운 단점이 있다. 45. 타이머/카운터 0 을 모드 1 의 카운터로 설정하고 20 개의 펄스가 T0 핀에 입력되면 인터럽트가 발생 되는 프로그램을 작성하여라. (풀이) #include <reg51.h>

void TMR0_int(void) interrupt 1 // 타이머/카운터 0 인터럽트 벡터번호 = 1 { TH1=0xff; // (65536-20)=FFECH TL1=0xec; return; } void main(void) { TMOD=0x05; // 타이머/카운터 0 을 카운터 모드 1 로 설정 TH1=0xff; // (65536-20)=FFECH TL1=0xec; ET0=1; // 타이머 0 인터럽트 인에이블 EA=1; // 전체 인터럽트 인에이블 PT0=1; // 타이머 0 인터럽트 우선순위 High TR0=1; // 타이머 0 run while(1); // 인터럽트 대기 } 46. 타이머/카운터 1 을 모드 2 의 타이머로 설정하고 200s 마다 인터럽트가 발생되는 프로그램을 작성 하여라. 단, 발진기의 주파수는 12MHz 임을 가정한다. (풀이) TMOD=0x20; // 타이머/카운터 1 을 타이머 모드 2 로 설정 TH1=0x38; // 256-200=38H TL1=0x38; IE=0x88; // 타이머/카운터 1 인터럽트 인에이블, 전체 인터럽트 인에이블 PT1=1; // 타이머/카운터 1 을 높은 우선순위로 설정 TR1=1; // 타이머 1 run 47. 타이머/카운터 0 을 모드 2 의 타이머로 설정하고 P1.0 핀에 duty cycle 이 30%인 10KHz 구형파를 발생시키는 프로그램을 작성하여라. 단, 발진기의 주파수는 12MHz 임을 가정한다. (풀이) 10KHz 는 주기가 100s(=1/104)이므로 duty cycle 이 30%인 구형파를 발생시키기 위해서는 30s 동안은 P1.0 핀에 High 를 인가하고, 70s 동안에는 Low 를 인가하면 된다. 발진주파수를 12 분주한 클 록이 카운터 입력이 되기 때문에 1s(=12/12MHz)마다 카운트된다. 기본적으로 10s 마다 인터럽트를 발생한다. P1.0 핀을 High 로 하고 이를 3 회 반복하고, 다시 P1.0 핀을 Low 로 하고 이를 7 회 반복하면 duty cycle 이 30%인 10KHz 구형파가 발생된다. #include <reg51.h> sbit duty = P1^0; // 구형파 출력 핀

(2)

void TMR0_int(void) interrupt 1 // 타이머/카운터 0 인터럽트 벡터번호 = 1 {

unsigned char count;

duty=1; // P1.0 핀에 High 인가 count=3; do { while(!TF0); TF0=0; count--; } while(count); duty=0; // P1.0 핀에 Low 인가 count=7; do { while(!TF0); TF0=0; count--; } while(count); return; } void main(void) { TMOD=0x02; // 타이머/카운터 0 을 타이머 모드 2 로 설정 TH0=0xf6; // 시정수 설정(10us) TL0=0xf6; // 256-10=F6H ET0=1; // 타이머 0 인터럽트 인에이블 EA=1; // 전체 인터럽트 인에이블 PT0=1; // 타이머 0 인터럽트 우선순위 High TR0=1; // 타이머 0 run while(1); // 인터럽트 대기 } 48. 타이머/카운터 1 을 모드 2 의 타이머로 설정하고 TH0=56 으로 하였을 경우의 인터럽트 요청 주파수 는? 단, 발진기의 주파수는 24MHz 임을 가정한다. (풀이) 발진주파수를 12 분주한 클록이 카운터 입력이 되기 때문에 0.5s(=12/24MHz)마다 카운트된다. 따라 서 인터럽트 요청 주기는 0.5s×200(=256-56)=100s=0.1ms 가 되므로 주파수는 10KHz 가 된다. 49. 발진기의 주파수가 12MHz 일 때, 타이머/카운터 1 을 이용하여 50ms 마다 인터럽트가 발생되도록 하고, 이것을 이용하여 800ms 마다 포트 1 에 연결된 LED 가 이동되도록 프로그램을 작성하여라. (풀이) #include <reg51.h> unsigned char led;

void TMR1_int(void) interrupt 3 // 타이머/카운터 1 인터럽트 벡터번호 = 3 {

unsigned char count; count=16; do { while(!TF1); TF1=0; TH1=0x3c; // 시정수 설정(0.05 초) TL1=0xb0; // 65536-50000=3CB0H

(3)

count--; } while(count); P1=led; led=(led << 1) | 0x01; if (led == 0xff) led=0xfe; return; } void main(void) { TMOD=0x10; // 타이머 1 을 모드 1 로 설정 TH1=0x3c; // 시정수 설정(0.05 초) TL1=0xb0; // 65536-50000=3CB0H ET1=1; // 타이머 1 인터럽트 인에이블 EA=1; // 전체 인터럽트 인에이블 PT1=1; // 타이머 1 인터럽트 우선순위 High TR1=1; // 타이머 1 run led=0xfe; // 초기 데이터 설정 while(1); // 인터럽트 대기 } 50. RS-232C 통신방식에서 필요한 최소 통신 선의 수는? (풀이) 3 개(Tx, Rx, GND)

참조

관련 문서

우리 대학 또는 타 대학의 입학전형 부정행위자는 그 시행일이 속한 학년도의 우리 대학의 모든 입학전형을 무효로 하며, 입 학 및 졸업 후에라도 우리

제트엔진을 사용하는 비행기의 경우 작용 반작용의 법칙을 이용하여 추력을 얻는다.. 제트엔진에서 고온 고압의 가스를 압축 후 비행기의

사업자로 선정된 후 사업을 수행함에 있어 제3자의 특허권 또는 저작권을 침해한 상황이 발생한 경우에는 사업자가 해결 하여야 하며 , 이에 대한

자 국가종합전자조달 시스템 전자입찰 참가자격 등록업체로서 국가를 당사자로 하는 계약에 관한법률 시행령 제 조 및 동법 시행규칙 제 조의 규정에 의한

기존의 태양광발전 시스템에서는 직렬로 연결된 태양전지 모듈군을 하나의 전력변환 장치가 담당하는 중앙 집중형 방식이 대표적이지만 MPPT 제어 및

태양 빛이 태양전지 표면에 조사되는 일사강도에 따라 태양전지의 출력 전압과 출력전류는 현저히 변화하게 된다.따라서 태양전지의 일사량에 따른

Unregulated dc 입력 à regulated dc

ü a 접점과 b 접점 사이를 훨씬 빈번하게 스위칭 함으로써 고조파가 적게 포함되어 정현파에 더욱 가까운 출력전압 파형을 생성할 수 있다.