{{위키데이터 속성 추적}}
[[파일:KL_Intel_P8051.jpg|섬네일|인텔 P8051]]
'''인텔 8051'''은 1980년 발표된 8비트 [[마이크로컨트롤러]]로 8051계열을 통틀어 MCS 51이라 부른다. 8051은 컴퓨터 시스템의 기초적인 요소인
* CPU-코어(ACC와 B레지스터, ALU, 일반 레지스터 뱅크, SP,PC),
* 포트, 타이머, 시리얼통신 등 하드웨어 모듈,
* 메모리인 PROM과 SRAM 등을
한칩에 내장한 마이크로컨트롤러이다.<ref>{{웹 인용
|언어=en
|이탤릭체=1
|url=http://www.keil.com/dd/docs/datashts/intel/80x1bh_87c51_ds.pdf
|제목=8051 Family Data Sheet
|출판사=Intel Co.
|웹사이트=8051 사용 설명서
|확인날짜=2013-09-23
|연도=January,1995}}</ref>

마이크로컨트롤러가 다양한 시스템에 적용해야 하기 때문에, 8051계열이 발전하면서 부가 하드웨어는 다양한 방식으로 변경 및 추가를 통해 여러 모델의 칩을 여러 제조사에서 제공한다. 경우에 따라 ADC, SPI 등의 하드웨어 모듈 등이 존재하는 8051 계열 칩도 존재한다. 이와 더불어 메모리도 EPROM 대신 플래시 방식으로, 그리고 EEPROM도 추가하는 경우도 있다.

1980년에서 1990년초까지 [[모뎀]]이나 [[타자기]], [[게임기]]등에 광범위하게 이용되었으며 지금도 Atmel, Infineon Technologies, Maxim Integrated Products, NXP, Winbond, ST Microelectronics, Silicon Laboratories, Texas Instruments, Cypress Semiconductor에서 다기능의 호환제품을 생산하고 있다.

인텔의 오리지널 8051은 [[NMOS]]공정으로 제작되었으나 후에 [[CMOS]] 공정으로 바꾸어 저전력의 배터리 전원 기기에 적용시킬 수 있었다. CMOS공정의 제품은 "C"를 붙여 80C51과 같이 표기한다.

== 8051의 기본 특징 ==

[[파일:Intel_8051_arch.svg|right|thumb|i8051 내부구조]]


* 32개의 입출력 라인으로 4개의 8bit 포트(포트 0, 1, 2, 3)
* 2개의 16비트 타이머/카운터 (겸용)
* 5개의 인터럽트
* 2레벨의 인터럽트 우선 순위
* 4kbyte 의 롬(OTP)
* 128 x 8 bit 의 램
* 풀 듀플렉스의 직렬 데이터 통신용 포트 내장
* [[불 대수]](boolean) 연산 능력
* 비트 단위의 어드레싱이 가능한 램
* 외부에 64kbyte의 프로그램 메모리와 데이터 메모리 확장 가능
* 111개의 명령어(60개는 싱글 사이클 동작)

위 기능 외에 MCS51로 분류되는 다른 칩들은 다양한 부가기능을 가진다.
* 프로그램 보호를 위한 EPROM 보안 기능
* 내부 플래시 메모리 사용으로 프로그램을 손쉽게 함

== MCS 51 패밀리 ==
{| class="wikitable"
|-----
! Mask ROM || ROM 없음 || EPROM || ROM 용량 || RAM 용량 || 타이머/카운터 || 인터럽트 || 제조 공정 || 외부 ROM & RAM
|-----
| 8051 || 8031 || 8751 || 4096 || 128 || 2개 || 5개 || HMOS || 64kB
|-----
| 8051AH || 8031AH || 8751H || 4096 || 128 || 2개 || 5개 || HMOS || 64kB
|-----
| 80C51BH || 80C31BH || 87C51 || 4096 || 128 || 2개 || 5개 || CMOS || 64kB
|-----
| 8052AH || 8032AH || 8752BH || 8192 || 256 || 3개 || 6개 || HMOS || 64kB
|-----
| 80C52 || 80C32 || 87C52 || 8192 || 256 || 3개 || 6개 || CMOS || 64kB
|-----
| 80C52FA || 80C32FA || 87C52FA || 8192 || 256 || 3개 || 6개 || CMOS || 64kB
|}

== 개발도구 ==

컴파일 및 IDE는 여러회사에 만들어 판매한다.

* [[케일]] 8051 개발도구([http://www.keil.com/c51 Keil C51 Development Tools])
: 8051계열의 다양한 MCU을 지원한다.[http://www.keil.com/c51/chips.asp 지원 칩들]

* IAR 개발도구 ([https://web.archive.org/web/20130921220427/http://www.iar.com/en/Products/IAR-Embedded-Workbench/8051/ IAR Embedded Workbench for 8051])
* [[소형소자 C 컴파일러]] (SDCC, [https://web.archive.org/web/20190430033914/http://sdcc.sourceforge.net/ Small Device C Compiler])
: 오픈소스이며 8051 뿐만 아니라 다양한 CPU도 지원한다.
:* [http://sourceforge.net/projects/eclipse-sdcc eclipseSDCC]
:: SDCC와 이클립스의 연동으로 IDE을 구성할 수 있다. 이클립스의 CDT에 eclipseSDCC 플러그인 설치를 통해 SDCC 컴파일러를 사용할 수 있다.

== 각주 ==
<references/>

== 외부 링크 ==
{{위키공용분류}}
* [http://www.intel.com/design/mcs51/ 인텔 MCS 51 시리즈]
* [http://www.atmel.com/products/8051/ Atmel의 8051 호환 마이크로컨트롤러]
* [https://web.archive.org/web/20070307014316/http://para.maxim-ic.com/cache/en/results/4592.html Maxim의 8051 호환 마이크로컨트롤러]
* [https://web.archive.org/web/20071231160240/http://www.winbond.com/hq/enu/ProductAndSales/ProductLines/mCAndmC-basedConsumerIC/Microcontroller/8-bitMCUSeries(80C51-based)/ Winbond의 8051 호환 마이크로컨트롤러]
* [https://web.archive.org/web/20071220040021/http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/en/index.htm Silicon Labs의 8051 호환 마이크로컨트롤러]
* [http://www.cypress.com/?id=168 Cypress의 8051내장 USB컨트롤러]
* [http://focus.ti.com/mcu/docs/mcugeneralcontent.tsp?sectionId=98&tabId=1515 TI의 8051 호환 마이크로컨트롤러]
* [https://web.archive.org/web/20090601183242/http://www.dolphin.fr/flip/logic/logic_overview.html Dolphin 의 8051 IP provider]
* [http://grantronics.com.au/docs/8051inst.pdf 8051 명령어 요약(PDF)]

{{마이크로컨트롤러}}
{{전거 통제}}

[[분류:마이크로컨트롤러]]