대학교

마이크로프로세서 - (5) 데이터 입력

매 석 2023. 10. 7. 17:55
반응형

저항

풀업 : 버튼이 눌러지지 않은 경우 입력 핀에 5V가 가해짐

풀다운 : 버튼이 눌러지지 않은 경우 입력 핀에 GND가 가해짐

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

푸쉬 버튼의 경우 4개의 핀을 가지며 1,3 혹은 2,4 쌍을 사용한다.

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

 

레지스터

DDR 레지스터 : 핀의 입출력 방향 선택

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

PIN 레지스터 : 입력받은 데이터 저장

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

PORT 레지스터는 출력할 때 사용하고,

PIN 레지스터는 입력할 때 사용한다.

 

예제

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

이 코드에 while문의 if문 아래 __delay_ms(30); 을 추가로 입력해서

바운스 현상을 없애야 한다.

바운스 현상은 버튼의 기계적인 진동에 의해 버튼이 완전히 눌러질 때까지

버튼 상태가 빠르게 변하는 현상을 말한다.

즉 바운스 현상을 제거하는 방법을 디바운스라고 한다.

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍

디바운스를 위한 하드웨어로는 커패시터가 있다.

출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍