책소개
마이크로프로세서 혹은 마이크로컨트롤러는 우리 주변 거의 모든 부분에서 활용되고 있다. 전자시계부터 가전제품, 자동차. 공장자동화 등 많은 분야에 다양한 목적으로 사용되고 있으며, 날이 갈수록 기술이 발전하여 다양한 응용에 편리하게 개발할 수 있도록 고안된 프로세서가 출시되고 있다.
요즈음 개발이 간편한 ATMEL사의 AVR 계열의 마이크로컨트롤러가 각광을 받고 있으며 우리나라에서도 AVR 계열 컨트롤러가 날이 갈수록 널리 사용되고 있으므로 본 교재에서는 AVR계열 중 가장 널리 사용되고 있는 ATmega128 마이크로 컨트롤러를 이용하여 CodeVision 컴파일러를 개발툴로서 집필하였다.
마이크로컨트롤러 기술은 하드웨어 및 인터페이스 회로 설계 제작 기술과 제어프로그램 작성 기술이 합쳐진 두 가지 기술을 모두 습득해야하는 복합적인 기술이다. 특히 제어 프로그램은 거의 대부분 C언어를 사용하고 있으므로 기본적인 C언어 프로그래밍 능력이 필수적으로 갖추어야 하며, 마이컴 회로 구성을 비롯하여 센서 및 액추에이터를 구동하기 위한 인터페이스회로를 설계하고 제작하는 기술도 갖추어야 하므로 많은 사람들이 배우는데 어려움을 격고 있으나 마이크로컨트롤러를 잘 활용하기 위해서는 이 두 가지 요소를 모두 갖추어야 진정한 엔지니어라 할 수 있다.
본 교재에서는 많은 실습 예제를 두어 전기전자 기초지식과 약간의 C언어 기초 지식만 갖고 있으면 무리 없이 쉽게 이해가 되도록 간단한 예제부터 알고리즘을 구현 및 제어 프로그램 작성 능력을 단계적으로 발전해 갈 수 있도록 구성하였으며 다양한 인터페이스 회로를 제시하여 회로에 대해 이해를 돕고 설계 능력을 갖추도록 구성하였다.
본 교재의 예제를 하나씩 따라하며 인터페이스 회로 및 제어 알고리즘을 이해하도록 하여 책에 주어진 활용과제를 해결해 보면서 쉽고 빠르게 실력을 쌓을 수 있다.
이 책을 출판하기 위해 노력해준 복두출판사 관계자 여러분께 감사의 말씀을 전해 올린다.
- 저자 씀
목차
Chapter 1. 마이크로프로세서 개요
1.1 마이크로프로세서(Microprocessor) 개요
1.2 마이크로프로세서와 마이크로컴퓨터
1.3 데이터의 표현
1.4 마이크로프로세서를 이용한 시스템 개발
Chapter 2. ATmega128 마이크로컨트롤러
2.1 AVR이란?
2.2 ATmega128 개요와 외부신호
2.3 ATmega128 내부구조
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 표시