单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为xxx不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的xx地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,xx的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,{zg}端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的xx单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
? 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的{zj0}选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可……用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!……它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年xx发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是{zdj0}汇编语言,它是除了二进制机器码以上{zdj0}的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
单片机历史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求{zj0}的单片形态嵌入式系统的{zj0}体系结构。“创新模式”获得成功,奠定了SCM与通用计算机xx不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最xx的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的{zd0}化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
?
名称 | 说明 | 官方网址 | 下载地址 |
AVR Studio |
ATMEL的AVR单片机的集成环境汇编级开发调试软件,xx免费。
ATMEL AVR Studio集成开发环境(IDE) ,包括了AVR Assembler编译器、AVR Studio调试功能、AVR Prog串行、并行下载功能和JTAG ICE仿真等功能。 |
||
GCCAVR
(WinAVR) |
GCC是Linux的{wy}开发语言。就嵌入系统应用来说,几乎所有市面上有一定市场份额的8bit以上MCU都有爱好者移植GCC在其上。
GCC的编译器优化程度可以说是目前世界上民用软件中做的{zh0}的,xx用ANSI?C规范写出的超过一万行代码的程序,目前还没有任何一种编译器产生的目标代码能比GCC产生的代码速度更快,但是同时它的bug数量却也可以算作所有民用C编译器中最少的 就8bit开发而言,GCC还有一个很严重的缺陷就是,不支持float数据类型,实际上GCC在所有环境中都把float直接定义为double,这样,对8bit环境来说,就显得负担过重了。 被移植到WINDOWS平台上,整合了各个组件后的Windows版GCCAVR就是WinAVR。不是IDE,自己定制IDE的时候就要用到makefile,makefile重要作用就是:指定所用的单片机类型,指定编译的文件,设定编译优化条件等。 |
|
|
SL ISP | 双龙公司开发的ISP下载软件。之前的版本都比较普通,{zx1}版本1.423引入了STK500的熔丝位界面,让操作比较简易,并且不容易出错。是国产的老牌下载器。 | ||
TLG ISP | TLG公司开发的并口ISP下载软件。速度、稳定性不错。从1.43版开始,支持TLG公司推出的全球{sk}可脱机串并口编程器。详情可点击查看。 | ||
PROGISP | 这是网友zhifeng开发的ISP下载软件。支持usbasp。{zx1}的1.5版开始改为自愿注册的方式。费用为20元。如果你不愿付款注册,仍能使用该软件的全部功能。(注:这是个人共享软件) |
||
牧马ISP | 网友牧马开发的ISP下载软件,在提高下载速度方面,下了许多功夫。(注:这是个人共享软件) | ||
ICC AVR |
C 编译器:支持无SRAM器件;增加组软件模块。
ICC Demo版在45天内是xx版, 45天后转限2KB版。如果想xx2K的限制,必须输入注册码。 注册可以到 google 搜索获得,甚至可以找到专业版的注册器。提醒一下:网上的注册码仅为测试使用,请不要作商业用途。 6.31版本以上开始支持 Mega48/88/168 。 本站提供了中文操作说明文档: |
|
|
PnoyProg | 经典的ISP下载软件。但这个版本有一个缺陷:该软件读出的时钟校正值只有1MHZ的校正,其他频率的校正值无法读出。这是一个很好用的免费软件。一年多没有更新了,2005.05更新了一个新版本,支持了 tiny2313,mega8515,mega8535,但奇怪的是,仍不支持 M48/88/168. |
|
|
IAR AVR | IAR visualstate_5.0.4 图形化编程工具
IAR AVR 3.20A : C编译器,支持C和EC++等。 版权原因,本网站提供的是Demo版。如果是测试使用,你可以到google查找到注册器。 |
||
Code Vision AVR |
C编译器,有软件模块,Demo版为限2KB版。如果想xx2K的限制,必须输入注册码。
注册可以到 google 搜索获得。提醒一下:网上的注册码仅为测试使用,请不要作商业用途。 |
||
ATmanAVR | AtmanAVR支持多个模块调试(AVRStudio不支持)。正式版本需要通过注册获得。它也是使用AVRGCC 的编译器。 | ||
BASCOM-AVR |
以BASIC语言为基础的AVR开发平台。
注册可以到 google 搜索获得。提醒一下:网上的注册码仅为测试使用,请不要作商业用途。 |
|
|
FastAVR |
另一款以BASIC语言为基础的AVR开发平台。
本网站提供的压缩包有4.0.1版,把文件FASTAVR401patch复制到fastavr目录里并执行即可。 |
||
AVRCo | AVR的PASCAL编译器。满专业的。 | ||
VMLAB |
Vmlab是AVR系列单片机的一个纯软件模拟仿真工具。 从V3.12开始,它变成了免费的版本。
Vmlab还能仿真ST62系列的单片机 |