《周国运单片机原理及应用(C语言版)2》由会员分享,可在线阅读,更多相关《周国运单片机原理及应用(C语言版)2(117页珍藏版)》请在金锄头文库上搜索。
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、程序状态字寄存器PSW
6、、布尔处理器 等。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也作为通用寄存器使用,并且可以按位操 作,所以ACC是
7、一个用处最多、最忙碌的寄存器 。 在指令中用助记符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 RS0OVF1P图2-3 程序状态字PSW格式2.1.3 MCS-51单片机的CPUCY(P
8、SW.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表明除数为0 P(PSW.0):累加器A的奇偶
9、标志位 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-51单片机有丰富的位处理指令:如置位、 位清0
10、、位取反、判断位值(为1或为0)转移,以 及通过C(指令中用C代替CY)做位数据传送、 位逻辑与、位逻辑或等位操作。 2.1.3 MCS-51单片机的CPU 二、控制器 控制器包括程序计数器PC、指令寄存器IR、指 令译码器ID,以及时钟控制逻辑、堆栈指针SP、 地址指针DPTR等。 1、程序计数器PC PC是一个具有自加1功能的16位的计数器PC的 内容是将要执行的下一条指令的地址 改变PC的内容就改变了程序执行的顺序 2、指令寄存器IR和指令译码器ID IR:存放从Flash ROM中读取的指令 ID:进行译码,产生一定序列的控制信号,完 成指令所规定的操作。2.1.3 MCS-51单片机
11、的CPU3、堆栈 (1)堆栈的概念:堆栈是在RAM中专门开辟 的一个特殊用途的存储区。 (2)堆栈的结构:堆栈一端的地址是固定的 ,称为栈底;另一端的地址是动态变化的,是数 据保存和取出的端口,称为栈顶。堆栈像一个桶 状存储体。 (3)堆栈的访问原则“先进后出”、“后进先出” 。即先进入堆栈的 数据后移出,即后进入堆栈的数据先移出堆栈。 (4)堆栈的操作方式 数据进栈和数据出栈 进栈和出栈都是在栈顶进行进栈和出栈都是在栈顶进行,这就必然是按照 “先进后出”、“后进先出”的方式存取数据。2.1.3 MCS-51单片机的CPU (5)堆栈的应用 主要是用来暂时存放数据,有两种情况使用 堆栈: 一是
12、CPU自动使用堆栈,当调用子程序或响 应中断,处理中断服务程序时,CPU自动将返 回地址存放到堆栈中;通过堆栈传递参数。 二是程序员使用堆栈,用堆栈暂时存放数据 。 4、堆栈指针SP 堆栈指针SP(Stack Pointer)中为栈顶的地 址,即SP指向栈顶。 SP是访问堆栈的间址寄存器 SP具有自动加1、自动减1功能。当数据进栈 时,SP先自动加1,然后将数据存入;当 数据出栈时,先将数据送出,然后SP自动减1。2.1.3 MCS-51单片机的CPU下图是数据进栈的情况 数据从栈顶进入开始状态 58进栈后的状态A6,7B进栈后的状态 E7E7E7 E6E6E6 SPE5SPE5SPE5E1E
13、4E4E4E3E3E3 E2E258E2 36E136E136E1 21E021E021E058A67BE2E1E2E3E42.1.3 MCS-51单片机的CPU由于进栈时SP的值增加,即堆栈向地 址大的方向生长,并且栈顶是有效数据 ,这种堆栈是满递增型堆栈。7B、A6、58、36出栈后的状态 E7 E6SPE5 7BE4 A6E3 58E2 36E1 21E07B A6 58 36E4E3E1E0E22.1.3 MCS-51单片机的CPU5、数据指针DPTR DPTR是唯一的16位寄存器。 DPTR既可以作为一个16位寄存器使用,也可 以作为两个独立的8位寄存器使用。其高字节寄 存器用DPH
14、表示,低字节寄存器用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。 常用40DIP 40个引脚分 为4类: 电源引脚 晶振引脚 控制信号 输入/输出引 脚T2/P1.0 T2EX/P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
15、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 Vss89C52 89C5140 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 18 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/
16、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:复位信号输入端,高电平有效。单片 机正常工作时:RST保持两个机器周期的高电平 就会使单片机复位; 上电时:RST上的高电平必须保持10ms以上 才能保证有效复位,由于振荡器需要一定的起 振时间。 VPD:备用电