한빛출판네트워크

대학교재

IT CookBook, 마이크로컨트롤러 AVR ATmega128 : 상태도를 이용한 시스템 설계

한빛아카데미

집필서

판매중

IT CookBook, 마이크로컨트롤러 AVR ATmega128 : 상태도를 이용한 시스템 설계
좋아요: 35
  • 저자 : 이상설
  • 출간일 : 2013-07-02
  • 페이지 : 604쪽
  • ISBN : 9788998756376
  • 물류코드 :4037
본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.

합계 : 29,000

  • AVR ATmega128의 풍부한 기능을
    다양한 실험실습과 작품으로 배운다!

     

    【누구를 위한 책인가】

    이 책은 마이크로컨트롤러 AVR ATmega128의 풍부한 기능에 하드웨어 인터페이스 기술과 상태도를 기반으로 하는 ASM(Algorithmic State Machine) 기법을 적용하여 제어 시스템을 설계하는 방법을 다루고 있다. 다양한 실험실습으로 하드웨어 인터페이스 기술과 프로그램, 시스템 설계 방법을 학습하면, AVR ATmega128에 대한 이해와 시스템 설계 능력을 향상하는 데 한층 더 도움이 될 것이다. 이뿐만 아니라 이 책에 포함된 15종의 PCB를 이용하여 다양하고 창의적인 작품을 만들 수 있다.

     

    【무엇을 다루는가?】

    30여 개의 실험실습과 세 가지 응용 작품

         1

     마이크로프로세서의 원리

         2

     AVR ATmega128 소개

         3

     개발 환경과 C 프로그래밍

         4

     디지털 I/O 인터페이스의 기본 개념

         5

     ATmega128에서의 디지털 I/O 특성과 활용 사례

         6

     폴링과 인터럽트를 이용한 장치 인터페이스

         7

     상태와 ASM 차트, 제어 프로그램 변환

         8

     8비트 타이머/카운터

         9

     16비트 타이머/카운터

        10

     아날로그 비교기와 A/D 변환기

        11

     시리얼 통신(USART, SPI)

        12

     PCB와 응용 작품 사례


    ▶ 마이크로컨트롤러 부품 목록 다운로드(xls)
    ▶ PID 인터페이스 프로그램 설치파일(zip)
    ▶ PID 인터페이스 프로그램 설치 및 사용 방법(pdf)

  • [저자] 이상설

    고려대학교 전자공학과에서 학사를 취득하고, 삼성전자에서 3년간 근무하였다. 한국과학기술원 전기 및 전자공학과에서 공학석사와 공학박사 학위를 취득하였다. 현재 원광대학교 전기 정보통신공학부 교수로 재직 중이다.

  • 저자 소개 • 02

    저자 머리말 • 04

    강의 계획 • 06

    강의 보조 자료 및 참고 자료 • 07

    응용 작품 • 08

    실험실습 부록 • 09

     

    Chapter 01 마이크로프로세서의 원리

    1.1|마이크로프로세서, 마이크로컨트롤러, 마이크로컴퓨터 • 019

    1.2|고급 언어와 저급 언어 • 021

    1.2.1 번역기의 필요성 · 021

    1.2.2 기계어와 어셈블리어 · 022

    1.2.3 원시프로그램에서 실행 파일 생성 · 022

    1.3|프로그램 실행 원리 • 024

    1.3.1 특수 레지스터와 범용 레지스터 024

    1.3.2 명령어 실행 · 026

    1.4|명령어 셋 • 028

    1.4.1 3주소, 2주소, 1주소, 0주소 마이크로프로세서 · 028

    1.4.2 어드레싱 모드 · 030

    1.4.3 명령코드 동작 · 032

    1.5|저장형 프로그램 컴퓨터 • 034

    1.5.1 저장형 프로그램 컴퓨터의 한계 · 034

    1.5.2 메모리 계층 · 035

    1.5.3 가상 메모리 · 036

    1.6|RISC와 CISC • 037

    1.6.1 RISC · 037

    1.6.2 CISC · 041

    ∷ 연습문제 • 042

     

    Chapter 02 AVR ATmega128 소개

    2.1|AVR 개요 • 047

    2.1.1 AVR 패밀리 · 047

    2.2|ATmega128 특징 • 050

    2.3|ATmega128 내부 구조 • 052

    2.4|ATmega128 명령어 실행 • 060

    2.4.1 명령어 인출과 실행 · 060

    2.4.2 명령어 유형 · 061

    2.4.3 서브루틴 호출과 복귀 · 064

    2.5|ATmega128 메모리와 주변 장치 • 066

    2.5.1 메모리 · 066

    2.5.2 양방향 I/O 포트 · 067

    2.5.3 타이머/카운터 · 068

    2.5.4 직렬 통신 장치 · 070

    2.5.5 JTAG 인터페이스 · 072

    2.6|ISP(In System Programming) 073

    ∷ 연습문제 • 074

     

    Chapter 03 개발 환경과 C 프로그래밍

    3.1|마이크로컨트롤러를 이용한 디지털시스템 개발 • 079

    3.1.1 마이크로컨트롤러와 디지털시스템 · 079

    3.1.2 ATmega128을 이용한 디지털시스템 개발 과정 · 080

    3.2|다운로드 파일 생성과 교차 컴파일러 • 083

    3.2.1 다운로드 파일 생성 · 083

    3.2.2 툴체인과 교차 컴파일러 · 086

    3.3|통합 개발 환경과 make, Makefile • 087

    3.4|컴파일러 최적화 옵션과 라이브러리 링크 • 090

    3.4.1 최적화 옵션과 volatile 지시어 · 090

    3.4.2 라이브러리와 링커 옵션 · 094

    3.5|개발 환경 구축 • 097

    3.5.1 통합 개발 환경 · 097

    3.5.2 AVR 툴체인과 AVR Studio 4 설치 · 099

    3.5.3 ISP 다운로더/디버거 설치 · 101

    3.6|프로그램 개발과 실행 • 104

    3.7|ATmega128을 위한 C 언어 • 112

    3.7.1 C 언어 프로그램의 구성 · 112

    3.7.2 타깃이 ATmega128인 AVR GCC 컴파일러 자료형 · 115

    3.7.3 프로그램 흐름제어 명령어 · 118

    3.7.4 비트 연산 · 120

    3.7.5 연산자의 우선순위 · 122

    3.8|LCD 디스플레이와 float 출력 프로젝트 • 124

    3.9|하드웨어 환경 구축 • 126

    ∷ 연습문제 • 129

    Chapter 04 ATmega128 디지털 I/O 인터페이스

    4.1|디지털 IC와 외부 인터페이스 • 135

    4.1.1 디지털 정보와 디지털 IC · 135

    4.1.2 정보처리용 디지털 IC의 I/O 장치 인터페이스 · 136

    4.2|디지털 IC를 이용한 LED 구동 • 140

    4.3|ATmega128 핀을 이용한 논리값의 외부 입출력 • 144

    4.3.1 논리값과 I/O 핀의 디지털 전압레벨 · 144

    4.3.2 ATmega128 디지털 I/O 핀의 전기적 특성 · 146

    4.3.3 고휘도 LED의 전기적 특성 · 150

    4.3.4 ATmega128 디지털 I/O 핀을 이용한 고휘도 LED 구동 저항값 결정 · 152

    4.4|ATmega128의 포트 구성과 레지스터를 이용한 인터페이스 • 154

    4.4.1 ATmega128 I/O 핀의 구조 · 154

    4.4.2 ATmega128 디지털 I/O 레지스터 역할과 포트 구성 · 155

    4.5|논리값과 I/O 핀의 디지털 전압레벨과 변환 • 159

    4.5.1 입출력 방향 설정과 논리값 출력 방법 · 159

    4.5.2 디지털 I/O 핀의 입출력을 위한 비트 매스킹 · 161

    4.5.3 ATmega128에 연결된 회로의 디지털 입출력 설정 사례 · 167

    4.6|B포트를 이용한 LED 점멸 • 169

    ∷ 연습문제 • 172

     

    Chapter 05 ATmega128 디지털 I/O 활용

    5.1|디지털 I/O 개요 • 177

    5.1.1 디지털 I/O는 왜 많이 사용될까? · 177

    5.1.2 포트 단위 디지털 I/O 입출력 · 178

    5.1.3 디지털 I/O 핀을 이용한 직접 및 간접 구동 · 180

    5.2|디지털 I/O 핀을 이용한 7-세그먼트 LED 구동 • 181

    5.3|트랜지스터를 이용한 스위칭 동작 • 186

    5.3.1 스위치 ON/OFF의 전기적 특성 · 186

    5.3.2 트랜지스터의 직류 특성 · 187

    5.3.3 트랜지스터 포화/차단과 스위치 ON/OFF 관계 · 189

    5.3.4 ATmega128 디지털 I/O 핀을 이용한 트랜지스터 스위치 ON/OFF · 189

    5.4|트랜지스터를 이용한 ATmega128 정격 초과전류 공급 • 190

    5.4.1 NPN 트랜지스터를 이용한 구동 회로 · 190

    5.4.2 PNP 트랜지스터를 이용한 구동 회로 · 192

    5.5|디지털 I/O 핀을 이용한 릴레이 구동 • 194

    5.6|프로세서 연산에 의한 강제 시간 지연 • 198

    5.6.1 GNU gcc 컴파일러의 라이브러리 시간 지연 함수 · 198

    5.6.2 스위치 디바운싱 현상과 소프트웨어적인 해결 방법 · 199

    5.7|시간 지연 함수를 이용한 1초마다 숫자 증가 • 201

    5.8|시간 지연 함수를 이용한 스위치 디바운싱 • 203

    5.9|H-브리지 회로를 이용한 소형 DC 모터 정·역 회전 • 207

    5.9.1 DC 모터의 정회전과 역회전을 위한 H-브리지 회로 · 207

    5.9.2 소형 모터 구동을 위한H-브리지 회로 · 207

    5.10|H-브리지 회로를 이용한 소형 DC 모터 정·역회전 • 212

    ∷ 연습문제 • 216

     

    Chapter 06 폴링과 인터럽트를 이용한 장치 인터페이스

    6.1|폴링을 이용한 장치 인터페이스 • 221

    6.1.1 폴링을 이용한 외부 장치 인터페이스 · 222

    6.1.2 폴링을 이용한 내부 장치 EEPROM 인터페이스 · 224

    6.2|인터럽트를 이용한 장치 인터페이스 • 229

    6.2.1 ATmega128 인터럽트 발생 유형 및 원인 · 229

    6.2.2 인터럽트 발생과 인터럽트 서비스 루틴 실행 · 231

    6.2.3 인터럽트 서비스 루틴에서 주 프로그램으로 복귀 · 234

    6.3|인터럽트 활성화와 인터럽트 서비스 루틴 연결 • 237

    6.3.1 인터럽트 설정과 활성화 · 237

    6.3.2 인터럽트 서비스 루틴의 연결 · 240

    6.3.3 인터럽트 대기와 실행 · 240

    6.4|외부 인터럽트 • 243

    6.4.1 외부 인터럽트 설정과 활성화 · 243

    6.4.2 외부 인터럽트와 외부 인터럽트 서비스 루틴과의 연결 · 244

    6.5|주 프로그램과 인터럽트 서비스 루틴의 요청/응답 인터페이스 • 246

    6.5.1 인터럽트 서비스 루틴과 요청/응답 인터페이스 절차 · 246

    6.5.2 주 프로그램과 인터럽트 서비스 사이의 변수 공유 · 247

    6.5.3 요청/응답 인터페이스와 인터럽트 과부하 절감 · 249

    6.6|포토인터럽터 인터페이스 • 253

    6.7|LCD 문자 디스플레이 인터페이스 • 258

    6.8|EEPROM, 포토인터럽터, LCD 디스플레이 통합 인터페이스 • 264

    ∷ 연습문제 • 269

     

    Chapter 07 상태도와 ASM 차트를 이용한 프로그래밍

    7.1|플로차트를 이용한 프로그램 개발 • 273

    7.2|ATmega128을 이용한 디지털시스템 제어부의 구성과 역할 • 276

    7.2.1 ATmega128을 이용한 디지털시스템 개요 · 276

    7.2.2 마이크로컨트롤러(ATmega128)와 상태 기계 · 278

    7.2.3 상태 기계와 인터럽트 서비스 루틴의 요청/응답 인터페이스 · 280

    7.2.4 상태 기계와 상태도 · 282

    7.3|상태 기계의 제어 프로그램 변환 절차 • 285

    7.4|상태도 개략 설계와 상세 설계 • 286

    7.4.1 상태도 개략 설계 · 286

    7.4.2 상태도 상세 설계 · 290

    7.5|ASM 차트 변환과 제어 프로그램 완성 • 296

    7.5.1 ASM 차트 변환 · 296

    7.5.2 ASM 차트를 이용한 제어 프로그램 변환 · 301

    7.5.3 상태천이와 상태천이 지연 시간 · 305

    7.6|ASM 차트를 이용한 간단한 엘리베이터 설계 • 309

    ∷ 연습문제 • 320

     

    Chapter 08 8비트 타이머/카운터

    8.1|타이머/카운터의 필요성 • 325

    8.2|8비트 타이머/카운터 • 328

    8.2.1 8비트 타이머/카운터n 파형 발생모드의 계수 · 328

    8.2.2 타이머/카운터0 클록 소스 · 330

    8.2.3 타이머/카운터2 클록 소스 · 332

    8.2.4 8비트 타이머/카운터 주요 레지스터 · 333

    8.3|8비트 타이머/카운터n 오버플로 인터럽트 • 336

    8.3.1 8비트 타이머/카운터n 오버플로 인터럽트 초기화 · 336

    8.3.2 오버플로 인터럽트 주기 계산 · 337

    8.3.3 오버플로 인터럽트를 이용한 시간 지연 · 339

    8.4|타이머/카운터0 오버플로 인터럽트 • 341

    8.5|착시를 이용한 두 자리 7-세그먼트 LED 디스플레이 • 344

    8.6|요청/응답 인터페이스에 의한 LED 점멸 주기 제어 • 350

    8.7|8비트 타이머/카운터 파형 발생모드와 OCn 파형 발생 • 355

    8.7.1 비교출력 OCn 신호 출력 · 355

    8.7.2 고속PWM 모드에서 OCn 신호 출력 · 356

    8.7.3 위상정정 PWM 모드에서 OCn 신호 출력 · 359

    8.7.4 CTC 모드에서 OCn 신호 출력 · 361

    8.7.5 일반 모드에서 비교출력 OCn 신호 출력 · 363

    8.8|고속 PWM을 이용한 DC 모터 속도제어 • 364

    8.9|위상정정 PWM을 이용한 DC 모터 속도제어 • 369

    8.10|타이머/카운터2 고속 PWM을 이용한 RC 서보모터 구동 • 374

    ∷ 연습문제 •379

     

    Chapter 09 16비트 타이머/카운터

    9.1|16비트 타이머/카운터 • 383

    9.1.1 16비트 타이머/카운터n 파형 발생모드 계수 · 383

    9.1.2 16비트 타이머/카운터n 블록도와 동작 · 385

    9.1.3 16비트 카운터/타이머 주요 레지스터 · 388

    9.1.4 16비트 타이머/카운터n 클록 소스 · 391

    9.2|16비트 타이머/카운터 파형 발생모드와 OCnx 신호 • 393

    9.2.1 비교출력OCn 신호 출력 · 393

    9.2.2 고속 PWM 모드에서 OCn 신호 출력 · 395

    9.2.3 위상정정 PWM 모드에서 OCnx 신호 출력 · 397

    9.2.4 위상-주파수정정PWM에서 OCnx 신호 출력 · 400

    9.2.5 CTC 모드 신호 출력 · 401

    9.2.6 일반 모드에서 OCn 신호 출력 · 403

    9.3|16비트 타이머/카운터1 비교출력 OC1A/B/C 파형 생성 • 404

    9.4|16비트 타이머/카운터와 입력 캡처 • 408

    9.5|입력 캡처를 이용한 포토인터럽터 시간차 감지 • 411

    ∷ 연습문제 •420

     

    Chapter 10 아날로그 비교기와 A/D 변환기

    10.1|디지털 입력 핀, 아날로그 비교기, A/D 변환기 • 423

    10.2|아날로그 비교기 • 425

    10.2.1 아날로그 비교기 개요 · 425

    10.2.2 아날로그 비교기 관련 레지스터 · 427

    10.2.3 아날로그 비교부의 +, - 단자 신호 연결 · 429

    10.2.4 아날로그 비교기 인터럽트 · 430

    10.3|적외선 포토다이오드와 포토트랜지스터 활용 • 432

    10.3.1 적외선 포토다이오드와 포토트랜지스터 특성 · 432

    10.3.2 포토다이오드와 포토트랜지스터 활용 · 433

    10.4|적외선 센서를 이용한 검정 띠 검출 문턱전압 • 438

    10.5|아날로그 비교기를 이용한 검정 띠 검출 • 441

    10.6|A/D 변환기 • 445

    10.6.1 연속 근사 A/D 변환 방식 · 445

    10.6.2 A/D 변환기 개요 · 446

    10.6.3 A/D 변환 관련 레지스터 · 453

    10.6.4 ADC 인터럽트 · 456

    10.7|A/D 변환과 PWM을 이용한 고휘도 LED 밝기 제어 • 459

    10.8|A/D 변환과 LED 인터페이스 • 462

    10.9|차동 신호 A/D 변환과 광센서를 이용한 거리 측정 • 470

    ∷ 연습문제 •473

     

     

    Chapter 11 시리얼 통신

    11.1|동기 및 비동기 모드 USART 통신 • 477

    11.2|USART 통신 • 479

    11.2.1 USART 통신 개요 · 479

    11.2.2 USART 초기화 설정 · 482

    11.2.3 USART 통신 에러 · 486

    11.2.4 전송 속도 설정 · 487

    11.2.5 UDRn 레지스터와 데이터 송수신 · 489

    11.3|폴링을 이용한 문자 송수신 • 491

    11.3.1 프레임 포맷 설정 · 491

    11.3.2 문자 송수신 · 492

    11.4|인터럽트와 큐를 이용한 문자 송수신 • 493

    11.4.1 프레임 포맷과 인터럽트 설정 · 493

    11.4.2 인터럽트를 이용한 문자 송신 · 494

    11.4.3 인터럽트를 이용한 문자 수신 · 496

    11.5|문자 송수신 함수와 printf( ), scanf( ) 함수의 연결 • 498

    11.6|PC와 ATmega128 보드의 비동기 USART 통신 • 500

    11.7|SPI 통신 • 504

    11.7.1 SPI 마스터/슬레이브 모드 고정 동작 · 504

    11.7.2 SPI 마스터/슬레이브 모드 변경 동작 · 509

    11.8|SPI 관련 레지스터 • 511

    11.8.1 SPCR 레지스터 · 511

    11.8.2 SPSR 레지스터 · 513

    11.8.3 SPDR 레지스터 · 513

    11.9|고정 마스터 모드 SPI 온도센서와 인터페이스 • 515

    11.10|가변 마스터/슬레이브 모드 SPI 장치와 인터페이스 • 521

    ∷ 연습문제 • 529

     

    Chapter 12 작품 제작을 위한 PCB 작품 소개

    12.1|작품 제작을 위한 PCB 소개 • 533

    12.1.1 PWR B/D · 534

    12.1.2 LED B/D · 536

    12.1.3 SW B/D · 537

    12.1.4 Micro DC Motor B/D · 538

    12.1.5 LCD Module B/D · 540

    12.1.6 LED Holder B/D · 541

    12.1.7 Relay B/D · 542

    12.1.8 Dual 7-Segment LED B/D · 543

    12.1.9 Ph. TR/VR B/D · 544

    12.1.10 Ph. Int. B/D · 546

    12.1.11 High-Flux LED B/D · 547

    12.1.12 Micro Geared Motor Support · 549

    12.1.13 만능 기판 · 550

    12.1.14 커넥터 보드 6핀, 14핀 · 550

    12.1.15 PCB 연결에 사용되는 커넥터와 케이블 · 551

    12.2|작품 A : 컨베이어 이송 시스템 • 552

    12.2.1 동작 개요 · 552

    12.2.2 하드웨어와 회로 구성 · 553

    12.2.3 상태도 개략 설계 · 555

    12.2.4 상태도 상세 설계 · 557

    12.2.5 ASM 차트 변환 및 제어 프로그램 완성 · 563

    12.3|작품 B : PID 제어에 의한 속도 조절 시스템 • 570

    12.3.1 동작 개요 · 570

    12.3.2 하드웨어와 회로 구성 · 571

    12.3.3 RPM 측정을 위한 프로그램 · 572

    12.3.4 PID 제어 장치와 응용프로그램 인터페이스 · 578

    12.4|작품 C : 검정 띠 추적 모형 자동차 • 584

    12.4.1 동작 개요 · 584

    12.4.2 하드웨어와 회로 구성 · 584

    12.4.3 검정 띠 추적을 위한 요소 기술 · 586

    12.4.4 검정 띠 추적 주행 자동차 실행 프로그램 · 589

     

     

    부록

    Appendix | 예제 소스 • 595

     

    찾아보기 • 601

  •  

    • IT CookBook, C 언어로 배우는 8051 마이크로프로세서

      임석구

<한빛아카데미> 도서구입은 인터넷서점을 이용하세요.
닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?