单片机







80針腳TQFP封裝的PIC18F8720 微控制器




NEC單片機78K0S


单片机,全称单片微型计算机英语:single-chip microcomputer),又稱微控制器microcontroller),是把中央处理器、存储器、定时/计数器(timer/counter)、各種输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由於單晶片微電腦常用於當控制器故又名single chip microcontroller。“单晶片”是台湾对单片机的称呼;中国大陆主要采用“单片机”的称呼,英文缩写为MCU。




目录






  • 1 概述


  • 2 单片机的位元数


  • 3 常见的单片机


    • 3.1 其他系列的单片机




  • 4 单片机的开发


    • 4.1 硬件


    • 4.2 软件開發環境


      • 4.2.1 PROTEUS






  • 5 参考文献


  • 6 外部链接


  • 7 参见





概述


绝大多数现在的单片机都是基于冯·诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存)、数据存储器(随机存储器)、一个或者更多的定时/计数器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口——所有这些都被集成在单个集成电路芯片上。


说单片机与通用型中央处理单元芯片不同,是因为前者一般很容易配合最小型的外部支持芯片制成工作计算机。这样就可以很容易的把单片机系统植入装置内部来控制装置了。近年来为了在指令和数据上使用不同的字宽,并提高处理器流水线速度,哈佛结构在微控制器(Microcontrollers)和数字信号处理器也逐渐得到了广泛的应用。


传统的微处理器是不允许这么做的。它要完成单片机的工作,就必须连接一些其他芯片。比如说,因为芯片上没有数据存储器,就必须要添加一些RAM的存储芯片,虽然所添加存储器的容量很灵活,但是至少还是要添加。另外还需要添加很多连线来传递芯片之间的数据。与以上的情况相比,单片机的工作则相对独立,一个典型的微控制器只需要一个时钟发生器和很少的RAM和ROM(或者EPROM, E2PROM)就可以在软件和晶振下工作了。同时,微控制器具有丰富的输入输出设备,例如模拟数字转换器、定时器、串口,以及其他串行通讯接口,比如I2C,串行周边接口,控制器局域网等。通常,这些集成在内部的设备可以通过特殊的指令来操作。


单片机时钟频率通常较同时代的计算机芯片低,但它价格低廉,能够提供充足的程序存储器、丰富的片上接口。某些架构的单片机生产厂商众多,例如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



  • 瑞萨科技系列单片机
    • 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系列单片机

  • 8098、80196系列单片机

  • AT8P5X系列单片机

  • CZG8000系列单片机



单片机的开发


单片机的软件开发中,以往多使用汇编语言,如今越来越多的使用C语言,又或者使用BASIC语言等更适合初学者的语言,部分集成开发环境支持C++。单片机的软件测试需要使用单片机开发器或模擬器。


随着技术的发展,2000年后已经有很多单片机自带了ISP(在线编程设计)或支持IAP,彻底地改变了传统的开发模式,使得开发单片机系统时不会损坏芯片的引脚,加速了产品的上市并降低了研发成本,缩短了从设计、制造到现场调试的时间,简化了生产流程,大大提高了工作效率。这类单片机包括AT89S系列单片机、AVR系列单片机等。



硬件


开发板可以进一步简化程序的开发和烧制过程。开发板可能包含实际芯片或是仿真器。通过配套的下载线连接电脑与开发板,在电脑上编写程序下载到开发板。批量生产会用到编程器。



软件開發環境


一些知名的微控制器開發環境有:



  • 微芯公司的 MPLAB IDE 可用於該公司全系列微控制器的開發與除錯,除支持該公司的 ASM組譯器 C语言編譯器外,也支援許多第三方的編譯器。


  • ARM公司的 μVision 整合開發環境(原為 Keil 公司產品,2005年該公司已由 ARM 購併),包含組譯器與 C編譯器,可用于51单片机及ARM开发。


PROTEUS


Proteus软件是初学者入门的首选软件,它是Labcenter Electronics公司的一款商业版电路设计与仿真软件。內包括ISIS、ARES等软件模块。ARES模块主要用来完成PCB的设计,ISIS模块用来完成电路原理图的布图与仿真。


Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,甚至ARM处理器,以及单片机外围电路,比如键盘、LED、LCD等等。该软件还附带了一些案例和丰富的帮助文件。



参考文献





外部链接




  • SDCC - Small Device C Compiler - 一个支持多种微控制器的编译器自由软件

  • 一个免费提供单片机教程的网站



参见




  • 微处理器、DSP、单板机

  • 嵌入式操作系统

  • 系統單晶片

  • 工業電腦












Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?