마이크로 프로세서와 기본 프로그램
마이크로프로세서
마이크로프로세서란?
- 기능을 설정하고 정해진 일을 수행하도록 프로그램이 된 후에 기계를 동작 시킴
- 컴퓨터에 비해 저성능이고, 저전력이며, 가격이 저렴함
마이크로프로세서를 사용한 제품
- 마 이크로프로세서는 우리가 일상 생활에서 사용하는 대부부느이 전자기기에 사용됨
- 마이크로프로세서의 기술 발달로 사물 인터넷이 시작됨
사물 인터넷(Internet of Things)
- 인터넷을 기반으로 모든 사물을 연결함
- 사물과 사물, 사물과 사람간의 정보를 서로 소통하는 지능형 기술 및 서비스
- 사물 인터넷 즉, internet of things 라고 함
- 영어 머리 글자를 따서 IOT라고 함
기본 프로그램 설명
주석
/*
여러 줄의
주석(설명문)은 이렇게 사용됨
또는
*/
// 한 줄 주석은 이렇게 사용됨
// 프로그램에 영향이 없어
// 프로그램의 설명을 하는데 주로 사용
#include <avr/io.h>
i: input (입력)
o: output (출력)
h: .header (헤더 파일)
#include <avr/io.h>
int main(void){
...
}
- io.h에는 입출력에 관련된 내용이 포함되어 있음
- 여기서는 DDRA와 PORTA를 사용함
경고
io.h가 포함되지 않으면 DDRA와 PORTA를 사용할 수 없음
int main(void)
#include <avr/io.h>
int main(void){
...
}
int
- integer로 정수를 의미함
- main 함수의 결과가 정수로 출력되는 것을 뜻함
- 16진수로 표시됨
main 함수
main
- 가장 중요한 함수
- main 함수로 부터 코드를 실행함
- main 함수가 없으면 실행 파일을 만들 수 없음
void
- void는 비어있다는 뜻
- main 함수의 입력으로 아무 것도 없다는 뜻임
DDRA
#include <avr/io.h>
int main(void){
DDRA = 0b11111111;
PORTA = 0b11111110;
return 0;
}
Data Direction Register A : 데이터 방향 레지스터
- PORTA의 데이터 방향을 지시하는 레지스터
- PORTA를 사용하기 전에 먼저 설정해야 함
대입 연산자 =
- 대입 연산자 = 오른쪽의 데이터를 왼쪽 변수에 대입
- 명령의 끝은
;
(세미콜론)임- 0b는 2진수를 의미함(0과 1만 있음)
=
은 대입 연산자로 2진수 11111111를 DDRA에 대입하라는 의미임
DDRA = 0b11111111;
DDRA = 0b11111111;
인 경우 PORTA는 모두(1) 출력으로 사용함DDRA = 0b01100011;
인 경우 PORTA는
순서대로 (0 = 입력, 1 = 출력, 1 = 출력, 0 = 입력, 0 = 입력, 0 = 입력, 1 = 출력, 1 = 출력) 으로 동작
PORTA
#include <avr/io.h>
int main(void){
DDRA = 0b11111111;
PORTA = 0b11111110;
return 0;
}
- PORTA는 8개의 데이터를 입력 또는 출력할 수 있음
- 여기서
DDRA = ob11111111;
이므로 모두 출력으로 사용함PORTA = ob11111110;
대입(출력)함
=
은 대입연선자로 2진수 11111110를 PORTA에 대입하라는 의미임- A 포터의 PA.0에 0이 출력되면 하드웨어적으로 PA.0에 0볼트의 전압이 출력됨
- A 포트의 PA.7 ~ PA.1에 1이 출력되면 하드웨어 적으로 PA.7 ~ PA.1에 5볼트의 전압이 출력됨