질문게시판 > 답변 : 8051 관련해서 질문드립니다.

TODAY133 TOTAL52,086
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌


BASIC4MCU | 질문게시판 | 답변 : 8051 관련해서 질문드립니다.

페이지 정보

작성자 master 작성일2018-02-08 14:25 조회159회 댓글1건

본문

	

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// DateTime : 2018-02-08 오후 2:27:22
// by Ok-Hyun Park
// P3.3이면 외부인터럽트죠?
//
char flag=0// 전역변수
//
외부인터럽트1 함수(){ // 하강엣지 인터럽트
  flag^=1// 비트0 반전
}
//
void TMR1_int(void)interrupt 3{
  TH1=0x63TL1=0xC0;
  if(flag){
    if(onecnt){
      if(--onecnt==0){ onecnt=25;
        if(++number>9999)number=0;
        convert();
      }
    }
  }
}
// 외부 인터럽트 설정 및 함수명은 알아서 수정하세요

 

//

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// DateTime : 2018-02-08 오후 2:29:45
// by Ok-Hyun Park
//P3.3이면 외부인터럽트죠?
//
char flag=0// 전역변수
//
외부인터럽트1 함수(){ // 하강엣지 인터럽트
  flag^=1// 비트0 반전
}
//
void TMR1_int(void)interrupt 3{
  TH1=0x63TL1=0xC0;
  if(flag){
    if(--onecnt==0){ onecnt=25;
      if(++number>9999)number=0;
      convert();
    }
  }
}
// onecnt 이 변수는 초기값으로 0을 주면 안됩니다. 문맥상 25를 줘야겠죠. 

 

 

//

  flag^=1// 비트0 반전 

 

flag 변수를 1과 xor 연산을 하면 

(변수 초기값이 0이므로) 결과는 0, 1 두가지만 나오게 됩니다.


//


  if(flag){

flag가 0이면 거짓이라서 if()문이 실행되지 않고

flag가 0이 아니면 참이라서 if()문이 실행됩니다.



  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 1

조회수 159

27315co님의 댓글

27315co 작성일

친절하고 자세한 설명 정말 감사드립니다.

게시물 검색

                   MCU BASIC ⓒ 2017 모바일버전으로보기