《STC89C51单片机硬件结构.ppt》由会员分享,可在线阅读,更多相关《STC89C51单片机硬件结构.ppt(58页珍藏版)》请在课桌文档上搜索。
1、2.4 时钟电路及89C51 CPU时序,2.6 输入/输出端口结构,第二章 89C51单片机硬件结构和原理,2.2 89C51单片机引脚及其功能,内容提要:,2.1 89C51单片机内部结构及特点,2.3 89C51存储器配置,2.5 单片机的低功耗工作方式,2.1 89C51单片机芯片内部结构及特点,一、89C51单片机的基本组成 图2-1所示位89C51带闪存(Flash ROM)单片机的基本结构框图。,1、中央处理单元CPU(8位)用于数据处理、位操作(位测试、置位、复位)2、片内4K程序存储器Falsh ROM 用于存放程序、一些原始数据和表格3、随机存取存取器RAM(256B)用于
2、存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。4、并行输入/输出口 I/O(32线)用作系统总线、扩展外存、I/O接口芯片5、串行输入/输出口 UART(二线)串行通信、扩展I/O接口芯片,图2-1,6、两个定时器/计数器 T(16位增量可编程)它与CPU之间各自独立工作,当它计数满时向CPU中断7、时钟电路 fosc 分为内部振荡器、外接振荡电路8、中断系统 五源中断、两级优先,可编程进行控制。,图2-1,二、89C51单片机内部结构,89C51单片机与早期Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用Flash ROM替代了ROM/
3、EPROM而已。89C51单片机内部结构如图2-2所示。,1、中央处理单元(89C51 CPU)CPU是单片机的核心,是计算机的控制和指挥中心,由运算器和控制器等部件组成。如图2-2。运算器ALU8位算术和逻辑运算对4位(半字节)、8位(字节)、16位(双字节)操作算术运算-加、减、乘、除、加1、减1、BCD数十进制调整、比较逻辑运算-与、或、非、异或、求补、移位TMP1,TMP2 8位暂存器ACC 8位累加器累加器ACC经常作为一个操作数经TMP2进入ALU,与来自TMP1的另一个操作数进行运算,结果存入ACC中作为89C51内部数据传送的中间寄存器大部分指令中用注记符A表示,进出堆栈指令时
4、用注记符ACC表示,B-8位寄存器 如图2-2乘除运算指令中存放一个操作数,操作结束时存放一部分结果乘除指令运算之外时可作通用寄存器PSW-程序状态字寄存器指示指令执行后的状态信息PSW各位单元可供程序查询和判别布尔处理器PSW中的Cy 进位标志位,专门用于处理位操作置位、清0、位取反、位等于1转移、位等于0转移、位等于1转移并清0Cy与其它可寻址位之间进行传送Cy与其它可寻址位之间进行逻辑与、逻辑或操作,结果在Cy中指令中用C表示Cy,(2)控制器 如图2-22、存储器(1)程序存储器(Flash ROM)89C51片内程序存储器容量为4KB,地址从0000H开始,用于存放程序和表格常数。(
5、2)数据存储器(RAM)89C51片内数据存储器为128字节,地址为00H-7FH,用于存放运算的中间结果、数据暂存以及数据缓冲。3、I/O接口89C51有4个与外部交换信息的8位并行接口,即P0-P3。有一个可编程的全双工串行口(UART),89C51/LV51单片机外部引脚封装形式,见右图:,2.2 89C51单片机引脚及其功能,89C51,1.电源VCC:电源端,+5VVSS:接地,GND2.外接晶体引脚XTAL1和XTAL2XTAL1:片内振荡器反向放大器输入端,接外部晶体振荡器一个脚;由外部输入时钟信号时,该脚接地XTAL2:片内振荡器反向放大器输出端,接外部晶体振荡器一个脚;外部输
6、入时钟信号时由该脚接入XTAL1、XTAL2外接晶体振荡器的谐振频率决定时钟电路的振荡频率,图2-3,2,图2-3,3、控制或复位引脚 RST/VPD 当出现两个机器周期高电平时,单片机复位。复位后,P0 P3 输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。参考复位电路如下:,图2-3,89C51,89C51,89C51,图2-3,=0 时,只访问外部程序存储器,即外ROM,=1 时,访问内部程序存储器,即内ROM,/Vpp 内/外ROM选择端,在Flash ROM编程期间,该端施加编程电压4、输入/输出引脚 P0.0 P0.7;P1.0 P1.7;P2.0 P2.7;
7、P3.0 P3.7四个I/O口,每口八条线;还兼作地址/数据线。,EA,ALE/PROG 地址锁存控制端提供1/6 fosc振荡频率;为其内的Flash ROM输入编程脉冲/PSEN 外部程序存储器的读选通信号端,图2-3,时钟发生器,内部结构,2-3 89C51存储器配置,一、89C51单片机的内存结构,数据存储器,物理上分为:4个空间,即片内Flash ROM、片外ROM 片内RAM、片外RAM逻辑上分为:3个空间,片内、片外统一编址程序存储器:0000H-FFFFH MOVC 片内数据存储器:00H-FFH MOV 片外数据存储器:0000H-FFFFH MOVX,二、程序存储器寻址范围
8、:0000H FFFFH 容量64KB,即地址长度:16位,,寻址内部ROM;,,寻址外部ROM。,当PC值超过片内ROM容量时会自动转向 外部存储器空间。,作 用:存放程序及程序运行时所需的常数。,七个具有特殊含义的单元是:,0000H 系统复位,PC指向此处;0003H 外部中断0入口 000BH T0溢出中断入口 0013H 外中断1入口 001BH T1溢出中断入口 0023H 串口中断入口(002BH T2溢出中断入口),三、内部数据存储器物理上分为两大区域:00H 7FH即128B内RAM区 80H FFH即SFR区。,R0、R1、R2、R3、R4、R5、R6、R7,即可位寻址,又
9、可字节寻址,数据缓冲区、堆栈区、工作单元,位寻址区(20H2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H7FH,位地址区也可作为一般RAM使用。,位寻址区,四、特殊功能寄存器MCS-51单片机内共有22个特殊功能寄存器,包括PC及SFR。PC为程序计数器。它是一个双字节寄存器,寻址范围为:0000H FFFFH,即0 64KB。SFR为特殊功能寄存器。其寻址空间:80H FFH 其中,51子系列有18个寄存器,占有21个字节;52子系列有21个寄存器,占有26个字节。51子系列SFR的地址分配及位地址见下页表:,+,+,9F,98,99,9A,9B,9C,9D,9
10、E,SM0,SM1,SM2,REN,TB8,RE8,TI,RI,注意:1、表中共有3个双字节寄存器。2、PC也为双字节寄存器,但是不在80H FFH 范围内。3、表中,凡地址能被8整除的寄存器都是可位 寻址的寄存器。,各寄存器的名称:1、算术运算寄存器(1)A累加器。(2)BB寄存器,乘、除法运算用。(3)PSW程序状态字寄存器:包含程序运 行状态、信息。,PSWCY 进位/借位标志;位累加器。AC 辅助进/借位标志。F0 用户定义标志位;软件置位/清零。OV 溢出标志;硬件置位/清零。P 奇偶标志;A中1的个数为奇数 P=1;否则 P=0。RS1、RS0 寄存器区选择控制位。0 0:0区 R
11、0 R7 0 1:1区 R0 R7 1 0:2区 R0 R7 1 1:3区 R0 R7,P,OV,RS0,RS1,F0,AC,CY,数据存储器,2、指针寄存器(1)程序计数器PC 指明即将执行的下一条指令的地址(程序存储器地址),在物理上独立,复位时(PC)=0000H。(2)数据指针DPTR DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。DPTR=DPH+DPL,也可单独使用。(3)堆栈指针SP 指明栈顶元素的地址,8位,可软件设置初值,复位时(SP)=07H。堆栈的操作有两种:一种叫数据压入(PUSH),另一种叫数据弹出(POP)。存取信息必须按“先进后出”或“后进先
12、出”的规则进行。例如下图。,内部结构,67,66,65,64,63,62,61,60,A2,A1,6,1,SP,67,66,65,64,63,62,61,60,A3,A2,A1,6,2,SP,67,66,65,64,63,62,61,60,A5,A4,A3,A2,A1,6,4,SP,67,66,65,64,63,62,61,60,A1,6,0,SP,67,66,65,64,63,62,61,60,A4,A3,A2,A1,6,3,SP,原始状态,压入数据A3以后,压入数据A4、A5以后,压入,压入,弹出数据A5以后,弹出,弹出数据A4、A3、A2以后,弹出,3、并行输入/输出端口寄存器P0、P1
13、、P2、P3实为相应端口锁存器。4、串行输入/输出端口(1)串行数据缓冲器 SBUF是物理上独立的两个寄存器,共同使用一个地址(99H)。(2)串行控制/状态寄存器SCON控制监视串行口的工作状态(3)电源控制寄存器PCON控制单片机的低功耗工作方式及波特率选择。,内部结构,5、中断系统(1)中断优先级寄存器IP:2级优先,可软件设定(2)中断允许寄存器IE6、定时/计数器(1)定时器方式寄存器:TMOD(2)定时器控制寄存器:TCON(3)计数寄存器:TH0、TL0;TH1、TL1。可用于设定计数初值。,内部结构,五、位地址空间(1)内部RAM 20H 2FH共16个单元可按位寻 址128位
14、。(2)SFR 80H FFH 51子系列,有11个寄存 器,83位;52子系列,有12个寄存器,93位。六、外部数据存储器(1)容量最大扩展到64KB(2)寻址范围:0000H FFFFH(3)寻址方式:间接寻址可用R0,R1,DPTR,各特殊功能寄存器的复位值,一、片内振荡器及时钟信号的产生 89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,分别是89C51的19脚和18脚。如图2-7。,2-4 时钟电路及89C51 CPU时序,XTAL1,XTAL2,C1,C2,晶振,至内部时钟,89C51,图2-7 振荡电路,晶体振荡器的振荡
15、信号从XTAL2端输入到片内的时钟发生器上,如图2-8所示。,XTAL2,XTAL1,C1,C2,晶振,振荡器,2(时钟发生器),S1,P1,P2,S2,P2,P1,P1,P2,3,6,ALE,机器周期,图2-8 89C51内部振荡器及时钟发生器,fOSC,概念:节拍、状态周期,二、机器周期和指令周期,一个机器周期是指CPU访问存储器一次所需的时间。执行一条指令需要多长时间则以机器周期为单位。89C51的一个机器周期包括12个振荡周期,分为6个S状态(如下图):S1S6。每个状态又分为两拍,称为P1和P2。因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1S6P2。例如:若
16、采用6MHz晶体振荡器,则每个机器周期为2s。每条指令都由一个或几个机器周期组成。在 89C51系统中,有单周期指令、双周期指令和4周期指令。4周期指令只有两条:乘法、除法指令 89C51单片机的基本时序单位有4个:振荡周期、状态周期、机器周期、指令周期,图2-9,三、CPU取指、执行周期时序,每一条指令的执行都可以包括取指和执指两个阶段。在取指阶段,CPU从内部或者外部ROM中取出操作码及操作数,然后再执行这条指令。89C51指令系统中,指令由单字节、双字节和3字节组成。从机器执行指令的速度看,单字节和双字节指令都可能是单周期和双周期的,而3字节指令都是双周期的,只有乘、除指令占4周期。图2
17、-10列举了几种典型指令的取指和执指时序。,当ALE(ALE信号为振荡频率6分频)正跳变时,对应单片机进行一次读指令操作。一个机器周期二次出现,在S1P2和S2P1及S4P2和S5P1期间(如图)。有效宽度为一个状态。,(1)单字节单周期指令:INC A只需进行一次读指令操作(指令只有一个字节),当第二个ALE有效时,由于PC没有加1,读出的还是原指令。属于一次无效操作。,(2)双字节单周期指令:ADD A,#data ALE两次读操作都有效,第一次读操作码(指令第一字节),第二次读立即数(指令第二字节)(如图)。,(3)单字节双周期指令:INC DPTR 两个机器周期共进行四次读指令操作,但
18、其后三次的读操作都是无效的。,单字节单周期指令例:INC A,双字节单周期指令例:ADD A,#data,单字节双周期指令例:INC DPTR,2.5 89C51单片机的低功耗工作方式,89C51属于CHMOS的单片机,运行时耗电少,而且还提供两种节电工作方式,即空闲(等待、待机)方式和掉电(停机)方式,以进一步降低功耗。下图为实现这两种方式的内部电路,一、方式的设定,通过对SFR中的PCON(地址87H)相应位置1而启动的。如下图SMOD:波特率倍频位。若此位为1,则串行口方式1、方式2和方式3的波特率加倍。GF1和GF2:通用标志位PD:掉电方式。此位写1即启动掉电方式IDL:空闲方式,此
19、位写1即启动空闲方式如果同时向PD和IDL写1,则PD优先,控制电路,二、空闲方式,当CPU执行IDL=1(PCON.0)的指令后,系统进入空闲工作方式。此时,内部时钟不向CPU提供,而只供给中断、串行口和定时器部分。CPU的内部状态维持,即SP、PC、PSW、ACC所有的内容保持不变,端口状态也保持不变。进入空闲方式后,有两种方法可以使系统退出空闲方式:1、任何的中断请求被响应都可以由硬件将PCON.0(IDL)清0而中止空闲方式。2、硬件复位,控制电路,三、掉电工作方式,当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。此方式下,内部振荡器停止工作,所有的功能部件
20、都停止工作。但是内部RAM区和特殊功能寄存器的内容被保留,端口的输出状态值都保存在对应的SFR中。退出掉电方式的唯一方法是由硬件复位,复位后将所有特殊功能寄存器的内容初始化,但不改变片内RAM区的数据。,控制电路,2-6 输入/输出端口结构,89C51单片机有四个8位并行I/O端口,称为P0、P1、P2和P3。每个端口都是8位准双向口,共占32只引脚。每一条I/O线都能独立地用作输入或输出。每个端口包含一个锁存器(即特殊功能寄存器P0P3)、一个输出驱动器和二个输入缓冲器。作输出时数据可以锁存,作输出时数据可以缓冲。,一、P0口1、结构 P0口电路图如下图,内部结构,锁存器,D,Q,CL,Q,
21、读引脚,写入,内部总线,读锁存器,VCC,P0.X,1,2,3,4,地址/数据,控制C,T1,T2,MUX,图2-13 P0口某位结构,10,2、通用I/O口1)P0口用作输出口 当CPU执行输出指令时,写脉冲加在D锁存器的CL上(如图2-13)。内部数据总线D端取反后出现在/Q端MUX T2反相P0.x 89C51有几条输出指令功能特别强,属于“读修改写”。2)P0口作输入口 当执行一条由端口输入的指令时,“读引脚”脉冲把三态缓冲器2打开,端口上的数据经过缓冲器2读入到内部总线。作为通用I/O使用,是一个准双向口:在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态,可作高阻抗输入
22、,3、P0口作为地址/数据总线使用控制MUX(如图2-13)(1)P0口用作输出地址/数据总线。(2)由P0口输入数据,4、负载能力可带8个TTL输入,驱动NMOS时,接上拉电阻。,总结特点:(1)P0口可作通用I/O口使用,又可作地址/数据总线口;(2)P0既可按字节寻址,又可按位寻址;(3)P0作为输入口使用时:是准双向口;(4)作通用I/O 口输出时:是开漏输出;(5)作地址/数据总线口时,P0是一真正双向口,而作通 用I/O口时,只是一个准双向口。,二、P1口,锁存器,D,Q,CL,Q,读引脚,写入,内部总线,读锁存器,VCC,P1.X,图2-14 P1口某位结构,1、结构,只能作I/
23、O口用,且是一个准双向口(如图2-14)。内部已有上拉电阻,不是开漏输出口。2、特点:(1)无地址/数据口功能(2)可按字节寻址,也可按位寻址(3)作I/O输入口时:是一准双向口,不是开漏输出。,三、P2口,锁存器,D,Q,CL,读引脚,写入,内部总线,读锁存器,VCC,P2.X,地址,控制,MUX,图2-15 P2口某位结构,1、结构,2、特点:(1)当P2口作为通用I/O时,是一准双向口。(如图2-15)(2)从P2口输入数据时,先向锁存器写“1”。(3)可位寻址,也可按字节寻址(4)可输出地址高8位。,锁存器,D,Q,CL,读引脚,写入,内部总线,读锁存器,VCC,P3.X,第二输出功能
24、,W,第二输入功能,1,3,2,4,图2-16 P3口某位结构,四、P3口,1、结构,2、特点:(1)作通用I/O时,“第二输出功能”应保持高电平(如图2-16),(2)工作于第二功能(如表2-10)时,该位锁存器置1,(3)作输入口时,输出锁存器和选择输出功能端都应 置1(4)第二功能专用输入,取自输入通道第一缓冲器 输出端,通用输入信号取自“读引脚”。,表2-10 P3各口线与第二功能表,小结:1、P0口:地址低8位与数据线分时使用端口2、P1口:按位可编址的输入输出端口3、P2口:地址高8位输出口4、P3口:双功能口。若不用第二功能,也可作通用I/O 口5、按三总线划分:,地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;控制线:P3口的8位加上/PSEN、ALE共同完成控制总线。,