BASIC4MCU | 질문게시판 | 8051 인터럽트 관련해서 질문드립니다.
페이지 정보
작성자 27315co 작성일2018-02-01 21:09 조회4,727회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=164
본문
#include <reg51.h>
unsigned char led;
void delay(unsigned char i)
{
while(i--);
}
void EXT0_int(void) interrupt 0 // 외부 인터럽트 0 벡터번호 = 0
{
EA = 0; // 전체 인터럽트 디스에이블
led=(led<<1) | 0x01; //LED상태 변경
if (led==0xff) led=0xfe; // 마지막인지 검사, 마지막이면 재설정
P1 = led; //포트 1로 출력
delay(200); // 스위치 디바운싱을 위한 지연
EA=1; // 전체 인터럽트 인에이블
return;
}
void main(void)
{
TCON=0x01; // INT0 은 하강 에지에서 인터럽트 발생
EX0 = 1; // 외부 인터럽트 인에이블
EA = 1; // 전체 인터럽트 인에이블
PX0 = 1; // 외부 인터럽트 우선순위 High
led = 0xfe; // 초기 출력 데이터
P1 = led; // 포트 1로 출력
while(1);
}
다음은 ^INT0 에 연결된 스위치를 누를때마다 P1 포트에 연결된 LED가 하나씩 순차적으로 점등되는 프로그램입니다.
그리고 위의 코드가 인터럽트 자체를 사용한 코드인데 이코드를 인터럽트 플래그를 사용해서 작성한 결과를 알고싶어서 질문드립니다...
그리고 또 하나 여쭤보고싶은데 인터럽트 자체를 사용하는것과 플래그를 사용하는것이 무슨 차이가 있는것인지 여쭤봐도 될까요????
댓글 0
조회수 4,727등록된 댓글이 없습니다.