《单片机原理及应用(C语言版)205628》由会员分享,可在线阅读,更多相关《单片机原理及应用(C语言版)205628(123页珍藏版)》请在金锄头文库上搜索。
1、单片机原理及应用(C语言版)第2章 MCS-51单片机结构与原理主 编:周国运 本章制作:周国运中国水利水电出版社第2章 MCS-51单片机结构与原理目 录2.1 MCS-51单片机结构及CPU 2.2 MCS-51单片机引脚与总线结构 2.3 MCS-51单片机的存储器结构 2.4 MCS-51单片机的输入输出端口 2.5 MCS-51单片机的时钟及CPU时 序 2.6 MCS-51单片机的工作方式第2章 MCS-51单片机结构与原理本章讨论MCS-51单片机的结构和工作原 理,内容主要有MCS-51单片机结构、引脚 信号、存储器配置、输入/输出端口、时钟 与CPU时序,以及单片机的工作方式
2、等。 本章是单片机的基本内容,为学习后面 各个章节的基础,也是从事单片机应用开 发的基础。2.1 MCS-51单片机内部结构及CPU 主要内容2.1.1 MCS-51单片机的功能结构及特 点 2.1.2 MCS-51单片机的内部原理结构 2.1.3 MCS-51单片机的CPU2.1.1 MCS-51单片机的功能结构及特点 MCS-51单片机的内部功能结构如下页 图所示,图中是以增强型单片机的结构 为对象。 从图中可以看到,MCS-51单片机在一 块芯片中集成了微型计算机所具有的所 有部件,从功能的角度来看,主要包括9 个部分。 图2.1 MCS-51(增强型)单片机功能结构图时钟信号源外部事件
3、信号BUS时钟电路8KB Flash ROM256B RAM 128B SFR16位3个 定时/计数器64KB总线 扩展控制器可编程 并行口可编程全 双工串行口CPU中断控制器外中断8位4个并行口串行通信总线控制BUS2.1.1 MCS-51单片机的功能结构及特点 2.1.1 MCS-51单片机的功能结构及特点 MCS-51单片机内部主要包括9个部分: 一个8位的微处理器CPU 8KB的片内程序存储器Flash ROM 256B的片内数据存储器RAM、128B特殊功 能寄存器(SFR) 3个16位的定时器/计数器 有一个管理6个中断源的中断控制器 4个8位并行I/O端 一个全双工的串行接口(U
4、ART) 片内振荡电路和时钟发生器 可扩展64KB程序、64KB数据存储器的三总 线控制电路2.1.2 MCS-51单片机的内部原理结构MCS-51单片机的内部原理结构如图2-2 所示。 与图2-1比较,主要的区别是画出了CPU 的内部结构,图中的中间部分除了“定时 器、串行口”大方框之外都属于CPU部件 。 下面先介绍CPU部分,对于其它部件, 将在本章和后面的章节讲解。 图2-2 MCS-51(增强型)单片机原理结构图XTAL2 XTAL1P3.0P3.7P1.0P1.7RAM 地址端口0驱动器端口2驱动器8KB Flash ROM端口0锁存器端口2锁存器端口1驱动器端口3驱动器端口1锁存
5、器端口3锁存器暂存器1SPPSWB寄存器暂存器2ACC256BRAM 128B SFR缓冲器PC加1PC程序地址寄存器DPTR定时器、串行口 中断部件及 特殊功能寄存器地址总线数据总线 P2.0P2.7Vcc GND指令寄存器 指令译码器 指令控制器P0.0P0.7PSEN ALE EA RST ALU2.1.3 MCS-51单片机的CPUMCS-51单片机内部有一个功能强大的8 位CPU,它包含两个基本部分,运算器和 控制器。 一、运算器 运算器包括:算术和逻辑运算部件ALU (Arithmetic Logic Unit) 以及累加器ACC、寄存器B、暂存器1、 暂存器2、程序状态字寄存器P
6、SW、布尔处 理器等。2.1.3 MCS-51单片机的CPU1、算术逻辑运算部件ALU ALU可以对4位(半字节)、8位(一字 节)和16位(双字节)数据进行操作。 这些操作可以是: 算术运算:加、减、乘、除、加1、减1 、BCD码数的十进制调整及比较等; 逻辑运算:与、或、异或、求补及循环 移位等。 2.1.3 MCS-51单片机的CPU2、累加器ACC ACC在CPU结构中占有特殊的位置,所 以ACC在指令中使用的非常多。ACC既做源操作数又做目的操作数,如 在加、减、乘、除算术运算指令中,在与 、或、异或、循环移位逻辑运算指令等。 ACC也作为通用寄存器使用,并且可以 按位操作,所以AC
7、C是一个用处最多、最 忙碌的寄存器。 在指令中用助记符A来表示。 2.1.3 MCS-51单片机的CPU3、B寄存器 B做专门应用:在乘、除运算时,用来存 放一个操作数,并且存放运算后的部分结 果。 B做一般应用:在非乘、除运算中,B可 以作为通用寄存器使用。 B可以按位操作2.1.3 MCS-51单片机的CPU4、程序状态字PSW 功能:用于设定CPU的状态和指示指令 执行后的状态。 PSW相当于其它微处理器中的标志寄 存器。格式如下:PSW (D0H)D7D6D5D4D3D2D1D0 CYACF0RS1 RS0 OVF1P图2-3 程序状态字PSW格式2.1.3 MCS-51单片机的CPU
8、CY(PSW.7):进位、借位标志 在做位操作(布尔操作)时CY作为位累加器。在指令中用C代替CY AC(PSW.6):半进位、半借位标志, 也称为辅助进位标志 F0、F1(PSW.5 、PSW.1):用户标志 位,留给用户使用D7D6D5D4D3D2D1D0 CYACF0RS1 RS0 OVF1P2.1.3 MCS-51单片机的CPUOV(PSW.2):溢出标志位 有以下几种情况: 加减运算: OV1表示结果超出了8位有符号 数的有效范围(128127),对无符 号数OV没有意义。 无符号数乘法运算: OV1表明结果超出了8位数无符号数除法运算: OV1表明除数为02.1.3 MCS-51单
9、片机的CPUP(PSW.0):累加器A的奇偶标志位 P表示累加器A中1的个数的奇偶性 P1,A中有奇数个1 P0,A中有偶数个12.1.3 MCS-51单片机的CPURS1、RS0(PSW.4 和PSW.3):工作 寄存器组选择控制位。 工作寄存器:R0、R1、R7表2-1 RS1、RS0的组合关系RS1 RS0工作寄存器组 片内RAM地址 0 0第0组00H07H 0 1第1组08H0FH 1 0第2组10H17H 1 1第3组18H1FH2.1.3 MCS-51单片机的CPU5、布尔处理器布尔处理器以PSW中的进位标志位CY作 为位累加器(用C表示)。 功能:专门用于处理位操作。MCS -
10、51单片机有丰富的位处理指令:如置位、 位清0、位取反、判断位值(为1或为0)转 移,以及通过C(指令中用C代替CY)做位 数据传送、位逻辑与、位逻辑或等位操作。 2.1.3 MCS-51单片机的CPU二、控制器 控制器包括程序计数器PC、指令寄存器 IR、指令译码器ID,以及时钟控制逻辑、 堆栈指针SP、地址指针DPTR等。 1、程序计数器PC PC是一个具有自加1功能的16位的计数器 PC的内容是将要执行的下一条指令的地 址 改变PC的内容就改变了程序执行的顺序2.1.3 MCS-51单片机的CPU2、指令寄存器IR和指令译码器ID IR:存放从Flash ROM中读取的指令 ID:进行译
11、码,产生一定序列的控制信 号,完成指令所规定的操作。 3、堆栈 (1)堆栈的概念 堆栈是在RAM中专门开辟的一个特殊用 途的存储区。 (2)堆栈的访问原则: “先进后出”、“ 后进先出” 。即先进入堆栈的数据后移出 堆栈,即后进入堆栈的数据先移出堆栈。2.1.3 MCS-51单片机的CPU(3)堆栈的结构 堆栈的一端的地址是固定的,称为栈底 ;另一端的地址是动态变化的,称为栈顶 。 (4)堆栈的操作方式 堆栈有两种操作方式:数据进栈和数据 出栈。 进栈和出栈都是在栈顶进行进栈和出栈都是在栈顶进行,这就必然 是按照“先进后出”、“后进先出”的方式存 取数据。2.1.3 MCS-51单片机的CPU
12、(5)堆栈的应用 主要是用来暂时存放数据,有两种情况 使用堆栈: 一是CPU自动使用堆栈,当调用子程序 或响应中断,处理中断服务程序时,CPU 自动将返回地址存放到堆栈中; 通过堆 栈传递参数。 二是程序员使用堆栈,用堆栈暂时存放 数据。2.1.3 MCS-51单片机的CPU4、堆栈指针SP 堆栈指针SP(Stack Pointer)中为栈顶 的地址,即SP指向栈顶。 SP是访问堆栈的间址寄存器 SP具有自动加1、自动减1功能。当数据 进栈时,SP先自动加1,然后CPU将数据 存入;当数据出栈时,CPU先将数据 送出,然后SP自动减1。2.1.3 MCS-51单片机的CPU下图是数据进栈的情况
13、 数据从栈顶进入开始状态 58进栈后的状态A6,7B进栈后的状态 E7E7E7 E6E6E6 SPE5SPE5SPE5E1E4E2E4E4E4 E3E3E3 E2E258E2 36E136E136E1 21E021E021E058A67B2.1.3 MCS-51单片机的CPU由于进栈时SP的值增加,即堆栈向地 址大的方向生长,并且栈顶是有效数据 ,这种堆栈是满递增型堆栈。7B出栈后的状态A6、58、36出栈后的状态 E7E7 E6E6 SPE5SPE5 E37BE4E07BE4 A6E3A6E3 58E258E2 36E136E1 21E021E07B A6 58 362.1.3 MCS-51
14、单片机的CPU5、数据指针DPTR DPTR是唯一的16位寄存器。 DPTR既可以作为一个16位寄存器使用 ,也可以作为两个独立的8位寄存器使用 。其高字节寄存器用DPH表示,低字节寄 存器用DPL表示。 DPTR的用途: (1)主要用于存放16位地 址,以便对64KB的片外RAM和64KB的程 序存储空间作间接访问。 (2)其次用于存 放数据,作为一般寄存器使用。2.2 MCS-51单片机引脚与总线结构 主要内容2.2.1 MCS-51单片机引脚信号及功能 2.2.2 MCS-51单片机外部总线结构2.2.1 MCS-51单片机引脚信号及功能 封装: 40DIP, 44PLCC。 常用40D
15、IP 40个引脚分 为4类: l 电源引脚 l 晶振引脚 l 控制信号 l 输入/输出引 脚T2/P1.0 T2EX/P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 Vss89C51 89C5240 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 211 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1
16、8 19 20Vcc P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA/VPP ALE/PROG PSEN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A82.2.1 MCS-51单片机引脚信号及功能 一、电源引脚 Vcc(40脚):接5V电源正端 Vss(20脚):接5V电源地端二、晶振引脚 XTAL1(19脚) XTAL2(18脚)晶 振 XTAL2XTAL1单片机C1 C2 18 19 2.2.1 MCS-51单片机引脚信号及功能 三、控制信号引脚 1、RST/VPD(9脚) RST:复位信号输入端,高电平有效。 单片机正常