8051单片机的结构与功能8051的基本功能1.8位数据总线,16位地址总线的CPU;2.具有布尔处理能力和位处理能力;3.采用哈佛结构,程序存储器与数据存储器地址空间各自独立,便于程序设计;4.相同地址的64KB程序存储器和64KB数据存储器;5.0-8KB片内程序存储器(8031无,8051有4KB,8052有8KB,89C55有20KB);6.128字节片内数据存储器(8051有256字节);7.32根双向并可以按位寻址的I/O线;8.两个16位定时/计数器(8052有3个);9.一个全双工的串行I/O接口;10.多个中断源的中断结构,具有两个中断优先级;11.片内时钟振荡器。第二讲单片机8051单片机结构地址总线AB存储器I/O接口输入设备I/O接口输出设备微处理器CPU数据总线DB控制总线CBI/O接口特点:以微处理器(CPU)为核心CPU与其他部件间通过三总线连接AB:AddressBusDB:DataBusCB:ControlBus第二讲单片机80511、地址总线(AddressBus,简写为AB)地址总线可传送单片机送出的地址信号,用于访问外部存储器单元或I/O端口。★地址总线是单向的,地址信号只是由单片机向外发出;★地址总线的数目决定了可直接访问的存储器单元的数目。例如N位地址,可以产生2N个连续地址编码,因此可访问2N个存储单元,即通常所说的寻址范围为2N个地址单元。MCS—51单片机有十六位地址线,因此存储器扩展范围可达216=64KB地址单元。★挂在总线上的器件,只有地址被选中的单元才能与CPU交换数据,其余的都暂时不能操作,否则会引起数据冲突。总线:指能为多个部件服务的信息传送线。2、数据总线(DataBus,简写为DB)数据总线用于在单片机与存储器之间或单片机与I/O端口之间传送数据。★单片机系统数据总线的位数与单片机处理数据的字长一致。例如MCS—51单片机是8位字长,所以数据总线的位数也是8位。★数据总线是双向的,即可以进行两个方向的数据传送。3、控制总线(ControlBus,简写为CB)★控制总线实际上就是一组控制信号线,包括单片机发出的,以及从其它部件送给单片机的各种控制或联络信号。★对于一条控制信号线来说,其传送方向是单向的,但是由不同方向的控制信号线组合的控制总线则表示为双向的。总线结构形式大大减少了单片机系统中连接线的数目,提高了系统的可靠性,增加了系统的灵活性。此外,总线结构也使扩展易于实现,各功能部件只要符合总线规范,就可以很方便地接入系统,实现单片机扩展。地址总线、数据总线和若干控制线把存储器和微处理器连接起来。存储器从CPU接收控制信号,以确定存储器执行读/写操作。地址总线将地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。数据总线用来传送存储器到CPU或CPU到存储器的数据信息单片机总线的应用:扩展数据存储器、扩展程序存储器。MCS-51单片机总线结构8051功能框图8051CPU振荡器和时序OSC64KB总线扩展控制器数据存储器256BRAM/SFR2×16位定时器/计数器可编程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位的定时/计数器,实现定时或计数功能。内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。MCS-51系列单片机内部组成中央处理器(CPU);数据存储器(RAM);程序存储器(ROM);2个l6位的定时器/计数器;并行I/O口(32根I/O线,4个P口);外部存贮器寻址范围ROM、RAM各64K;全双工串行口;中断系统(5个中断源,2个中断优先级)时钟电路。P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARET用EPROM,为87518051单片机内部结构图无ROM为8031EPROMP0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARETP0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARET运算器(ALU、专用寄存器)控制器(由定时和控制部件构成)1.CPU中央处理器CPU是单片机的核心,是单片机的大脑和心脏。它由运算器和控制器等部件组成。作用:主要完成运算和控制功能。第二讲单片机8051B寄存器P2锁存器内部ROMP0锁存器内部RAMRAM地址寄存器暂存器1暂存器2ACCSPALUP1锁存器PSWDPTRPCPC增1程序地址寄存器缓冲器P2驱动器P0驱动器P1驱动器指令寄存器OSCP3驱动器P3锁存器指令译码器定时控制PSENALEEARSTXTAL1XTAL2P1.0~P1.7P3.0~P3.7PCONSCONTCONTMODTH0TL0TH1TL1SBUFSBUFIEIP中断、串行口和计数器/定时器P0.0~P0.7P2.0~P2.7VCCGND运算器(ALU、专用寄存器)(1)运算器运算部件以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B、暂存器、程序状态字PSW以及十进制调整电路和布尔处理器等许多部件组成的。运算器的作用是把传送到微处理器的数据进行算术运算或逻辑运算。(1)执行各种算术运算。(2)执行各种逻辑运算,并进行逻辑测试。如零值测试或两个值的比较。ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。数据寄存器累加器ALU的两个主要的输入来源ALU执行不同的运算操作是由不同控制线上的信息所确定的。两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制线发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9。1)算术逻辑单元(ALU—ArithmeticLogicUnit)可以对4位(半字节)8位(一字节)和16位(双字节)数据进行操作。作用:完成算术四则运算和逻辑运算、位操作及循环移位等逻辑操作,操作结果的状态信息送至状态寄存器(PSW)。2)累加器ACC,在指令中用助记符A来表示A是一个8位寄存器,是CPU中工作最繁忙的寄存器。MCS-51指令系统中多数指令的执行都通过它进行。作用:在算数逻辑运算中,它经常作为一个运算数经暂存器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可作通用寄存器使用。P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARETP0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARET5)程序状态字寄存器PSW(程序状态标志寄存器)8位寄存器。作用:存放当前指令执行后操作结果的某些特征,为下一条指令的执行提供依据。程序状态字PSW各位标志的含义CYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7CY进位标志位PSW.6AC辅助进位(或称半进位)标志PSW.5F0用户标志位PSW.4,PSW.3RS1和RS0工作寄存器组选择位PSW.2OV溢出标志位PSW.1未定义位PSW.0P奇偶标志位CY是PSW中最常用的标志位。由硬件或软件置位和清零。在字节运算时:它表示运算结果是否有进位(或借位)。加法时:有进位Cy由硬件置“1”即Cy=1;无进位CY被硬件清“0”即Cy=0。减法时:有借位Cy由硬件置“1”即Cy=1;无借位CY被硬件清“0”即Cy=0。在位操作(布尔操作)时:CY作为累加器使用,其作用相当于字节操作的累加器ACC。位传送、位与位等位操作,进位标志位是固定的操作位之一。CYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0AC(PSW.6)辅助进位(或称半进位)标志。当执行加减运算时,其运算结果产生低四位向高四位进位或借位时,AC由硬件置“1”;否则AC位被自动清“0”。一般在BCD码运算时,系统用于进行十进制调整。CYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0F0(PSW.5)用户标志位。用户可根据自己的需要对F0位赋予一定的含义,由用户置位或复位,作为软件标志。SETBF0;置位CLRF0;复位CYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0RS1(PSW.4)、RS0(PSW.3)寄存器区选择控制位。RS1RS0寄存器组片内RAM地址00第0组00H-07H01第1组08H-0FH10第2组10H-17H11第3组18H-1FHCYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CPU通过对PSW中的D4、D3位内容的修改,就能任选一个工作寄存器区。例如:PSW^3=1;PSW^4=0;PSW^4=1;PSW^3=0;PSW^3=1PSW^4=1;选定第1区选定第2区选定第3区OV(PSW.2)溢出标志位它反映运算结果是否溢出,溢出时则由硬件将OV位置“1”;否则置“0”。CYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW