Error404 뜨잖아 ㅡㅡ
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)
저자 소개 • 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
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2020-05-04 | 다운로드 |