이미 소장하고 있다면 판매해 보세요.
|
PART I ATmega128 프로그래밍 준비하기
Chapter1 마이크로컨트롤러 3 1.1 마이크로컨트롤러란 무엇인가? 3 1.2 마이크로프로세서와 마이크로컨트롤러 6 1.3 마이크로컨트롤러는 어디에 사용할 수 있을까? 7 1.4 마이크로컨트롤러를 공부하기 위해서는 무엇이 필요할까? 10 1.5 주변장치와 어떻게 데이터를 교환하나? 14 1.6 프로그램은 어떻게 만들어지나? 19 1.7 마이크로컨트롤러가 꼭 필요한가? 21 1.8 마이크로컨트롤러의 CPU vs. 데스크톱 컴퓨터의 CPU 23 1.9 요약 32 연습 문제 33 Chapter2 ATmega128 소개 34 2.1 AVR 마이크로컨트롤러 34 2.2 ATmega128의 외형적 특징 40 2.3 레지스터 45 2.4 ATmega128의 내부 구조 50 2.5 요약 67 연습 문제 68 Chapter3 개발 환경 설정 69 3.1 아트멜 스튜디오 설치 69 3.2 첫 번째 ATmega128 프로그래밍 72 3.3 요약 86 연습 문제 87 Chapter4 마이크로컨트롤러를 위한 C 언어 88 4.1 C 언어 테스트 환경 89 4.2 프로그램의 기본 구조 94 4.3 마이크로컨트롤러를 위한 C 언어 96 4.4 비트 연산자 117 4.5 요약 127 연습 문제 128 Chapter5 ATmega128 보드 129 5.1 ATmega128 보드의 구성 요소 129 5.2 ATmega128 보드 133 5.3 ATmega128 보드 사용 139 5.4 주변장치 연결 143 5.5 요약 148 연습 문제 149 Chapter6 DIY ATmega128 150 6.1 ATmega128 보드 제작 151 6.2 퓨즈 설정 160 6.3 프로그램 테스트 161 6.4 요약 164 연습 문제 164 PART II ATmega128 프로그래밍 시작하기 Chapter7 디지털 데이터 출력 167 7.1 ATmega128의 데이터 핀 167 7.2 디지털 데이터 출력을 위한 레지스터 169 7.3 블링크 171 7.4 LED 패턴 나타내기 174 7.5 요약 180 연습 문제 180 Chapter8 디지털 데이터 입력 181 8.1 풀업 저항과 풀다운 저항 182 8.2 버튼 입력 186 8.3 버튼으로 LED 시프트하기 191 8.4 디바운스 193 8.5 요약 198 연습 문제 199 Chapter9 UART 시리얼 통신 200 9.1 UART 201 9.2 UART 통신을 위한 레지스터 212 9.3 UART 라이브러리 만들기 221 9.4 문자열 수신 229 9.5 printf와 scanf 함수 사용하기 232 9.6 요약 234 연습 문제 235 Chapter10 아날로그-디지털 변환 236 10.1 ATmega128의 ADC 236 10.2 가변저항 읽기 241 10.3 아날로그-디지털 변환을 위한 레지스터 244 10.4 가변저항으로 LED 제어하기 253 10.5 AVCC는 5V인가? 255 10.6 요약 258 연습 문제 259 Chapter11 아날로그 비교기 260 11.1 아날로그 비교기 260 11.2 아날로그 비교기를 위한 레지스터 263 11.3 2개의 아날로그 입력 비교 267 11.4 요약 268 연습 문제 269 Chapter12 인터럽트 270 12.1 폴링 방식과 인터럽트 방식 270 12.2 인터럽트 272 12.3 인터럽트 처리 275 12.4 인터럽트 사용에서의 주의 사항 281 12.5 외부 인터럽트 284 12.6 요약 290 연습 문제 291 Chapter13 8비트 타이머/카운터 292 13.1 타이머/카운터 292 13.2 오버플로 인터럽트 294 13.3 비교 일치 인터럽트 299 13.4 파형 출력 301 13.5 ASSR 레지스터 306 13.6 실행 시간 알아내기 309 13.7 요약 312 연습 문제 313 Chapter14 16비트 타이머/카운터 314 14.1 16비트 타이머/카운터 314 14.2 오버플로 인터럽트 315 14.3 비교 일치 인터럽트 320 14.4 파형 출력 324 14.5 입력 캡처 329 14.6 요약 333 연습 문제 334 Chapter15 PWM 335 15.1 펄스폭 변조 335 15.2 8비트 타이머/카운터의 PWM 모드 342 15.3 16비트 타이머/카운터의 PWM 모드 347 15.4 PWM을 이용한 LED 밝기 제어 354 15.5 요약 356 연습 문제 357 Chapter16 SPI 358 16.1 SPI 358 16.2 SPI 방식의 EEPROM 363 16.3 요약 378 연습 문제 378 Chapter17 I2C 380 17.1 I2C 380 17.2 DS1307, RTC 칩 384 17.3 요약 401 연습 문제 401 PART III ATmega128 프로그래밍 활용하기 Chapter18 7세그먼트 표시장치 405 18.1 한 자리 7세그먼트 표시장치 405 18.2 네 자리 7세그먼트 표시장치 412 18.3 네 자리 7세그먼트 표시장치에 시간 표시 417 18.4 요약 421 연습 문제 422 Chapter19 디지털 입출력 확장 423 19.1 입출력 확장 423 19.2 74595 칩 425 19.3 74165 칩 431 19.4 MCP23017 436 19.5 요약 441 연습 문제 441 Chapter20 LED 매트릭스 442 20.1 LED 매트릭스 442 20.2 LED 매트릭스 제어 448 20.3 74595 직렬 입력 병렬 출력 이동 레지스터 453 20.4 요약 458 연습 문제 459 Chapter21 키 매트릭스 460 21.1 키 매트릭스 461 21.2 4×4 키 매트릭스 465 21.3 요약 469 연습 문제 470 Chapter22 텍스트 LCD 471 22.1 텍스트 LCD 471 22.2 8비트 모드 텍스트 LCD 제어 475 22.3 4비트 모드 텍스트 LCD 제어 482 22.4 요약 489 연습 문제 490 Chapter23 모터 제어 492 23.1 모터 492 23.2 DC 모터 493 23.3 서보 모터 500 23.4 스텝 모터 504 23.5 요약 515 연습 문제 516 Chapter24 릴레이 517 24.1 릴레이 517 24.2 전기기계식 릴레이 519 24.3 반도체 릴레이 523 24.4 요약 524 연습 문제 524 Chapter25 센서 525 25.1 온도 센서 526 25.2 조도 센서 530 25.3 적외선 거리 센서 533 25.4 초음파 거리 센서 536 25.5 요약 540 연습 문제 541 Chapter26 블루투스 542 26.1 블루투스 모듈 설정 543 26.2 스마트폰 설정 548 26.3 블루투스 통신 552 26.4 요약 553 연습 문제 554 Chapter27 GPS 555 27.1 GPS 555 27.2 NMEA 데이터 분석 559 27.3 요약 565 연습 문제 565 Chapter28 그래픽 LCD 567 28.1 그래픽 LCD 567 28.2 그래픽 LCD 라이브러리 571 28.3 요약 581 연습 문제 582 Chapter29 적외선 통신 584 29.1 적외선 584 29.2 적외선 데이터 포맷 586 29.3 적외선 데이터 디코딩 589 29.4 리모컨으로 LED 제어 593 29.5 요약 595 연습 문제 596 Chapter30 스피커 597 30.1 특정 주파수의 구형파 생성 597 30.2 CTC 모드를 사용한 멜로디 재생 599 30.3 위상 및 주파수 교정 모드를 사용한 멜로디 재생 602 30.4 요약 604 연습 문제 605 Chapter31 EEPROM 606 31.1 EEPROM 레지스터 607 31.2 EEPROM 라이브러리 610 31.3 요약 615 연습 문제 616 Chapter32 워치도그 타이머 618 32.1 워치도그 타이머 618 32.2 워치도그 타이머를 위한 레지스터 621 32.3 워치도그 타이머 사용하기 623 32.4 요약 628 연습 문제 628 Chapter33 퓨즈 비트 630 33.1 하이 퓨즈 631 33.2 로 퓨즈 633 33.3 확장 퓨즈 636 33.4 퓨즈 프로그래밍 637 33.5 요약 639 연습 문제 640 Chapter34 아두이노 641 34.1 아두이노 641 34.2 부트로더 644 34.3 스케치 ? 아두이노를 위한 프로그램 647 34.4 아두이노 개발 환경 설치 650 34.5 아두이노 프로그래밍 653 34.6 ISP 방식 스케치 업로드 656 34.7 아두이노 환경에서 ATmega128 사용하기 659 34.8 요약 663 연습 문제 664 부록A ATmega128 레지스터 669 부록B 마이크로컨트롤러를 위한 전자공학 678 미 주 716 찾아보기 720 |
|
ATmega128은 저전력 고성능의 8비트 마이크로컨트롤러로, 아트멜의 AVR 시리즈에 속하는 마이크로컨트롤러 중에서도 흔히 사용되는 마이크로컨트롤러 중 하나다. AVR 시리즈 마이크로컨트롤러는 8비트 마이크로컨트롤러 중에서는 최신의 구조를 반영하여 설계했으므로 다른 8비트 마이크로컨트롤러에 비해 구조가 간단하다. 게다가 다양한 관련 정보를 온·오프라인에서 손쉽게 찾아볼 수 있다는 점 또한 AVR의 대중화를 이끄는 데 한몫했다고 할 수 있다. 이러한 AVR 시리즈 마이크로컨트롤러의 우수성은 최근 오픈소스 마이크로컨트롤러 프로젝트로 주목받고 있는 아두이노에서 AVR 시리즈 마이크로컨트롤러를 채택한 사실에서도 확인할 수 있다.
_67쪽 ATmega128을 위한 프로그램은 C/C++ 언어를 사용하여 작성할 수 있는데 이 책에서는 C 언어를 사용한다. 마이크로컨트롤러의 성능이 높아지면서 32비트 마이크로컨트롤러의 경우 C++ 스타일의 프로그램을 작성하는 경우도 어렵지 않게 볼 수 있지만, 8비트 CPU와 작은 크기의 메모리를 가진 AVR 시리즈 마이크로컨트롤러에서는 C 언어만으로도 충분하다. _127쪽 인터럽트는 정상적인 프로그램의 흐름을 벗어나는 비정상적인 사건을 가리킨다. 인터럽트의 가장 큰 특징은 하드웨어에 의해 인터럽트 검사가 이루어지므로 사건의 발생 여부를 프로그램에서 검사할 필요가 없다는 점이다. 하지만 사건의 발생 여부를 자동으로 검사하도록 설정하는 작업은 필요하다. 인터럽트 방식과 비교되는 방식은 폴링 방식으로 프로그램 내에서 특정 사건의 발생 여부를 지속적으로 검사해야 한다. _290쪽 I2C는 저속으로 적은 데이터를 전송할 때 주로 사용하는 시리얼 통신 방법이다. I2C 외에도 ATmega128에서 사용할 수 있는 시리얼 통신 방법으로는 UART와 SPI가 있다. 이들 세 가지 방법은 모두 시리얼 통신 방법이라는 점은 동일하지만, 각기 장단점을 가지고 있으므로 용도에 맞게 골라 사용하면 된다. I2C의 가장 큰 장점은 슬레이브의 개수에 상관없이 항상 2개의 연결선만을 필요로 하므로 연결이 간단하고 확장성이 뛰어나다는 점이다. 반면 반이중 통신 방식을 사용하여 다른 방법에 비해 전송 속도가 느리다는 점은 단점으로 꼽힌다. 이러한 특징으로 인해 I2C는 적은 데이터를 간헐적으로 전송하는 센서 연결에 주로 사용한다. _401쪽 7세그먼트 표시장치는 간단한 정보를 나타내는 7개의 세그먼트와 소수점 표시를 위한 세그먼트까지 총 8개의 세그먼트를 바이트 단위 데이터로 제어하는 표시장치의 일종이다. 7세그먼트 표시장치는 구성 방식에 따라 HIGH 값을 출력하는 경우 해당 세그먼트가 켜지는 공통 음극 방식과, LOW 값을 출력하는 경우 해당 세그먼트가 켜지는 공통 양극 방식의 두 가지가 있다. 공통 양극 방식과 공통 음극 방식은 제어 방식이 서로 반대이므로 사용하고자 하는 장치의 데이터시트를 반드시 확인해야 한다. ---p.421 |