Click here to load reader

MCS-51 마이크로컴퓨터 backup/IFC180/TEXTBOOK... · PDF file 2016. 9. 2. · 2 MCS-51 마이크로컴퓨터 x7 ,- - ªz|H¹ 모델 ROMRAM속도I/O핀T/CUARTInterrupt 8031AHROMless128B12MHz3221

  • View
    1

  • Download
    0

Embed Size (px)

Text of MCS-51 마이크로컴퓨터 backup/IFC180/TEXTBOOK... · PDF file 2016. 9....

  • MCS-51

    마이크로컴퓨터

    이 명 의 ․ 박 천 주

  • 목차 1

    머릿말

    MCS-51 MCU 및 주변 입출력 디바이스를 제어하기 위한 프로그램을 작성할 때

    에 어셈블리 언어와 C 언어를 사용할 수 있다. 어셈블리 언어를 이용하여 프로

    그램을 작성하면 하드웨어에 대한 이해와 수행 속도 및 메모리 관리 면에서 이

    점이 있는 반면, 마이크로프로세서마다 명령어가 각기 다르고 기계어에 준하는

    어셈블리 언어를 이해하고 숙달하는데 다소 어려움과 시간을 요구할 수 있다. 반

    면, C 언어는 코드 효용성, 구조화된 프로그래밍, 그리고 풍부한 연산자를 제공하

    는 다목적 프로그래밍 언어로 응용 프로그램을 손쉽고 효과적으로 개발할 수 있

    다.

    본 서에서는 MCS-51 MCU를 통해 주변 입출력 디바이스를 제어하는 응용 프로

    그램 작성을 위해 어셈블리 프로그래밍과 C51 프로그래밍을 함께 진행할 수 있

    도록 구성한다. 어셈블리 프로그래밍과 C51 프로그래밍이 가능하며, 산업체 현장

    에서 개발자들이 주로 사용하고 있는 개발 툴인 Keil 컴파일러를 활용하여 프로

    그래밍 할 수 있도록 하였다. 표준 C의 기능에 MCS-51 MCU의 하드웨어적인

    특성을 확장한 C51 컴파일러는 어셈블리 언어로 개발된 동일 기능의 프로그램과

    대등한 실행 속도, 코드 효용성 및 유연성을 소프트웨어 개발자에게 제공한다.

    어셈블리 프로그래밍을 통해 하드웨어의 이해를 증진하고, C51 프로그래밍을 통

    해 손쉽게 MCU를 제어함으로써 마이크로프로세서 활용 능력을 향상시킬 수 있

    도록 풍부한 예제를 제시한다.

    본 서는 자체 개발한 KUT51 실습 보드와 LED 모듈, 버튼 스위치 모듈, FND

    모듈, 광센서 모듈, 릴레이 모듈, 음 스위치 모듈, 멜로디 모듈, 앰프 모듈, 스피커

    모듈, DC 모터 모듈, DotMatrix 모듈, KeyPad 모듈, CLCD 등의 주변 입출력 모

    듈을 활용하여 응용 프로그램을 작성함으로써, 마이크로프로세서 응용 능력을 배

    양할 수 있도록 다음과 같이 구성하였다.

    본 서는 크게 MCS-51 MCU의 하드웨어 관련 부분, 어셈블리 프로그래밍 관련

    부분, C51 프로그래밍 관련 부분의 장들로 분류할 수 있다.

    우선, MCS-51 MCU의 하드웨어와 관련하여 제1장에서 MCS-51 계열 MCU의

  • 2 MCS-51 마이크로컴퓨터

    내부 구조 및 메모리 구성, 동작 특성을, 제2장에서는 명령어의 동작을 설명한다.

    제3장에서 실습을 위해 설계된 KUT51 실습 보드 제작 및 응용 프로그램 작성

    절차를 살펴본다.

    두 번째로, 어셈블리 프로그래밍과 관련된 장들로 제4장에서 각종 연산 명령어의

    동작을 숙지하기 위한 기초적인 프로그래밍 실습을, 제5장에서는 반복 처리에 대

    해, 제6장에서는 스택과 서브루틴를 활용한 응용 프로그램의 구현을 살펴본다.

    제7장에서는 입출력 포트를 통해 주변 입출력 모듈의 제어에 대한 실습을 진행

    한다. 제8장에서는 MCS-51 MCU가 제공하는 각종 인터럽트에 대해 개괄적으로

    설명하고 외부 인터럽트를 취급하는 실습을 수행한다. 제9장에서 타이머/카운터

    인터럽트, 제10장에서는 시리얼 통신 인터럽트에 대한 개념을 이해하고, 이를 통

    한 응용 실습을 진행한다. 제11장에서는 CLCD에 대한 제어 방법을 학습하고, 관

    련 응용 프로그램을 실습한다.

    끝으로, C51 프로그래밍과 관련된 장들로 제12장에서는 Keil C51 컴파일러를 중

    심으로 C51 프로그래밍과 관련한 확장 개념들을 살펴본다. 제13장에서는 C51 컴

    파일러를 활용하여 포트 입출력, 외부 인터럽트, 타이머/카운터 인터럽트, 시리얼

    인터럽트, CLCD, DotMatrix 모듈, KeyPad 모듈 등의 제어를 위한 응용 프로그

    램을 구현한다.

    여러 학기를 거쳐 강의 및 실습에 활용하였던 자료를 토대로, 필요한 개념들을

    정리하여 책으로 묶기에 이르렀다. 여러 부분에서 미흡한 느낌을 지울 수 없으

    나, 추후 미진한 부분들은 다듬어 보완토록 하겠다.

    2016년 8월

  • 목차 1

    목 차

    제1장 MCS-51 MCU ··············································································1

    1.1 MCS-51 계열 MCU ·················································································1

    1.2 8051의 구조 ·································································································4

    1.3 메모리 구조 ·································································································9

    1.4 내부 데이터 메모리 ·················································································22

    1.5 MCU 타이밍도 ·························································································37

    제2장 MCS-51 명령어 ··········································································45

    2.1 주소 지정 방식 ·························································································45

    2.2 MCS-51 명령어 ·······················································································51

    2.3 명령어 요약 ·······························································································93

    제3장 KUT51 실습 보드 ······································································99

    3.1 실습 보드 제작 ·························································································99

    3.2 실습 환경 구축 ·······················································································105

    3.3 소스 작성, 어셈블 및 실행 ··································································111

    3.4 Keil uVision IDE ··················································································123

    3.5 실습과제 ···································································································139

  • 2 MCS-51 마이크로컴퓨터

    제4장 기초 연산 명령 ··········································································143

    4.1 전송 명령 ·································································································143

    4.2 산술 연산 명령 ·······················································································146

    4.3 논리 및 기타 연산 명령 ·······································································150

    4.4 예제 프로그램 ·························································································153

    4.5 실습과제 ···································································································154

    제5장 반복 처리 ····················································································155

    5.1 분기 명령 및 반복 처리 ·······································································155

    5.2 데이터 블록 전송 및 합산 ··································