單片機

80針腳TQFP封裝的PIC18F8720 微控制器
NEC單片機78K0S開發板
，是把中央處理器、存儲器、定時/計數器（timer/counter）、各種輸入輸出接口等都集成在一塊-{zh-hans:集成電路; zh-hant:積體電路;}-芯片上的微型計算機。與應用在個人計算機中的通用微處理器相比，它更強調自供應（不用外接硬件）和節約成本，集成程度更高，但因為規格已經包含，所能實現的功能也較專一。它的最大優點是體積小，可放在儀表內部，但存儲量小，輸入輸出接口簡單。由於其發展非常迅速，舊的定義已過時，所以在很多應用場合被稱為範圍更廣的微控制器（microcontroller unit，MCU）。

**概述**
絕大多數現在的單片機都是基於馮·諾伊曼結構的，這種結構清楚地定義了嵌入式系統所必需的四個基本部分：一箇中央處理器核心，程序存儲器（只讀存儲器或者閃存）、數據存儲器（隨機存儲器）、一個或者更多的定時/計數器，還有用來與外圍設備以及擴展資源進行通信的輸入/輸出端口——所有這些都被集成在單個集成電路芯片上。
單片機與通用型中央處理單元芯片不同在於前者一般很容易配合最小型的外部支持芯片製成工作計算機，這樣就可以很容易的把單片機系統植入裝置內部來控制裝置了。近年來為了在指令和數據上使用不同的字寬，並提高處理器線速度，哈佛結構在微控制器和數字信號處理器也逐漸得到了廣泛的應用。
傳統的微處理器是不允許這麼做的。它要完成單片機的工作，就必須連接一些其他芯片。比如說，因為芯片上沒有數據存儲器，就必須要添加一些 RAM 的存儲芯片，雖然所添加存儲器的容量很靈活，但是至少還是要添加。另外還需要添加很多連線來傳遞芯片之間的數據。與以上的情況相比，單片機的工作則相對獨立，一個典型的微控制器只需要一個時鐘發生器和很少的 RAM (SRAM) 和 ROM (EPROM, EEPROM) 就可以在工作了。同時，微控制器具有豐富的輸入輸出設備，例如模擬數字轉換器、定時器、串口，以及其他串行通訊接口，比如 I2C 總線，-{zh-tw:序列周邊介面;zh-cn:串行周邊接口}-，-{zh-tw:控制器區域網路;zh-cn:控制器局域網}-等。通常，這些集成在內部的設備可以通過特殊的指令來操作。
單片機時鐘頻率通常較同時代的計算機芯片低，但它價格低廉，能夠提供充足的程序存儲器、豐富的片上接口。某些架構的單片機生產廠商眾多，例如 8051 系列、Z80 系列。一些現代的微控制器支持一些內建的高級編程語言，比如 BASIC 語言、C、C++等。

**單片機的位數**
根據匯流排或資料暫存器的寬度，單片機又分為 4 位、8 位、16 位和 32 位元單片機。4 位單片機多用於冰箱、洗衣機、微波爐、燈具等簡單的家電控制中；8 位、16 位單片機主要用於一般的控制領域，例如遙控器手把、空調、發動機等，一般不使用操作系統；32 位用於網絡操作、多媒體處理等複雜處理的場合，一般要使用嵌入式操作系統，例如電視、車機、監視器等產品。

**常見的單片機**
生產這種產品的供應商眾多而且技術各有所長，微芯（Microchip）的 PIC 系列出貨量居於業界領導者地位；Atmel 的 51 系列及 AVR 系列種類眾多，受支持面廣，滿足各種場景的市場需求；德州儀器的 MSP430 系列以低功耗聞名，常用於醫療電子產品及儀器儀表中；瑞薩單片機在日本汽車業中使用廣泛。
WDC的W65C265S8PL單晶片- 英特爾
** 8-bit 8051系列
*** 8XC42
*** MCS48
*** MCS51 : Intel 8051系列歷史悠久，相容產品眾多，使用廣泛
*** 8xC251
** 16-bit
*** MCS96系列
*** MXS296
** 32-bit
*** i960- ARM （Acorn RISC Machine）系列單片機
兩顆Atmel牌的ATmega單片機- AVR系列（愛特梅爾公司）
** Atmel AT91 series (ARM 處理器等)
** AT90 series – AVR (Atmel 的高性能RISC 8位單片機，老產品)
** ATmega series – AVR (Atmel 的高性能RISC 8 位單片機，新產品)
** ATXmega series – AVR (Atmel 的高性能RISC 32 位單片機，新產品)
** Atmel AT89 series (Intel 8051/MCS51 架構8位單片機)
** MARC4- Cypress MicroSystems（賽普拉斯微系統公司）
** CY8C2xxxx (PSoC)- 飛思卡爾半導體(原摩托羅拉)
** 8-bit
*** 68HC05 (CPU05)
*** 68HC08 (CPU08)
*** 68HC11 (CPU11)
** 16-bit
*** 68HC12 (CPU12)
*** 68HC16 (CPU16)
*** Freescale DSP56800 (DSPcontroller)
** 32-bit
*** Freescale 683XX (CPU32)
*** MPC500
*** MPC 860 (PowerQUICC)
*** MPC 8240/8250 (PowerQUICC II)
*** MPC 8540/8555/8560 (PowerQUICC III)- Holtek（盛群半導體）
** HT48FXX Flash I/O type
** HT48RXX I/O type
** HT46RXX A/D type
** HT49RXX LCD type- 微晶片科技（微芯公司）的PIC微控制器系列
** 8-bit : PIC10 PIC12 PIC16 PIC18
** 16-bit : PIC24F PIC24H dsPIC30 dsPIC33
** 32bit : PIC32 （採用MIPS M4K 核心架構）- 美國國家半導體
** COP8
** CR16- NEC
** 78K- 恩智浦半導體(原飛利浦）
** LPC2000
** LPC900
** LPC700- Parallax, Inc.
** BASIC Stamp- 瑞薩科技系列單片機(由原日立,NEC，三菱合併）
** Renesas 16-bits
*** Renesas M16C Series
*** Renesas M32C Series
*** Renesas R8C Series
*** Renesas M16C/Tiny Series
*** Renesas R8C/Tiny Series
*** Renesas H8/Tiny Series- 意法半導體
** STM32 series (ARM Cortex-M3 系列，32位元)
** STM8 series (自主RISC指令集，8位元)- SyncMOS 新茂國際科技全系列單片機
** SM59RXXA2 8-bits 1T(RISC)
** SM59DXXG2 8-bits 6T(ISP)
** SM59XX 8-bits 12T(ISP)
** SM89XX 8-bits 12T(Traditional 8051)
** SM79XX 8-bits 12T(Customization)-  PADAUK 應廣科技全系列單片機(多核心單片機)
** P201CS/CD  8-bits
** P211CS/CD  8-bits
** p232CS/CD  8-bits
** P234CS/CD  8-bits- ZiLOG
** Z8
** Z86E02- STC 宏晶系列單片機
** STC89C series 6T/12T 增強性單片機 (Intel 8051架構，有外部總線)
** STC11F/11L series 2T 增強性單片機 (Intel 8051增強架構，無外部總線程序支持)
** STC12C/12LE series 2T 增強性單片機 (Intel 8051增強架構，無外部總線程序支持)
** STC15C/15LE series 2T 增強性單片機 (Intel 8051增強架構，無外部總線程序支持，正在開發中)- Kernel-IC 華芯單片機 LS系列
** LSx051 series 12T 雙核單片機(Intel 8051架構，無外部總線)
** LSx151 series 12T 三核單片機(Intel 8051架構，無外部總線)
** LS052A series 6T  三核單片機(Intel 8051架構，無外部總線)- 新唐科技 Nuvoton NuMicro Family
** 8051 單片機 (8-bits)
** ARM Cortex-M0 單片機 (32-bits)
** ARM Cortex-M4 單片機 (32-bits)

**其他系列的單片機**
 MSP430系列單片機- LM3S系列單片機- 北京君正 JZ系列單片機- 8098、80196系列單片機- AT8P5X系列單片機- CZG8000系列單片機

**單片機的開發**
單片機的軟件開發中，以往多使用匯編語言，如今越來越多的使用 C 語言，又或者使用 BASIC語言 等更適合初學者的語言，部分集成開發環境支持C++。單片機的軟件測試需要使用單片機開發器或模擬器。
隨著技術的發展，2000年後已經有很多單片機自帶了ISP（在線編程設計）或支持IAP，徹底地改變了傳統的開發模式，使得開發單片機系統時不會損壞芯片的引腳，加速了產品的上市並降低了研發成本，縮短了從設計、製造到現場調試的時間，簡化了生產流程，大大提高了工作效率。這類單片機包括AT89S系列單片機、AVR系列單片機等。

**硬件**
開發板可以進一步簡化程序的開發和燒製過程。開發板可能包含實際芯片或是仿真器。通過配套的下載線連接電腦與開發板，在電腦上編寫程序下載到開發板。批量生產會用到編程器，或是掩膜印刷方式(Mask ROM)，後者是芯片本身終身搭載固定程序（不可重新編程），意味著僅適用於特定成品。

**軟件開發環境**
一些知名的微控制器開發環境有：- 微芯公司的 MPLAB IDE 可用於該公司全系列微控制器的開發與除錯，除支持該公司的 ASM組譯器 C語言編譯器外，也支援許多第三方的編譯器。- ARM公司的 μVision 整合開發環境（原為 Keil 公司產品，2005年該公司已由 ARM 購併），包含組譯器與 C編譯器，可用於51單片機及ARM開發。- ARM公司的Mbed，可以使用線上IDE來開發。

**Proteus**
Proteus 軟件是初學者入門的首選軟件，它是 Labcenter Electronics 公司的一款商業版電路設計與仿真軟件。內包括 ISIS、ARES 等軟件模塊。ARES 模塊主要用來完成 PCB 的設計，ISIS 模塊用來完成電路原理圖的布圖與仿真。
Proteus 的軟件仿真基於 VSM 技術，它與其他軟件最大的不同也是最大的優勢就在於能仿真大量的單片機芯片，比如 MCS-51 系列、PIC 系列等等，甚至 ARM 處理器，以及單片機外圍電路，比如鍵盤、LED、LCD 等等。該軟件還附帶了一些案例和豐富的幫助文件。

**參見**
 微處理器、數位訊號處理器、單板機- 嵌入式操作系統- 系統單晶片- 工業電腦- 數字信號控制器

**參考文獻**

**外部鏈接**
  SDCC - Small Device C Compiler - 一個支持多種微控制器的編譯器自由軟件-  一個免費提供單片機教程的網站