깜박이는 LED 는 전자 제품을 시작하기 위해 취하고 싶은 첫 번째 단계입니다. 이 튜토리얼에서는 AVR 시리즈 마이크로 컨트롤러 인 ATmega32와 LED 를 연결합니다. LED를 0.5 초 속도로 깜박입니다.
필요한 구성 요소
하드웨어:
ATmega32A 마이크로 컨트롤러
전원 공급 장치 (5v)
AVR-ISP 프로그래머
100uF 커패시터
LED
220Ω 저항기
소프트웨어
Atmel 스튜디오 6.1
Progisp 또는 플래시 매직
회로 및 작업 설명
AVR 마이크로 컨트롤러와 LED를 인터페이싱하기위한 위의 회로도 에서 볼 수 있듯이 여기에 외부 크리스탈을 연결할 필요가 없습니다. ATMEGA는 기본적으로 내부 1MHz 저항기-커패시터 발진기에서 작동하기 때문입니다. 클럭의 정확도가 필요한 경우에만 고정밀 계수의 적용으로 외부 크리스탈이 부착됩니다. 컨트롤러를 처음 구입하면 기본적으로 내부 크리스탈에서 작동하도록 융합됩니다.
저항은 여기에 연결되어 LED에서 나오는 전류를 제한합니다. 컨트롤러는 터미널에서 30mA 이상을 제공 할 수 없습니다.
프로그래밍 설명
ATmega32 마이크로 컨트롤러가 LED를 깜박이는 프로그램은 다음과 같습니다. 코드의 주석은 코드의 개별 행의 목적을 설명합니다.
핀에 대한 데이터 흐름 제어를 활성화하는 #include // header
#define F_CPU 1000000 // 텔링 컨트롤러 크리스탈 주파수
#포함
int main (void)
{
DDRD = 0xFF; // (or 0b1111 1111) AVRSTUDIO에서 포트의 특정 비트를 입력으로 사용하도록 제어하기 위해 "ZERO"를 사용하고, 특정 비트를 출력으로 사용하도록 지시하기 위해 "ONE"을 사용합니다. 8 개의“ONE”을 넣었으므로 PORTD의 모든 핀이 출력으로 활성화됩니다. "0b1111 0111"로 0을 입력하면 이제 모든 핀 0,1,2,4,5,6,7이 입력으로 활성화되고 PIN 3이 입력으로 활성화됩니다.
while (1) // 루프가 영원히 계속되고 LED가 영원히 깜박입니다.
{
PORTD = 0xFF; // PORTD의 모든 핀은 5v 출력을 제공하거나 하이 풀 (LED ON)을 지시합니다.
_delay_ms (220); // 200ms 동안 지연
_delay_ms (220);); // 200ms 동안 지연
PORTD = 0x00; // PORTD의 모든 핀은 출력 또는 풀다운에서 접지를 제공한다고합니다.
_delay_ms (220);); // 200ms 동안 지연
_delay_ms (220);); // 200ms 동안 지연
}
}