마이크로컨트롤러 기술은 하드웨어 및 인터페이스 회로 설계 제작 기술과 제어프로그램 작성 기술이 합쳐진 두 가지 기술을 모두 습득해야하는 복합적인 기술이다. 특히 제어 프로그램은 거의 대부분 C언어를 사용하고 있으므로 기본적인 C언어 프로그래밍 능력이 필수적으로 갖추어야 하며, 마이컴 회로 구성을 비롯하여 센서 및 액추에이터를 구동하기 위한 인터페이스회로를 설계하고 제작하는 기술도 갖추어야 하므로 많은 사람들이 배우는데 어려움을 격고 있으나 마이크로컨트롤러를 잘 활용하기 위해서는 이 두 가지 요소를 모두 갖추어야 진정한 엔지니어라 할 수 있다. 본 교재에서는 많은 실습 예제를 두어 전기전자 기초지식과 약간의 C언어 기초 지식만 갖고 있으면 무리 없이 쉽게 이해가 되도록 간단한 예제부터 알고리즘을 구현 및 제어 프로그램 작성 능력을 단계적으로 발전해 갈 수 있도록 구성하였으며 다양한 인터페이스 회로를 제시하여 회로에 대해 이해를 돕고 설계 능력을 갖추도록 구성하였다.
Contents
Chapter 1. 마이크로프로세서 개요
1.1 마이크로프로세서(Microprocessor) 개요
1.2 마이크로프로세서와 마이크로컴퓨터
1.3 데이터의 표현
1.4 마이크로프로세서를 이용한 시스템 개발
Chapter 3. C언어 기초 다지기
3.1 프로그래밍 언어 개요
3.2 C언어 개요
3.3 변수와 데이터형
3.4 연산자(Operator)
3.5 제어문의 구조와 사용법
3.6 코드비젼 C 컴파일러
3.7 AVR Studio 사용법
Chapter 4. LED 점등 제어
4.1 알아야 할 관련 지식들
4.2 LED 점멸 제어 실습
실습 1. LED 점멸제어 프로그래밍 따라하기
실습 2. 스위치 입력 제어 실습
실습 3. 스위치 입력에 따른 LED on-off 제어
실습 4. 스위치 입력에 따른 LED on-off 제어 2
실습 5. LED 순차 점등제어 1
실습 6. LED 순차 점등제어 2
실습 7. LED 순차 왕복 점멸 제어
실습 8. 16비트 LED 순차 점멸 제어
실습 9. 16비트 LED 순차 점멸 제어 2
실습 10. 스위치 입력에 따른 LED 순차 점등 제어
Chapter 5. FND 숫자 표시 실습
5.1 알아야 할 관련 지식들
5.2 FND 표시 제어 실습
실습 11. FND 숫자 업카운트 표시
실습 12. 스위치 입력에 따른 FND 숫자 업/다운 카운트 표시
실습 13. 7447 디코더를 이용한 FND 숫자 표시 제어
실습 14. 다이나믹 숫자 표시 제어 실습1
실습 15. 다이나믹 숫자 표시 제어 실습2
Chapter 6. 캐릭터 LCD 표시 제어
6.1 알아야 할 관련 지식들
6.2 인터페이스 회로와 초기화 방법
6.3 캐릭터 LCD 실습
실습 16. LCD 문자 표시 실습1
실습 17. LCD 숫자 표시 실습
실습 18. LCD 숫자 표시 실습2
실습 19. LCD 문자 시프트 표시 실습
실습 20. LCD 숫자 표시 실습
Chapter 7. 키 매트릭스 제어
7.1 알아야 할 관련 지식들
7.2 인터페이스 회로와 동작원리
7.3 키 매트릭스 실습
실습 21. Key 매트릭스 키 값을 FND로 표시 실습
실습 22. Key 매트릭스 2자릿수 입력과 FND 표시
Chapter 8. 인터럽트
8.1 알아야 할 관련 지식들
8.2 Mega128의 외부 인터럽트와 관련 레지스터들
8.3 인터럽트 초기화와 서비스 루틴
8.4 외부 인터럽트 활용 실습
실습 23. 외부 인터럽트(INTO) 활용 실습
실습 24. 외부 인터럽트(INTO, INT5) 활용 실습
Chapter 9. 타이머/카운터 제어
9.1 타이머/카운터 개요
9.2 타이머/카운터 0과 타이머/카운터 2
9.3 타이머/카운터 0과 2 활용 실습
실습 25. 타이머/카운터0 오버플로 인터럽트를 이용한 LED 순차점등
실습 26. 타이머/카운터0 오버플로를 이용한 1초 간격 LED 순차점등
실습 27. 타이머/카운터0의 CTC모드를 이용한 1초 간격 LED 점등
실습 28. 타이머/카운터0의 CTC를 이용한 구형파 출력
실습 29. 타이머/카운터2를 이용한 외부 입력 클록 카운터 실습1
실습 30. 타이머/카운터2를 이용한 외부 입력 클록 카운터 실습2
실습 31. 타이머/카운터2를 이용한 PWM 출력 실습
실습 32. 타이머/카운터2를 이용한 FND의 다이나믹 숫자 표시 제어
9.4 타이머/카운터 1과 타이머/카운터 3
9.5 타이머/카운터 1과 3 활용 실습
실습 33. 타이머/카운터2 오버플로 인터럽트를 이용한 LED 순차점등
실습 34. 타이머/카운터1을 이용한 위상교정 PWM 출력 제어
실습 35. 타이머/카운터3을 이용한 CTC모드 구형파 펄스 출력
Chapter 10. 모터 제어
10.1 DC 모터
10.2 DC 모터 구동 제어 실습
실습 36. DC 모터 정, 역회전 제어 실습
실습 37. 타이머/카운터1을 이용한 DC 모터 PWM 속도제어 실습
실습 38. 주행 로봇 속도제어 실습
10.3 스테핑 모터
10.4 스테핑 모터 제어실습
실습 39. 스테핑 모터 구동 실습
실습 40. 스위치에 의한 정, 역회전 제어 실습
실습 41. 스테핑 목터 속도 제어 실습
10.5 RC 서보모터
10.6 RC 서보모터 제어실습
실습 42. RC 서보모터 구동 실습
실습 43. RC 서보모터 위치제어 실습
실습 44. 3개의 RC 서보모터 제어 실습
Chapter 11. A/D 변환기 활용
11.1 A/D 변환기 개요와 사용법
11.2 A/D 변환기 활용 기초 실습
실습 45. 기초 A/D 변환 실습 - 입력 전압 레벨 표시
실습 46. 입력 전압 데이터의 FND 표시
실습 47. 입력 전압값의 실수 환산 표시 1
실습 48. 입력 전압값의 실수 환산 표시 2
11.3 센서 인터페이스와 계측 실습
실습 49. 로봇에 많이 사용되는 광량 센서의 측정
실습 50. PSD 센서를 이용한 거리 측정
실습 51. 초음파센서 활용 실습
Chapter 12. 시리얼 통신
12.1 시리얼(Serial) 통신이란?
12.2 ATmega128의 USART 개요
12.3 USART 관련 레지스터와 사용법
12.3.1 USART - RS232C 하드웨어 인터페이스
12.3.2 데이터의 송수신 알고리즘
12.4 시리얼 통신 실습
실습 52. PC로의 문자와 문자열 전송
실습 53. 인터럽트를 이용한 문자열 전송
실습 54. 문자의 송신과 수신 문자의 LCD 표시