《华东交通大学 单片机 张毅刚 第2章讲义》由会员分享,可在线阅读,更多相关《华东交通大学 单片机 张毅刚 第2章讲义(61页珍藏版)》请在金锄头文库上搜索。
1、第2章 89C51单片机单片机的硬件结构 2.1 89C51单片机的片内结构 片内结构如图2-1所示:,图2-1,由如下功能部件组成 : 1.CPU(微处理器) 2.数据存储器(RAM) 片内为128个字节(52子系列的为256个字节) 3.程序存储器(ROM/EPROM) 8031:无此部件; 8051:4K字节ROM; 8751:4K字节EPROM ; 89C51/89C52/89C55:4K/8K/20K 字节闪存。 4. 4个并行8位I/O口 P1口、P2口、P3口、P0口 为。 5. 串行口 1个全双工的异步串行口,具有四种工作方式。,6. 定时器/计数器 7. 中断系统 8. 特殊
2、功能寄存器(SFR) 共有21个,是一个具有特殊功能的RAM区。 CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。 下面对图2-1中的片内各部件做简单介绍。 2.2 89C51的引脚 40只引脚双列直插封装(DIP)。,图2-2,40只引脚按功能分为3类: (1)电源及时钟引脚: Vcc、Vss;XTAL1、XTAL2。 (2)控制引脚: PSEN*、EA* 、ALE、RESET (即RST)。 (3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚。 2.2.1 电源及时钟引脚 1电源引脚 (1)V
3、cc(40脚):+5V电源; (2)Vss(20脚):接地。,2时钟引脚 (1)XTAL1(19脚):接外部晶体,如果采用外接振荡器时,振荡器的输出应接到此引脚上。 (2)XTAL2(18脚):接外部晶体的另一端或采用外接振荡器时悬空。 2.2.2 控制引脚 提供控制信号,有的引脚还具有复用功能。 (1) RST/VPD(9脚):复位与备用电源。 (2) EA*/VPP(Enable Address/Voltage Pulse of ProgRam- ing,31脚) EA*:为内外程序存储器选择控制端。 EA*=1,访问片内程序存储器,但在PC(程序计数器)值超,过0FFFH(对于8051、
4、8751)时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。 EA*=0,单片机则只访问外部程序存储器。 VPP:本引脚的第二功能。用于施加编程电压(例如+21V或+12V)。对89C51,加在VPP脚的编程电压为+12V或+5V。 (3) ALE/PROG*(30脚): 第一功能:ALE为地址锁存允许,可驱动8个LS型TTL负载。 第二功能:PROG*为编程脉冲输入端。 (4) PSEN* (29脚):外部程序存储器的读选通信号。可驱动8个LS型TTL负载。,2.2.3 I/O口引脚 (1) P0口:当89C51扩展外部存储器及I/O接口芯片时,P0口作为地
5、址总线(低8位)及数据总线的分时复用端口。为双向I/O口。 也可作为通用的I/O口使用,但需加上拉电阻,这时为准双向口。当作为普通的I/O输入时,应先向端口的输出锁存器写入1。 P0口可驱动8个LS型TTL负载。 (2) P1口:8位准双向I/O口,可驱动4个LS型TTL负载。 (3) P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。,(4) P3口:8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。 P3口还可提供第二功能,定义如表2-1所列,应熟记。,注意:准双向口与双向三态口的差别。 (1)当3个准双向I/O口作输入口使用时,要向该口先写“1
6、”。 (2)准双向I/O口无高阻 “浮空”状态。 2.3 89C51的CPU 由运算器和控制器所构成 2.3.1 运算器 1算术逻辑运算单元ALU 进行算术、逻辑运算,还具有位操作功能,2累加器A 使用最频繁的寄存器,可写为Acc。 A的作用: (1)是ALU的输入之一,又是运算结果的存放单元。 (2)数据传送大多都通过累加器A。MCS-51增加了一部分可以不经过累加器的传送指令,即可加快数据的传送速度,又减少A的“瓶颈堵塞”现象。 A的进位标志Cy同时又是位处理机的位累加器。 3程序状态字寄存器PSW 格式如图2-3。,(1)Cy(PSW.7)进位标志位 (2)Ac(PSW.6) 辅助进位标
7、志位,用于BCD码的十 进制调整运算。 (3)F0(PSW.5)用户使用的状态标志位。 (4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。如表2-2。,图2-3,表2-2 RS1、RS0与4组工作寄存器区的对应关系 RS1 RS0 所选的4组寄存器 0 0 0区(内部RAM地址00H07H) 0 1 1区(内部RAM地址08H0FH) 1 0 2区(内部RAM地址10H17H) 1 1 3区(内部RAM地址18H1FH) (5)OV(PSW.2)溢出标志位 指示运算是否溢出。注意各种算术运算指令对该位的影响(6)PSW.1位: 保留位,未用 (7)P(PSW.
8、0)奇偶标志位 P=1,A中“1”的个数为奇数 P=0,A中“1”的个数为偶数,2.3.2 控制器 1程序计数器PC(Program Counter) 存放下一条要执行的指令在程序存储器中的地址。 基本工作方式有以下几种: (1)程序计数器自动加1 (2)执行有条件转移或无条件转移指令时, PC将被置入新的数值,从而使程序的流向发生变化。 (3)执行子程序调用或中断调用,完成下列操作: PC的现行值保护 将子程序入口地址或中断向量的地址送入PC。,2指令寄存器IR、指令译码器及控制逻辑电路 2.4 89C51存储器的结构 哈佛结构 存储器空间可划分为5类: 1.程序存储器空间 片内程序存储器为
9、4KB 的 Flash 存储器 2.片内数据存储器空间:128B 3.特殊功能寄存器 SFR-Special Function Register 4.位地址空间: 211个可寻址位。 5.外部数据寄存器空间:片外可扩展64K字节RAM。,2.4.1 程序存储器 存放应用程序和表格之类的固定常数。 分为片内和片外两部分,由EA*引脚上所接的电平确定。 程序存储器中的0000H地址是系统程序的启动地址 5个单元具有特殊用途。 为5个中断源的中断入口地址 表2-3 5种中断源的中断入口地址 外中断0 0003H 定时器T0 000BH 外中断1 0013H 定时器T1 001BH 串行口 0023H
10、,2.4.2 内部数据存储器 128个,字节地址为00H7FH。,00H1FH:32个单元,是4组通用工作寄存器区 20H2FH:16个单元,可进行128位的位寻址 30H7FH:用户RAM区,只能字节寻址,用作数据缓冲区以及堆栈区。 2.4.3 特殊功能寄存器(SFR) CPU对片内各种功能部件的控制采用特殊功能寄存器集中控制方式,共21个。有的SFR可进行位寻址。 表2-4是SFR的名称及其分布。 其字节地址的末位是0H或8H可位寻址。 下面介绍SFR块中的某些寄存器。,表2-4 SFR的名称及其分布,1堆栈指针SP 指示堆栈顶部在内部RAM块中的位置 复位后,SP中的内容为07H。 (1
11、)保护断点 (2)现场保护 堆栈向上生长 2. 数据指针DPTR 高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。 3. 寄存器B 为执行乘法和除法操作设置的。在不执行乘、除的情况下,可当作一个普通寄存器来使用。,2.4.4 位地址空间 211个(128个+83个)寻址位。位地址范围为:00HFFH。 内部RAM的可寻址位128个(字节地址20H2FH)见表2-5(P24)。 特殊功能寄存器SFR为83个可寻址位,见表2-6。,表2-5 内部RAM的可寻址位及位地址,表2-6 SFR中的位地址分布,2.4.5 外部数据存储器 最多可外扩64K字节的RAM或I/O 。 使用各类存储器,注
12、意几点: (1) 地址的重叠性 程序存储器(ROM)与数据存储器(RAM)全部64K字节地址空间重叠)。 (2) 程序存储器(ROM)与数据存储器(RAM)在使用上是严格区分的 。 (3) 位地址空间共有两个区域。,(4)片外数据存储区中,RAM与I/O端口统一编址。 所有外围I/O端口的地址均占用RAM单元地址,使用与访问外部数据存储器相同的传送指令。 图2-5为各类存储器在存储器空间的位置的总结。,图2-5,2.5 并行I/O端口 4个双向的8位并行I/O端口(Port) ,记作P0P3 属于特殊功能寄存器,还可位寻址。 2.5.1 P0端口,图2-6,1.位电路结构 P0口某一位的电路包
13、括: (1) 一个数据输出锁存器,用于数据位的锁存 (2) 两个三态的数据输入缓冲器。 (3) 一个多路转接开关MUX,使P0口可作通用I/O口,或地址/数据线口。 (4) 数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。 2. 工作过程分析 (1)P0口作为地址或数据总线使用 CPU发出控制信号为高电平,打开上面的与门,使MUX打向上,边,使内部地址/数据线与下面的场效应管反相接通。此时由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。 (2) P0口作通用的I/O口使用 CPU发来的“控制”信号为低电平,上拉场效应管截止,MUX打向下边,
14、与D锁存器的Q*端接通。 a. P0作输出口使用 来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。 注意:由于输出电路是漏极开路(因为这时上拉场效应管截,止),必须外接上拉电阻才能有高电平输出(这时就不为双向口)。 b. P0作输入口使用 区分“读引脚”和“读锁存器”。 “读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线; “读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。 3P0口的特点 P0口具有如下特点:P0口为双功能口地址/数据复用口和通用I/O口。,(1)当P0口用作地址/数据复用口时,为一个真正的双向
15、口,用作外扩存储器,输出低8位地址和输出/输入8位数据。 (2)当P0口用作通用I/O口时,由于需要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此为一个准双向口。 一般情况下,如果P0口已作为地址/数据复用口,就不能再作为通用I/O口使用。 2.5.2 P1端口 字节地址90H,位地址90H97H。 P1口某一位的位电路结构如图2-7所示。,图2-7,1位电路结构 P1口位电路结构由三部分组成: (1)一个数据输出锁存器,用于输出数据位的锁存。 (2)两个三态的数据输入缓冲器BUF1和BUF2,分别用于锁存器数据和引脚数据的输入缓冲。 (3)数据输出驱动电路,由一个场效应管(FET)和一
16、个片内上拉电阻组成。 2工作过程分析 P1口只能作为通用的I/O口使用。 (1)P1口作为输出口时,若CPU输出1,Q=1,Q*=0,场效应管截止,P1口引脚的输出为1;若CPU输出0,Q=0,Q*=1,,场效应管导通,P1口引脚的输出为0。 (2)P1口作为输入口时,分为“读锁存器”和“读引脚”两种方式。“读锁存器”时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。 3P1口的特点 P1口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。作为输出口时,不需要在片外接上拉电阻。 P1口“读引脚”输入时,必须先向锁存器写1。,2.5.3 P2口 字节地址为A0H,位地址A0HA7H。P2口是一个双功能口,P2口某一位的位电路结构如图2-8所示。,图2-8,1位电路结构 P2口某一位的电路包括: (1)一个数据输出锁存器,用于输出数据位的锁