第二章 单片机硬件结构
第一节 51单片机的硬件整体结构
2.1 51单片机的硬件整体结构
2.1.1 微机系统的3个层次
在计算机的组成当中,运算器和控制器合在一起称为中央处理单元(Central Processing Unit,CPU)。其中,运算器是执行算术运算和逻辑运算的部件,它的任务是对信息进行加工处理;控制器负责从存储器中取出指令,进行译码,发出控制信号,协调各部分工作。随着半导体集成电路技术的发展,把CPU和某些属于存储器部分的寄存器(Registers)集成在一片大规模集成电路之中,称为微处理器(Microprocessor)。常见的微处理器芯片如图2-1所示。微处理器具有运算和控制能力。在日常生活中,人们并不区别CPU和微处理器的概念,尽管CPU只是微处理器的一部分。
1946年美籍匈牙利数学家冯·诺依曼(Von Neumann)提出了电子计算机采用的“存储程序控制”原理,又称为“冯·诺依曼原理”。“存储程序控制”原理的基本内容是:用二进制形式表示数据和指令;将程序(数据和指令序列)预先存放在主存储器中,使计算机在工作时能够自动高速地从存储器中取出指令,并加以执行。“存储程序控制”原理确立了计算机的5大基本部件,即存储器、控制器、运算器、输入接口和输出接口,如图2-2所示。图中的实线表示数据流,虚线表示控制流。若冯·诺依曼结构的计算机中的控制器和运算器由微处理器实现,则该计算机称为微型计算机(Microcomputer)。由于微型计算机是由电子电路组成的,它的核心器件全是电子电路,或者说是数字电子电路,所以微型计算机也称为数字计算机。若在常用的台式PC主板上,插上微处理器和内存,就包含了计算机的5大部分,如图2-3所示。
有人曾把计算机比作人脑,表2-1是二者的具体比较,二者的共同点是其智能性。
微型计算机通过输入输出接口电路与外部设备连接在一起,配置相应的软件,成为一个完整的应用系统,称为微型计算机系统(Microcomputer System)。微型计算机系统主要由硬件和软件组成,硬件包括微型计算机(也称主机)和外围设备,软件主要包括系统软件、应用软件和程序设计语言。我们日常所用的台式PC,配上外围设备键盘、鼠标、显示器和操作系统,以及应用软件,即为计算机系统。
由于微处理器、微型计算机和微型计算机系统这三个基本概念中都有一个“微”字,因此把这三个概念集合到一起称为“三微结构”。这三个概念是逐级包含的。
单片机即单片微型计算机,是将微型计算机(微处理器、内存和I/O接口)集成在一块集成电路芯片上。单即一,片即硅片,机即微型计算机。
将微型计算机组装在一块印制电路板上,称为单板机,如图2-4所示。用几块印制电路板组装成的微型计算机称为多板机,现在广泛使用的台式或笔记本式微型计算机都是多板机。从三微结构来说,单片机和台式PC都是微型计算机的一种,其基本原理一样,即“存储程序控制”原理,其区别仅是功能强弱不同。因此也可以这样理解单片机:单即简单,片即硅片,机即台式PC,单片机即将台式PC功能结构简化,集成在一块硅片上。
分页 微型计算机系统的软件和硬件是密不可分的。硬件是计算机系统的物质基础,正是在硬件高度发展的基础上,才有软件赖以生存的空间和活动场所。软件是计算机系统的灵魂,没有软件的硬件“裸机”将不能提供给用户使用。因此,硬件和软件是相辅相成的整体。随着计算机技术和电子技术的发展,软件和硬件可以相互替代。原来由硬件实现的功能可以改为由软件来模拟实现,这种做法称为硬件软化,它可以增强系统的功能和适应性;原来由软件实现的功能也可以改为由硬件来实现,称为软件硬化,它可以提高系统的实时性。
2.1.2 单片机的硬件组成
51单片机的外部引脚如图2-5所示。从外形上看,51单片机也是一种大规模集成电路芯片,双列直插封装。将51单片机半圆标志朝上,引脚编号从左至右,左边从1开始向下顺次递增,右边向上顺次递增,双列直插芯片的引脚编号都满足这样的顺序,并且大多数芯片的左边最下引脚为接地,编号数值最大的引脚为电源。
51单片机的内部资源是功能本质,而外部引脚只是功能形式,因此学习单片机应将其外部引脚与内部资源结合起来,将现象和本质统一起来。
单片机各部分的主要功能是什么呢?本节以打算盘计算一道算术题36+163×156-166÷34为例来讲解单片机各部分的主要功能。要进行运算首先需要一个算盘,其次是纸和笔,把要计算的问题记录下来,然后第一步先算163×156,把它与36相加的结果记在纸上,然后计算166÷34,再把它从上一次结果中减去,就得到最后的结果。现在,用单片机来完成上述过程:显然,它首先要有代替算盘进行运算的部件,这就是“运算器”;其次,要有能起到纸和笔作用的器件,即能记忆原始题目、原始数据和中间结果的“存储器”,还要记住使单片机能自动进行运算而编制的各种命令。此外,还需要有能代替人作用的控制器,它能根据事先给定的命令发出各种控制信号,使整个计算过程能一步步地进行。但是光有这3部分还不够,原始的数据与命令要输入,计算的结果要输出,都需要按先后顺序进行,有时还需等待。如上例中,当在计算163×156时,数字36就不能同时进入运算器。因此就需要在单片机上设置按控制器的命令进行动作的“门”,当运算器需要时,就让新数据进入。或者,当运算器得到最后结果时,再将此结果输出,而中间结果不能随便进出单片机。这种对输入、输出数据进行管理的“门”电路在单片机中称为“接口”。在单片机中有3类信息在流动,一类是数据,即各种原始数据(如上例中的36和163等)、中间结果(如166÷34所得的商4、余数30等)和程序(命令的集合)等。它们由外围设备通过“接口”进入单片机,再存放在存储器中,在运算处理过程中,数据从存储器读入运算器进行运算,运算的中间结果要存入存储器中,或最后由运算器经“接口”输出。用户要单片机执行的各种命令(程序)也以数据的形式由存储器送入控制器,由控制器解读(译码)后变为各种控制信号,以便执行如加、减、乘、除等功能的各种命令。所以,这第二类信息就称为控制命令,既由控制器去控制运算器一步步地进行运算和处理,然后控制存储器的读(取出数据)和写(存入数据)等。第三类信息是地址信息,其作用是告诉运算器和控制器在何处去取命令或数据,将结果存放到什么地方,通过哪个口输入和输出信息等。存储器又分为程序存储器和数据存储器两种,前者存放调试好的固定程序和常数,后者存放一些随时有可能变动的数据。
单片机除了进行运算外,还要完成控制功能,所以离不开计数和定时。所以,在单片机中就设置有定时器兼计数器。总之,单片机是由中央处理器(即CPU中的运算器和控制器)、程序存储器(通常表示为ROM)、数据存储器(又称随机存储器,通常表示为RAM)和输入/输出接口(表示为I/O口,又分为并行口和串行口)等组成。实际上,单片机里面还有一个时钟电路,使单片机在进行运算和控制时,都能有节奏地进行。另外,还有所谓的中断系统,这个系统有“传达室”的作用,当单片机控制对象的参数到达某个需要加以干预的状态时,就可经此“传达室”通报给微处理器,使微处理器根据外部事态的轻重缓急来采取适当的应对措施。
单片机的各部分是如何连接成相互关联的整体呢?实际上,单片机内部有一条将它们连接起来的纽带,即内部总线。此总线如大城市的干道,而微处理器、ROM、RAM、I/O口和中断系统等就分布在此总线的两旁,并和它连通。从而,一切指令、数据都可经内部总线传送,犹如大城市内各种物品的传送都经过干道进行一样。
总之,按照微型计算机的组成,MCS-51内部主要由如下6部分组成,如图2-7所示。
① 微处理器,包括运算器、控制器和寄存器等。
② 存储器,包括程序存储器和数据存储器。
③ 并行I/O接口。
④ 串行I/O接口。
⑤ 定时器/计数器。
⑥ 中断系统。
其中,串口和并口、定时器/计数器、中断系统都可以看成是输入输出接口。
分页
2.1.3 单片机的总线
总线(Bus)是微型计算机各种电路器件或芯片用来相互传送数字信息的公共通道。单片机中的总线通常分为3类,如图2-8所示。
1)地址总线(AB):地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A0~A7);P2口直接提供高8位地址(A8~A15)。地址信号是由微处理器发出的,故地址总线是单方向的。
2)数据总线(DB):数据总线宽度为8位,用于传送数据和指令,由P0口提供。
3)控制总线(CB):控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令。
常用控制总线的引脚如下:
1):地址锁存允许/编程脉冲输入信号线。
ALE是英文“Address Latch Enable”的缩写,表示地址锁存允许信号。它的作用除了访问片外RAM/ROM时下降沿锁存P0口低8位地址外,还可以输出脉冲,作为外部定时信号。
2):外部数据存储器读信号,低电平有效。
3):外部数据存储器写信号,低电平有效。
当微处理器访问外部数据存储器或访问外部扩展的I/O端口(即执行MOVX指令)时,会产生相应的读/写信号。扩展外部数据存储器和I/O端口时,和
用于外部数据存储器芯片和I/O接口芯片的读/写控制。
4):片外ROM读控制线,低电平有效。
当微处理器从外部程序存储器读取指令或读取常数(即执行MOVC指令)时,该信号有效,微处理器通过数据总线读回指令或常数。扩展外部程序存储器时,用该信号作为程序存储器的读出允许信号。在微处理器访问外部数据存储器期间,该信号无效。
5):允许访问片外程序存储器/编程电源输入引脚。
① 当=0时,对ROM的访问限定在片外程序存储器;当
=1时,对ROM的访问先从内部4KB(0000H~0FFFH)开始,当地址范围超出4KB时,自动切换到外部进行访问。
② 当对内含ROM的单片机编程时,此引脚接受编程电压的输入,即外接12~25V的编程电压。