微控制器是指集成在单个芯片上的完整计算机系统。虽然它的大部分功能都集成到小芯片中,但它拥有完整计算机所需的大部分组件:CPU、内存、内部和外部总线系统,其中大部分现在将具有外部存储器。同时集成了通讯接口、定时器、实时时钟等外围设备。当今最强大的微控制器系统甚至可以在单个芯片上集成声音、图像、网络和复杂的 I/O 系统。
微控制器也被称为微控制器,因为它首先用于工业控制领域。微控制器由专用处理器开发而成,芯片中只有一个 CPU。最初的设计思路是将大量外围设备和CPU集成到单个芯片中,使计算机系统更小,更容易集成到复杂而笨重的控制设备中。英特尔的 Z80 是第一款根据这个想法设计的处理器,从那时起,微控制器和专用处理器的发展就分道扬镳了。
早期的微控制器是 8 位或 4 位。其中最成功的是英特尔的 8031,它因其简单、可靠和良好的性能而广受赞誉。从那时起,MCS51 系列 MCU 系统一直在 8031 上开发。基于该系统的微控制器系统至今仍被广泛使用。随着工业控制领域要求的提高,16位单片机开始出现,但由于性价比不理想,一直没有得到广泛应用。90年代以后,随着消费电子的大发展,单片机技术有了很大的提高。随着INTEL i960系列的广泛应用,尤其是后来的ARM系列,32位单片机迅速取代了16位单片机的高端地位,进入了主流市场。传统 8 位微控制器的性能也得到了显着提升,处理能力与 80 年代相比提高了数百倍。目前高端32位单片机主频已超过300MHz,性能已赶上90年代中期的专用处理器,而普通型号的出厂价已降至1美元,最高端型号仅为10美元。当代的微控制器系统不再仅仅在裸机环境中开发和使用,大量专用的嵌入式操作系统被广泛应用于全系列的微控制器中。而高端微控制器,作为掌上电脑和手机的核心处理,甚至可以直接使用专用的Windows和Linux操作系统。
与专用处理器相比,微控制器更适合嵌入式系统,因此它们获得了最多的应用。事实上,微控制器是世界上数量最多的计算机。现代人类生活中使用的几乎所有电子和机械产品都会集成一个微控制器。手机、电话、计算器、家用电器、电子玩具、PDA和鼠标都配备了1-2个MCU。并且将有大量的微控制器在个人电脑中工作。汽车一般配备40多台单片机,甚至可能有数百台单片机同时工作在复杂的工业控制系统上!单片机的数量不仅远远大于PC和其他计算的总和,甚至超过了人类的数量。
【编辑本段】MCU介绍
单片机又称单片机,不是完成某种逻辑功能的芯片,而是将计算机系统集成到芯片中。简而言之:芯片变成了计算机。体积小、重量轻、价格低廉,为学习、应用和开发提供了便利条件。同时,学习使用微控制器是了解计算机原理和结构的最佳选择。
单片机也使用与电脑功能相似的模块,如CPU、内存、并行总线、存储设备等,与硬盘功能相同,不同的是这些组件的性能比我们家用电脑弱很多,但价格也很低,一般不超过10元……用它来做一些控制设备和其他不是很复杂的工作就足够了。在我们现在使用的自动滚筒洗衣机、排烟罩、VCD等家用电器中都能看到它……主要用作控制部分的核心部件。
它是一种在线实时控制计算机,在线是现场控制,需要的是具有较强的抗干扰能力,成本低,这也是与离线计算机(如家用PC)的主要区别。
微控制器是编程的,可以修改。不同的功能是通过不同的程序实现的,特别是特殊和独特的功能,这需要其他设备付出很多努力,有些很难用很大的力气来完成。如果用纯硬件来完成一个不是很复杂的功能,比如50年代美国开发的74系列或60年代开发的CD4000系列,那么电路一定是一块大PCB板!但是,如果用70年代在美国成功投放市场的系列单片机,结果会大不相同!只因为单片机可以通过你编写的程序实现高智能、高效率、高可靠性!
因为单片机对成本很敏感,所以目前占主导地位的软件还是最低的汇编语言,是二进制机器码之上的最低语言,既然这么低级,为什么要用呢?许多高级语言已经达到了可视化编程的水平,为什么不使用它呢?原因很简单,就是单片机没有家用电脑那样的CPU,也没有硬盘那样的海量存储设备。就算是用视觉高级语言编写的小程序中只有一个按钮,也会达到几十K的大小!对于家用PC的硬盘来说不算什么,但对于单片机来说却是不可接受的。单片机在硬件资源方面的利用率肯定非常高,所以组装虽然很原始,但仍然大量使用。同理,如果把巨型电脑上的操作系统和应用软件放在家用PC上运行,家用电脑也承受不了。可以说
,二十世纪跨越了三个“电子”时代,即电子时代、电子时代和计算机时代。但是,这种类型的计算机通常是指个人计算机,或简称PC。它由主机、键盘、显示器等组成。还有一类大多数人都不太熟悉的计算机。这种计算机是一种微控制器(也称为微控制器),它为各种机器提供智能。顾名思义,这种计算机的最小系统仅使用一个集成电路来执行简单的计算和控制。由于其体积小,通常隐藏在被控机械的“肚子”中。它在整个设备中就像一个人类的思想,当它出现问题时,整个设备就会瘫痪。现在,这种单片机已经广泛应用于智能电表、实时工控、通信设备、导航系统、家用电器等领域。各种产品一旦被用在单片机上,它们就能起到产品升级的作用,而且往往在产品名称前面加上形容词——“智能”,比如智能洗衣机。如今,一些工厂技术人员或其他业余电子开发人员制作的产品要么电路过于复杂,要么功能过于简单,很容易被模仿。原因可能是产品没有使用单片机或其他可编程逻辑器件。
MCU历史
单片机诞生于20世纪70年代末,经历了SCM、MCU和SoC三个阶段。
1.单片机是单片机阶段,主要是以单片机的形式寻求嵌入式系统的最佳架构。“创新模式”的成功为SCM和通用计算机完全不同的发展道路奠定了基础。英特尔为嵌入式系统的自主开发做出了巨大贡献。
2、MCU是单片机(Micro Controller Unit)阶段,主要技术发展方向是不断拓展嵌入应用时满足目标系统要求的各种外围电路和接口电路,突出对象的智能控制能力。它涉及的领域都与目标系统有关,因此MCU的开发责任不可避免地落在了电气和电子技术制造商身上。从这个角度来看,英特尔逐渐淡出MCU的发展也有其客观因素。在开发MCU方面,最著名的制造商是飞利浦。
飞利浦凭借其在嵌入式应用中的强大实力,将 MCS-51 从单片微机迅速发展为微控制器。因此,当我们回顾嵌入式系统的发展历程时,我们不要忘记英特尔和飞利浦的历史功绩。
3、MCU是嵌入式系统的自主开发,MCU发展阶段的一个重要因素是寻求片上应用系统的最大化解决方案;因此,专用MCU的发展自然形成了SoC趋势。随着微电子技术、IC设计和EDA工具的发展,基于SoC的微控制器应用系统的设计将得到很大的发展。因此,对微控制器的理解可以从单片微机和单片微控制器扩展到单片应用系统。
[编辑本段] 单片机的应用领域
目前,单片机已经渗透到我们生活的方方面面,几乎很难找到任何一个领域没有单片机的痕迹。导弹导航装置、飞机控制各种仪器、计算机网络通信和数据传输、工业自动化过程的实时控制和数据处理,广泛应用各种智能IC卡、民用豪华汽车安防系统、录像机、摄像头、自动洗衣机控制,以及程控玩具、电子宠物等,这些都离不开单片机。更不用说自动控制领域的机器人、智能电表和医疗设备了。因此,单片机的学习、开发和应用将造就一批在计算机应用和智能控制方面的科学家和工程师。
单片机广泛应用于仪器仪表、家用电器、医疗设备、航空航天、特种设备的智能化管理和过程控制等领域,大致可分为以下几类:
1、在智能仪器仪表中的应用
MCU具有体积小、功耗低、控制功能强、扩展灵活、小型化、易用等优点,广泛应用于仪器仪表,结合不同类型的传感器,可实现电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制,使仪器数字化、智能化、小型化,功能比使用电子或数字电路更强大。例如,复杂的测量设备(功率计、示波器、各种分析仪)。
2. 在工业控制中的应用
采用单片机,可以形成各种形式的控制系统和数据采集系统。例如,工厂流水线的智能化管理、电梯的智能控制、各种报警系统、计算机网络等组成二次控制系统。
3.在家用电器中的应用可以说
,如今的家用电器基本上都是由单片机控制的,从电饭煲、洗衣机、冰箱、空调、彩电、其他音视频设备,再到电子称重设备,各种无处不在。
4、在计算机网络与通信领域的应用
现代单片机一般具有通信接口,可以很容易地与计算机进行数据通信,为计算机网络与通信设备之间的应用提供了极好的物质条件,现在的通信设备基本实现了单片机的智能控制,从手机、电话、小程控开关、楼宇自动通信呼叫系统、列车无线通信、 然后是日常工作中随处可见的手机、集群移动通信、无线电对讲机等。
5、单片机在医疗设备领域的应用
MCU还广泛应用于医疗设备中,如医用呼吸机、各种分析仪、监护仪、超声诊断设备和医院病床呼叫系统。
6、模块化应用于各种大型电器
一些专用微控制器旨在实现特定功能,允许在各种电路中进行模块化应用,而无需用户了解其内部结构。例如,音乐集成单片机,看似简单的功能,在纯电子芯片中小型化(不同于磁带驱动器的原理),这需要类似于计算机的复杂原理。例如,音乐信号以数字形式(类似于ROM)存储在存储器中,由微控制器读出,并转换为模拟音乐电信号(类似于声卡)。
在大型电路中,这种模块化应用可显著减小尺寸、简化电路、降低损坏、错误率并便于更换。
此外,单片机在工商、金融、科研、教育、国防、航天等领域有着广泛的应用。
[编辑本段] 学习应用六个重要部分
微控制器学习应用程序有六个重要部分
One Bus:我们知道一个电路总是由由电线连接的元件组成,在模拟电路中,布线不会成为问题,因为设备一般都是串行关系,设备之间的连接不多,但计算机电路不同,它是以微处理器为核心,每个设备都必须连接到微处理器, 设备之间的工作必须相互协调,所以需要大量的布线,如果还是像模拟电路一样,在微处理器和每个设备单独布线,线数会惊人,所以在微处理器中引入了总线的概念,每个设备一起享受连接如果有两个设备同时发送数据, 一个是0,一个是1,那么,接收者到底接收到了什么?这种情况是不允许的,所以需要通过控制线进行控制,这样设备才能分时工作,任何时候只能有一个设备发送数据(可以有多个设备同时接收)。设备的数据线也称为数据总线,设备的所有控制线都称为控制总线。在单片机的内部或外部存储器和其他设备中都有存储单元,这些存储单元必须分配一个地址才能使用,分配的地址当然也是以电信号的形式给出的,因为存储单元比较多,因此,用于地址分配的行比较多, 这些线路称为地址总线。
2.数据、地址和指令:之所以将这三者放在一起,是因为这三者的本质是一样的——数字,或者它们都是“0”和“1”的序列。换句话说,地址和指令也是数据。指令:MCU芯片设计者指定的数字,与我们常用的指令助记符有严格的一一对应关系,MCU开发者无法更改。地址:是找到单片机,内部和外部存储单元的基础,输入和输出端口,内部单元的地址值已经由芯片设计人员指定,不能更改,外部单元可以由单片机开发人员确定,但有一些地址单元必须有(详见程序的执行过程)。数据:这是一个由微处理器处理的对象,在各种不同的应用电路中会有所不同,但一般来说,正在处理的数据可能有几种方式:
1• 地址(e.g. MOV DPTR,#1000H),即地址 1000H 发送到 DPTR。
2 • 模式字或控制字(e.g. MOV TMOD,#3),3 是控制字。
3.常数(如MOV TH0,#10H)10H是常数。
4.实际输出值(如果P1端口连接到彩灯,如果灯完全亮,则执行命令:MOV P1,#0FFH,如果灯完全变暗,则执行命令:MOV P1,#00H)这里0FFH和00H是实际输出值。另一个例子是用于 LED 的字形代码,这也是实际的输出值。
如果您了解地址和指令的性质,就不难理解为什么程序会跑掉并作为指令执行数据。
3、P0 端口、P2 端口和 P3 端口的第二功能用法:初学者经常对 P0 端口、P2 端口和 P3 端口的第二功能使用感到困惑,认为第二个功能和原有功能之间应该有一个切换过程,或者必须有一个命令,实际上每个端口的第二个功能是完全自动的,不需要通过指令转换。例如,P3.6 和 P3.7 分别是 WR 和 RD 信号,当微芯片处理器连接到外部 RAM 或具有外部 I/O 端口时,它们被用作第二功能,不能用作通用的 I/O 端口,只要微处理器执行 MOVX 指令,就会有相应的信号从 P3.6 或 P3.7 发送, 并且无需提前说明说明。事实上,“不能作为通用I/O端口使用”,并不意味着不能使用,而是说它不会作为通用I/O端口使用。您可以在指令中完全按下 SETB P3.7 命令,当 MCU 执行此指令时,它也会使 P3.7 变高,但用户不会这样做,因为这通常会导致系统崩溃。
四、程序的执行过程:单片机复位后8051中的程序计数器(PC)的值为’0000’,所以程序总是从’0000’单元执行,也就是说:系统的ROM中必须有’0000’,’0000’单元必须存储在指令中。
5.堆栈:堆栈是用来存储数据的区域,这个区域本身没有任何特殊功能,是内部RAM的一部分,特殊的是它存储和访问数据的方式,也就是所谓的“先进后出,后进先出”,堆栈有特殊的数据传输指令, 即’PUSH’和’POP’,有一个专门用于其服务的特殊单元,即堆栈指针SP,每次执行PUSH命令时,SP自动加1(基于原始值),每次执行POP命令时,SP自动减去1(基于原始值)。由于SP中的值可以通过指令进行更改,因此只要在程序开始时更改SP的值,就可以在指定的存储单元中设置堆栈,例如在程序开始时,使用MOV SP,#5FH指令,可以从存储单元60H开始在单元中设置堆栈。在通用程序的开头总是有这样的指令来设置堆栈指针,因为在启动启动时,SP 的初始值是 07H,所以堆栈从 08H 单元开始向后走,从 08H 到 1FH 的区域是 8031 的第二、第三、第四工作寄存器区域, 经常使用,这会导致数据混乱。当不同的作者编写程序时,初始化堆栈指令并不完全相同,这是作者习惯的问题。当堆栈区域设置好时,并不意味着该区域成为专用内存,它仍然可以像普通内存区一样使用,但一般来说,程序员不会将其作为普通内存使用。
六、单片机的开发过程:这里提到的开发过程并不是从任务分析开始的一般书本,我们假设硬件已经设计好并制作好了,下面就是编写软件的工作。在编写软件之前,首先需要确定一些常量和地址,这些常量和地址实际上是在设计阶段直接或间接确定的。例如,在设计设备的连接设计时,确定其地址,在确定设备的功能时,也确定其控制字。然后使用文本编辑器(如EDIT、CCED等)编写软件,编写后,使用编译器编译源程序文件,检查错误,直到没有语法错误,除了非常简单的程序外,一般应用模拟器调试软件,直到程序正常运行。一旦运行正确,就可以写入幻灯片(程序在EPROM中固化)。源码编译好后,生成一个扩展名为HEX的目标文件,一般程序员可以识别出这种格式的文件,只需调用这个文件即可写入芯片。在这里,为了让大家对整个过程有一个了解,我举个例子:
奥吉 0000H
LJMP 启动
奥吉 040H
开始:
MOV SP,#5FH ;设置堆栈
圈:
NOP的
LJMP环路;
结束;
[编辑本段] 微控制器学习
目前,很多人不认识汇编语言。可以说,掌握C语言的单片机编程非常重要,可以大大提高开发效率。但是,初学者不能理解单片机的汇编语言,但必须了解单片机的具体性能和特点,否则在单片机领域更是致命的。如果不考虑单片机的硬件资源,在KEIL中,结果只能是解决不了的问题!可以肯定地说,最好的C语言单片机工程师都是从组装出来的程序员,因为单片机的C语言虽然是高级语言,但与台式个人电脑之类的VC++不同,单片机的硬件资源不是很强大, 与VC、VB等高级语言不同,可以在台式PC上编写程序毕竟台式电脑的硬件功能非常强大,所以可以忽略硬件资源的问题。
以8051单片机为例,讲解单片机的引脚及相关功能
“单片机引脚图”。
这 40 个引脚根据其功能大致可分为四类:电源、时钟、控制和 I/O 引脚。
1.电源:
(1)VCC——片式电源,连接+5V;
(2) VSS——接地端子;
注:单片机用万用表测试时,引脚电压一般为0v或5v,为标准TTL电平。但有时当MCU程序工作时,测试结果不是这个值,而是在0V-5V之间,其实万用表的响应速度并没有那么快,MCU的引脚电压在某个时刻仍然保持在0V或5V。
2. 时钟: XTAL1, XTAL2 – 晶体振荡电路反相输入输出.
3、控制线:有4条控制线
(1) ALE/PROG:地址锁存允许/片上EPROM编程脉冲
(1) ALE功能:用于锁存P0端口发送的低8位地址
(2)PROG功能:芯片上带有EPROM,在EPROM编程过程中,该引脚输入编程脉冲。
(2) PSEN:外部ROM读取并选择信号编号。
(3) RST/VPD:复位/备用电源。
(1) RST(复位)功能:复位信号输入。
(2)VPD功能:在Vcc电源故障的情况下,连接备用电源。
(4) EA/Vpp:内部和外部ROM选择/片上EPROM编程电源。
(1)EA功能:内部和外部ROM选择端。
(2)Vpp功能:芯片上带有EPROM的芯片在EPROM编程时施加编程电源Vpp。
4. I/O线
80C51 有 4 个 8 位并行 I/O 端口:P0、P1、P2 和 P3 端口,共 32 个引脚。
P3端口还具有第二功能,用于特殊信号输入输出和控制信号(属于控制总线)。
【编辑本段】常用单片机芯片简介
PIC微控制器:
它是MICROCHIP的产品,具有体积小、功耗低、指令集少、抗干扰性好、可靠性高、模拟接口强、代码保密性好等特点,大多数芯片都有兼容闪存的芯片
EMC MCU:
是台湾伊兰公司的产品,其中很大一部分兼容PIC 8位单片机,兼容产品资源相对多于PIC,价格便宜,系列多,但抗干扰性差
ATMEL MCU(51 个 MCU):
ATMEl的8位单片机有两个系列:AT89和AT90,AT89系列是一款8位闪存单片机,兼容8051系列单片机,静态时钟模式;AT90系列单片机是增强RISC结构,全静态工作模式,内置在线可编程闪存的单片机,又称AVR单片机
PHLIPIS 51PLC系列MCU(51 MCU):
飞利浦的微控制器是基于 80C51 内核的单片机,内嵌了掉电检测、模拟和片上 RC 振荡器等功能,使 51LPC 能够满足高集成度、低成本和低功耗应用设计中的各种性能要求
HOLTEK MCU:
台湾盛阳半导体的单片机价格便宜,种类多,但抗干扰性差,适用于消费类产品
TI单片机(51单片机):
Texas Instruments 提供 TMS370 和 MSP430 系列通用微控制器。TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外设接口模式,适用于复杂的实时控制场合;MSP430 系列单片机是一款 16 位低功耗单片机,具有超低功耗和高功能集成度,特别适用于需要低功耗的场合