1.1 单片机概述
目前单片机以其独特的优点,在智能仪表、家用电器、工业控制、数据采集、网络通信等领域得到广泛的应用。各行各业的工程技术人员正在根据自己的任务进行单片机应用系统的开发设计工作,从而改变了传统控制系统的设计思想和设计方法。以前必须由模拟电路或数字电路实现的大部分控制功能,现在已能由单片机通过软件方法来实现了,这使控制系统的性能大大提高,应用领域更加广泛。
单片机主要用于嵌入式应用,故又被称为嵌入式微控制器。国际上常把单片机称为微控制器(MCU),而国内则比较习惯称为“单片机”。
1.1.1 单片机的组成
单片机是把一个计算机系统集成到一块芯片上,其主要包括微处理器(CPU)、存储器(随机访问存储器RAM、只读存储器ROM)和各种输入/输出接口(包括定时器/计数器、并行I/O接口、串行口、A/D转换器,以及脉冲宽度调制(PWM)等),如图1-1所示。
图1-1 单片机组成框图
1.程序存储器(ROM)
ROM用来存放用户程序,可分类为EPROM、Mask ROM、OTP ROM和Flash ROM等。
EPROM型存储器编程(把程序代码通过一种算法写入程序存储器的操作)后,其内容可用紫外线擦除,用户可反复使用,故特别适用于开发过程,但EPROM型单片机价格很高。
Mask ROM型存储器的单片机价格最低,适用于大批量生产。由于Mask ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户更改程序代码十分不便,在产品未成熟时选用此型单片机风险较高。
OTP ROM型(一次可编程)单片机价格介于EPROM型和MaskROM型单片机之间,它允许用户自己对其编程,但只能写入一次。
Flash ROM型单片机可采用电擦除的方法修改其内容,允许用户使用编程工具或在系统中快速修改程序代码,且可反复使用。
2.中央处理器(CPU)
CPU是单片机的核心单元,通常由算术逻辑运算部件ALU和控制部件构成。CPU就像人的大脑一样,决定了单片机的运算能力和处理速度。
3.随机存储器(RAM)
RAM用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百字节。RAM的内容具有易失性(也称为易挥发性),掉电后会丢失。最近出现了EEPROM或Flash ROM型的数据存储器,方便用户存放不经常改变的数据及其他重要信息。单片机通常还有特殊寄存器和通用寄存器,也属于RAM空间,但它们在单片机中存取数据速度很快,特殊寄存器还具有充分发挥单片机各种资源的功效,但这部分存储器占用存储空间更小。
4.并行输入/输出(I/O)接口
通常为独立的双向I/O口,任何口既可以用作输入方式,又可以用作输出方式,通过软件编程设定。现代单片机的I/O口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。I/O口是单片机的重要资源,也是衡量单片机功能的重要指标之一。
5.串口输入/输出接口
用于单片机和串行设备或其他单片机的通信。串行通信有同步和异步之分,可以用硬件或通用串行收发器件实现。不同的单片机可能提供不同标准的串行通信接口,如UART、SPI、I2C、MicroWire等。
6.定时器/计数器(T/C)
用于单片机内部精确定时或对外部事件(输入信号如脉冲)进行计数,通常单片机内部有2个或2个以上的定时器/计数器。
7.系统时钟
通常需要外接石英晶体或其他振荡源提供时钟信号输入,也有的使用内部RC振荡器。系统时钟相当于PC中的主频。
以上只是单片机的基本构成,现代的单片机又加入了许多新的功能部件,如模拟/数字(A/D)转换器、数字/模拟(D/A)转换器、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等。
1.1.2 常用的单片机系列
自20世纪80年代以来,单片机产品如雨后春笋般大量涌现。GI公司、Rochwell公司、Intel公司、Zilog公司、Motorola公司、NEC公司等世界几大芯片公司都纷纷推出自己的单片机系列。
虽然单片机的品种很多,但在我国使用最多的还是Intel公司的MCS-51系列单片机。MCS-51系列单片机是在MCS-48系列的基础上于20世纪80年代初发展起来的,虽然它仍然是8位单片机,但它品种齐全、兼容性强、性能价格比高。且软硬件应用设计资料丰富,已为广大工程技术人员所熟悉,因此在我国得到了广泛的应用。
MCS是Intel公司的注册商标。凡Intel公司生产的以8051为核心单元的其他派生单片机都可以称为MCS-51系列,有时简称为51系列。MCS-51系列单片机包括3个基本型8031、8051、8751和对应的低功耗型801231、80C51、87C51。
MCS-51 系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。最常用的51系列单片机是8051和AT89C51(见图1-2)等。
图1-2 AT89C51系列单片机产品示意图
AT89C51具有片内EEPROM,是真正的单片机,由于不需要外接EPROM,所以应用非常普遍。8031、8051片内没有EPROM,但它在市场上价格很低,软硬件系统开发成熟,所以应用也非常广泛。
宏晶公司生产的STC89C5lRC单片机为低电压、高性能的CMOS 8位单片机,片内含2KB的可反复擦写的只读程序存储器(PEROM)和128B的随机存取数据存储器(RAM),工作电压为2.7~6V,还含有两个16位的定时器,6个内部中断源,可编程的串口UART,兼容标准MCS-51指令系统。片内置有通用8位中央处理器和Flash存储单元,封装只有40针,体积比较小,工作温度为−40~85℃。
STC89C5lRC单片机可以利用STC-ISP软件方便地实现在线烧写程序。
1.1.3 单片机的开发工具
1.仿真器
单片机的仿真器本身就是一个单片机系统,具有与所要开发的单片机应用系统相同的单片机芯片。
当一个单片机应用系统电路连接完毕,由于自身无调试能力,无法检验好坏,这时可以将系统中的单片机拔掉,插上在线仿真器提供的仿真头。
仿真头是一个40脚插头,它是仿真器的单片机信号的延伸,即单片机应用系统与仿真器共用一块单片机芯片。当在开发工具上通过在线仿真器调试单片机应用系统时,就像使用应用系统中真实的单片机一样,这种替代称为仿真。
在线仿真器是由一系列硬件构成的设备。开发工具中的在线仿真器应能仿真应用系统中的单片机,并能模拟应用系统中的ROM、RAM和I/O端口的功能,使在线仿真应用系统的运行环境和脱机运行的环境完全一致,以实现单片机应用系统的一次性开发。
2.编程语言
开发单片机的编程语言主要是汇编语言和C语言。
采用汇编语言编程必须对单片机的内部资源和外围电路非常熟悉,尤其是对指令系统的使用必须非常熟练,故对程序开发者的要求比较高。用汇编语言开发软件比较辛苦,这是因为程序量通常比较大,方方面面均需考虑,一切问题都需要由程序设计者安排,其实时性和可靠性完全取决于程序设计人员的水平。采用汇编语言编程主要适用于功能比较简单的中小型应用系统。
采用C语言编程时,只需对单片机的内部结构基本了解,对外围电路比较熟悉,而对指令系统则不必非常熟悉。用C语言开发软件相对比较轻松,很多细节问题无须考虑,编译软件会替设计者安排好。因此C语言在单片机软件开发中的应用越来越广,使用者越来越多。当开发环境为基于操作系统编程时,编程语言通常采用C语言。
单纯采用C语言编程也有不足之处,在一些对时序要求非常苛刻或对运行效率要求非常高的场合,只有汇编语言能够很好地胜任。因此在很多情况下,采用C语言和汇编语言混合编程是最佳选择。
从编程难度来看,汇编语言比C语言要难得多,但作为一个立志从事单片机系统开发的科技人员,必须熟练掌握汇编语言程序设计方法。在熟练掌握汇编语言编程之后,学习C语言编程将是一件比较轻松的事情,并且能够将C语言和汇编语言非常恰当地融合在一起,以最短的时间和最低的代价,开发出高质量的软件。
当系统调试结束,确认软件无故障时,应把用户应用程序固化到EPROM中。EPROM写入器就是完成这种任务的专用设备,也是单片机开发工具中的重要组成部分。
1.1.4 单片机的特点及应用
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)家用电器领域
如洗衣机、空调、电视机、录像机、DVD、音响设备、电子秤、IC卡、手机等。在这些设备中使用单片机之后,其控制功能和性能大大提高,并实现了智能化、最优化控制。
2)终端及外部设备控制
计算机网络终端设备,如银行终端、商业POS(自动收款机)、复印机等,以及计算机外部设备,如打印机、绘图机、传真机、键盘和通信终端等。在这些设备中使用单片机,使其具有计算、存储、显示、输入等功能,具有和计算机连接的接口,使计算机的能力及应用范围大大提高,更好地发挥了计算机的性能。
3)工业自动化领域
在工业自动化领域,单片机系统主要用来实现信号的检测、数据的采集,以及应用对象的控制。这些系统除一些小型工控机外,许多都是以单片机为核心的单机或多机网络系统。
单片机广泛地应用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。
4)智能仪表
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大,提高了其性能价格比,例如精密的测量设备(功率计、示波器、各种分析仪)。
通过采用单片机软件编程技术,使长期以来测量仪表中的误差修正、线性化处理、存储、数据处理等难题迎刃而解,提高了仪器的精度和可靠性,扩大了仪器的功能。
5)机电一体化产品
机电一体化是机械工业发展的方向。机电一体化产品是指集机械技术、微电子技术、计算机技术、传感器技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为机电一体化产品中的控制器,能充分发挥它体积小、可靠性高、功能强等优点,大大提高机器的自动化、智能化程度。可编程顺序控制器(PLC)也是一个典型的机电控制器,核心常常就是由一个单片机构成的。