《51单片机结构功能ppt课件.pptx》由会员分享,可在线阅读,更多相关《51单片机结构功能ppt课件.pptx(36页珍藏版)》请在三一办公上搜索。
1、8051单片机的结构与功能,8051的基本功能,8位数据总线,16位地址总线的CPU;具有布尔处理能力和位处理能力;采用哈佛结构,程序存储器与数据存储器地址空间各自独立,便于程序设计;相同地址的64KB程序存储器和64KB数据存储器;0-8KB片内程序存储器(8031无,8051有4KB,8052有8KB,89C55有20KB);128字节片内数据存储器(8051有256字节);32根双向并可以按位寻址的I/O线;两个16位定时/计数器(8052有3个);一个全双工的串行I/O接口;多个中断源的中断结构,具有两个中断优先级;片内时钟振荡器。,第二讲 单片机8051,单片机结构,特点:以微处理器
2、(CPU)为核心CPU与其他部件间通过三总线连接,AB: Address BusDB: Data BusCB: Control Bus,第二讲 单片机8051,1、地址总线(Address Bus,简写为AB) 地址总线可传送单片机送出的地址信号,用于访问外部存储器单元或I/O端口。 地址总线是单向的,地址信号只是由单片机向外发出; 地址总线的数目决定了可直接访问的存储器单元的数目。 例如N位地址,可以产生2N个连续地址编码,因此可访问2N个存储单元,即通常所说的寻址范围为 2N个地址单元。 MCS51单片机有十六位地址线,因此存储器扩展范围可达216 = 64KB地址单元。 挂在总线上的器件
3、,只有地址被选中的单元才能与CPU交换数据,其余的都暂时不能操作,否则会引起数据冲突。,总线: 指能为多个部件服务的信息传送线。,2、数据总线(Data Bus,简写为DB) 数据总线用于在单片机与存储器之间或单片机与I/O端口之间传送数据。 单片机系统数据总线的位数与单片机处理数据的字长一致。例如MCS51单片机是8位字长,所以数据总线的位数也是8位。 数据总线是双向的,即可以进行两个方向的数据传送。,3、控制总线(Control Bus,简写为CB)控制总线实际上就是一组控制信号线,包括单片机发出的,以及从其它部件送给单片机的各种控制或联络信号。对于一条控制信号线来说,其传送方向是单向的,
4、但是由不同方向的控制信号线组合的控制总线则表示为双向的。,总线结构形式大大减少了单片机系统中连接线的数目,提高了系统的可靠性,增加了系统的灵活性。此外,总线结构也使扩展易于实现,各功能部件只要符合总线规范,就可以很方便地接入系统,实现单片机扩展。,地址总线、数据总线和若干控制线把存储器和微处理器连接起来。存储器从CPU接收控制信号,以确定存储器执行读/写操作。地址总线将地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。 数据总线用来传送存储器到CPU或CPU到存储器的数据信息单片机总线的应用: 扩展数据存储器、扩展程序存储器。,MCS-51单片机总线结构,8051 功能框图,80
5、51CPU,振荡器和时序OSC,64KB 总线扩展控制器,数据存储器256B RAM/SFR,216位定时器/计数器,可编程I/O,程序存储器4KBROM,可编程全双工串行口,外中断,内中断,控制,并行口I/O口:4个8位的I/O口P0、P1、P2、P3。,串行通信,外部时钟源,外部事件计数,中央处理器CPU:8位,运算和控制功能,串行口:一个全双工串行口。,时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ,中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个),内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。,定时/计数器:两个16位的定时/计数器
6、,实现定时或计数功能。,内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。,MCS-51系列单片机内部组成,中央处理器(CPU);数据存储器(RAM);程序存储器(ROM); 2个l6位的定时器/计数器; 并行I/O口(32根I/O线,4个P口); 外部存贮器寻址范围ROM、RAM各64K;全双工串行口;中断系统( 5个中断源,2个中断优先级) 时钟电路。,用EPROM,为8751,8051单片机内部结构图,无ROM为8031,EPROM,运算器(ALU、专用寄存器),控制器(由定时和控制部件构成),1. CPU,中央处理器CPU是单
7、片机的核心,是单片机的大脑和心脏。它由运算器和控制器等部件组成。,作用:主要完成运算和控制功能。,第二讲 单片机8051,运算器(ALU、专用寄存器),(1) 运算器,运算部件以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B、暂存器、程序状态字PSW以及十进制调整电路和布尔处理器等许多部件组成的。,运算器的作用,是把传送到微处理器的数据进行算术运算或逻辑运算。(1)执行各种算术运算。(2)执行各种逻辑运算,并进行逻辑测试。如零值测试或两个值的比较。,ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。,数据寄存器,累加器,ALU的两个主要的输入来源,ALU执行不
8、同的运算操作是由不同控制线上的信息所确定的。 两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制线发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9。,1)算术逻辑单元( ALUArithmetic Logic Unit),可以对4位(半字节)8位(一字节)和16位(双字节)数据进行操作。作用:完成算术四则运算和逻辑运算、位操作及循环移位等逻辑操作,操作结果的状态信息送至状态寄存器(PSW)。2)累加器ACC,在指令中用助记符A来表示 A是一个8位寄存器,是CPU中工作最繁忙的寄存器。MCS-51指令系统
9、中多数指令的执行都通过它进行。 作用:在算数逻辑运算中,它经常作为一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。在与外部存储器和I/O接口打交道时,完成数据传送。,3)寄存器 B( 8位寄存器),4) 2个8位暂存器:(暂存器1 和 暂存器2),ALU的两个入口处。,作用:在乘法和除法运算中用作ALU的输入之一。乘法运算时,ALU的两个输入分别为A、B,运算结果存放在A、B寄存器中,其中A存放积的低8位,B则存放积的高8位。除法运算时,被除数取自A,除数取自B;运算结果商数存于A,而余数存于B。不作乘、除运算时,寄存器B可作通用寄存器使用。
10、,5)程序状态字寄存器PSW(程序状态标志寄存器),8位寄存器。作用:存放当前指令执行后操作结果的某些特征,为下一条指令的执行提供依据。,程序状态字PSW各位标志的含义,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,PSW.7 CY 进位标志位 PSW.6 AC 辅助进位(或称半进位)标志PSW.5 F0 用户标志位 PSW.4,PSW.3 RS1和RS0工作寄存器组选择位 PSW.2 OV 溢出标志位 PSW.1 未定义位PSW.0 P 奇偶标志位,CY是PSW中最常用的标志位。由硬件或软件置位和清零。在字节运算时:它表示运算结果是否有进位(
11、或借位)。 加法时:有进位 Cy由硬件置“1” 即Cy=1; 无进位 CY被硬件清“0” 即Cy=0。减法时:有借位 Cy由硬件置“1” 即Cy=1; 无借位 CY被硬件清“0” 即Cy=0。在位操作(布尔操作)时: CY作为累加器使用,其作用相当于字节操作的累加器ACC。位传送、位与位等位操作,进位标志位是固定的操作位之一。,Cy,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,AC(PSW.6) 辅助进位(或称半进位)标志。 当执行加减运算时,其运算结果产生低四位向高四位进位或借位时, AC由硬件置“1”;否则AC位被自动清“0”。 一般在B
12、CD码运算时,系统用于进行十进制调整。,Ac,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,F0,F0(PSW.5) 用户标志位。 用户可根据自己的需要对F0位赋予一定的含义,由用户置位或复位,作为软件标志。 SETB F0 ; 置位 CLR F0 ; 复位,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,RS1&RS0,RS1(PSW.4)、RS0(PSW.3) 寄存器区选择控制位。,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,CPU通过对PS
13、W中的D4、D3位内容的修改,就能任选一个工作寄存器区。例如: PSW3 =1; PSW4 =0 ; PSW4 =1; PSW3=0; PSW3=1 PSW=1 ;,选定第区,选定第2区,选定第区,OV,OV(PSW.2) 溢出标志位 它反映运算结果是否溢出,溢出时则由硬件将OV 位置“1”;否则置“0”。,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,在带符号的加减运算中,若运算超出了累加器A所能表示的符号数的有效范围(-128127),则自动置1,表示产生了溢出,说明运算结果是错误的。否则为0。 乘法运算中,Ov=1表示乘积超过255,即乘
14、积分别在A和B中;否则为0,表示乘积只在A中。 除法运算中,Ov=1表示除数为0。,P(PSW.0) 奇偶标志位 P标志表明累加器ACC中1的个数的奇偶性。在每条指令执行完后,单片机根据ACC的内容对P 位自动置位或复位。 若累加器ACC中有奇数个“1”,则P=1; 若累加器ACC中有偶数个“1”,则P=0。,P,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,溢出和进位是两种不同性质的概念。 溢出是指有正负号的两个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。 而进位则表示两数运算最高位(D7)相加(或相减)有无进位(或借位)
15、。,OV 与 Cy,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,组成:程序计数器(PC)、指令寄存器(IR)、指令译码器(ID) 、数据指针(DPTR)、堆栈指针(SP)以及定时控制电路等。功能:对来自存储器中的指令进行译码,通过定时控制电路在规定的时刻发出各种操作所需的控制信号,使各部分协调工作,完成指令所规定的功能,控制器是CPU的大脑中枢,是计算机的指挥控制部件。,(2)控制器,1)程序计数器(PC)16位计数器(重要) PC是程序的字节地址计数器, 16位专用寄存器,寻址范围为64KB。 作用:存放CPU执行的下一条待执行指令的地址,
16、具有自动加1的功能。 工作原理:当一条指令按照PC所指的地址从程序存储器中取出后,PC会自动加1,指向下一条指令。 基本工作过程可以描述为:PC中的数作为指令地址输出给程序存储器,程序存储器按此地址输出指令字节,同时PC本身自动加1,指向下一条指令。,2) 指令寄存器IR和指令译码器ID 指令寄存器IR:8位寄存器作用:用于暂存待执行的指令,等待译码。指令译码器ID:作用:对指令寄存器中的指令进行译码,即将指令转变为所需的电平信号。 根据译码器输出的电平信号,再经定时控制电路定时产生执行该指令所需要的各种控制信号。,程序存储器,PC,取出指令码,指令寄存器IR,指令译码器ID,把指令转变成所需
17、要得电平信号,CPU 产生执行该指令所需的各种控制信号,取指令,执行指令,分析指令,3) 数据指针(DPTR)16bit 16位专用寄存器。它可以对64K的外部数据存储器和I/O口进行寻址。也可作为两个8位寄存器。DPL (地址82H): DPTR的低字节,DPH(地址为83H):DPTR的高字节。作用:用作外部数据存储器的地址指针, DPTR 主要用来存放 16 位地址,可通过它访问 64 KB外部数据存储器或外部程序存储器空间。,(1)堆栈的概念堆栈是在RAM中专门开辟的一个特殊用途的存储区。只能从一端存取数据的一个存储区。(2)堆栈的访问原则: “先进后出”、“后进先出” 。即先进入堆栈
18、的数据后移出堆栈,即后进入堆栈的数据先移出堆栈。 (3)堆栈的结构堆栈的一端的地址是固定的,称为栈底;另一端的地址是动态变化的,称为栈顶。,4) 堆栈指针(SP)8 bit,(4)堆栈的操作方式两种操作方式:数据进栈(push)和数据出栈(pop)。进栈和出栈都是在栈顶进行,这就必然是按照“先进后出”、“后进先出”的方式存取数据。(5)堆栈的应用主要是用来暂时存放数据,有两种情况使用堆栈:一是CPU自动使用堆栈,当调用子程序或响应中断,处理中断服务程序时,CPU自动将返回地址存放到堆栈中;通过堆栈传递参数。二是程序员使用堆栈,用堆栈暂时存放数据。,4) 堆栈指针(SP)8 bit,(6) 堆栈指针SP堆栈指针SP(Stack Pointer)中为栈顶的地址,即SP指向栈顶。SP是访问堆栈的间址寄存器SP具有自动加1、自动减1功能。 当数据进栈时,SP先自动加1,然后CPU将数据存入; 当数据出栈时,CPU先将数据送出,然后SP自动减1。 由于进栈时SP的值增加,即堆栈向地址大的方向生长,并且栈顶是有效数据,这种堆栈是满递增型堆栈。,4) 堆栈指针(SP)8 bit,下图是数据进栈的情况数据从栈顶进入,E2,E1,E1,SP,SP,SP,A6,7B进栈后的状态,58进栈后的状态,开始状态,E2,58,A6,7B,E4,E3,7B,A6,58,36,