首页 理论教育学习单片机多语言编程0起点安霸MCS51系列|

学习单片机多语言编程0起点安霸MCS51系列|

【摘要】:MCS51系列单片机中80C51的专用寄存器共有22个,其中可寻址的为21个。

1.MCS51系列单片机内部结构

MCS51系列单片机是将CPU、程序存储器、各种I/O接口、串行接口电路、定时器/计数器以及中断系统等电路组成并集成在同一块芯片上而得名,又称“微控制器”,其内部系统结构框图如图3-17所示。

978-7-111-47138-7-Chapter03-197.jpg

图3-17 MCS51系列单片机内部结构框图

2.MCS51系列单片机AT89C51与AT89C2051芯片引脚排列图(见图3-18)

978-7-111-47138-7-Chapter03-198.jpg

图3-18 AT89C51和AT89C2051引脚排列图

AT89C51是标准的40引脚双列直插式集成电路芯片,信号引脚定义及简单功能说明简单介绍如下:

1)P0.0~P0.7,P0口8位双向口线;P1.0~P1.7,P1口8位双向口线;P2.0~P2.7,P2口8位双向口线;P3.0~P3.7,P3口8位双向口线。

2)ALE,地址锁存控制信号。

3)PSEN,外部程序存储器读选通信号。

4)EA,访问程序存储器控制信号。

5)RST,复位信号。

6)XTAL1和XTAL2,外接晶体引线端。

7)GND,地线。

8)VCC,+5V电源

AT89C5P3口线的第二功能,见表3-8。

表3-8 P3口线的第二功能

978-7-111-47138-7-Chapter03-199.jpg

3.内部存储器

MCS51系列单片机芯片内部有数据存储器和程序存储器,也就是所谓的内部RAM和内部ROM,由于MCS51系列单片机中内部RAM和ROM存储器的容量和形式不尽相同,为具体起见,我们以AT89C51为例进行说明。

(1)AT89C51内部数据存储器配置图(见图3-19)

978-7-111-47138-7-Chapter03-200.jpg

图3-19 AT89C51内部数据存储器配置图

(2)内部数据存储器低128单元

AT89C51的内部共有256个数据存储器单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。其中低128单元是单片机中供用户使用的数据存储器单元,称之为内部RAM的存储器,按用途可把低128单元可划分为3个区域:

1)寄存器区。内部RAM的前32个单元是作为寄存器使用的,共分为4组,每组有8个寄存器,组号依次为0、1、2、3。每个寄存器都是8位,在组中按R0~R7编号。寄存器常用于存放操作数及中间结果等,由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。

2)位寻址区。内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,总计128位,位地址为00H~7FH。位寻址区是为位操作而准备的,是MCS51位处理器的数据存储空间,其中的所有位均可以直接寻址。位寻址区的位地址见表3-9。(www.chuimin.cn)

通常在使用中,“位”有两种表示方式。一种是以位地址的形式(如表3-9所示),例如,位寻址区的最后一个位是7FH;另一种是以存储单元地址加位的形式表示,例如同样的最后位表示为2FH.7。

表3-9 位寻址区的位地址

978-7-111-47138-7-Chapter03-201.jpg

3)用户RAM区。在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩余80个单元,这就是供用户使用的一般RAM区,其单元地址为30H~7FH。对于用户RAM区,只能以存储单元的形式来使用,其他没有任何规定或限制。但应当提及,在一般应用中常把堆栈开辟在此区中。

(3)内部数据存储器高128单元

内部数据存储器的高128单元是为专用寄存器提供的,因此称之为专用寄存器区,其单元地址为80H~FFH,用于存放相应功能部件的控制命令、状态或数据。因这些寄存器的功能已作专门规定,故而称为专用寄存器(SFR),有时也称为特殊功能寄存器。MCS51系列单片机中80C51的专用寄存器共有22个,其中可寻址的为21个。

1)专用寄存器的字节寻址。80C51的22个专用寄存器中,有21个是可寻址的。在这21个是可寻址的专用寄存器中有11个寄存器是可以位寻址的。现将这些可寻址寄存器的名称、符号及地址列于表3-10中。注意表中寄存器符号前打星号(*)的寄存器可以进行位寻址。

对专用寄存器的字节寻址问题有如下几点说明:

①21个可寻址的专用寄存器是不连续地分散在内部RAM高128单元之中。尽管还剩余许多空闲单元,但用户并不能使用。如果访问了这些没有定义的单元,读出的为不定数,而写入的数会被舍弃。

表3-10 可寻址寄存器的名称、符号和地址

978-7-111-47138-7-Chapter03-202.jpg

②在22个专用寄存器中,唯一一个不可寻址的专用寄存器就是程序计数器(PC)。PC在物理上是独立的,不占据RAM单元,因此是不可寻址的寄存器。

③对专用寄存器只能使用直接寻址方式,在指令中既可使用寄存器符号表示,也可使用寄存器地址表示。

2)专用寄存器的位寻址。AT89C51专用寄存器中可寻址位共有83个,其中许多位还有其专用的名称,寻址时既可使用位地址,也可使用位名称。专用寄存器的可寻址位加上位寻址区的128个通用位,构成了MCS51位处理器的整个数据位存储空间。各专用寄存器的位地址/位名称见表3-11。

表3-11 专用寄存器的位地址/位名称

978-7-111-47138-7-Chapter03-203.jpg

4.内部程序存储器

AT89C51内有4KB ROM存储单元,其地址为0000H~0FFFH,这就是我们所说的内部程序存储器(或简称为内部ROM)。在程序存储器中有一组特殊的保留单元0000H~002AH,使用时应特别注意。其中0000H~0002H是系统的启动单元。因为系统复位后,PC变为0000H,单片机从0000H单元开始取指令执行程序。使用时应当在这三个单元存放一条无条件转移指令,以便直接转去执行指定的程序。而0003H~002AH共40个单元被均匀地分为五段,每段8个单元,分别作为五个中断源的中断地址区。具体划分如下:

1)0003H~000AH,外部中断0中断地址区。

2)000BH~0012H,定时器/计数器0中断地址区。

3)0013H~001AH,外部中断1中断地址区。

4)001BH~0022H,定时器/计数器1中断地址区。

5)0023H~002AH,串行中断地址区。

中断响应后,系统能按中断种类,自动转到各中断区的首地址去执行程序。因此在中断地址区中应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此一般也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址去。

5.MCS51系列单片机系统的存储器结构特点

单片机存储器的结构与微型计算机的存储器有很大不同。MCS51系列单片机的存储器结构有两个重要的特点:一是把数据存储器和程序存储器分开;二是存储器有内外之分。对于面向控制应用且又不可能具有磁盘的单片机系统来说,程序存储器是至关重要的,数据存储器也不可少。为此,单片机的存储器分为数据存储器和程序存储器,其地址空间、存取指令和控制信号各有一套。单片机应用系统的存储器除类型不同外,还有内外之分,即有片内存储器和片外存储器。片内存储器的特点是使用方便,对于简单的应用系统,有时只使用片内存储器就是够了。但片内存储器的容量受到限制,程序存储器一般只有4KB,数据存储器也就是128个单元,这对于复杂一点的应用是不够的。为此,单片机应用系统时常需要在芯片之外另行扩展存储器。为了与芯片内固有的存储器区别,通常把扩展的存储器称之为外部存储器。为了扩展外部存储器,单片机芯片的引脚已经做了预先准备。例如通过口线最多可提供16位地址,对外部存储器的寻址范围达64KB。此外还有一些引脚信号也是供存储器扩展使用的,例如ALE信号用于外部存储器的地址锁存控制,PSEN信号用于外部程序存储器的读选通,EA信号用于内外程序存储器的访问控制等。总的来说,由芯片内存储器和芯片外扩展存储器构成了单片机应用系统的整个存储器系统。

由于本书篇幅有限,对单片机的硬件结构和原理就不做进一步详细讲述了。