제1장 컴퓨터의 역사와 마이크로프로세서 1-1 컴퓨터의 역사 ... 17 1-1-1 제1세대 컴퓨터 ... 18 1-1-2 제2세대 컴퓨터 ... 19 1-1-3 제3세대 컴퓨터 ... 19 1-2 마이크로 컴퓨터의 출현 ... 21 1-2-1 4비트와 8비트 단일 칩 마이크로 컴퓨터 ... 23 1-2-2 8비트 마이크로프로세서 ... 28 1-2-3 16비트 마이크로프로세서 ... 36 연습문제 ... 48 제2장 마이크로 컴퓨터 시스템의 구성 2-1 마이크로 컴퓨터 시스템 설계와 응용 ... 49 2-1-1 마이크로 컴퓨터 시스템 설계 ... 49 2-1-2 마이크로 컴퓨터의 응용 ... 54 2-2 마이크로 컴퓨터 시스템의 하아드웨어 ... 58 2-2-1 마이크로 컴퓨터 시스템의 기본 구성 ... 58 2-2-2 CPU의 핀 기능과 신호 ... 58 2-2-3 버스의 구성 ... 63 2-2-4 메모리 회로 구성 ... 65 2-2-5 데이터 전송 방식에 따른 I / O설계 ... 77 2-2-6 I/O장치 ... 80 2-2-7 마이크로 컴퓨터 데이터 통신 ... 102 2-3 마이크로 컴퓨터 시스템의 소프트웨어 ... 118 2-3-1 소프트웨어 개발과 평가 ... 118 2-3-2 소프트웨어 설계와 테스트 ... 121 연습문제 ... 136 제3장 Z 80 CPU의 구조와 기능 3-1 Z 80 CPU의 구조 ... 138 3-1-1 Z 80 CPU의 특징 ... 138 3-1-2 Z 80 CPU의 핀 기능 ... 140 3-1-3 Z 80 CPU의 내부 구조 ... 143 3-1-4 명령어 수행 과정 ... 145 3-2 Z 80 CPU의 레지스터 ... 149 3-2-1 Z 80 CPU 레지스터의 종류 ... 149 3-2-2 어큐뮬레이터와 플래그 ... 149 3-2-3 8비트 범용 레지스터 ... 152 3-2-4 특수 용도 레지스터 ... 153 3-3 Z 80 명령어 ... 154 3-3-1 Z 80 CPU의 번지 지정 방법 ... 154 3-3-2 Z 80 명령어 ... 164 3-4 Z 80 CPU 타이밍 ... 194 3-4-1 Z 80 CPU의 기본 타이밍 ... 194 3-4-2 명령어 OP 코우드 페치 사이클 ... 195 3-4-3 메모리 리이드/라이트 사이클 ... 197 3-4-4 I/O 리이드/라이트 사이클 ... 198 3-4-5 버스 요구/인정 사이클 ... 200 3-4-6 인터럽트 요구/인정 사이클 ... 200 3-4-7 HALT 사이클 ... 203 연습문제 ... 204 제4장 Z 80 명령어를 사용한 기본 프로그램 4-1 비트 단위 데이터의 처리 프로그램 ... 207 4-1-1 비트 보수화 프로그램 ... 207 4-1-2 비트의 AND/OR(논리적/논리합) 연산 프로그램 ... 208 4-1-3 캐리 플래그의 처리 프로그램 ... 209 4-1-4 제로 플래그의 처리 프로그램 ... 212 4-1-5 사인 플래그의 처리 프로그램 ... 213 4-1-6 패리티/오우버플로우 플래그의 처리 프로그램 ... 214 4-1-7 비트 세트/리세트를 사용한 프로그램 ... 214 4-1-8 비트 테스트 프로그램 ... 215 4-2 니블 단위 데이터의 처리 프로그램 ... 216 4-3 바이트 단위 데이터의 처리 프로그램 ... 217 4-3-1 1바이트(8비트) 데이터의 전송 프로그램 ... 217 4-3-2 바이트 데이터의 산술 및 논리 연산 프로그램 ... 222 4-4 워어드 단위 데이터의 처리 프로그램 ... 224 4-4-1 2바이트(1워어드) 데이터의 전송 및 교환 프로그램 ... 224 4-4-2 2바이트 데이터의 산술 연산 프로그램 ... 229 연습문제 ... 230 제5장 루우프 5-1 루우프의 종류 ... 234 5-1-1 무조건 GO-TO 루우프 ... 235 5-1-2 EXIT-IF 루우프 ... 236 5-1-3 WHILE-DO 루우프 ... 237 5-1-4 REPEAT-UNTIL 루우프 ... 238 5-2 메모리의 내용을 삭제시키는 프로그램 ... 240 5-3 블록 데이터 무더기 자료의 전송 프로그램 ... 242 5-4 블록 데이터 검색 프로그램 ... 244 5-5 블록 데이터 중에서 음수의 갯수를 세는 프로그램 ... 245 5-6 최대값과 최소값을 구하는 프로그램 ... 246 5-7 데이터를 버퍼로 이동시키는 프로그램 ... 248 5-8 N개 데이터의 총합을 구하는 프로그램 ... 249 5-9 N개 데이터의 체크섬 계산 프로그램 ... 250 5-10 문자열 비교 프로그램 ... 251 연습문제 ... 252 제6장 코우드 6-1 코우드의 종류 ... 254 6-1-1 2진 코우드 ... 255 6-1-2 10진 코우드 ... 258 6-1-3 2-out of-5 코우드 ... 258 6-1-4 그레이 코우드 ... 259 6-1-5 7세그먼트 표시용 코우드 ... 260 6-1-6 키이보오드용 코우드 ... 262 6-2 BCD의 2진 변환 프로그램 ... 266 6-3 2진수의 BCD 변환 프로그램 ... 269 6-4 ASCII의 10진수 변환 프로그램 ... 271 6-5 ASCII의 16진수 변환 프로그램 ... 273 6-6 16진수의 ASCII 변환 프로그램 ... 274 6-7 2진 코우드의 그레이 코우드 변환 프로그램 ... 276 6-8 그레이 코우드의 2진 코우드 변환 프로그램 ... 277 6-9 BCD 데이터 기억 형태 변환 프로그램 ... 278 6-10 밀집형 BCD의 자리 이동에 관한 프로그램 ... 280 연습문제 ... 280 제7장 서브루우틴(부 프로그램) 7-1 서브루우틴의 구성과 기능 ... 282 7-2 패턴 식별 서브루우틴 ... 288 7-3 난수 발생 서브루우틴 ... 289 7-4 메모리 검색 서브루우틴 ... 290 7-5 다중 서브루우틴의 작성 ... 292 7-6 변형된 서브루우틴의 작성 ... 295 연습문제 ... 297 제8장 자료 구조 8-1 여러 가지 자료 구조 ... 299 8-1-1 포인터 ... 300 8-1-2 리스트 ... 300 8-1-3 검색과 분류 ... 304 8-2 자료 구조 설계 프로그램 ... 309 8-2-1 리스트 데이터의 표현 ... 309 8-2-2 단순 리스트의 검색, 삽입과 제거 프로그램 ... 310 8-2-3 알파벳 리스트의 검색과 삽입 및 제거 프로그램 ... 316 8-2-4 연결된 리스트에 있어서의 검색, 삽입과 제거 ... 323 8-3 테이블 검색을 이용한 코우드 변환 프로그램 ... 328 8-3-1 ASCII를 BCD로 변환 ... 328 8-3-2 10진수를 7세그먼트로 변환 ... 329 8-4 버블 분류 프로그램 ... 330 8-5 순위 결정 프로그램 ... 331 연습문제 ... 333 제9장 산술 연산 9-1 덧셈 ... 334 9-1-1 N바이트 2진 덧셈 ... 335 9-1-2 N바이트 밀집형 BCD 덧셈 ... 336 9-1-3 N바이트 비밀집형 BCD 덧셈 ... 336 9-2 뺄셈 ... 337 9-2-1 N바이트 2진 뺄셈 ... 338 9-2-2 N바이트 밀집형 BCD 뺄셈 ... 338 9-2-3 N바이트 비밀집형 BCD 뺄셈 ... 339 9-3 곱셈 ... 340 9-3-1 반복 덧셈에 의한 2진 곱셈 ... 341 9-3-2 가산 후 이동법에 의한 2진 곱셈 ... 342 9-4 나눗셈 ... 343 9-4-1 반복 뺄셈에 의한 나눗셈 ... 344 9-4-2 재저장 방법에 의한 나눗셈 ... 345 9-4-3 비재저장 방법에 의한 나눗셈 ... 346 9-5 기타 산술 응용 프로그램 ... 348 9-5-1 M←M*10의 연산 프로그램 ... 348 9-5-2 상대 번지 지정 방법의 오프세트 계산 ... 348 9-5-3 <?import namespace ... m ur 9-5-4 <m:math xmlns ... '"htt 9-5-5 돗수 분포표 작성 프로그램 ... 353 9-5-6 합계와 평균을 구하는 프로그램 ... 355 연습문제 ... 358 제10장 프로그래밍 언어 10-1 고급 언어 개론 ... 359 10-1-1 어셈블리어와 고급 언어의 비교 ... 359 10-1-2 고급 언어 프로그램 작성과 실행에 필요한 프로그램 ... 360 10-1-3 고급 언어의 종류 ... 362 10-2 BASIC 프로그래밍 ... 363 10-2-1 BASIC 프로그램의 구성 ... 364 10-2-2 BASIC에 사용하는 상수와 변수 ... 364 10-2-3 BASIC의 산술 연산자 ... 365 10-2-4 BASIC의 관계 연산자 ... 365 10-2-5 BASIC의 내장 함수 ... 366 10-2-6 BASIC문의 종류 ... 366 10-2-7 문자열과 배열 ... 371 10-3 FORTRAN 프로그래밍 ... 373 10-3-1 FORTRAN의 데이터 종류 ... 374 10-3-2 FORTRAN 연산자-산술 연산자, 관계 연산자와 논리 연산자 ... 374 10-3-3 서브루우틴과 함수 ... 375 10-3-4 FORTRAN 프로그램 구성과 문장 종류 ... 375 10-4 PASCAL 프로그래밍 ... 381 10-4-1 PASCAL 프로그램의 구조 ... 381 10-4-2 PASCAL의 선언부 ... 383 10-4-3 PASCAL 연산자 ... 386 10-4-4 PASCAL문 ... 386 10-4-5 PASCAL의 데이터 입출력 ... 389 연습문제 ... 391 제11장 메모리 회로 11-1 메모리의 종류 ... 394 11-1-1 메모리 소자의 특성과 성능 ... 394 11-1-2 메모리 제조 기술 ... 396 11-1-3 메모리 선택 기준 ... 398 11-2 메모리의 물리적 어드레스 지정 방법 ... 399 11-2-1 메모리의 데이터 라인과 어드레스 라인 ... 399 11-3 EPROM을 사용한 메모리 회로 ... 403 11-3-1 EPROM의 선택 기준 ... 403 11-3-2 EPROM의 종류 ... 405 11-3-3 EPROM 프로그래머 ... 405 11-3-4 EPROM의 접속도 ... 414 11-4 스태틱 RAM을 사용한 메모리 회로 ... 414 11-4-1 스태틱 RAM의 I/O구성 ... 414 11-4-2 스태틱 RAM의 비트용량 및 비트 구성에 따른 메모리 회로 ... 414 11-5 다이내믹 RAM을 사용한 메모리 회로 ... 414 11-5-1 다이내믹 RAM의 선택 기준 ... 425 11-5-2 다이내믹 RAM의 종류 ... 426 11-5-3 다이내믹 RAM의 리프레시 동작 ... 430 11-5-4 Z 80 CPU와 다이내믹 RAM의 인터페이스 ... 431 연습문제 ... 434 제12장 인터럽트 12-1 마이크로 컴퓨터 인터럽트 기능의 중요성 ... 436 12-2 인터럽트의 개념 ... 437 12-2-1 인터럽트의 종류 ... 439 12-2-2 인터럽트 처리 과정 ... 439 12-2-3 인터럽트 시스템의 구성 ... 440 12-3 Z 80 인터럽트 ... 442 12-3-1 논 마스커블 인터럽트(NMI) ... 443 12-3-2 Z 80 인터럽트 모우드의 종류 ... 444 12-3-3 Z 80 리세트 핀의 기능 ... 452 12-3-5 Z 80 인터럽트 시스템의 구성 ... 453 12-3-6 Z 80 인터럽트 처리 과정 ... 456 12-4 Z 80 인터럽트의 응용 프로그래밍 ... 457 12-4-1 Z 80 논 마스커블 인터럽트 ... 457 12-4-2 Z 80 모우드0 인터럽트 ... 458 12-4-3 Z 80 모우드1 인터럽트 ... 459 12-4-4 Z 80 모우드2 인터럽트 ... 460 연습문제 ... 462 제13장 병렬 입출력 13-1 병렬 입출력의 기능과 종류 ... 463 13-1-1 TTL IC에 의한 병렬 입출력 ... 464 13-1-2 범용 LSI에 의한 병렬 입출력 ... 469 13-2 CPU와 I/O 포오트간 데이터 전송 동작 ... 471 13-3 Z 80 PIO ... 473 13-4 Z 80 PIO의 응용 프로그램 ... 484 13-4-1 PIO 프로그래밍 ... 484 13-4-2 모우드 0와 모우드 1의 응용 프로그램 ... 487 13-4-3 모우드 2의 응용 프로그램 ... 489 13-4-4 모우드 3의 응용 프로그램 ... 490 13-5 PIO의 인터페이스 ... 493 13-5-1 PIO의 리세트 ... 493 13-5-2 CPU와의 접속 ... 494 13-5-3 PIO를 사용한 센트로닉스 인터페이스의 설계 ... 494 13-5-4 쌍방향 모우드(모우드2)의 응용과 그 인터페이스 ... 498 연습 문제 ... 500 제14장 직렬 입출력 14-1 직렬 입출력 LSI의 용도 ... 501 14-2 직렬 데이터의 통신 방식 ... 502 14-2-1 비동기 통신 방식 ... 502 14-2-2 동기 통신 방식 ... 503 14-2-3 SDLC 통신 방식 ... 504 14-3 직렬 입출력 LSI의 구조 ... 504 14-3-1 비동기 통신 LSI ... 504 14-3-2 동기 통신 LSI ... 507 14-3-3 비동기 및 동기 통신 LSI ... 507 14-4 Z 80 SIO ... 509 14-4-1 Z 80 SIO의 구조 ... 509 14-4-2 Z 80 SIO 단자의 기능 ... 510 14-4-3 Z 80 SIO의 인터럽트 ... 512 14-4-4 SIO의 내부 레지스터 기능 ... 513 14-5 Z 80 SIO의 비동기 통신에의 응용 ... 516 14-5-1 RS-232C의 하아드웨어 구성 ... 516 14-5-2 RS-232C 사용을 위한 Z80 SIO 초기 설정 프로그램 ... 517 14-5-3 Z80 SIO의 송신 프로그램 ... 521 14-5-4 Z80 SIO의 수신 프로그램 ... 525 연습문제 ... 531 제15장 카운터와 타이머 15-1 Z 80 CTC ... 533 15-1-1 Z 80 CTC의 구조와 기능 ... 533 15-1-2 CTC의 Z80 CPU와의 접속 ... 542 15-1-3 CTC의 동작 ... 543 15-2 CTC의 프로그래밍 ... 544 15-3 CTC를 사용한 보오 레이트 제너레이터 설계 ... 547 15-4 CTC를 사용한 시계 설계 ... 549 연습문제 ... 553 제16장 DMA(direct memory access) 16-1 DMA의 개요 ... 554 16-2 Z 80 DMA ... 557 16-2-1 Z 80 DMA의 구조와 기능 ... 557 16-2-2 Z 80 DMA의 데이터 전송 모우드 ... 563 16-2-3 Z 80 DMA 타이밍 ... 565 16-3 Z 80 DMA의 초기 설정 프로그램 ... 571 16-4 Z 80 CPU와 Z80 DMA의 인터페이스 ... 571 16-5 Z 80 DMA와 FDC와의 인터페이스 ... 575 연습문제 ... 586 제17장 지연 시간의 계산 17-1 지연 시간 프로그램의 용도 ... 587 17-2 지연 시간을 이용한 예 ... 590 17-2-1 펄스 발생 프로그램 ... 590 17-2-2 LED 점멸용 프로그램 ... 591 17-2-3 교통 신호등 제어용 프로그램 ... 593 연습문제 ... 596 제18장 LED 디스플레아와 키이보오드 인터페이스 18-1 7-세그먼트 LED의 문자 코우드 ... 598 18-2 다단 LED 디스플레이 ... 600 18-3 래치를 사용한 다단 LCD 디스플레이 ... 603 18-4 키이보오드 ... 605 18-4-1 인코우디드 키이보오드 ... 605 18-4-2 스캐닝 키이보오드 ... 607 18-4-3 키이 스위치의 디바운싱 ... 612 18-5 키이보오드와 LED 디스플레이 장치의 인터페이스 ... 615 18-5-1 키이보오드와 LED 디스플레이 접속 회로 구성 ... 615 18-5-2 키이보오드와 LED 디스플레이 컨트로울러 LSI8279 ... 618 연습문제 ... 624 제19장 CRT 디스플레이 19-1 영상 신호 발생의 기초 기술 ... 626 19-1-1 영상 신호 ... 626 19-1-2 컬러 TV 신호 ... 627 19-1-3 CRT 디스플레이의 영상 신호 ... 629 19-1-4 CRT 문자 디스플레이의 기초 기술 ... 630 19-2 문자 디스플레이 장치의 제작 ... 635 19-3 그래픽 디스플레이의 제작 ... 638 19-4 그래픽 디스플레이 방식을 사용한 문자 디스플레이 ... 646 연습문제 ... 647 제20장 카세트 인터페이스 20-1 카세트 인터페이스를 이용한 직렬 데이터 전송 ... 649 20-2 카세트 테이프 레코오더용 변복조 회로 ... 651 20-3 토운 버어스트 방식을 사용한 카세트 인터페이스와 소프트웨어 ... 652 20-4 FSK 방식을 사용한 카세트 인터페이스와 소프트웨어 ... 661 연습문제 ... 665 제21장 D/A와 A/D 컨버어터 인터페이스 21-1 D/A 컨버어터 ... 666 21-1-1 저항 결합형 D/A 컨버어터 ... 667 21-1-2 R/2R 사다리꼴 D/A 컨버어터 ... 669 21-1-3 모놀리딕과 하이브리드 D/A 컨버어터 ... 670 21-2 A/D 컨버어터 ... 673 21-2-1 병렬 비교기형 A/D 컨버어터 ... 673 21-2-2 싱글 슬로우프형 A/D 컨버어터 ... 674 21-2-3 듀얼 슬로우프형 A/D 컨버어터 ... 675 21-2-4 D/A 컨버어터 결합형 A/D 컨버어터 ... 676 21-3 D/A 컨버어터의 응용 ... 679 21-4 A/D 컨버어터의 응용 ... 681 연습 문제 ... 684 찾아보기 ... 685 INDEX ... 691