89C51单片机的结构及原理解析_第1页
89C51单片机的结构及原理解析_第2页
89C51单片机的结构及原理解析_第3页
89C51单片机的结构及原理解析_第4页
89C51单片机的结构及原理解析_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 89C51单片机的结构及原理,提要,总体架构 主要组成 时钟电路和时序分析 复位操作,2020年9月14日,2,第1节总体架构,基本框架 内部结构 管脚分配,2020年9月14日,3,基本框架,89C51 CPU,振荡器和时序 OSC,64KB 总线 扩展控制器,数据存储器 256B RAM/SFR,216位 定时器/计数器,可编程I/O,程序存储器 4KB FLASH,可编程全双工 串行口,外中断,内中断,控制,并行口,串行通信,外部时钟源,外部事件计数,基本框架,8位CPU以及指令系统 片内有256字节的数据存储器 00H7FH段:存放可以读/写的数据,如运算的中间结果、最终结果以

2、及欲显示的数据等 80HFFH段:零散分布21个特殊功能寄存器。 片内有4K字节ROM 存放程序、一些原始数据和表格。 4个8位的并行I/O口 P0、P1、P2和P3 每个口可以用作输入,也可以用作输出。 片外存储器扩展 可扩展64K程序存储器。 可扩展64K数据存储器。,2020年9月14日,5,基本框架,2个16位的定时/计数器 可设置成计数方式,对外部事件进行计数。 可设置成定时方式,对内部时钟进行计数,从而实现定时。 1个全双工串行口 可实现单片机与单片机或其它微机之间串行通信。 5个中断源,2级优先 1个片内时钟振荡电路 需外接晶振和电容,2、内部结构,P0驱动器,P2驱动器,P0锁

3、存器,P2锁存器,RAM地址寄存器,128BRAM,4KBROM,B寄存器,暂存器1,暂存器2,ACC,SP,程序地址寄存器,缓冲器,PC加1寄存器,PC,DPTR,中断、串行口和定时器,PSW,P1锁存器,P1驱动器,P3锁存器,P3驱动器,定时控制,指令寄存器,指令译码器,OSC,ALU,P0.0-P0.7,P2.0-P2.7,P3.0-P3.7,P1.0-P1.7,XTAL1 XTAL2,PSEN ALE EA RESET,3、管脚分配,3、管脚分配,Vcc:电源,正端 Vss:地线,接地 XTAL2(18脚)和XTAL1(19脚): 内部:片内有晶体振荡电路,外接石英晶振,电源上电,自

4、动进行振荡; 外接:XTAL1接外部时钟脉冲,XTAL2悬空。 控制信号引脚RST、ALE、PSEN和EA RST: 复位信号,高电平有效 ALE/PROG: 地址锁存允许信号/片内ROM固化程序的编程脉冲 PSEN:片外ROM读选通信号 EA/VPP :片内外ROM选择信号/编程电压的输入端,3、管脚分配,ALE/PROG ALE地址锁存允许信号 PROG: 对89C51片内ROM固化程序的时候,加入编程脉冲。对8031、8051而言,这个功能是没用的。 PSEN 片外程序存储器选通信号 低电平有效 选通后读EPROM或ROM中的指令代码,3、管脚分配,EA/VPP EA=0时,PC指向片外

5、的程序存储器,EA=1时,PC指向片内的程序存储器。 EA=1时,先到片内,当PC值超过4K(0FFFH),自动转向片外。 VPP:对8751进行编程固化时,加21V的编程电压。对89C51片内Flash编程固化时,高电压编程时加12V电压,低电压编程时加5V电压。,3、管脚分配,P0口 P0口是一个漏极开路的8位准双向I/O口,每位可驱动8个LS型的TTL负载。 在CPU访问片外存储器时,P0分时提供低8位地址和8位数据的复用总线。 P2口 P2口是内部带上拉电阻的8位准双向I/O口,每位可驱动4个LS型的TTL负载。 主要作用:在访问片外存储器的时候后,P2口输出高8位地址。 P2口和P0

6、口共同组成了16位的地址总线,可以对64K存储器范围进行访问。,3、管脚分配,P1口 P1口它是一个内部带上拉电阻的8位准双向I/O口,每位可以驱动4个LS型的TTL负载。 P1口是用户随意使用的端口。 P3口 P3口是内部带上拉电阻的8位准双向I/O口,每位可以驱动4个LS型的TTL负载。 P3口的每一位都有第二功能,P3口的使用主要是在于它的第二功能。,第二节主要组成,CPU的结构 存储器 I/O口的口结构,CPU的结构,CPU是单片机的核心部分。 功能:读取指令,分析指令,产生控制信号控制数据的传送,对输入数据进行算术逻辑运算以及位操作等操作。 构成: 1、运算器 2、控制器,1、运算器

7、,运算器:算术逻辑单元ALU 、累加器ACC 、暂存器TMP1和TMP2 、程序状态字寄存器PSW (Program Status Word) 、BCD码运算调整电路和布尔处理器等。为了提高数据处理和位操作能力,片内还增加了一个通用寄存器B和一些专用寄存器。 PSW中的进位位C可以作为位累加器使用,整个位操作系统构成了一个布尔处理器。,算术逻辑单元ALU,算术逻辑单元是由加法器和逻辑电路组成,主要完成二进制数的四则运算,以及布尔代数的逻辑运算。 通过对运算结果的判断,决定程序状态字PSW的相关状态标志位的变化。,累加器ACC,ACC是一个8位累加器,通过暂存器和算术逻辑单元相连。 ACC是CP

8、U中最繁忙的寄存器。 在指令系统中, A作为累加器的助记符。 累加器ACC可以按位来操作,如果按位操作,必须写成ACC.0、ACC.1,一直到ACC.7,而不能A.0、A.1到A.7。 PUSH ACC, POP ACC,程序状态字PSW,程序状态字PSW是8位寄存器,7位有效: 用作程序运行的状态标志,如算术运算、逻辑运算或移位操作时,如果结果会影响到标志位的时候,PSW相关位就会做出相应反应,进行清零或置1。 其中有两位用作工作寄存器选择位。 PSW字节地址是D0H。,程序状态字PSW,CY进位位,在位操作时作为累加器; AC辅助进位位,或称为半进位位; F0用户标志位; RS0和RS1工

9、作寄存器指针,用来选择不同的四组工作寄存器(共32个字节); OV溢出标志; PSW.1没有定义; P奇偶位,始终跟踪累加器A 中1的个数的奇偶性。,AC,CY,P,OV,RS0,RS1,F0,PSW (D0H),D7 D6 D5 D4 D3 D2 D1 D0,程序状态字PSW,每位的具体含义: C是进位标志: 在进行字节加法或减法运算时,如果最高位(第7位)有进位或借位时,C被置1,否则C被清0。 在进行位操作时,C被称为位累加器。 AC是辅助进位标志: 在进行加法或减法运算时候,如果低半字节(第3位),向高半字节有进位或借位,AC被置1,否则AC被清0。 在进行BCD码运算时,AC还作为B

10、CD码调整时的判别位。 F0是用户标志位。用户可根据自己需要,自主来置位或清零,作为程序运行的状体标志使用。,程序状态字PSW,RS1和RS0是工作寄存器指针,用于选择当前工作的寄存器组,用户可以改变RS1和RS0的组合,来切换当前工作寄存器组。,程序状态字PSW,OV是溢出标志: 进行有符号数加减运算时,如果发生溢出,OV被置1,否则OV清0。 进行无符号数乘法时,如乘积超过255,OV被置1,否则清零。 进行无符号数除法时,如除数为0,OV被置1,表示除法不能进行,否则被清零。 P是奇偶标志: P始终跟踪累加器A的奇偶性。 如果A中1的个数是奇数个,P被置1;如果是偶数个,P被清0。,2、

11、控制器,控制器是用来统一指挥和控制计算机工作的部件。 结构:时钟发生器、定时控制逻辑、程序计数器PC、指令寄存器、指令译码器、数据指针寄存器DPTR、堆栈指针SP、以及地址译码器和地址缓冲器等。 功能:从存储器逐条读取指令,进行指令译码,并且通过定时和控制电路,在规定的时刻发出各种操作所需要的控制信息以及CPU所需的控制信号,使各部分协调工作,完成指令所规定的各种操作。,程序计数器PC,PC是一个16位的专用寄存器。 PC存放与指示下一条要执行指令的地址,当一条指令按照PC所指示的地址从存储器中取出来之后,PC会自动指向下一条指令。 PC在物理结构上是独立的,不属于内部RAM,没有地址,是不可

12、寻址的。 用户无法对它进行读写,只有通过转移、调用和返回等指令来改变PC中的内容,以实现程序的转移。,堆栈指针寄存器SP,堆栈:在片内数据存储器中开辟的按照“先进后出,后进先出”的原则进行存取的RAM区。 分布:是片内RAM的低128字节(007FH段)。 用途:保护现场和断电保护(中断和调用子程序时)。 操作:压栈和出栈 通过堆栈指针SP来进行堆栈操作: SP随时跟踪栈顶地址; 按照先进后出的原则进行压栈和出栈操作。 开机复位后,SP指向片内RAM地址07H。,数据指针DPTR,DPTR是一个16位的寄存器,主要用来存放16位的地址,做间接寻址寄存器使用。 可以对64K字节的外部数据存储器和

13、I/O口进行寻址. DPTR可以拆成高字节DPH和低字节DPL两个独立的8位寄存器,分别占用83H和82H这两个地址,83H是DPH,82H是DPL。 拆分之后,可以按照8位寄存器的方式进行操作和寻址。,存储器,在物理结构有4个空间,片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器,89C51存储器,程序存储器ROM,数据存储器RAM,哈佛结构,片内RAM,程序存储器系统分布,片外RAM,程序存储器,程序存储器可存放编译好的程序和表格常数。 设计了两条特殊指令可以到程序存储器里面通过查表的方式取出表格常数。 MOVC A,A+DPTR MOVC A,A+PC,程序存储器,8051

14、片内有4KROM,片外用16根地址线最多可以扩展64KROM,两者统一编址。8031没有片内ROM,只有向外扩展64K ROM 。 若EA=1,PC先在片内0000H0FFFH 4K字节范围内读取程序,当寻址范围超过0FFFH后,会自动转向片外1000HFFFFH取指。 若EA=0,所有取指均在片外ROM,即片外0000H0FFFFH中。 8031片内没有ROM,EA只能接地,PC指向片外,从片外取指令。,程序存储器,6个特殊功能单元: 0000H:开机或系统复位入口 0003H:外部中断0的中断入口 000BH:定时器T0的溢出中断入口 0013H:外部中断1的中断入口 001BH:定时器T

15、1溢出中断的入口 0023H:串行口中断的入口,数据存储器,数据存储器是用来存放运算的中间结果,数据的暂存以及缓冲。 单片机片内有256字节的数据存储器,片外最多可以扩展成64K,构成两个地址空间。 访问片内存储器用“MOV”指令,访问片外数据存储器用“MOVX”指令,工作寄存器,工作寄存器: 通过对程序状态字中的RS1和RS0的设置,决定CPU当前究竟使用那组工作寄存器。 如果程序当中不需要4组工作寄存器,多余的寄存器单元可以作为一般寄存器使用的。,位寻址区,位寻址区:工作寄存器后的16个字节(20H2FH),可以位寻址。,专用寄存器 特殊功能寄存器SFR,有21个专用寄存器,离散地分布在片

16、内数据存储器的高128字节地址(80HFFH),并没占满整个128个字节。,I/O口的结构,1、P0口 2、P1口 3、P2口 4、P3口,1、P0口,P0口是最重要的,也是结构最复杂的一个口。 P0口每一位由一个锁存器、两个三态输入缓冲器和输出驱动电路组成。 P0口有两种用途: 作为普通I/O口 P0口是一个漏极开路的8位准双向I/O口。 作为地址/数据总线 P0口是一个真正的双向口,可以随意地读写。,1、P0口,1)一般I/O口输出情况 2)一般I/O口输入情况 3)作为地址数据总线输出 4)作为地址数据总线输入口,2、P1口,P1是通用I/O口,是真正的用户口,用户可以随意使用它。 P1

17、比P0口上简单,包括一个锁存器两个三态缓冲器和一个驱动管V2,其漏极通过上拉电阻与电源相连。 P1口也是一个准双向口,每次从输出转成输入之前,预先向口锁存器写1。,3、P2口,P2口的位结构与P0口类似,也有多路开关、控制信号。 驱动部分与P1口类似,内部去掉V1,接了上拉电阻,但比P1口多了一个转换控制部分。,4、P3口,P3口是个多功能端口,主要使用其第二功能,在单片机应用中起到重要作用。,第三节 时钟电路和时序分析,时钟电路 时序分析,时钟电路,1、内部时钟 2、外部时钟 3、时钟信号发生器,1、内部时钟,89C51单片机的内部有一个高增益的反相放大器,用于构成振荡器。 XTAL1是反相

18、放大器的输入端, XTAL2是反相放大器的输出端,在这两个端口之间跨接是石英晶体以及接两个补偿电容,就可以构成稳定的自激多谐振荡器。 R1限流电阻,R2是偏置电阻。使得反相放大器工作在线性区,容易产生振荡。,2、外部时钟,89C51可以使用外部振荡脉冲电路,外部振荡信号从XTAL1送进去,直接送到内部的时钟电路上去。,3、时钟信号发生器,晶体振荡器的振荡信号从XTAL1端输入到片内的时钟信号发生器上,时钟发生器实际上是一个二分频的电路,对应产生两个时序,一个是P1,一个是P2。,时序分析,相关的概念 振荡周期:单片机中最基本的时间单位,是振荡源的周期,通过石英晶体振荡电路产生振荡周期。 时钟周期:又称为状态周期S,是振荡周期的2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论