1.1 单片机概述
1.1.1 单片机的组成
单片机又称单片微控制器,它把一个计算机系统集成到一块芯片上,主要包括微处理器(CPU)、存储器(随机访问存储器RAM、只读存储器ROM)和各种输入/输出接口(包括定时器/计数器、并行I/O接口、串行口、A/D转换器,以及脉冲宽度调制器等),如图1-1所示。
图1-1 单片机组成框图
1.程序存储器(ROM)
ROM用来存放用户程序,可分为EPROM、Mask OTPROM和Flash ROM等。
EPROM型存储器编程(把程序代码通过一种算法写入程序存储器的操作)后,其内容可用紫外线擦除,用户可反复使用,故特别适用于开发过程,但EPROM型单片机价格很高。
Mask ROM型存储器的单片机价格最低,适用于大批量生产。由于Mask ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户更改程序代码十分不便,在产品未成熟时选用此型单片机风险较高。
OTP ROM型(一次可编程)单片机价格介于EPROM和Mask ROM型单片机之间,它允许用户自己对其编程,但只能写入一次。
Flash ROM型单片机可采用电擦除的方法修改其内容,允许用户使用编程工具或在系统中快速修改程序代码,且可反复使用,故一推出就受到广大用户的欢迎。Flash ROM型单片机既可用于开发过程,也可用于批量生产,随着制造工艺的改进,价格不断下降,使用越来越普遍,已成为现代单片机的发展趋势。
2.中央处理器(CPU)
CPU是单片机的核心单元,通常由算术逻辑运算部件ALU和控制部件构成。CPU就像人的大脑一样,决定了单片机的运算能力和处理速度。
3.随机存储器(RAM)
RAM用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百字节。RAM的内容具有易失性(也称易挥发性),掉电后会丢失。最近出现了E2PROM或FlashROM型的数据存储器,方便用户存放不经常改变的数据及其他重要信息。单片机通常还有特殊寄存器和通用寄存器,也属于RAM空间,但它们在单片机中存取数据速度很快,特殊寄存器还具有充分发挥单片机各种资源的功效,但这部分存储器占用存储空间更小。
4.并行输入/输出(I/O)接口
通常为独立的双向I/O接口,任何接口既可以用做输入方式,又可以用做输出方式,通过软件编程设定。现代单片机的I/O接口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。I/O接口是单片机的重要资源,也是衡量单片机功能的重要指标之一。
5.串行输入/输出接口
用于单片机和串行设备或其他单片机的通信。串行通信有同步和异步之分,可以用硬件或通用串行收发器件实现。不同的单片机可能提供不同标准的串行通信接口,如UART、SPI、I2C、MicroWire等。
6.定时器/计数器(T/C)
用于单片机内部精确定时或对外部事件(输入信号,如脉冲)进行计数,通常单片机内部有两个或两个以上的定时器/计数器。
7.系统时钟
通常需要外接石英晶体或其他振荡源提供时钟信号输入,也有的使用内部RC振荡器。系统时钟相当于PC中的主频。
以上只是单片机的基本构成,现代的单片机又加入了许多新的功能部件,例如模拟/数字(A/D)转换器、数字/模拟(D/A)转换器、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等。此时的单片机才属于真正的单片化,内部的RAM和ROM的容量也越来越大,ROM寻址空间甚至可达64KB,可以说,单片机发展到了一个全新的阶段,应用领域也更为广泛,许多家用电器均走向利用单片机控制的智能化发展道路。
1.1.2 单片机的分类和指标
单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。通常所用的都是通用型单片机,通用型单片机把所有资源(如ROM、I/O接口等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。
下面对单片机的几个重要指标进行介绍。
(1)位数:是单片机能够一次处理的数据的宽度,有1位机(如PD7502)、4位机(如MSM64155A)、8位机(如MCS-51)、16位机(如MCS-96)、32位机(如IMST414)。
(2)存储器:包括程序存储器和数据存储器。程序存储器空间较大,字节数一般从几千字节到几十千字节,另外还有不同的类型,如ROM、EPROM、E2PROM、Flash ROM和OTP ROM型。数据存储器的字节数则通常在几十字节到几百字节之间。程序存储器的编程方式也是用户选择的一个重要因素,有的是串行编程,有的是并行编程,新一代的单片机有的还具有在系统编程(ISP,In-System-Programmable)或在应用再编程(IAP,In-Applicationre-Programmable)功能,有的还有专用的ISP编程接口JTAG口。
(3)I/O接口:即输入/输出接口,一般有几个到几十个,用户可以根据自己的需要进行选择。
(4)速度:指的是CPU的处理速度,以每秒执行多少条指令来衡量,常用单位是MIPS(百万条指令每秒),目前最快的单片机可达到100MIPS。单片机的速度通常是和系统时钟(相当于PC的主频)相联系的,但并不是频率高的处理速度就一定快;对于同一种型号的单片机来说,采用频率高的时钟一般比频率低的速度要快。
(5)工作电压:通常工作电压是5V,范围是±5%或±10%,也有3V/3.3V电压的产品,更低的可在1.25V工作。现代单片机又出现了宽电压范围型,即在2.5~6.5V内都可正常工作。
(6)功耗:低功耗是现代单片机所追求的一个目标,目前低功耗单片机的静态电流可以低至μA或nA级。有的单片机还具有等待、关断、睡眠等多种工作模式,以此来降低功耗。
(7)温度:单片机根据工作温度可分为民用级(商业级)、工业级和军用级三种。民用级的温度范围是0℃~70℃,工业级是+40℃~85℃,军用级是+55℃~125℃(不同厂家的划分标准可能不同)。
(8)附加功能:有的单片机有更多的功能,用户可根据自己的需要选择最适合自己的产品。例如,有的单片机内部有A/D、D/A、串口、LCD驱动等,使用这种单片机可减少外部器件,提高系统的可靠性。
1.1.3 常用的单片机系列
1.MCS-51系列及与之兼容的80C51系列单片机
在我国使用最多的是Intel公司的MCS-51系列单片机。MCS-51系列单片机虽然是8位单片机,但它品种齐全、兼容性强、性能价格比高,且软硬件应用设计资料丰富,已为广大工程技术人员所熟悉,因此在我国得到了广泛的应用。
MCS是Intel公司的注册商标。凡Intel公司生产的以8051为核心单元的其他派生单片机都可以称为MCS-51系列,有时简称51系列。MCS-51系列单片机包括三个基本型8031、8051、8751和对应的低功耗型80C31、80C51、87C51。
MCS-51系列及80C51单片机有多种产品。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。最常用的51系列单片机是8051和AT89C51(见图1-2)等。
图1-2 AT89C51系列单片机产品示意图
AT89C51具有片内E2PROM,是真正的单片机,由于不需要外接EPROM,所以应用非常普遍。8031、8051片内没有EPROM,但它在市场上价格很低,软硬件系统开发成熟,所以应用也非常广泛,目前开发的51系列的产品大多是8031、8051和AT89C51等。
除了Intel公司,还有Atmel、Winbond、Philips、TEMIC、ISSI和LG等公司都生产兼容80C51的产品。
宏晶公司生产的STC89C5lRC单片机为低电压、高性能的CMOS 8位单片机,片内含2KB的可反复擦写的只读程序存储器(EPROM)和128B的随机存取数据存储器(RAM),工作电压为2.7~6V,还含有两个16位的定时器,6个内部中断源,可编程的串口UART,兼容标准MCS-51指令系统。片内置有通用8位中央处理器和Flash存储单元,封装只有40针,体积比较小,工作温度为+40~+85℃。
STC89C5lRC单片机可以利用STC-ISP软件方便地实现在线烧写程序。本书使用的实验开发板采用的就是STC89C5lRC单片机。
2.TI公司的超低功耗Flash型MSP430系列单片机
关于超低功耗单片机,有业界最佳“绿色微控制器(Green MCUs)”称号的TI公司的 MSP430 Flash系列单片机,是目前业界所有内部集成闪速存储器(Flash ROM)产品中功耗最低的,消耗功率仅为其他闪速微控制器(Flash MCUs)的1/5。在3V工作电压下其耗电电流低于350μA/MHz,待机模式仅为1.5μA/MHz,具有5种节能模式。该系列产品的工作温度范围为+40~85℃,可满足工业应用要求。MSP430微控制器可广泛地应用于煤气表、水表、电子电度表、医疗仪器、火警智能探头、通信产品、家庭自动化产品、便携式监视器及其他低耗能产品。由于MSP430微控制器的功耗极低,可设计出只需一块电池就可以使用长达10年的仪表应用产品。MSP430 Flash系列的确是不可多得的高性价比单片机。
3.OKI公司的低电压低功耗单片机
OKI公司的高性价比4位机MSM64K系列也是低功耗低电压的微控制器,其工作电压可低至1.25V,使用32kHz的工作频率,典型工作电流可低至3~5μA,HALT(关断)模式下小于1μA,而其功能却并不逊色,片内集成了LCD(液晶显示器)驱动器,可方便的与液晶显示器接口,具有片内掩模(Mask)的程序存储器,有些型号还带有串口、RC振荡器、看门狗、ADC(模数转换器)、PWM(脉宽调制)等,几乎不需要外扩芯片即可满足应用,工作温度范围可达+40~85℃,提供PGA封装和裸片。该系列微控制器应用广泛,适用于使用LCD显示、电池供电的设备,如掌上游戏机、便携式仪表(体温计、湿度计)、智能探头、定时器(时钟)等低成本、低功耗的产品。
4.ST公司的ST62系列单片机
美国ST微电子公司是一家独立的全球性公司,专门从事应用于半导体集成电路的设计、生产、制造和销售,以及生产各种微电子应用中的分立器件。应用领域涉及电子通信系统、计算机系统、消费类产品、汽车应用、工业自动化和控制系统等。ST公司可提供满足各种场合的单片机或微控制器,其中ST62系列8位单片机以其简单、灵活、低价格等特点,特别适用于汽车、工业、消费领域的嵌入式微控制系统。ST62系列提供多种不同规格的单片机以满足各种需要,存储器从1KB到8KB,有ROM、OTP、EPROM、E2PROM、Flash E2PROM,I/O接口从9个到22个,引脚从16个到42个,还有ADC、LCD驱动、看门狗、定时器、串行口、电压监控等部件。ST62单片机采用独特的制造工艺和技术,大大提高了抗干扰能力,能适应于各种恶劣环境。
5.AD公司的带A/D与D/A转换器的单片机
ADμC812是AD公司推出的全集成12位数据采集系统,片内集成了8路12位高性能的自校准ADC、2路12位DAC和与80C51指令兼容的8位MCU。AD公司最近又推出了16位和24位ADC的ADμC816和ADμC824,其他性能特性与ADμC812基本相同。
ADμC812 MCU包括8KB的Flash程序存储器、640B的Flash数据存储器、256B的RAM和与80C51兼容的内核,并且具有看门狗定时器、电源监视器,以及ADC DMA功能,32个可编程I/O接口、I2C/SPI兼容和标准UART串行通信接口。芯片具有正常、空闲和掉电三种工作模式,非常适合低功耗应用的电源管理方案,例如,智能传感器、电池供电系统(可移动PC、手持仪器、终端)、瞬时捕捉系统、DAS和通信系统等。
1.1.4 单片机的开发工具
1.仿真器
单片机的仿真器本身就是一个单片机系统,具有与所要开发的单片机应用系统相同的单片机芯片。
当一个单片机应用系统电路连接完毕,由于自身无调试能力,无法检验好坏,这时可以将系统中的单片机拔掉,插上在线仿真器提供的仿真头。
仿真头是一个40脚插头,它是仿真器的单片机信号的延伸,即单片机应用系统与仿真器共用一块单片机芯片,当在开发工具上通过在线仿真器调试单片机应用系统时,就像使用应用系统中真实的单片机一样,这种替代称为仿真。
在线仿真器是由一系列硬件构成的设备。开发工具中的在线仿真器应能仿真应用系统中的单片机,并能模拟应用系统中的ROM、RAM和I/O接口的功能,使在线仿真的应用系统的运行环境和脱机运行的环境完全一致,以实现单片机应用系统的一次性开发。
2.编程语言
开发单片机的编程语言主要是汇编语言和C语言。
采用汇编语言编程必须对单片机的内部资源和外围电路非常熟悉,尤其是对指令系统的使用必须非常熟练,故对程序开发者的要求是比较高的。用汇编语言开发软件是比较辛苦的,这是因为程序量通常比较大,方方面面均需要考虑,一切问题都需要由程序设计者安排,其实时性和可靠性完全取决于程序设计人员的水平。采用汇编语言编程主要适用于功能比较简单的中小型应用系统。
采用C语言编程时,只需对单片机的内部结构基本了解,对外围电路比较熟悉,而对指令系统则不必非常熟悉。用C语言开发软件相对比较轻松,很多细节问题无须考虑,编译软件会替设计者安排好。因此,C语言在单片机软件开发中的应用越来越广,使用者越来越多。当开发环境为基于操作系统编程时,编程语言通常采用C语言。
单纯采用C语言编程也有不足之处,在一些对时序要求非常苛刻或对运行效率要求非常高的场合,只有汇编语言能够很好地胜任。因此在很多情况下,采用C语言和汇编语言混合编程是最佳选择。
从编程难度来看,汇编语言比C语言要难得多,但作为一个立志从事单片机系统开发的科技人员,必须熟练掌握汇编语言程序设计方法。在熟练掌握汇编语言编程之后,学习C语言编程将是一件比较轻松的事情,并且能够将C语言和汇编语言非常恰当地融合在一起,以最短的时间和最低的代价,开发出高质量的软件。
当系统调试结束,确认软件无故障时,应把用户应用程序固化到EPROM中。EPROM写入器就是完成这种任务的专用设备,也是单片机开发工具中的重要组成部分。
1.1.5 单片机的特点及应用
1.单片机的特点
单片机具有如下特点:
(1)集成度高。单片机把CPU、RAM、ROM、I/O接口及定时器/计数器都集成在一个芯片上,和常规的计算机系统相比,它具有体积小、集成度高的特点。如MCS-51系列单片机,具有16位的定时器/计数器和4个并行I/O接口,此外还有串行接口。
(2)存储量大。采用16位地址总线的8位单片机可寻址外部64KB数据存储器和64KB程序存储器。此外,大部分单片机还有片上RAM和内部ROM,在大多数情况下,内部存储器就已经足够了,从而减少了器件的使用数量,降低了成本。
(3)性能高、速度快。为了提高速度和执行效率,单片机使用RISC体系结构、并行流水线操作和DSP等设计技术,指令运行速度大幅提高。一般单片机的时钟频率可以达到12MHz。
(4)抗干扰性高。单片机的各种功能部件都集成在一块芯片上,特别是存储器也集成在芯片内部,因此单片机布线短,大都在芯片内部传送数据,因此不易受到外部的干扰,增强了抗干扰能力,系统运行更加可靠。
(5)指令丰富。单片机一般都有传送指令、逻辑运算指令、转移指令,以及加、减运算指令、位操作指令。
(6)实时控制能力强。实时控制又称过程控制,是指及时地检测设备、采集数据信息,并按最佳方案对设备进行自动调节和控制。单片机具有很强的逻辑操作、位处理和判断转移功能,运行速度快,特别适合于工业系统实时控制。
(7)应用开发周期短。单片机结构简单,硬件组合、软件编程都很方便,又容易进行模拟试验,因此付诸实际应用快。
2.单片机的应用
单片机由于其体积小、功耗低、价格低廉,且具有逻辑判断、定时计数、程序控制等多种功能,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。以下简单介绍一些典型的应用。
1)单片机在智能仪表中的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比采用电子或数字电路更加强大,提高了其性能价格比,如精密的测量设备(功率计、示波器、各种分析仪)。
2)单片机在机电一体化中的应用
机电一体化是机械工业发展的方向。机电一体化产品是指集机械技术、微电子技术、计算机技术、传感器技术于一体,具有智能化特征的机电产品,如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。可编程控制器也是一个典型的机电控制器,其核心常常就是由一个单片机构成的。
3)单片机在实时控制中的应用
单片机广泛地应用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,能使系统保持在最佳工作状态,提高系统的工作效率和产品质量。再如机器人,每个关节或动作部位都是一个单片机实时控制系统。
4)单片机在分布式多机系统中的应用
在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各异的单片机应用系统组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时测量和控制。单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。
5)消费类电子产品控制
该应用主要反映在家电领域,例如,洗衣机、空调器、汽车电子与保安系统、电视机、录像机、DVD机、音响设备、电子秤、IC卡、手机、BP机等。在这些设备中使用单片机机芯之后,其控制功能和性能大大提高,并实现了智能化、最优化控制。
6)终端及外部设备控制
计算机网络终端设备,如银行终端、商业POS(自动收款机)、复印机等,以及计算机外部设备,如打印机、绘图机、传真机、键盘和通信终端等。在这些设备中使用单片机,使其具有计算、存储、显示、输入等功能,具有和计算机连接的接口,使计算机的能力及应用范围大大提高,更好地发挥了计算机的性能。
可以毫不夸张地说:“凡是能想到的地方,单片机都可以用得上”。全世界单片机的年产量数以亿计,应用范围之广,花样之多,一时难以详述。单片机应用的意义不仅限于它的广阔的应用范围,以及所带来的经济效益,更重要的还在于从根本上改变了传统的控制系统设计思想和设计方法。从前,必须由模拟电路或数字电路实现的大部分控制功能,现在可以使用单片机通过软件方法实现。这种以软件取代硬件并能提高系统性能的控制技术称为微控制技术。微控制技术标志着一种全新概念,随着单片机应用的推广普及,微控制技术必将不断发展和日趋完善,而单片机的应用必将更加深入、更加广泛。