第1章 51单片机基本应用
本章内容为单片机基础应用知识,围绕*常见也相对简单的51单片机,学习单片机的I/O口、定时器、异步串行口、中断、存储器的应用方法。
1.1 单片机概述
1.1.1 单片机的作用
什么是单片机?首先,单片机的“机”指的是“计算机”。计算机是能够存储指令并自动执行指令、完成运算和逻辑操作的电子设备。计算机已经融入我们工作和生活的各个领域。需要计算机解决的问题千差万别、多种多样,大规模、高速度是计算机发展的一个方向,但在很多场合,如仪器仪表、测量控制等领域,需要计算机解决的是比较专一的问题,这时使用普通计算机好比是杀鸡用了宰牛刀,使用单片机则会更加适合。单片机的特点是小而全,一般是在一块芯片上集成了计算机的主要部件:算术逻辑单元(arithmetic logic unit,ALU)、存储器、输入输出端口(简称I/O口),以及各种常用接口。限于体积和规模,单片机虽然有普通计算机的特征,但不具备常用个人计算机那么大的存储容量、那么快的速度。那么单片机有什么作用呢?下面先来看看日常生活中哪些地方会使用单片机。
(1)冰箱。
冰箱的作用是产生并保持低温,产生低温需要依靠压缩机运行,低温低压的液态制冷剂在冰箱内的蒸发器中吸收冰箱内的热量后被压缩机吸入,压缩后变成高温高压的气体,送到室外冷凝器中散热后,重新变成液态回到冰箱内的蒸发器,吸收冰箱内的热量,再排热。如此循环,冰箱内的温度不断降低,到了需要的温度后,压缩机停止运行,温度回升超过允许范围时压缩机再次启动。那么怎样测量冰箱内的实际温度、控制压缩机运转、显示温度值及其他信息并接收人工设定呢?答案是单片机。图1-1是单片机在冰箱中应用的典型控制原理图。
图1-1 单片机在冰箱中应用的典型控制原理图
(2)洗衣机。
早期的洗衣机是全机械式控制,现在的全自动洗衣机几乎都是用单片机控制。图1-2是全自动洗衣机中典型的单片机控制原理图。
图1-2 洗衣机中典型的单片机控制原理图
图1-2中,单片机接收人工按键指令电源(开/关)、启动/暂停、程序选择、水位选择等,接收重力传感器的输出,控制电机运行及排水阀的开闭,控制指示灯的亮灭及数码管显示。
(3)小家电。
单片机在小家电中的应用随处可见,如电饭煲、微波炉、豆浆机、电子钟等。
在工业应用领域,尤其是测控方面,单片机系统因其具有成本低、规模小、便于数字控制、完成特定功能编程方便等特点,应用非常普遍。单片机可以构成数据采集、信号检测、无线感知系统等,结合控制部件,进行温度、时间、液位、行程、姿态等控制。在工厂流水线的智能化管理、电梯智能化控制、各种报警系统、与计算机联网构成二级控制系统、物联网系统、无人飞机、机器人等诸多方面,单片机的应用随处可见。在汽车电子中单片机的应用也非常广泛,如汽车中基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、ABS防抱死系统、制动系统、胎压检测等。
在船舶导航系统中,单片机同样发挥了重要作用。例如:在自动操舵仪中以单片机为微处理器进行船舶的航向控制、航迹控制;在计程仪中用单片机进行测量采集、解算、显示速度航程、接收人工按键输入;在测深仪中用单片机控制换能器发射声波,采集回波信号并解算、显示深度;在气象仪中用单片机采集风速信号并显示,如图1-3所示。
1.1.2 单片机的发展历史及现状
单片机应用市场巨大,国际上有多家公司都有单片机产品。为满足不同的应用,单片机并没有一种固定的形式,规模大小、功能强弱、速度快慢、封装形式均是多种多样的。其中,51系列单片机是一个基础的单片机系列。那么什么是51系列单片机?这要从单片机的发展历史说起。
单片机的发展与PC的微处理器的产生大体同步,1971年美国Intel公司研制出4位处理器Intel 4004后不久,就出现了单片机。1975年,TI公司推出了4位单片机TMS-1000。随后,Intel公司推出了系列化的单片机产品,可以说是单片机产品的代表。
图1-3 应用单片机的常见导航设备
1976年,Intel公司推出了MCS-48系列8位单片机,其内集成了8位微处理器、8位并行I/O口、8位计数器/定时器、随机存储器(RAM)、只读存储器(ROM)等部件,使单片机的发展进入了实用阶段。
1980年,Intel公司推出了以8031、8051为代表的8位MCS-51系列单片机,形成了经典的8051内核。MCS-51系列单片机内集成的ROM、RAM寻址空间达到64 KB,具有16位计数器/定时器,还集成了串行通信口,具有两级中断处理能力。8位单片机的应用比较普遍,长盛不衰,具有8051内核的处理器不断推出,形成了具有经典性、生命力顽强的系列单片机。直到现在,8位单片机仍然大量使用,是单片机中的主流品种。
1982年,Intel公司推出了MCS-96系列16位单片机。但从实际应用来看,16位单片机的应用并没有8位单片机普遍。原因可能是其处于比较尴尬的位置,高不成、低不就。从大量简单的测控应用场合的需要来看,8位单片机的性能就够用了。
除Intel公司外,STC、Atmel、Philips、motorola、TI、NEC、AMD、MICROCHIP、SΛMSUNG等公司都有自己的单片机产品。
目前单片机的发展主要有以下两个特征。
(1)51内核单片机仍然大量使用,但在51内核的基础上,各公司的单片机产品又加入了自己的设计,扩展了功能,如集成了DA转换器、AD转换器、SPI接口、I2C接口、CAN接口等,一般使用Flash存储器作为只读存储器。Flash存储空间、RAM空间对简单应用足够大,用户几乎不需要考虑扩展问题,这使得单片机的应用更加便捷。
(2)各公司推出了速度快、容量大、接口丰富的高性能单片机。例如,ST公司推出的Cortex-u内核的32位STM32系列单片机,新唐公司推出的NUC140、240系列32位单片机等,包含了以太网、CAN、USB等接口,速度快,功能非常强,可以完成诸如船舶的运动控制等比较复杂的运算和控制工作,构建网络也比较方便。
不同的51内核8位单片机虽然有不同的功能扩展,但其基本部分的结果是大致相同的。单片机的内部资源都挂接在单片机内部总线上,通过内部总线传送数据和指令。51内核单片机的内部*基本结构类似,如图1-4所示。
图1-4 51内核单片机内部*基本结构
51内核单片机的内部主要包括如下*基本资源。
(1)8位数据总线的CPU,CPU是单片机内的核心部件,主要功能是产生各种控制信号、控制存储器和端口的数据传送、完成数据运算等。
(2)片内振荡器和时钟电路,配合外部晶振产生单片机工作时需要的基本时钟频率,单片机执行指令的速度以此基本时钟频率为准。
(3)片内只读存储器ROM,用于存储程序,一般为Flash存储器,4~64 KB不等。例如:Atmel公司AT89C51的Flash存储器为4 KB,AT89C52为8 KB,AT89C55为20 KB;Winbond公司的W78E58为32 KB;STC公司的STC89C516RD + 为64 KB,STC90C52RC为8 KB。Flash存储器的大小一般能从型号上看出来。
(4)片内RAM,存储大小也不等,*基本的8051为128 B,8052为256 B。增强型51单片机一般均扩展了 RAM 的存储大小,例如,Silicon Labs 公司的 C8051F340 为 4352 B,STC89C516RD + 为4 KB,STC90C52RC为512 B。
(5)16位定时器/计数器,*基本的8051有2个,8052有3个,增强型的定时器/计数器数量也增加了,多的有6个。
(6)8位并行I/O接口,基本DIP封装的Intel 8051、Intel 8052为40个引脚,均有4个8位I/O口,即P0、P1、P2、P3。很多增强型的单片机引脚增多了,常见的引脚数有44、64、100、144等;I/O口也增加了不少,需要较多I/O口时,直接选引脚多的即可。同一型号、不同的封装形式,I/O口的数量也可能不一样。例如,TQFP封装的AT89C52单片机有44个引脚,比基本DIP封装的多4个引脚,这4个引脚就作为P4口来用(只有4位)。同样,也有引脚少的单片机。例如,AT89C2051、AT89C4051有20个引脚,只有P1、P3口,没有P0、P2口。
(7)全双工异步串行接口,基本的8051、8052单片机均有1个,一些增强型的51单片机有2~4个。
(8)中断系统,可以实现外部中断、内部定时器中断、串行口中断等程序中断功能。
不同型号的单片机,内部资源也不一样,短时间内将所有的单片机型号都搞清楚是没有必要的,也是不可能的。我们学习时,需要注意两点:一是能熟练运用51单片机的基本资源;二是对增强型单片机的增强资源,会查找其资料,用到时再学习其用法。平时要多积累,了解有哪些单片机,它们分别有哪些特点和功能,这样有助于使用时选型。
表1-1~表1-4为Intel公司早期的MCS-51系列单片机和目前市场上部分常见的单片机内部主要资源。
表1-1 Intel公司早期的MCS-51系列单片机主要产品及其性能
表1-2 Atmel公司的89系列单片机部分产品及其性能
表1-3 Silicon Labs公司的C8051系列单片机主要产品及其性能
展开