单片机C语言程序设计 教学课件 ppt 作者 侯殿有 3.11

上传人:E**** 文档编号:89354374 上传时间:2019-05-23 格式:PPT 页数:93 大小:509KB
返回 下载 相关 举报
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.11_第1页
第1页 / 共93页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.11_第2页
第2页 / 共93页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.11_第3页
第3页 / 共93页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.11_第4页
第4页 / 共93页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.11_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《单片机C语言程序设计 教学课件 ppt 作者 侯殿有 3.11》由会员分享,可在线阅读,更多相关《单片机C语言程序设计 教学课件 ppt 作者 侯殿有 3.11(93页珍藏版)》请在金锄头文库上搜索。

1、第十一章 MCS-51单片机系统扩展,11.1 MCS-51系列单片机介绍,MCS-51单片机是美国intel公司在1980年推出的高性能8位单片机,它有51 和52两个系列。 对于51系列,主要有8031、8051、8751三种机型,它们的引脚和指令系统完全相同,只是片内程序存储器的容量不同,8031芯片内部没有ROM,8051芯片内部代4KB的ROM,8751芯片内部代4KB的EPROM。51子系列的特点是:,18位CPU。 2片内代128B的数据存储器。 3程序存储器寻址空间为64KB。 4数据存储器寻址空间为64KB。 5128个用户可以按“位”寻址的位空间。 621个特殊功能寄存器。

2、 74个8位的I/O口。 8两个16位的定时/计数器。 9两个优先级的5个中断源。 10一个全双工的串行接口。 11片内带振荡器电路,频率范围1.2M12M,外加晶振就可工作。 12单一+5V电源。,对于52系列,有8032、8052、8752三种机型,与51系列不同在于片内数据存储器增加到256B;8032芯片内部不代ROM,8052芯片内部代8KB ROM,8752芯片内部代8KB EPROM。52系列芯片内部代3个16位的定时/计数器,6个中断源。 在实际使用中,由于8031(8032)内部没有ROM,8051(8052)内部仅代ROM,不方便程序修改,在不需要系统扩展的嵌入式控制系统中

3、,8751(8752)使用较多。 美国ATMEL公司生产的AT89C51(AT89C52)系列单片机内部代4K(8K) Flash,目前在8位机市场上使用也非常广泛。 由于8051是最早、最典型的产品,其它的单片机系列多是在8051的基础上进行功能增减,所以本书以8051为例来讲述MCS-51系统单片机的C语言程序设计。,11.2 MCS-51单片机的外部引脚和总线,MCS-51系列单片机有40个引脚,采用双列直插式封装,具体如图11.1所示。各引脚功能介绍如下:,11.2.1 输入/输出引脚,1P0口(引脚3932) P0口包括P0.0P0.7共8个引脚,在不扩展I/O口和片外存储器时,做I

4、/O口使用;在有I/O扩展或片外存储器时,分时做8位数据线和地址总线的低8位(A0A7)。 2P1口(引脚18) P1口包括P1.0P1.7共8个引脚,是MCS-51单片机唯一的专用I/O口线。在简单的嵌入式控制系统中,经常用它来控制外围设备。,3P2口(2128脚) P2口包括P2.0P2.7 8个引脚,在系统进行存储器扩展时做地址总线的高8位(A8A15),如果存储器扩展时不需要16位地址总线,如扩展容量小于64K时,省下的P2口可做普通I/O口线。 4P3口(1017脚) P3口包括P3.0P3.7 8个引脚,除做普通I/O口线外,每个引脚还有第二功能,详见7.1.4节介绍。,11.2.

5、2 MCS-51单片机的控制线,MCS-51单片机的控制线主要有: 1ALE/PROG(30脚) 该信号是地址锁存信号输出端,ALE在每个机器周期输出两次,在访问片外程序存储器时,下降沿用于锁存P0口输出的地址总线低8位(A0A7),在不访问片外程序存储器时,可做为时钟脉冲使用或做定时。在访问片外数据存储器时,ALE脉冲会跳空一次,此时不能做时钟脉冲。对于有片内EPROM的51单片机,该引脚做编程脉冲PROG的输入端。 2(29脚) 片外程序存储器读选通信号,低电平有效。在从片外程序存储器读指令或数据时,该信号每个机器周期有效两次,指令或数据通过P0口读回。在访问片外数据存储器时,该信号无效。

6、,3 RST/(9脚) RST是复位信号,高有效,当RST保持10ms以上高电平,可保证系统可靠复位。是备用电源,该引脚可接备用电源,当故障或系统电压过低时保证RAM中数据不丢失。 4/(31引脚) 是片外程序存储器选择端,=0,选片外程序存储器,=1,选片内程序存储器。 是片内EPROM编程电源,一般接+21V 5和(40和20引脚) 是+5V,是5V地 6XTAL1和XTAL2(19和18脚) 外接晶振,MCS-51常用6M或11.0592M。,11.2.3 MCS-51单片机的片外总线,MCS-51单片机很多引脚是为了系统扩展而设的,这些引脚构成了片外地址总线、数据总线和控制总线,其中:

7、 1地址总线 地址总线宽度为16位,可以访问64K的存储器空间。由P0经锁存器提供地址总线的低8位(A0A7),由P2提供地址总线的高8位(A8A15)。 2数据总线 数据总线宽度为8位,由P0口提供。 3控制总线 控制总线由P3口在第二功能状态下提供,此外还有RST、ALE和四根控制线。,11.2.4 MCS-51单片机存储器结构,MCS-51单片机存储器分程序存储器和数据存储器两种,每种存储器又有片上和片外之分。下面分别介绍。 1程序存储器 (1)程序存储器的编址与访问 程序存储器用于存放单片机工作时的程序,单片机工作时先由用户编制好程序和表格、常数,把它存放在程序存储器中,然后在控制器的

8、控制下,一次从程序存储器中取出指令送到CPU中执行,实现相应的功能。为此,设有一个专用的程序计数器PC,用以存放要执行的指令的地址,它具有自动计数的功能,每取出一条指令,它的内容会自动加1,以指向下一条要执行的指令,从而实现从程序存储器中依次取出指令来执行。由于MCS-51单片机的程序计数器为16位,因此,程序存储器地址空间为64KB。,MCS-51单片机的程序存储器,从物理结构上可分为片内和片外二种,对于片内程序存储器,在MCS-51系列中,不同的芯片各不相同,8031 和8032 内部没有ROM,8051内部有4KB的ROM,8751内部有4KB的EPROM,8052内部有8KB 的ROM

9、, 8752内部有8KB 的EPROM。 对于内部没有ROM的8031 和8032芯片,工作时只能扩展外部ROM,最多可扩展64KB,地址范围为0x00000xffff,对于内部有ROM 的芯片,根据情况也可以宽展外部ROM ,但内部的ROM和外部的ROM共用64KB的存储空间。其中,片内程序存储器地址空间和片外程序存储器的低地址空间重叠。51 子系列重叠区域为0x00000x0fff,52子系列重叠区域为0x00000x1fff,MCS-51 程序存储器编址如图11.2所示。,单片机在执行指令时,对于低地址部分,是从片内程序存储器取指令,还是从片外程序存储器取指令,是根据单片机芯片上的片外程

10、序存储器选用引脚电平的高低来决定的,接低电平,则从片外程序存储器取指令,接高电平,则从片内程序存储器取指令。对于8031和8032芯片,只能保持低电平,指令只能从片外程序存储器取得。 (2) 程序存储器的7个特殊地址 在64KB程序存储器中,有7个单元有特殊用途,第一个单元是0x0000单元,因MCS-51系列单片机复位后PC的内容为0x0000 ,故单片机复位后将从0x0000 单元开始执行程序。程序存储器的0x0000单元地址是系统程序的启动地址,用户一般放一条绝对转移指令,转到用户设计的主程序的起始地址。另外6个单元对应于6个中断源(51子系列为5个)。分别对应中断服务程序的入口地址,具

11、体情况如表11.1所示。在用C51编中断服务程序时这些地址是看不到的,而是用中断向量号来代表,具体情况如表11.1所示。,表11.1所示的6个地址之间仅隔8个单元,用于存放中断服务程序往往不够用。用汇编语言编程这里通常放一条绝对转移指令,转到真正的中断服务程序。用C51编程则由编译器决定,用户不用考虑。,2数据存储器 数据存储器在单片机中用于存取程序执行时所需的数据,它从物理结构可分片上数据存储器和片外数据存储器。两个部分在编址和访问方式上各不相同,其中片内数据存储器又可分为多个部分,采用多种方式访问。 (1)片内数据存储器 MCS-51系列单片机的片内数据存储器除了RAM块外,还有特殊功能寄

12、存器(SFR)块。对于51 子系列,前者有128 个字节,编址为0x000x7f;后者也占128个字节,编址为0x800xff;二者连续不重叠。对于52子系列,前者有256 字节,编址为0x000xff;后者也有128 字节,编址为0x800xff;后者与前者的后128 字节编址重叠,访问时通过不同的指令相区分。,片内数据存储器按功能可分为以下几个组成部分:工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包括堆栈区。具体分配情况如图11.3所示。 工作寄存器组区 0x000x1f单元为工作寄存器组区,共32个字节,工作寄存器也称为通用寄存器,用于临时寄存8位信息。工作寄存器共有

13、4组,称为0组、1组、2组和3组。每组8个寄存器,依次用R0R7 表示。也就是说, R0可能表示0 组的第一个寄存器(地址为0x00),也可能表示1组的第一个寄存器(地址为0x08),还可能表示2组、3组的第一个寄存器(地址分别为0x10,0x18),使用哪一组当中的寄存器由程序状态寄存器PSW中的RS0和RS1两位来选择。,在用C51编程时仅在编写中断服务函数时可以选择使用哪一组工作寄存器组。就是在中断向量后面加一个03的数字表示使用0组3组的工作寄存器组。但我们也可以不加这个数字,由编译器自动选择。,位寻址区 0x200x2f为位寻址区,共16字节,128位。这128位每位都可以按位方式使

14、用,每一位都有一个位地址,位地址范围为0x000x7f ,用C51编程在用到位变量时我们只是通过bit来定义,具体这个位变量存放在什么地址是由编译器决定的。就是说我们可以使用位变量,但可以不管它门的地址。位寻址区地址分配如表11.2示。 一般RAM区 0x300x7f是一般RAM区,也称为用户RAM区,共80字节,对于52子系列,一般RAM区从0x300xff单元。另外,对于前两区中未用的单元也可做为用户RAM单元使用。, 堆栈区与堆栈指针 堆栈是按先入后出、后入先出(FILO)的原则进行管理的一段存储区域。在MCS-51单片机中,堆栈占片内数据存储器的一段区域。在用C51编程时由编译器管理堆

15、栈区与堆栈指针。 (2)特殊功能存储器 特殊功能存储器(SFR)也称专用寄存器,专门用于控制、管理片内算术逻辑部件、并行I/O接口、串行口、定时/计数器、中断系统等功能模块的工作。用户在编程时可以给其设定值,但不能移作他用。SFR分布在0x800xff的地址空间,与片内数据存储器统一编址。除PC外,51子系列有18个特殊功能寄存器,其中3个为双字节,SFR共占用21个字节;52 子系列有21个特殊寄存器,其中5个是双字节,SFR共占用26 个字节。他们的分配情况如下: CPU专用寄存器:累加器A,寄存器B,程序状态寄存器PSW,堆栈指针SP,数据指针DPTR。,并行接口:P0P3 串行接口:串

16、行控制寄存器SCON,串口数据缓冲器SBUF,电源控制寄存器PCON。 定时/计数器:方式寄存器TMOD,控制寄存器TCON,初值寄存器TH0、TL0;TH1、TL1。 中断系统:中断允许寄存器IE,中断优先寄存器IP。 特殊功能寄存器的名称、在C51中引用方法见表11.3。有一些特殊功能寄存器在C51中是看不到的,表中没列出。 在C51中,特殊功能寄存器在头文件“reg51.h”中定义,使用这些特殊功能寄存器,在程序中必须引用这个头文件。特殊功能寄存器除累加器A和寄存器B是通用寄存器,在程序中可以随便使用外,其它特殊功能寄存器都是专用的,不能移做它用。,在表11.3中,特殊功能寄存器P0、P1、P2、P3、A、B可以使用字节符号按字节引用,也可以按位引用,编译器规定按位引用格式是:字节符号位,如表中所示,例如引用P0的D0位,使用P00,但这样做在程序中容易和异或符号“”混淆,直接用“”引用,编译器会报错,所以要用位变量sbi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号