您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 89C51单片机的结构及原理解析
第一章89C51单片机的结构及原理提要总体架构主要组成时钟电路和时序分析复位操作2020年3月20日2第1节总体架构基本框架内部结构管脚分配2020年3月20日3基本框架89C51CPU振荡器和时序OSC64KB总线扩展控制器数据存储器256BRAM/SFR2×16位定时器/计数器可编程I/O程序存储器4KBFLASH可编程全双工串行口外中断内中断控制并行口串行通信外部时钟源外部事件计数基本框架8位CPU以及指令系统片内有256字节的数据存储器00H—7FH段:存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等80H—FFH段:零散分布21个特殊功能寄存器。片内有4K字节ROM存放程序、一些原始数据和表格。4个8位的并行I/O口P0、P1、P2和P3每个口可以用作输入,也可以用作输出。片外存储器扩展可扩展64K程序存储器。可扩展64K数据存储器。2020年3月20日5基本框架2个16位的定时/计数器可设置成计数方式,对外部事件进行计数。可设置成定时方式,对内部时钟进行计数,从而实现定时。1个全双工串行口可实现单片机与单片机或其它微机之间串行通信。5个中断源,2级优先1个片内时钟振荡电路需外接晶振和电容2、内部结构P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC加1寄存器PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARESET3、管脚分配3、管脚分配Vcc:电源,正端Vss:地线,接地XTAL2(18脚)和XTAL1(19脚):内部:片内有晶体振荡电路,外接石英晶振,电源上电,自动进行振荡;外接:XTAL1接外部时钟脉冲,XTAL2悬空。控制信号引脚RST、ALE、PSEN和EARST:复位信号,高电平有效ALE/PROG:地址锁存允许信号/片内ROM固化程序的编程脉冲PSEN:片外ROM读选通信号EA/VPP:片内外ROM选择信号/编程电压的输入端3、管脚分配ALE/PROGALE地址锁存允许信号PROG:对89C51片内ROM固化程序的时候,加入编程脉冲。对8031、8051而言,这个功能是没用的。PSEN片外程序存储器选通信号低电平有效选通后读EPROM或ROM中的指令代码3、管脚分配EA/VPPEA=0时,PC指向片外的程序存储器,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口共同组成了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、运算器运算器:算术逻辑单元ALU、累加器ACC、暂存器TMP1和TMP2、程序状态字寄存器PSW(ProgramStatusWord)、BCD码运算调整电路和布尔处理器等。为了提高数据处理和位操作能力,片内还增加了一个通用寄存器B和一些专用寄存器。PSW中的进位位C可以作为位累加器使用,整个位操作系统构成了一个布尔处理器。算术逻辑单元ALU算术逻辑单元是由加法器和逻辑电路组成,主要完成二进制数的四则运算,以及布尔代数的逻辑运算。通过对运算结果的判断,决定程序状态字PSW的相关状态标志位的变化。累加器ACCACC是一个8位累加器,通过暂存器和算术逻辑单元相连。ACC是CPU中最繁忙的寄存器。在指令系统中,A作为累加器的助记符。累加器ACC可以按位来操作,如果按位操作,必须写成ACC.0、ACC.1,一直到ACC.7,而不能A.0、A.1到A.7。PUSHACC,POPACC程序状态字PSW程序状态字PSW是8位寄存器,7位有效:用作程序运行的状态标志,如算术运算、逻辑运算或移位操作时,如果结果会影响到标志位的时候,PSW相关位就会做出相应反应,进行清零或置1。其中有两位用作工作寄存器选择位。PSW字节地址是D0H。程序状态字PSWCY——进位位,在位操作时作为累加器;AC——辅助进位位,或称为半进位位;F0——用户标志位;RS0和RS1——工作寄存器指针,用来选择不同的四组工作寄存器(共32个字节);OV——溢出标志;PSW.1没有定义;P——奇偶位,始终跟踪累加器A中1的个数的奇偶性。ACCYP—OVRS0RS1F0PSW(D0H)D7D6D5D4D3D2D1D0程序状态字PSW每位的具体含义:C是进位标志:在进行字节加法或减法运算时,如果最高位(第7位)有进位或借位时,C被置1,否则C被清0。在进行位操作时,C被称为位累加器。AC是辅助进位标志:在进行加法或减法运算时候,如果低半字节(第3位),向高半字节有进位或借位,AC被置1,否则AC被清0。在进行BCD码运算时,AC还作为BCD码调整时的判别位。F0是用户标志位。用户可根据自己需要,自主来置位或清零,作为程序运行的状体标志使用。程序状态字PSWRS1和RS0是工作寄存器指针,用于选择当前工作的寄存器组,用户可以改变RS1和RS0的组合,来切换当前工作寄存器组。程序状态字PSWOV是溢出标志:进行有符号数加减运算时,如果发生溢出,OV被置1,否则OV清0。进行无符号数乘法时,如乘积超过255,OV被置1,否则清零。进行无符号数除法时,如除数为0,OV被置1,表示除法不能进行,否则被清零。P是奇偶标志:P始终跟踪累加器A的奇偶性。如果A中1的个数是奇数个,P被置1;如果是偶数个,P被清0。2、控制器控制器是用来统一指挥和控制计算机工作的部件。结构:时钟发生器、定时控制逻辑、程序计数器PC、指令寄存器、指令译码器、数据指针寄存器DPTR、堆栈指针SP、以及地址译码器和地址缓冲器等。功能:从存储器逐条读取指令,进行指令译码,并且通过定时和控制电路,在规定的时刻发出各种操作所需要的控制信息以及CPU所需的控制信号,使各部分协调工作,完成指令所规定的各种操作。程序计数器PCPC是一个16位的专用寄存器。PC存放与指示下一条要执行指令的地址,当一条指令按照PC所指示的地址从存储器中取出来之后,PC会自动指向下一条指令。PC在物理结构上是独立的,不属于内部RAM,没有地址,是不可寻址的。用户无法对它进行读写,只有通过转移、调用和返回等指令来改变PC中的内容,以实现程序的转移。堆栈指针寄存器SP堆栈:在片内数据存储器中开辟的按照“先进后出,后进先出”的原则进行存取的RAM区。分布:是片内RAM的低128字节(00——7FH段)。用途:保护现场和断电保护(中断和调用子程序时)。操作:压栈和出栈通过堆栈指针SP来进行堆栈操作:SP随时跟踪栈顶地址;按照先进后出的原则进行压栈和出栈操作。开机复位后,SP指向片内RAM地址07H。数据指针DPTRDPTR是一个16位的寄存器,主要用来存放16位的地址,做间接寻址寄存器使用。可以对64K字节的外部数据存储器和I/O口进行寻址.DPTR可以拆成高字节DPH和低字节DPL两个独立的8位寄存器,分别占用83H和82H这两个地址,83H是DPH,82H是DPL。拆分之后,可以按照8位寄存器的方式进行操作和寻址。存储器在物理结构有4个空间片内程序存储器片外程序存储器片内数据存储器片外数据存储器89C51存储器程序存储器ROM数据存储器RAM哈佛结构片内RAM程序存储器系统分布片外RAM程序存储器程序存储器可存放编译好的程序和表格常数。设计了两条特殊指令可以到程序存储器里面通过查表的方式取出表格常数。MOVCA,@A+DPTRMOVCA,@A+PC程序存储器8051片内有4KROM,片外用16根地址线最多可以扩展64KROM,两者统一编址。8031没有片内ROM,只有向外扩展64KROM。若EA=1,PC先在片内0000H——0FFFH4K字节范围内读取程序,当寻址范围超过0FFFH后,会自动转向片外1000H——FFFFH取指。若EA=0,所有取指均在片外ROM,即片外0000H——0FFFFH中。8031片内没有ROM,EA只能接地,PC指向片外,从片外取指令。程序存储器6个特殊功能单元:0000H:开机或系统复位入口0003H:外部中断0的中断入口000BH:定时器T0的溢出中断入口0013H:外部中断1的中断入口001BH:定时器T1溢出中断的入口0023H:串行口中断的入口数据存储器数据存储器是用来存放运算的中间结果,数据的暂存以及缓冲。单片机片内有256字节的数据存储器,片外最多可以扩展成64K,构成两个地址空间。访问片内存储器用“MOV”指令,访问片外数据存储器用“MOVX”指令工作寄存器工作寄存器:通过对程序状态字中的RS1和RS0的设置,决定CPU当前究竟使用那组工作寄存器。如果程序当中不需要4组工作寄存器,多余的寄存器单元可以作为一般寄存器使用的。组RS1RS0R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H10108H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH位寻址区位寻址区:工作寄存器后的16个字节(20H—2FH),可以位寻址。专用寄存器特殊功能寄存器SFR,有21个专用寄存器,离散地分布在片内数据存储器的高128字节地址(80H—FFH),并没占满整个128个字节。SFRMSB位地址/位定义LSB字节地址BF7F6F5F4F3F2F1F0F0ACCE7E6E5E4E3E2E1E0E0PSWD7D6D5D4D3D2D1D0D0CYACF0RS1RS0OVF1PIPBFBEBDBCBBBAB9B8B8P3B7B6B5B4B3B2B1B0B0IEAFAEADACABAAA9A8A8EAESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0SBUF99SCON9F9E9D9C9B9A999898SM0SM1SM2RENTB8RB8TIRIP1979695949392919090TH18DTH08CTL18BTL08ATMODGATEC/TM1M0GATEC/TM1M089TCON8F8E8D8C8B8A898888TF1TR1TF0TR0IE1IT1IE0IT0PCONSMOD///GF1GF0PDIDL87DPH83DPL82SP81P0878685848382818080I/O口的结构1、P0口2、P1口3、P2口4、P3口1、P0口P0口是最重要的,也是结构最复杂的一个口。P0口每一位由一个锁存器、两个三态输入缓冲器和输出驱动电路组成。P0口有两种用途:作为普通I/O口P0口是一个漏极开路的8位
本文标题:89C51单片机的结构及原理解析
链接地址:https://www.777doc.com/doc-4467932 .html