BASIC4MCU | 질문게시판 | 답변3 : 8051 포토커플러 관련 회로에대해서 질문드립니다.(하강엣지 + 상승엣지 검출)
페이지 정보
작성자 master 작성일2018-02-18 15:59 조회14,475회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=229
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-02-18 오후 3:59:09// by Ok-Hyun Park#include <reg51.h>//char array[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char cnt=0;sbit p_input=P2^0;bit flag=0;//void delay(unsigned int i){ while(i--); }//void main(void){P2=0xff;cnt=0;while(1){P1=array[cnt];if(!p_input){if(flag==0){ flag=1; if(++cnt>9)cnt=0; delay(0xb100); } // 하강엣지 검출}else{if(flag==1){ flag=0; delay(0xb100); } // 상승엣지 검출}}}
앞의 답변에서는 하강엣지만 검출했는데요
회로에서 채터링 방지용 커패시터가 없거나 커패시터 용량이 채터링을 막기에 부족한 경우
상승엣지에서 발생하는 채터링에 대해서는 오동작 할 가능성이 있습니다.
이 답변 예제에서는 상승엣지도 검출해서 채터링 방지용 딜레이를 주고 있습니다.
물론 이 예제는 포토인터럽트로 물체가 지나가는 경우라서
KEY 입력처럼 채터링이 많이 생기지 않습니다.
따라서 딜레이를 없애거나, 딜레이가 조금만 있어도 충분합니다.
지나가는 경우에는 물체가 빛(적외선) 경계선에서 머물러 있는 시간이 짧습니다.
댓글 1
조회수 14,47527315co님의 댓글
27315co 작성일정말 정확하고 친절한 답변 감사드립니다.