Transcript 마이크로프로세서3.
컴퓨터프로그래밍응용 SWITCH 제어 신호 및 시스템 연구실 목차 LOGO 스위치 소개 납땜(회로도) 스위치 사용방법 예제 2/27 스위치 LOGO 스위치 택트스위치(Tact Switch) • 가장 흔한 스위치로 “버튼” 또는 “Key”라고 불림. • 회로 방식은 대체로 버튼을 누르면 On, 손을 떼면 Off. 3/27 다른 종류의 스위치 LOGO 슬라이드 스위치(Slide Switch) 스위치의 방향에 따라 On, Off를 제어하며, 작은 사이즈는 mp3의 Hold용, 큰 사이즈는 자동, 수동 변환 등에 사용. 푸시 스위치(Push Switch) 말 그대로 누름 스위치 PC의 전원, 자동차 등 누름 스위치 Locking Type과 Nonlock Type이 존재 4/27 LOGO 스위치 구동 방식 택트 스위치 구동 방식 버튼을 누르면 On, 손을 떼면 Off On상태 B A Off상태 A B A B C D C D D C 5/27 LOGO 회로도 실제 모습 앞면 뒷면 6/27 LOGO 회로도 VCC(5V) PB0 PB1 PB2 PB3 PB4 PB5 10k 10k PB6 PB7 PG3 PG4 GND PD0 ⋮ 7/27 LOGO 회로도(납땜시) VCC(5V) PB0 PB1 PB2 PB3 PB4 PB5 PB6 10k 10k PB7 PG3 PG4 GND PD0 ⋮ 8/27 회로도(납땜시) LOGO 만능기판패턴용지 9/27 입출력관련 레지스터 LOGO DDRx 데이터 방향 설정 레지스터 예 • DDRB = 0x00; // 포트 B의 모든 비트를 입력으로 설정 PINx 포트로 입력되는 데이터를 저장 PINB = 0x01; // PINB0에 1(5V)가 입력됨. PINB = 0x02; // PINB1에 1(5V)가 입력됨. 10/27 LOGO 스위치 제어 스위치 제어 스위치를 누르면 해당하는 PINB의 비트가 1로 바뀜 PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 Hex 값 0 0 0 0 0 0 1 0 0x02 LOGO 스위치 제어 마스킹의 필요성 사용하지 않는 핀은 0으로 강제 변경 예) • PINB = PINB & 0x03; PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 Hex 값 1 0 0 0 0 0 1 0 0x82 스파크등의 잡음으로 1로 변경 되어 오작동의 원인이 될수 있다. LOGO 스위치 제어 예제 스위치 사용 예제 두 스위치 하나를 누르고 있으면 LED의 모든 불이 켜 지는 프로그램을 작성하시오. SW1 SW2 스위치 누를 때 스위치 누르지 않을 때 13/27 스위치 제어 예제 LOGO 소스 14/27 스위치 제어 예제2 LOGO 스위치1을 누르면 LED가 좌시프트, 스위치 2를 누르면 우시프트하는 프로그램을 작성하시오. 초기값 스위치1 누를 때 스위치1 누를 때 스위치2 누를 때 단, 초기값에서 우쉬프트는 되지 않고 그상태를 유지한다.(반대쪽도 마찬가지) 15/27 채터링 현상 LOGO 채터링 현상 사람이 스위치를 누르는 속도 보다 프로세서가 키를 입력하 는 시간이 빨라 생기는 현상 프로세서가 키를 인식하는 시 간을 증가 시킨다. 16 채터링 현상 예시 채터링 현상 예시 정상 동작 시 • 스위치를 한번 눌렀을 때, 한번 쉬프트 채터링 현상 시 • 스위치를 한번 눌렀을 때, 여러 번 쉬프트 17 LOGO 채터링 방지 LOGO 소스 18/27 스위치 제어 예제3 LOGO 스위치1을 누르면 LED가 안쪽으로 시프트, 스 위치 2를 누르면 바깥 쪽으로 시프트하는 프로 그램을 작성하시오. 초기값 스위치1 누를 때 스위치1 누를 때 스위치2 누를 때 단, 초기값을 범위를 넘지 않는다. 19/27