单片机原理及应用(胡乾斌)第二章

上传人:ji****n 文档编号:54360485 上传时间:2018-09-11 格式:PPT 页数:73 大小:14.74MB
返回 下载 相关 举报
单片机原理及应用(胡乾斌)第二章_第1页
第1页 / 共73页
单片机原理及应用(胡乾斌)第二章_第2页
第2页 / 共73页
单片机原理及应用(胡乾斌)第二章_第3页
第3页 / 共73页
单片机原理及应用(胡乾斌)第二章_第4页
第4页 / 共73页
单片机原理及应用(胡乾斌)第二章_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《单片机原理及应用(胡乾斌)第二章》由会员分享,可在线阅读,更多相关《单片机原理及应用(胡乾斌)第二章(73页珍藏版)》请在金锄头文库上搜索。

1、第二章 MCS-51单片机的内部结构,2.1 MCS-51系列单片机的内部结构 2.2 MCS-51的寻址空间与存储器结构 2.3 MCS-51的并行I/O口 2.4 CPU时序及辅助电路,2.1 MCS-51单片机逻辑结构与引脚功能,一、MCS-51系列单片机的基本组成,8051单片机包括:,面向控制的8位CPU和指令。 4K字节的程序存储器(ROM或EPROM)。 128字节的数据存储器。 可编程并行I/O口PO-P3,有32位双向输入/输出线。 一个全双工串行口。 两个16位定时器/计数器。 五个中断源,两个中断优先级的中断结构。 一个片内时钟振荡器和时钟电路。 可寻址64K字节的程序存

2、储器和64K字节的外部数据存储器。,二、MCS-51系列单片机的内部结构,MCS-51系列单片机的内部结构框图,8051单片机按其逻辑功能可分为运算器、控制器、存贮器、I/O口几大部分,其中:,DPTR(数据存贮器指针):为指示RAM的地址而设置的16位寄存器; B(乘法寄存器):作乘法运算使用的寄存器,亦可作一般用途; SP堆栈指针:用来指示堆栈的栈顶地址; 特殊功能寄存器:是为存放内部器件的工作方式和状态信息而设置的寄存器,8051单片机内共有21个特殊功能寄存器,在结构上它们也是片内RAM的一部分,只不过指定作特殊用途而已。,通用寄存器:供用户直接使用的数据寄存器,单片机内共有128个通

3、用寄存器,其中包括四组工作寄存器(R0-R7),共有32个存贮单元。这些通用寄存器除了按字节操作外,其中有一部分(地址20H-2FH)能按位进行操作。 由于单片机的RAM具有多种用途,而且一般在单片机系统中还扩展有片外的ROM和RAM,因此其存贮器系统的结构具有一定的特点。,1、CPU,CPU由运算器、控制器及一些特殊功能寄存器组成、其结构形式与工作原理和一般的微处理器相同。可执行下述算术/逻辑运算。 1.1、运算器算术与逻辑运算部件ALUALU由加法器和其他逻辑电路等组成。它的功能是,完成各种算术运算和逻辑运算,它可以进行加、减、乘、除、加1、减1、比较等算术运算和与、或、非、异或、取反、取

4、补等逻辑运算。以及循环移位、位操作等。,带进位和不带进位的加法 带进位的减法 两个八位无符号数的乘法和除法 加1或减1操作 逻辑“与”、“或”、“异或”操作、字节取反操作 左右循环移位操作 半字节交换 二十进制(BCD码)调整 比较和条件转移的判断等操作 “位”操作:置位、清零、取反、条件判断、逻辑“与”、“或”等操作,寄存器,累加器ACC累加器ACC,简称累加器A,它是一个8位寄存器,通过暂存器与ALU相连,在算术运算和逻辑运算时,通常用累加器A存放一个参加操作的数,作为ALU的一个输入,而ALU的运算结果又存入累加器A中。 寄存器B寄存器B一般用于乘、除法指令,它与累加器A配合使用。运算前

5、,寄存器B中存放乘数或除数;运算后,B中保存了乘积的高位字节或商的余数部分。此外,寄存器B可作为存放中间结果的暂存寄存器使用。,程序状态字寄存器PSW 运算操作过程中的一些状态信息存放在程序状态字寄存器PSW中,PSW寄存器的字节地址是DOH,PSW各位的符号与定义如下:C进位标志(CY),有进位或借位时,C=1,否则C=0; Cy=1提示无符号数运算超出范围。在进行位操作时,CY作为位累加器C,也称为布尔累加器。此外,循环移位指令和比较转移指令也会影响CY标志。 AC辅助进位标志,当累加器中A3向A4有进位或错位时AC=1,否则AC=0;F0用户标志位,可由用户置“1”,或置“0”,作为某一

6、种状态的标志;,OV溢出标志,计算机中,带符号数通常是用补码表示的对于单字节二进制补码,其所能表示数的范围是 -128到 +127,如果运算结果超出了这个数值范围,就称为溢出。 一般两个同号数相加或两个异号数相减,有可能发生溢出; 而两个同号数相减或两个异号数相加,则不会发生溢出。,当两个正数相加,若和超过+127时,其结果的符号由正变负,即得出负数,这时OVl。同理,两负数相加,结果应为负数,但因和数为-241-l28,有溢出而使结果为正数,此时OV=1。,在乘法运算时,OV=1表示结果超过了255,即乘积分别在寄存器B和A中;反之表示乘积在A中。 在除法运算时,OV=1表示除数为0,不能进

7、行除法,反之除数不为0,可以进行除法。,P奇偶标志,累加器A中“1”的个数为奇数时P=1,否则P=0; RS1,RS0:工作寄存器组选择控制位。 0 0 0组(内部RAM地址00H07H) 0 1 1组(内部RAM地址08H0FH) 1 0 2组(内部RAM地址10H17H) 1 1 3组(内部RAM地址18H1FH)MCS51单片机的零标志z不包含在PSW寄存器中,而直接安排在累加器A中,1.2 控制器,程序计数器PC程序计数器PC(Program Counter)是16位专用寄存器,其内容表示下一条要执行的指令时,PC的内容有自动加1的功能。当CPU顺序地执行指令时,PC的内容以增量的规律

8、变化着,于是当一条指令取出后,PC就指向下一条指令的地址,如果不按顺序执行指令,转移到某地址再继续执行指令,这时在跳转之前必须将转向的程序的入口地址送往程序计数器,以便从该入口地址开始执行程序。由此可见,PC实际上是一个地址指示器,改变PC中的内容就可以改变指令执行的次序,即改变程序执行的路线。当系统复位后,PC=0000H,CPU便从这一固定的入口地址开始执行程序。,堆栈指针SP堆栈是为暂存数据或返回地址而在RAM区专门开辟的一个数据存放区,并按照“后进先出”的原则进行操作。堆栈指针SP(Stack Pointer)是一个8位寄存器,用它存放栈顶的地址。进栈时,SP自动加1,将数据压入SP所

9、指定的地址单元;出栈时,将SP所指示的地址单元中的数据弹出,然后SP自动减1,因此,SP总是指向栈顶。系统复位后,SP初始化为07H,所以第一个压入堆栈的数据存放到08H单元,即堆栈区为从07H单元开始的一部分连续存储单元。,SP的内容是可编程的,因而可将堆栈区定位到内部数据存储器的任意位置。堆栈的大小可用“深度”表示,用户在设定堆栈区时应该考虑到堆栈的深度,以便能满足子程序嵌套时的需要。,数据指针DPTR数据指针DPTR(Data Pointer)是一个16位的地址寄存器,专门用来存放16位数据存储器的地址,以便对外部数据存储器RAM读写数据,作间接寄存器使用。它可指向64K字节范围内的任一

10、存储单元,也可以分成高字节DPH和低字节DPL两个独立的8位寄存器,这为修改DPTR的内容提供了方便。 指令寄存器、指令译码器和CPU定时控制CPU从程序存储器内取出的指令首先要送到指令寄存器,然后送入指令译码器,由指令译码器对指令进行译码,即把指令转变成执行该指令所需要的信号,使计算机正确地执行程序所要求的各种操作。,三、 MCS-51 单片机的引脚功能,40只引脚双列直插封装(DIP),44只引脚方形封装方式为(4只无用),40只引脚按其功能来分,可分为3类:(1)电源及时钟引脚: Vcc、Vss;XTAL1、XTAL2。(2)控制引脚: /PSEN、/EA、ALE、RESET (即RST

11、)。(3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚。 电源引脚(1)Vcc:+5V电源;(2)Vss:接地。 时钟引脚 (1)XTAL1(19脚):如果采用外接晶体振荡器时,此引脚应接地。(2) XTAL2 (18脚):接外部晶体的另一端。,并行I/O:共4个口,32根I/O线。P0口:8位双向I/O口。 当使用片外存储器(ROM及RAM)时,作低八位地址和数据总线分时复用。能驱动8个LSTTL负载。P1口:8位、准双向I/O口。P2口:8位、准双向I/O口。当使用片外存储器(ROM及RAM)时,输出高8位地址。P2口可以驱动4个LSTTL负载。P3口:8位、准双向I

12、/O口,具有内部上拉电路。P3提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置1。P3口可以驱动4个LSTTL负载。,串行口: P3.0RXD串行输入口 P3.1TXD串行输出口 中断: P3.2外部中断0输入 P3.3外部中断1输入 定时器/计数器: P3.4定时器/计数器T0的外部输入 P3.5定时器/计数器T1的外部输入 数据存储器选通: P3.6WR低电平有效,输出,片外存储器写选通。 P3.7RD低电平有效,输出,片外存储器读选通。,控制线 RST/VPD复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。其第二功能为备用电源输入端

13、。 EA/Vpp片外程序存储器访问允许信号,低电平有效。EA=1,选择片内程序存储器(8051为4KB,80C52为8KB);EA=0,则程序存储器全部在片外而不管片内是否有程序存储器。其第二功能Vpp为编程电压输入端,使用8751编程时,施加21V的编程电压。,ALE/PROG地址锁存允许信号,输出。在访问片外存储器或I/O时,用于锁存低八位地址,以实现低八位地址与数据的隔离。由于ALE以1/6的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。在EPROM编程期间,作输入。输入编程脉冲(PROG)ALE可以驱动8个LSTTL负载。 PSEN片外程序存储器读选通信号,低电平有效。

14、在从片外程序存储器取指期间,在每个机器周期中,当有效时,程序存储器的内容被送上P0口(数据总线)。,四、MCS-51的外部总线结构,2.2 MCS-51的寻址空间与存储器结构,8051在物理结构上有四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。在逻辑上,8051有三个存储空间:片内外统一编址的64K字节的程序存储器地址空间(用16位地址)、片内128字节的数据存储器地址空间(用8位地址)、片外64K字节的数据存储器地址空间。在访问这三个不同的逻辑空间时,应采用不同的指令。,2.2 MCS-51的寻址空间与存储器结构,一、程序存储器,EA引脚接高电平时,程序从片内

15、程序存储器0000H开始执行,即访问片内存储器;当PC值超出片内ROM容量时,会自动转向片外程序存储器空间执行。EA引脚接低电平时,迫使系统全部执行片外程序存储器0000H开始存放的程序。对8031,由于片内无ROM/EPROM,必须使EA=0,程序存储器只能片外扩展,即0000H-FFFFH都是指向片外EPROM的。,在程序存储器中,有六个地址单元被保留用于某些特定的地址,如表所示。,表 5种中断源的中断入口地址外部中断0 0003H定时器0 (T0) 000BH外部中断1 0013H 定时器1 (T1) 001BH 串行口 0023H,单片机复位后,程序计数器PC的内容为0000H,即系统

16、从0000H单元开始执行程序。一般在0000H-0002H单元存放一条绝对转移指令,而用户设计的主程序应从跳转后的地址开始存放,以便CPU复位后,PC从0000H起始地址跳转到用户程序去执行。5个中断源的中断入口地址间隔都只有8个单元,存放中断服务程序往往是不够用的。所以通常在这些入口存放一条绝对转移指令,使程序转到相应的中断服务程序的起始地址。,二、数据存储器,数据存储器用于存放运算的中间结果、数据暂存和缓冲以及标志位等。所以数据存储器由读写存储器RAM构成。8052片内RAM有256字节,片外最大可扩展64K字节RAM。片内和片外RAM是独立编址的,用不同的指令来访问不同的数据存储器,即用MOV指令访问片内RAM,而用MOVX指令访问片外RAM。 片内数据存储器片内数据存储器的配置如图所示。片内数据存储器为8位地址,(8052)最大可寻址256个单元(00H-FFH),这是最灵活的地址空间。它由工作寄存器区、位寻址区和数据缓冲区组成,不同的地址区域内,功能不完全相同。,

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

当前位置:首页 > 生活休闲 > 社会民生

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