마이크로프로세서3.

Download Report

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