제1장 마이크로컨트롤러 ... 1 1.1 마이크로프로세서와 마이크로컨트롤러 ... 2 1.2 마이크로프로세서와 마이크로컨트롤러의 종류 ... 3 1.3 마이트로컨트롤러의 특징 ... 6 1.4 마이트로컨트롤러의 응용분야 ... 7 1.5 프로그램 ... 8 1.6 반도체 기억장치: RAM과 ROM ... 9 연습문제 ... 11 제2장 8051의 구조 ... 13 2.1 8051 패밀리의 개요 ... 14 2.2 8051의 외부 핀 기능과 내부 기능 ... 17 2.3 8051 메모리 구조 ... 21 2.4 8051 타이밍 ... 33 연습문제 ... 40 제3장 실험 보드의 설계 ... 43 3.1 MCU 동작을 위한 기본 회로 인터페이스 ... 44 3.2 교육용 보드의 회로 설계 ... 50 3.3 74HC573을 이용한 어드레스 래치 회로 ... 51 3.4 ROM(27C256)의 인터페이스 ... 52 3.5 RAM(62256)의 인터페이스 ... 54 3.6 메모리 인터페이스 회로의 설계 ... 59 3.7 어드레스 디코더 회로의 설계 ... 60 3.8 기타 회로의 설계 ... 67 3.9 보드의 제작 및 실습 ... 69 3.10 교육용 보드의 운용 ... 75 연습문제 ... 77 제4장 8051용의 Keil C51 언어 확장 ... 79 4.1 데이터형 ... 81 4.2 메모리형 ... 83 4.3 변수와 상수 선언 ... 84 4.4 메모리 모델 ... 85 4.5 특수 기능 레지스터(SFR)의 액세스 ... 87 4.6 인터럽트 ... 89 4.7 C51에서의 포인터 사용 ... 92 4.8 외부 장치의 접근 방법 ... 97 4.9 함수 ... 100 4.10 어셈블리어와의 결합 ... 106 연습문제 ... 107 제5장 C51 고급 활용: 포인터, 배열, 구조체 ... 109 5.1 포인터 일반 ... 110 5.2 포인터와 배열 ... 113 5.3 함수 포인터 ... 119 5.4 구조체 ... 120 제6장 I/O 포트의 이해 ... 127 6.1 포트의 기능 ... 128 6.2 포트의 구조 ... 128 6.3 Read - Modify - Write 명령 ... 131 6.4 I/O 포트의 활용 실험 ... 132 6.5 PK51을 사용하여 컴파일하기 ... 141 6.6 8051 교육용 보드의 모니터 환경 사용하기 ... 155 연습문제 ... 163 제7장 타이머/카운터 동작 ... 165 7.1 타이머/카운터 개요 ... 166 7.2 타이머/카운터의 특수 기능 레지스터 ... 168 7.3 타이머/카운터 동작모드 ... 171 7.4 타이머/카운터 레지스터의 초기화 및 액세스 ... 174 7.5 타이머/카운터 활용 실험 ... 176 연습문제 ... 183 제8장 직렬 통신 포트 동작 ... 185 8.1 직렬 통신(RS232) 개요 ... 186 8.2 8051의 직렬 포트 개요 ... 193 8.3 직렬 포트 제어 레지스터 ... 195 8.4 동작모드 ... 196 8.5 다중 프로세서 통신 ... 203 8.6 직렬 포트 레지스터의 초기화 및 접근 ... 205 8.7 직렬 포트 초기화 프로그램 ... 207 연습문제 ... 214 제9장 인터럽트 동작 ... 215 9.1 인터럽트 개요 ... 216 9.2 8051 인터럽트의 구성 ... 217 9.3 인터럽트 처리 ... 224 9.4 C51에서의 인터럽트 서비스 루틴의 작성 ... 225 9.5 인터럽트를 이용한 실험 ... 227 연습문제 ... 240 제10장 모니터 프로그램의 작성 ... 243 10.1 모니터 프로그램 개요 ... 244 10.2 16진 파일의 전송 ... 245 10.3 명령어 처리기 ... 248 10.4 인터럽트 벡터의 작성 ... 260 10.5 기타 사용 함수 ... 262 10.6 전체 모니터 프로그램 ... 265 10.7 모니터 프로그램의 확인 실험 ... 274 연습문제 ... 279 제11장 LCD 표시 장치의 제어 ... 281 11.1 LCD 모듈의 구조 ... 282 11.2 LCD 모듈의 단자 기능 ... 283 11.3 LCD 제어기의 기능 ... 287 11.4 LCD 제어기의 명령 ... 291 11.5 LCD 인터페이스와 구동 프로그램 ... 296 11.6 LCD 제어 실험 ... 305 연습문제 ... 315 제12장 8255 병렬 인터페이스(PPI) ... 317 12.1 8255A의 개요 ... 318 12.2 8255A의 내부 구조 ... 319 12.3 8255A의 핀 구조 및 기능 ... 320 12.4 8255A의 레지스터 및 모드 설정 ... 322 12.5 8255A 인터페이스 설계 ... 325 12.6 8255A 제어 실험 ... 326 연습문제 ... 330 제13장 8255를 활용한 응용 회로 제어 ... 333 13.1 LED의 구동 ... 334 13.2 세그먼트의 구동 ... 337 13.3 키 스위치 인터페이스 ... 348 13.4 키 스위치 인터페이스에서 채터링 제거 ... 353 13.5 도트 매트릭스 LED의 제어 ... 360 13.6 드라이버 내장형 도트 매트릭스 LED의 제어 ... 369 제14장 A/D 및 D/A 변환기 ... 379 14.1 A/D 변환의 원리 및 이해 ... 380 14.2 ADC0809 동작 원리 ... 382 14.3 H/W 인터페이스 ... 384 14.4 D/A 변환의 원리 ... 391 14.5 DAC0800 동작 원리 ... 392 연습문제 ... 401 제15장 스텝 모터의 원리 및 인터페이스 방법 ... 403 15.1 스테핑 모터의 특징 ... 404 15.2 스테핑 모터의 구동방식 ... 406 15.3 스테핑 모터의 제어 ... 407 15.4 간단한 스테핑 모터 구동 회로 ... 407 15.5 실험 ... 410 연습문제 ... 413 제16장 산업용 I/O 제어 ... 415 16.1 릴레이 구동 방법 ... 416 16.2 솔레노이드의 원리 및 인터페이스 ... 426 16.3 광전 센서의 원리 및 인터페이스 ... 413 연습문제 ... 440 제17장 그래픽 LCD 제어 ... 441 17.1 그래픽 LCD 모듈의 구조 ... 442 17.2 그래픽 LCD 모듈의 단자 기능 ... 444 17.3 디스플레이 제어 명령 ... 447 17.4 한글 코드의 구현 ... 450 17.5 그래픽 LCD에서 한글 구현 ... 457 17.6 예제 프로그램 ... 464 연습문제 ... 468 제18장 I2C 버스를 이용한 Memory Read/Write ... 471 18.1 I²C 통신 ... 472 18.2 I²C 버스 테이터 송수신 ... 473 18.3 I²C 버스의 통신 규약과 데이터 포맷 ... 476 18.4 24LC32A ... 480 연습문제 ... 492 제19장 RTOS의 기본 개념과 그 응용 ... 493 19.1 임베디드 시스템의 기본 개념과 RTOS의 기본 개념 ... 494 19.2 RTOS에 관련된 전반적인 특징 ... 495 19.3 RTOS 커널의 동작 원리 ... 500 19.4 RTOS에서 제공되는 이벤트 자료구조 ... 505 19.5 MicroC/OS-Ⅱ의 기본 배경 ... 511 19.6 RTOS 실습 ... 515 연습문제 - 528 제20장 초음파 센서를 이용한 거리 계축 20.1 초음파 센서를 이용한 거리 계축 원리 ... 530 20.2 폴라로이드 초음파 센서와 구동 모듈 ... 540 20.3 거리 측정 모듈의 인터페이스 ... 540 찾아보기 ... 569