본문으로 건너뛰기

마이크로 프로세서와 기본 프로그램

마이크로프로세서

마이크로프로세서란?

  • 기능을 설정하고 정해진 일을 수행하도록 프로그램이 된 후에 기계를 동작 시킴
  • 컴퓨터에 비해 저성능이고, 저전력이며, 가격이 저렴함

마이크로프로세서를 사용한 제품

  • 마이크로프로세서는 우리가 일상 생활에서 사용하는 대부부느이 전자기기에 사용됨
  • 마이크로프로세서의 기술 발달로 사물 인터넷이 시작됨

사물 인터넷(Internet of Things)

  • 인터넷을 기반으로 모든 사물을 연결함
  • 사물과 사물, 사물과 사람간의 정보를 서로 소통하는 지능형 기술 및 서비스
  • 사물 인터넷 즉, internet of things 라고 함
  • 영어 머리 글자를 따서 IOT라고 함


기본 프로그램 설명

  1. 주석
  2. #include <avr/io.h>
  3. int main(void)
  4. DDRA = ob11111111;
  5. PORTA = ob11111110;

주석

/*
여러 줄의
주석(설명문)은 이렇게 사용됨
또는
*/

// 한 줄 주석은 이렇게 사용됨
// 프로그램에 영향이 없어
// 프로그램의 설명을 하는데 주로 사용

#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볼트의 전압이 출력됨