第2章单片机芯片的硬件结构本章重点:MCS-51单片机的一般性能特点,内部变成结构和存储器结构讲授内容:MCS-51系列单片机机芯结构;MCS-51单片机的存储结构;MCS-51系列单片机的芯片引脚功能因为单片机是微型机的一个分支,在原理和结构上,单片机与微型机之间不但没有根本性的差别,而微型机的许多技术与特点都被单片机继承下来了。所以,可以用微型机的眼光看待单片机,用微型机的思路学习单片机.MCS-51单片机结构框图到目前为止,尽管计算机科学和技术得到了充分的发展,但计算机的体系结构仍然没能突破计算机的开拓者、数字家约翰·冯诺曼最先提出来的经典体系结构框架,即一台计算机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。微型机是这样,单片机也不例外。因此我们要从计算机五个基本组成部分的观点来理解单片机的系统结构,所不同的只是单片机是把那些作为控制应用所必需的内容,包括运算器、控制器、少量的存储器、最基本的输入/输出电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。要在一个极小的芯片上集成这么多电路,而立还要求结构简单灵活,工作稳定可靠.因此,单片机必须采用精巧的设计,以克服芯片尺寸有限所带来的许多制约。以MCS一5l为例,单片机的系统逻辑结构如图所示。2.1MCS-51单片机的逻辑结构及信号引脚2.1.1MCS-51单片机的结构框图2.1.2MCS-51单片机芯片内部逻辑结构2.1.3MCS-51单片机信号引脚2.1.1MCS-51单片机的基本组成图2-1MCS-51单片机基本结构示意图(1)一个8位微处理器CPU。(2)数据存储器RAM和特殊功能寄存器SFR。(3)内部程序存储器ROM。(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。(5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。(6)一个串行端口,用于数据的串行通信。(7)中断控制系统。(8)内部时钟电路。MCS-51特点:2.1.2MCS-51单片机芯片内部逻辑结构1.内部程序存储器(ROM)和内部数据存储器(RAM)容量(如表2-1所示)。2.输入/输出(I/O)端口3.外部程序存储器和外部数据存储器寻址空间4.中断与堆栈5.定时/计数器与寄存器区6.指令系统问题:8051与8751的区别在于:(1)内部程序存储器的类型不同(2)内部数据存储器的类型不同(3)内部程序存储器的容量不同(4)内部数据存储器的容量不同问题:80C50与8051的区别在于:(1)内部ROM的类型不同(2)半导体工艺的形式不同(3)内部寄存单元的数目不同(4)80C51使用EEPROM,而8051使用EPROM存储器类型单片机系列掩膜ROMEPROMRAMMCS-5151子系列8031//128B80514KB/128B8751/4KB128B52子系列8032//256B80528KB/256B8752/8KB256B表2-1MCS-51单片机存储器容量1.中央处理器(1)运算器:组成、功能见书运算器由8位算术逻辑运算单元ALU(ArithmeticLogicUnit)、8位累加器ACC(Accumulator)、8位寄存器B、程序状态字寄存器PSW(ProgramStatusWord)、8位暂存寄存器TMP1和TMP2等组成。(2)控制器:组成、功能见书主要由程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针SP、数据指针DPTR、时钟发生器及定时控制逻辑等组成。2、内部数据存储器3、内部程序存储器4、定时器/计数器5、并行I/O口6、串行口7、中断控制系统8、时钟电路9、位处理器10、总线总结:从上述内容可以看出,虽然MCS—51只是一个硅片,但“麻雀虽小五脏俱全”,作为计算机应该具有的基本部件在单片机中几乎都包括,因此,实际上它已经是一个简单的微型计算机系统了,应当按计算机系统的概念来理解单片机。2.1.3MCS-51单片机的引脚图为MCS-51单片机的引脚配置图,40引脚。1.主电源引脚VCC和VSS2.外接晶振引脚XTAL1和XTAL23.输入/输出引脚P0、P1、P2、P3(共32根)4.ALE/PROG:地址锁存控制信号/编程脉冲PSEN:外部程序存储器选通信号EA/Vpp:访问程序存储器控制信号/编程电压0-外部程序存储器RST/VPDRAM保护特点:存储器地址独立、命令独立、功能独立引脚表现出的是单片机的外特性或硬件特性,在硬件方面用户只能使用引脚.即通过引脚组建系统。因此熟悉引脚是单片机硬件学习的重要内容。问题:引脚的第一、第二功能不会混淆一个信号引脚。又是第一功能又是第二功能,会不会在使用时引起混乱和造成错误呢?不会的。对此起码有以下三点理由:··1、对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号上。·2、对于9(RST/VPD)、30(ALE/PROG)和31(EA/Vpp)各引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。·3、P3口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的第二功能,剩下不用的才作为口线使用。2.2MCS-51单片机的内部存储器2.2.1内部数据存储器低128单元(逻辑结构研究)80C51的内部共有256个数据存储器单元.通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H-7FH)和高128单元(单元地址80H—FFH)。如图所示。其中:低128单元是单片机中供用户使用的数据存储器单元,即我们称之为内部RAM的存储器,按用途可把低128单元划可分为3个区域:总体介绍(笔记上内容)(内部硬件资源:软件使用)1、寄存器区内部RAM的前32个单元是作为寄存器使用的,共分为4组,每组有8个寄存器,组今依次为0、1、2、3,每个寄存器都是8位,在组中按R7—R0编号。寄存器常用于存放操作数及中间结果等,由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H-1FH单元地址。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是那一组,由程序状态字哥存器PSW中RSl、RS2位的状态组合来决定。优点:(1)通用寄存器为CPU提供了数据就近存取的便利,提高处理速度(2)有利于提高程序编制的灵活性,简化程序设计,提高程序运行速度。(例子:生产线设计)因此在MCS-51中使用通用寄存器的指令特别多,又多为单字节的指令,执行速度最快。此外,使用通用寄存器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分利用这些寄存器.以简化程序设计,提高程序运行速度。2.位寻址区内部RAM的20H-2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作、因此把该区林之为位寻址区。位寻址区共有16个RAM单元,总计128位,位地址为00H-7FH。位寻址区是为位操作而准备的,是MCS-51位处理器的数据存储空间,其中的所有位均可以直接寻址。表为位寻址区的位地址表。通常在使用中,“位”有两种表示方式。一种是以位地址的形式(如表2—2所示),例如位寻址区的最后一个位是7FH;另一种是以存储单元地址加位的形式表示,例如:同样的最后位表示为2FH.7。3、用户RAM区在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩余80个单元,这就是供用户使用的一般RAM区,其单元地址为30H-7FH。对于用户RAM区,只能以存储单元的形式来使用,其他没有任何规定或限制。但应当提及,在一般应用中常把堆栈开辟在此区中。2.2.2内部数据存储器高128单元内部数据存储器的高128单元是为专用寄存器提供的,因此称之为专用寄存器区,其单元地址为80H-FFH,用于存放相应功能部件的控制命令、状态或数据。因这些寄存器的功能已作专门规定,故而称为专用寄存器(SFR),有时也称为特殊功能寄存器。MC5—51中80C51的专用寄存器共有22个,其中可寻址的为21个(有些硬件影响它、有些软件编程置位影响它)。一.专用寄存器简介现把22个专用寄存器中的5个介绍如下,其余的将在以后章节中陆续说明。1.程序计数器(PC-ProgramCounter)PC是一个16位的计数器。其内客为将要执行的指令地址,寻址范围达64KB。PC有自动加1功能,以实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写。但在执行转移、调用、返回等指令时能自动改变其内容,以改变程序的执行顺序。2.累加器A(或ACC-Accumulator)累加器为8位寄存器,是程序中最常用的专用寄存器,功能较多,地位重要。概括起来有以下几项功能:累加器用于存放操作数,是ALU数据输入的一个重要来源。单片机中大部分单操作指令的操作数取自累加器,许多双操作数指令中的一个操作数也取自累加器。·累加器是ALU运算结果的暂存单元,用于存放运算的中间结果。·累加器是数据传送的中转站,单片机中的大部分数据传送都通过累加器进行。·在变址寻址方式中把累加器作为变址寄存器使用。MCS-51只有一个累加器,而单片机个的大部分数据操作都是通过累加器进行的,所以累加器的使用十分频繁,其情形有如城市个交通繁忙的路口,很容易出现阻塞现象。为此在80C51中设置了一些不经过累加器的数据传送指令,例如:寄存器与直接寻址单元之间的数据传送指令,直接寻址单元与间接寻址单元之间的数据传送指今,寄存器、直接寻址单元、间接寻址单元与立即数之间的数据传送指令等,以缓和累加器的拥堵。由于累加器的“瓶颈”作用制约着单片机运算速度的提高,为此人们已开始考虑使用寄存器阵列(RegisterFile)来代替累加器,即赋予更多的寄存器以累加器功能,形成多累加器结构,从而彻底解决累加器的“瓶颈”问题,以利于提高单片机的效率。(程序寻址时的多样性)3、B寄存器B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B为乘数。乘法操作后,乘积的高8位存于B中。除法运算时,B为除数。除操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。4、程序状态字(PSW-ProgramStatusWord)程序状态字是一个8位寄存器,用于寄存指令执行的状态信息。其中有些位状态是根据指令执行结果,由硬件自动设置的,而有些位状态则是使用软件方法没定的。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW中有关位的状态,来进行程序转移。PSW的各位定义如下:见20页5.数据指针(DPTR)数据指针为16位寄存器,它是MCS-51中唯一一个供用户使用的16位寄存器。DPTR的使用比较灵活,它既可以按16位寄存器使用,也可以作为两个8位寄存器使用,即DPHDPTR高位字节DPLDPTR低位字节DPTR在访问外部数据存储器时作地址指针使用,由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。此外,在变址寻址方式中,用DPTR作基址寄存器,用于对程序存储器的访问。二.专用寄存器的字节寻址如上所述,MCS-5l的22个专用寄存器中,有21个是可寻址的。这些可寻址寄存器的名称、符号及地址列于表2—3中。对专用寄存器的字节寻址问题作如下几点说明:•21个可寻址的专用寄存器是不连续地分散在内部RAM高128单元之中。尽管还剩余许多空闲单元,但用户并不能使用。如果访问这些没有定义的单元,读出的为不定数,而写入的数被合弃。•·在22个专用寄存器个,唯一一个不可寻址的专用寄存器就是程序计数器(PC)。PC在物理上是独立的,不占据RAM单元,因此是不可寻址的寄存器。•·对专用寄存器只能使用直接寻址方式,在指令中既可使用寄存器符号表示,也可使用寄存器地址表示。三.专用寄存器的位寻址在21个可寻址的专用卑存器中,有11个寄存器是可以位寻址的,即表2—3中在寄存器符号前