单片机芯片的结构及原理课件_第1页
单片机芯片的结构及原理课件_第2页
单片机芯片的结构及原理课件_第3页
单片机芯片的结构及原理课件_第4页
单片机芯片的结构及原理课件_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

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

文档简介

第2章单片机硬件结构单片机原理及应用2.1逻辑结构及信号引脚2.2内部存储器2.3并行输入/输出口电路2.4电路与时序2.5工作方式11/26/20221第2章单片机硬件结构单片机原理及应用2.1逻辑第2章一、教学目标:1、了解MCS-51单片机芯片基本特征及内部架构2、熟悉外部引脚及部分引脚功能3、熟悉存储结构体系及部分特殊功能寄存器4、掌握I/O电路原理及应用二、教学重难点:三、教学时数:8课时四、习题:P40三2.5.7.811/26/20222电信学院第2章一、教学目标:11/26/20222电信学院2.1.1结构框图2.1.2内部逻辑结构2.1.3信号引脚2.1逻辑结构及信号引脚11/26/202232.1.1结构框图2.1逻辑结构及信号引脚11/2.1.1结构框图8031无11/26/202242.1.1结构框图8031无11/26/20224图2-2MCS-51单片机的内部结构框图11/26/20225图2-2MCS-51单片机的内部结构框图11/26/202.1.2内部逻辑结构CPU运算器电路CPU控制器电路CPU控制器电路11/26/202262.1.2内部逻辑结构CPU运算器电路CPU控制器电路C1.CPU(中央处理器)完成单片机的运算和控制能力

运算器控制器ALU、ACC、寄存器B、暂存器、PSW寄存器、十进制调整电路等定时控制逻辑、指令寄存器、译码器、信息传输控制部件11/26/202271.CPU(中央处理器)完成单片机的运算和控制能力运算器控制MCS—51CPUCPU内部结构:(1)运算器电路:运算部件以算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、暂存器、标志寄存器PSW等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。算术运算单元ALU是一个8位的运算器,它不仅可以完成8位二进制数据加、减、乘、除等基本的算术运算,还可以完成8位二进制数据逻辑“与”、“或”、“异或”、循环移位、求补、清零等逻辑运算,并具有数据传输、程序转移等功能。ALU还有一个一般微型计算机没有的位运算器,它可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑“与”、“或”等处理。这对于控制方面很有用。累加器ACC(简称为A)为一个8位的寄存器,它是CPU中使用最频繁的寄存器,ALU进行运算时,数据绝大多数时候都来自于累加器ACC,运算结果也通常送回累加器ACC。11/26/20228MCS—51CPUCPU内部结构:(1)运算器寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的。在乘法运算时,累加器A和寄存器B在乘法运算前存放乘数和被乘数,运算完后,通过寄存器B和累加器A存放结果。除法运算时,运算前,累加器A和寄存器B存入被除数和除数,运算后用于存放商和余数。标志寄存器PSW是一个8位的寄存器,它用于保存指令执行结果的状态,以供程序查询和判别。D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5):用户标志位。RS1、RS0(PSW.4、PSW.3):寄存器组选择位。OV(PSW.2):溢出标志位。P(PSW.0):奇偶标志位。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。

11/26/20229寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的(2)控制器电路:

MCS—51CPU

控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC、堆栈指针SP、数据指针DPTR以及信息传送控制部件等。它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。11/26/202210(2)控制器电路:MCS—51CPU控2.内部存储器程序存储器ROM数据存储器RAM

存放程序指令,常数和数据表格(只读)存放数据,分为内部和外部数据存储器(随机)单片机内有256个RAM单元,作为寄存器被用户使用的只有前128个单元,后128个被专用寄存器占用内部RAM指的是前128单元11/26/2022112.内部存储器程序存储器ROM数据存储器RAM存放程3.定时与中断系统MCS-51单片机内有两个16位的定时器/计数器:实现定时和计数,并将其结果作为查询和中断的控制凭据;MCS-51单片机内有5个中断源(2个中断优先级)2个外部中断源2个定时器/计数器中断源1个串行口中断源

11/26/2022123.定时与中断系统11/26/2022124.并行I/O口4个8位的并行I/O口(P0P1P2P3)实现数据并行输入输出5.串行I/O口一个全双工的串行口实现与外部的串行数据传送6.时钟电路为单片机产生时钟脉冲序列,协调和控制单片机的工作.MCS-51单片机内部有时钟电路(但是需外接石英晶体振荡器和微调电容)最高时钟频率为12MHZ11/26/2022134.并行I/O口11/26/202213图2-380C51单片机引脚图11/26/202214图2-380C51单片机引脚图11/26/2022142.2.1程序存储器2.2.2数据存储器2.2.3堆栈操作2.2内部存储器11/26/2022152.2.1程序存储器2.2内部存储器11/26/2MCS—51单片机存储器可以分成两大类:RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。11/26/202216MCS—51单片机存储器可以分成两大类:11/26/2022MCS-51单片机把程序存储器和数据存储器分开,具有各自的寻址系统和控制信号。1.内部程序存储器(ROM)存放程序和表格常数8051为4KB8052为8KB2.内部数据存储器(RAM)存放运算过程中的数据8051/8031为128B8052/8032为256B3.外部程序存储器(ROM)存放程序最大可扩展为64KB(包括内部ROM)4.外部数据存储器(RAM)存放大量数据最大可扩展为64KB(不包括内部RAM)11/26/202217MCS-51单片机把程序存储器和数据存储器分开,具有各自的2.2.4存储器结构特点普林斯顿结构:

程序和数据共用一个存储器逻辑空间,统一编址。哈佛结构:

程序与数据分为两个独立存储器逻辑空间,分开编址。11/26/2022182.2.4存储器结构特点普林斯顿结构:物理上4个存储器地址空间:片内程序存储器片外程序存储器片内数据存储器片外数据存储器逻辑上3个存储器地址空间:64KB程序存储器256B片内数据存储器64KB片外数据存储器8031805164KB11/26/202219物理上4个存储器地址空间:8031805164KB11/26图2-4MCS-51单片机系统的存储器结构和存储器空间分布11/26/202220图2-4MCS-51单片机系统的存储器结构和存储器空间分2.2.1程序存储器

对于8051来说,程序存储器(ROM)的内部地址为0000H~0FFFH,共4KB;外部地址为1000H~FFFFH,共60KB。当程序计数器由内部0FFFH执行到外部1000H时,会自动跳转。

=1时,单片机读内部ROM,若超出范围,CPU自动读外部ROM=0时,CPU完全读取外部ROM当读取外部ROM时,变为低电平当读取内部ROM时,保持为高电平11/26/2022212.2.1程序存储器=1时,单片机读内部ROM,若超出范2.2.2MCS-51单片机的数据存储器

数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存在重叠,通过使用不同的指令可予以区别。当访问片内RAM时,用MOV类指令;当访问片外RAM时,则用MOVX类指令,所以地址重叠不会造成操作混乱。

片内数据存储器在物理上又可分成3部分:低128BRAM高128BRAM(仅8032/8052才有)和特殊功能寄存器(SFR)。11/26/2022222.2.2MCS-51单片机的数据存储器

数据存储器用户RAM区00H07H20H1FH2FH30H7FHR7R6R5R4R3R2R1R0寄存器0,1,2,3组位寻址区内部数据存储器的结构分为三个区域:1.寄存器区:

4组寄存器(寄存器阵列)。即4个工作寄存器0区~3区。每组8个寄存单元(每单元8位),以R0~R7作寄存器名,暂存运算数据和中间结果。字节地址为00H~1FH。2.位寻址区:

字节地址为20H~2FH,既可作RAM,也可位操作。共有16个RAM单元,共128位,位地址为00H~7FH。3.用户RAM区:

32个单元,地址为30H~7FH,在一般应用中常作堆栈区。11/26/202223用户RAM区00H07H20H2FH30H7FHR7R6R511/26/20222411/26/202224

2.特殊功能寄存器区(80H~FFH)

该区用于存放相应功能部件的控制命令状态或数据。因为这些寄存器的功能已作专门规定,故而称为特殊功能寄存器(SFR)。MCS-51特殊功能寄存器共有22个,其中可字节寻址的只有21个,其地址及符号见表2-4。

11/26/2022252.特殊功能寄存器区(80H~FFH)

该区用于存表2-4特殊功能寄存器及其地址分配表11/26/202226表2-4特殊功能寄存器及其地址分配表11/26/202211/26/20222711/26/202227(1)

程序计数器PC(16位):CPU总是按PC的指示读取程序。PC是一个16位的计数器。其内容为将要执行的指令地址(即下一条指令地址),可自动加1。因此CPU执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。复位时,PC=0000H。11/26/202228(1)程序计数器PC(16位):11/26/20222(2)

累加器ACC(8位):累加器Acc是一个最常用的专用寄存器,为8位寄存器。累加器的功能较多,地位重要。其具有的功能概括如下:.累加器用于存放操作数,是ALU数据输入的一个重要来源,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的—个操作数也取自累加器;.累加器是从刀运算结果的暂存单元,用于存放运算的中间结果;.累加器是数据传送的中转站,单片机中的大部分数据传送都通过累加器进行;11/26/202229(2)累加器ACC(8位):累加器Acc是一.在变址寻址方式中把累加器作为变址寄存器使用。单片机中大部分的数据操作都会通过累加器Acc进行,在程序比较复杂的运算中,累加器成了制约软件效率的“瓶颈”,很容易出现阻塞现象。为此在80c51中设置了一些不经过累加器的数据传送指令,例如,寄存器与直接寻址单元之间的数据传送指令,直接寻址单元与间接寻址单元之间的数据传送指令,寄存器、直接寻址单元、间接寻址单元与立即数之间的数据传送指令等,以缓和累加器的拥堵。以至于后来发展的单片机,有的集成了多累加器结构,或者使用寄存器阵列末代替累加器,即赋予更多寄存器以累加器的功能,目的是解决累加器的“交通堵塞”问题。提高单片机的软件效率。11/26/202230.在变址寻址方式中把累加器作为变址寄存器使用。11/26/2(3)

寄存器B(8位):B是一个8位的寄存器,可以作为通用寄存器,存放各种数据。在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,B为乘数,乘法操作后其结果存放于朋寄存器对中,B中存放高八位。除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。此外,B寄存器也可以作为一股数据寄存器使用。11/26/202231(3)寄存器B(8位):B是一个8位的寄存器,(4)

程序状态字PSW(8位):程序状态字是一个8位寄存器,用于存放程序运行的状态信息,这个寄存器的一些位可由软件设置,有些位则由硬件运行时根据指令执行结果自动设置。功能说明如表所示。位序D7D6D5D4D3D2D1D0位符号CYACF0RS1RS0OVF1P.cY或c7——进位标志位cY有两个功能,一是存放执行某些算数运算时,存放进位标志,可被硬件或软件置位或清零;一是在位操作中作累加位使用,在位传送、位与、位或等位操作中都要使用进位标志。当进行字节的加法(或减法)运算时,cY作为进位(或借位)标志位。如果运算结果的最高位(D7)有进位(或借位)时,cY育l,反之则为o。在进行布尔运算时,cY作为“位累加器”使用。运算前应存放一位操作数,运算后自动存放运算结果。11/26/202232(4)程序状态字PSW(8位):程序状态字是一个8位寄.AC——辅助进位标志位进行加、减运算时,当有低4位向高4位进位或信位时,Ac由硬件置位,否则被渭零。在进行十进制数运算时需要十进制调整,此时要用到Ac位状态进行判断。Ac辅助进位位也常用于十进制调整。.F0——用户标志位为通用的“位”存储器,由用户定义的状态标志,四可用软件置位或复位,也可以靠软件测试四的状态以控制程序的执行顺序。开机时该位为“0”。.Rs1、Rs0:寄存器组选择控制位11/26/202233.AC——辅助进位标志位11/26/202233.ov——溢出标志位主要反映带符号数运算的结果是否正确。带符号加减运算中,超出了累加器A所能表示的符号数有效范围(一128——127)时,即产生溢出,ov=l。表明运算结果错误。如果ov=0,表明运算结果正确,即无溢出产生。执行加法指令ADD时,当位6向位7进位,而位7不向c进位时ov=1;或者位6不向位7进位,而位7向c进位时,同样ov=1。乘法指令,乘积超过255时,ov=1。表面乘积在AB寄存器对中。若ov=0,则说明表面乘积没有超过255,乘积应在累加器A中。除法指令,ov=l,表示除数为o,运算不被执行。否则ovzo。11/26/202234.ov——溢出标志位11/26/202234

(5)

堆栈指针SP:栈指针是一个8位专用寄存器,用于指示栈项在内部RAM中的位置。它总是指出栈项的位置。在进行压栈操作时,sP自动加一,在进行出栈操作时,sP自动减一。当调用于程序或进入中断服务程序时,堆栈都要自动保持主程序的断点地址,以便在于程序结束时能够正确返回到主程序。在复位状态时,sP为07H,堆栈区符由08H单元开始向上延伸。可以通过指令修改sP的内容,另行指定堆栈区的位置。.P———奇偶校验位声明累加器A的台偶性,每个指令周期都由硬件来置位或清零,当Acc中有奇数个时,P=1,否则为0。在串行通信时,常作为一锁数据的奇偶校验位。.PSw.1是保留位,末使用11/26/202235(5)堆栈指针SP:栈指针是一个8位专用

(6)

数据指针DPTR

(16位):(7)并行的I/O接口P0、P1、P2、P3均为8位。通过对这4个寄存器的读/写,可以实现数据从相应接口的输入/输出。

(8)其余的特殊功能寄存器将在以后的章节中详细介绍。11/26/202236(6)数据指针DPTR(16位):(7)并行

注意:21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,共83个可寻址位。尽管还剩余许多空闲单元,但用户并不能使用。在22个专用寄存器中,唯一一个不可寻址的PC。PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。11/26/202237注意:11/26/202237MCS—51共有四个8位的双向并行I/O口,分别记作P0、P1、P2和P3。实际上它们已被归入专用寄存器之列。口是一个综合概念,是一个集数据输入缓冲、数据输出驱动及锁存等多项功能为一体的I/O电路。对于口有时也称为端口。2.3并行输入/输出口电路11/26/202238MCS—51共有四个8位的双向并行I/O口,分别记作PP0口:一个数据输出锁存器和两个三态数据输入缓冲器。一个多路转接电路MUX在控制信号的作用下,MUX可以分别接通锁存器输出或地址/数据线。当作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门将输出驱动电路的上拉场效应管(FET)截止,同时使MUX接通锁存器~Q端的输出通路。11/26/202239P0口:一个数据输出锁存器和两个三态数据输入缓冲器。P0用作通用I/O口当系统不进行片外的ROM扩展,也不进行片外RAM扩展时,P0用作通用I/O口。在这种情况下,单片机硬件自动使控制C=0,MUX开关接向锁存器的反相输出端。另外,与门输出的“0”使输出驱动器的上拉场效应管T1处于截止状态。因此,输出驱动级工作在需外接上拉电阻的漏极开路方式。漏极开路是驱动电路的输出三极管的发射极开路,可以通过外接的上拉电阻提高驱动能力。11/26/202240P0用作通用I/O口漏极开路是驱动电路的输出三极管的发射极开作输出口时,CPU执行口的输出指令,内部数据总线上的数据在“写锁存器”信号的作用下由D端进入锁存器,经锁存器的反向端送至场效应管T2,再经T2反向,在P0.X引脚出现的数据正好是内部总线的数据。作输入口时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。11/26/202241作输出口时,CPU执行口的输出指令,内部数据总线上的P0用作通用I/O口CPU在执行“读—修改—写”类输入指令时,内部产生的“读锁存器”操作信号,使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P0的口锁存器并出现在引脚(如:ANLP0,A)。读口锁存器可以避免因外部电路原因使原口引脚的状态发生变化造成的误读。11/26/202242P0用作通用I/O口11/26/202242CPU在执行“MOV”类输入指令时,内部产生的操作信号是“读引脚”(如:MOVA,P0)。注意,在执行该类输入指令前要先把锁存器写入“1”,使场效应管T2截止,使引脚处于悬浮状态,可以作为高阻抗输入。否则,在作为输入方式之前曾向锁存器输出过“0”,则T2导通会使引脚箝位在“0”电平,使输入高电平“1”无法读入。所以,P0口在作为通用I/O口时,属于准双向口。11/26/202243CPU在执行“MOV”类输入指令时,内部产生的操作信P0用作地址/数据总线当系统进行片外的ROM扩展或进行片外RAM扩展,P0用作地址/数据总线时。在这种情况下,单片机内硬件自动使C=1,MUX开关接向反相器的输出端,这时与门的输出由地址/数据线的状态决定。CPU在执行输出指令时,低8位地址信息和数据信息分时地出现在地址/数据总线上。P0.X引脚的状态与地址/数据线的信息相同。CPU在执行输入指令时,首先低8位地址信息出现在地址/数据总线上,P0.X引脚的状态与地址/数据总线的地址信息相同。然后,CPU自动地使转换开关MUX拨向锁存器,并向P0口写入FFH,同时“读引脚”信号有效,数据经缓冲器进入内部数据总线。

P0口作为地址/数据总线使用时是一个真正的双向口。11/26/202244P0用作地址/数据总线11/26/202244P1口:作通用I/O口使用,输入输出原理特性与P0口作为通用I/O接口使用时一样。在电路结构上与P0口有一些不同之处。首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。这样,作为输出口使用时,已能向外提供推拉电流负载,无需再外接上拉电阻。P1口是通用的准双向I/O口。输出高电平时,能向外提供拉电流负载,不必再接上拉电阻。当口用作输入时,须向口锁存器写入1。11/26/202245P1口:作通用I/O口使用,输入输出原理特性与P0口P2口:P2口电路中比P1口多了一个多路转换电路MUX,这又正好与P0口一样。P2口也可以作为通用I/O口使用。这时多路转接开关倒向锁存器的Q端。但通常应用情况下,P2口是作为高位地址线使用,此时多路转接开关应倒向相反方向。11/26/202246P2口:P2口电路中比P1口多了一个多路转换电路MUP2用作通用I/O口当不需要在单片机芯片外部扩展程序存储器,只需扩展256B的片外RAM时,只用到了地址线的低8位,P2口仍可以作为通用I/O口使用。CPU在执行输出指令时,内部数据总线的数据在“写锁存器”信号的作用下由D端进入锁存器,经反相器反相后送至场效应管T,再经T反相,在P2.X引脚出现的数据正好是内部总线的数据。P2口用作输入时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。11/26/202247P2用作通用I/O口11/26/202247P2用作地址/数据总线当需要在单片机芯片外部扩展程序存储器或扩展的RAM容量超过256字节时,单片机内硬件自动使控制C=1,MUX开关接向地址线,这时P2.X引脚的状态正好与地址线的信息相同。CPU在执行“读—修改—写”类输入指令时内部产生的“读锁存器”操作信号使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P2的口锁存器并出现在引脚。CPU在执行“MOV”类输入指令时,内部产生的操作信号是“读引脚”。应在执行输入指令前要把锁存器写入“1”,从而使引脚处高阻抗输入状态。所以,P2口在作为通用I/O口时,属于准双向口。11/26/202248P2用作地址/数据总线CPU在执行“读—修改—写”类P3口:P3口的特点在于为适应引脚信号第二功能的需要。对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。11/26/202249P3口:P3口的特点在于为适应引脚信号第二功能的需要P3用作第一功能的通用I/O口当CPU对P3口进行字节或位寻址时(多数应用场合是把几条口线设为第二功能,另外几条口线设为第一功能,这时宜采用位寻址方式),单片机内部的硬件自动将第二功能输出线的W置1。这时,对应的口线为通用I/O口方式。11/26/202250P3用作第一功能的通用I/O口11/26/202250P3用作第一功能的通用I/O口作为输出时,锁存器的状态(Q端)与输出引脚的状态相同;作为输入时,也要先向口锁存器写入1,使引脚处于高阻输入状态。输入的数据在“读引脚”信号的作用下,进入内部数据总线。

P3口在作为通用I/O口时,也属于准双向口。11/26/202251P3用作第一功能的通用I/O口P3口在作为通用I/O口时,也P3用作第二功能使用当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1。这时,P3口作为第二功能使用。P3.0:RXD(串行口输入);P3.1:TXD(串行口输出);P3.2:外部中断0输入;P3.3:外部中断1输入;P3.4:T0(定时器0的外部输入);P3.5:T1(定时器1的外部输出);P3.6:(片外数据存储器“写”选通控制输出);P3.7:(片外数据存储器“读”选通控制输出)。11/26/202252P3用作第二功能使用11/26/20225211/26/20225311/26/202253端口小结:P0、P1、P2、P3口的电平与CMOS和TTL电平兼容。P0口的每一位口线可以驱动8个LSTTL负载。在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻;当作为地址/数据总线使用时,口线输出不是开漏的,无须外接上拉电阻。P1、P2、P3口的每一位能驱动4个LSTTL负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。由于单片机口线仅能提供几毫安的电流,当作为输出驱动一般的晶体管的基极时,应在口与晶体管的基极之间串接限流电阻。11/26/202254端口小结:P0、P1、P2、P3口的电平与CMOS和端口小结:(1)系统总线:

地址总线(16位):P0(地址低8位)、P2口(地址高8位)数据总线(8位):P0口(地址/数据分时复用,借助ALE);

控制总线(6根):P3口的第二功能和9、29、30、31脚;(2)供用户使用的端口:P1口、部分未作第二功能的P3口;(3)P0口作地址/数据时,是真正的双向口,三态,负载能力为8个LSTTL电路;P1~P3是准双向口,负载能力为4个LSTTL电路。(4)P0~P3在用作输入之前必须先写“1”,即: (P0)=FFH~(P3)=FFH。11/26/202255端口小结:(1)系统总线:11/26/202255

2.4电路与时序

CPU的功能,就是以不同的方式执行各种指令。不同的指令其功能各异。有的指令涉及CPU各寄存器之间的关系;有的指令涉及单片机核心电路内部各功能部件的关系;有的则与外部器件发生关系。则是通过复杂的时序电路完成不同的指令功能的。事实上,控制器按照指令的功能发出一系列在时间上有一定次序的信号,控制和启动一部分逻辑电路,完成某种操作*在什么时候发生什么控制信号,去启动何种部件动作,这就是CPU的时序。CPU芯片设计一旦完成,CPU时序就固定了。MCS—51时序图如下图所示。11/26/2022562.4电路与时序CPU的功能,就是以不同的2.4电路与时序2.4.1时钟电路

Mcs—51系列的单片机片内部有一个高增益反相放大器,其XTAL1端和XTAL2端用于外接石英晶体和微调电容,构成振荡器。电容c1和c2对频率有微调作用,电容容量的选择范围为5-30pF。XTAL1单片机XTAL2

内部时钟方式外部时钟方式1。.。XTAL1单片机XTAL2

外部时钟源+5V11/26/2022572.4电路与时序2.4.1时钟电路XTAL2.4电路与时序2.4.1时钟电路时钟频率范围要求在1.2MHz~12MHz之间。1.内部时钟方式:内部一个高增益反相放大器与片外石英晶体或陶瓷谐振器构成了一个自激振荡器。晶体振荡器的振荡频率决定单片机的时钟频率。XTAL1单片机XTAL2

内部时钟方式在引脚XTALl和XTAL2外接晶振,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。电容器cl和c2起稳定振荡频率、快速起振的作用,其电容值一般在5—30pF。晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定。实用电路中使用较多。11/26/2022582.4电路与时序2.4.1时钟电路XTAL2.4电路与时序2.外部时钟方式:

外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的钟与外部信号保持同步。在使用外部时钟时,8051的XTAL2用来输入外时钟信号,而XTALl接地;对于CHMOS型80c51单片机,此时钟信号必须从XTALl输入,而XTALl2悬空。外部时钟方式1。.。XTAL28051XTAL1

外部时钟源+5V11/26/2022592.4电路与时序2.外部时钟方式:外部时钟方式1。2.4.2时序定时单位时钟周期:振荡周期的2倍。机器周期:完成一个基本操作所需要的时间。一个机器周期由6个时钟周期组成。指令周期:一条指令的执行时间。以机器周期为单位:可包含1个~4个机器周期。思考题:

设应用单片机晶振频率为12MHz,问机器周期为多少?fosc=12MHZT机器=12*T时钟=12*1/12*106=10-6s11/26/2022602.4.2时序定时单位时钟周期:振荡周期的2倍。思考

MCS—51系列单片机的一个机器周期包含12个时钟周期(振荡周期),这12个周期分为6个状态,分别为S1—S6,其中每个状态又分为2拍,分别为Pl和P2。因此,一个机器周期中的12个时钟周期表示为SlPl、S1P2、…、S6N、6P2。2.4.3典型指令时序11/26/202261MCS—51系列单片机的一个机器周期振荡脉冲并不直接使用,由XTAL2端送往内部时钟电路(fosc):经过2分频,向CPU提供2相时钟信号P1和P2(f拍节=1/2fosc);再经3分频,产生ALE时序(fALE=1/6fosc);经过12分频,成为机器周期信号(MC=12/fosc),如下图所示。需要指出的是,CPU的运算操作在P1期间,数据传送在P2期间。(80C51)(80C51)(80C51)11/26/202262振荡脉冲并不直接使用,由XTAL2端送往内部时钟电路(fos典型指令的取指和执行时序:通常,每个机器周期,ALE两次有效,第1次发生在S1P2和S2P1期间,第2次在S4P2和S5P1期间。每一条指令的执行都可以包括取指和执行两个阶段。在取指阶段,CPU从程序存储器ROM取出指令操作码及操作数,然后再执行这条指令的逻辑功能。对于绝大部分指令,在整个指令执行过程中,ALE两次有效,第1次发生在S1P2和S2P1期间,第2次在S4P2和S5P1期间。ALE信号的有效宽度为1个s状态。每出现一次观信号,CPU就进行一次取指操作。在MCS—51指令系统中,有单字节指令、双字节指令和三字节指令。每条指令执行的时间都要占1个或几个机器周期。单字节指令和双字节指令都可能是单周期和双周期,而三字节指令都是双周期,只有乘除法指令占4个周期。11/26/202263典型指令的取指和执行时序:通常,每个机器周期,ALE11/26/20226411/26/202264

访问外部数据存贮器的指令MOVX的时序,它是一条单字节双周期指令。在第1机器周期S5开始时,送出外部数据存贮器的地址,随后读或写数据。读写期间在ALE端不输出有效信号,在第2机器周期,即外部数据存贮器已被寻址和选通后,也不产生取指操作。11/26/202265访问外部数据存贮器的指令MOVX的时序,它是MCS—51单片机时序12111234567891012S1P2S2P1S4P2S5P1可通过测量ALE确定CPU是否工作,ALE有时钟的特点。11/26/202266MCS—51单片机时序12111234567891012S180C5111/26/20226780C5111/26/202267复位、程序执行、单步执行、掉电保护、低功耗以及EPROM编程和校验等六种工作方式。2.5.1复位方式和复位电路单片机系统在工作时,经常会进入复位工作状态,在启动单片机运行时也需要复位,用户应知道其复位状态。所谓复位状态,是指CPU和系统中的其他部件都处于一个确定的初始状态,单片机的软、硬件就从这个状态开始工作。复位是单片机的初始化操作,主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。新启动。RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上。例:若使用频率为6MHz的晶振,则复位信号持续时间应超过4μs才能完成复位操作。2.5工作方式11/26/202268复位、程序执行、单步执行、掉电保护、低功耗以及EPR产生复位信号的电路逻辑如图复位引脚RST/Vpd通过片内施密特触发器与片内复位电路相连。复位电路在每一个机器周期的S5P2去采样施密特触发器的输出。欲使单片机可靠复位,要求RsT/Vpd复位端保持两个机器周期以上的高电平。作为对外部复位信号的响应,CPU进行内部各种复位操作不影响片内RW的内容,当vcc上电后,RW的内容是随机的。但复位操作使PSEN和ALE两个控制引脚信号为高电平,处于准备工作状态。11/26/202269产生复位信号的电路逻辑如图复位引脚RST/Vp单片机复位后,内部各寄存器,PC及SFR进入复位,其状态如表。特殊功能寄存器初始内容特殊功能寄存器初始内容A0000HTCON00HPC0000HTL000HB00HTH000HPSW00HTL100HSP07HTH100HDPTR0000HSCON00HP0~P3FFHSBUFXXXXXXXXBIPXX000000BPCON0XXX0000BIE0X000000BTMOD00H在表中“x”表示状态任意。记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。11/26/202270单片机复位后,内部各寄存器,PC及SFR进入复位,其上电自动复位和按键手动复位:上电自动复位——通过电容充电来实现的,Vcc的上升时间不超过1ms,就可以实现自动上电复位。按键脉冲复位——利用RC微分电路产生的正脉冲来实现的。11/26/202271上电自动复位和按键手动复位:上电自动复位——通过电容充电来实2.5.2程序执行方式程序执行方式是单片机的基本工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始,但一般程序并不是真正从0000H开始,为此就得在0000H开始的单元中存放一条无条件转移指令,以便跳转到实际程序的入口去执行。11/26/2022722.5.2程序执行方式程序执行方式是单片机的基本单步执行方式所谓单步执行,是指在外部单步脉冲的作用下,使单片机一个单步脉冲执行一条指令后就暂停下来,再一个单步脉冲再执行一条指令后又暂停下来。它通常用于调试程序、跟踪程序执行和了解程序执行过程。单片机没有单步执行中断,MCS-51单片机的单步执行也要利用中断系统完成。MCS-51的中断系统规定,从中断服务程序中返回之后,至少要再执行一条指令,才能重新进入中断。将外部脉冲加到INT0引脚,平时让它为低电平,通过编程规定INT0为电平触发。那么,不来脉冲时INT0总处于响应中断的状态。在INT0的中断服务程序中安排下面的指令:PAUSE0:JNBP3.2,PAUSE0;若INT0=0,不往下执行PAUSE1:JBP3.2,PAUSE1;若INT0=1,不往下执行RETI;返回主程序执行下一条指令11/26/202273单步执行方式所谓单步执行,是指在外部单步脉冲的作用下2.5.3掉电保护方式单片机系统在运行过程中,如发生掉电故障,将会丢失RAM和寄存器中的程序和数据,其后果有时是很严重的。掉电保护处理——先把有用信息转存,然后再启用备用电源维持供电。信息转存:

所谓信息转存是指当电源出现故障时,应立即将系统的有用信息转存到内部RAM中。信息转存是通过中断服务程序完成的。11/26/2022742.5.3掉电保护方式单片机系统在 系统中设置一个电压检测电路,一旦检测到电源电压下降,立即通过INT0/1产生外部中断请求,中断响应后执行中断服务程序,并将有用信息送内部RAM中保护起来,即通常所说的“掉电中断”。 掉电后时钟电路和CPU皆停止工作,只有内部只RAM单元和专用寄存器继续工作,以保持其内容。11/26/202275 系统中设置一个电压检测电路,一旦检测到电源电压下降,2.5.480C51的低功耗方式8051掉电保护方式实际上就是低功耗方式。

CHMOS的80C5I却有两种低功耗方式,即待机方式和掉电保护方式。待机方式和掉电方式都是由专用寄存器PCON(电源控制寄存器)来控制的。SMOD 波特率倍增位,在串行通信时才使用GF1通用标志位GF0 通用标志位PD 掉电方式位,PD=1,则进入掉电方式IDL 待机方式位,IDL=1,则进入待机方式位序B7B6B5B4B3B2B1B0位符号SMOD///GF1GF0PDIDL11/26/2022762.5.480C51的低功耗方式8051掉电保护1、待机方式:待机方式——振荡器仍然运行。并向中断逻辑、串行口和定时器/计数器电路提供时钟,但CPU不能工作,与CPU有关的如SP、PC、PSW、ACC以及全部通用寄存器也都被“冻结”在原状态。对于在野外环境的便携式智能仪器仪表中,常用电池对单片机供电,这就要求低功耗运行。若在某一段时间内,不需要CPU进行工作,可使CPU暂时停止工作,进入节电工作(待机)方式。在节电方式下,CPU暂时不工作,但随时准备恢复工作。因此内部时钟并不停止工作,只是去CPU的路径被门电路切断,但仍然供应中断电路、定时器和串行口。CPU的状态被完整地保存起来。PC、SP、PSW和ACC等都保持在节电前的状态,各I/O口也保持着节电前的电平值,ALE和PSEN均进入无效状态。11/26/2022771、待机方式:待机方式——振荡器仍然运行。并向有两种方法可以终结等待工作方式。第一种方法是激活任何一个被允许的中断,这将引起硬件对PCON.0清零,结束等待状态。此外,巾断请求将被响应及服务。在返回指令(MTI)执行后,下一条所要执行的指令,正是原先置等待工作方式指令后面的那条指令。PCON中的通用标志位GF1和GF0,可用来指示中断是在正常运行期间还是在等待工作方式期间发生的。例如,激活等待工作方式的那条指令,可以同时把这两个标志之一置1,当等待工作方式被一次中断终止时,中断服务程序可以先检验此标志位,以确定服务的性质。终止等待工作方式的方法是用硬件复位。由于时钟振荡器仍在工作,硬件复位信号只需保持2个机器周期(24个振荡周期)有效,就能完成复位操作。

在等待工作方式下,vcc仍为5v,但消耗电流可以正常的24mA降至3mA。11/26/202278有两种方法可以终结等待工作方式。第一种方法是激2、掉电保护方式:11/26/2022792、掉电保护方式:11/26/202279PCON的PD位控制单片机进入掉电保护方式。因此对于象80C51这样的单片机。在检测到电源故障时,除进行信息保护外、还应把PCON.1位置“1”,使之进入掉电保护方式。此时单片机一切工作都停止,只有内部RAM单元的内容被保存。80C51单片机除进入掉电保护方式的方法与8051不同之外,还有备用电源由VCC端引入的特点。VCC正常后,硬件复位信号维持10ms即能使单片机退出掉电方式。11/26/202280PCON的PD位控制单片机进入掉电保护方式。因此对于动作选择按钮红外线传感器89C2051单片机复位按钮电源指示灯基本的单片机控制电路板11/26/202281动作选择按钮红外线传感器89C2051单片机复位按钮电源指示1、介绍单片机的编程结构和内部逻辑结构及性能。2、学习了单片机存储器结构特点、内部数据存储器和程序存储器的结构和工作原理。3、单片机的4个8位并行端口P0、P1、P2和P3各自的口电路逻辑和功能。4、单片机的时钟电路和时序以及单片机的6种工作方式。小结11/26/2022821、介绍单片机的编程结构和内部逻辑结构及性能。小结11课后习题:P40三、2.5.7.8课堂思考:P38一、1.2.3.5.6二、3.4.7.811/26/202283课后习题:P40三、2.5.7.811/26/20228第2章单片机硬件结构单片机原理及应用2.1逻辑结构及信号引脚2.2内部存储器2.3并行输入/输出口电路2.4电路与时序2.5工作方式11/26/202284第2章单片机硬件结构单片机原理及应用2.1逻辑第2章一、教学目标:1、了解MCS-51单片机芯片基本特征及内部架构2、熟悉外部引脚及部分引脚功能3、熟悉存储结构体系及部分特殊功能寄存器4、掌握I/O电路原理及应用二、教学重难点:三、教学时数:8课时四、习题:P40三2.5.7.811/26/202285电信学院第2章一、教学目标:11/26/20222电信学院2.1.1结构框图2.1.2内部逻辑结构2.1.3信号引脚2.1逻辑结构及信号引脚11/26/2022862.1.1结构框图2.1逻辑结构及信号引脚11/2.1.1结构框图8031无11/26/2022872.1.1结构框图8031无11/26/20224图2-2MCS-51单片机的内部结构框图11/26/202288图2-2MCS-51单片机的内部结构框图11/26/202.1.2内部逻辑结构CPU运算器电路CPU控制器电路CPU控制器电路11/26/2022892.1.2内部逻辑结构CPU运算器电路CPU控制器电路C1.CPU(中央处理器)完成单片机的运算和控制能力

运算器控制器ALU、ACC、寄存器B、暂存器、PSW寄存器、十进制调整电路等定时控制逻辑、指令寄存器、译码器、信息传输控制部件11/26/2022901.CPU(中央处理器)完成单片机的运算和控制能力运算器控制MCS—51CPUCPU内部结构:(1)运算器电路:运算部件以算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、暂存器、标志寄存器PSW等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。算术运算单元ALU是一个8位的运算器,它不仅可以完成8位二进制数据加、减、乘、除等基本的算术运算,还可以完成8位二进制数据逻辑“与”、“或”、“异或”、循环移位、求补、清零等逻辑运算,并具有数据传输、程序转移等功能。ALU还有一个一般微型计算机没有的位运算器,它可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑“与”、“或”等处理。这对于控制方面很有用。累加器ACC(简称为A)为一个8位的寄存器,它是CPU中使用最频繁的寄存器,ALU进行运算时,数据绝大多数时候都来自于累加器ACC,运算结果也通常送回累加器ACC。11/26/202291MCS—51CPUCPU内部结构:(1)运算器寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的。在乘法运算时,累加器A和寄存器B在乘法运算前存放乘数和被乘数,运算完后,通过寄存器B和累加器A存放结果。除法运算时,运算前,累加器A和寄存器B存入被除数和除数,运算后用于存放商和余数。标志寄存器PSW是一个8位的寄存器,它用于保存指令执行结果的状态,以供程序查询和判别。D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5):用户标志位。RS1、RS0(PSW.4、PSW.3):寄存器组选择位。OV(PSW.2):溢出标志位。P(PSW.0):奇偶标志位。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。

11/26/202292寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的(2)控制器电路:

MCS—51CPU

控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC、堆栈指针SP、数据指针DPTR以及信息传送控制部件等。它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。11/26/202293(2)控制器电路:MCS—51CPU控2.内部存储器程序存储器ROM数据存储器RAM

存放程序指令,常数和数据表格(只读)存放数据,分为内部和外部数据存储器(随机)单片机内有256个RAM单元,作为寄存器被用户使用的只有前128个单元,后128个被专用寄存器占用内部RAM指的是前128单元11/26/2022942.内部存储器程序存储器ROM数据存储器RAM存放程3.定时与中断系统MCS-51单片机内有两个16位的定时器/计数器:实现定时和计数,并将其结果作为查询和中断的控制凭据;MCS-51单片机内有5个中断源(2个中断优先级)2个外部中断源2个定时器/计数器中断源1个串行口中断源

11/26/2022953.定时与中断系统11/26/2022124.并行I/O口4个8位的并行I/O口(P0P1P2P3)实现数据并行输入输出5.串行I/O口一个全双工的串行口实现与外部的串行数据传送6.时钟电路为单片机产生时钟脉冲序列,协调和控制单片机的工作.MCS-51单片机内部有时钟电路(但是需外接石英晶体振荡器和微调电容)最高时钟频率为12MHZ11/26/2022964.并行I/O口11/26/202213图2-380C51单片机引脚图11/26/202297图2-380C51单片机引脚图11/26/2022142.2.1程序存储器2.2.2数据存储器2.2.3堆栈操作2.2内部存储器11/26/2022982.2.1程序存储器2.2内部存储器11/26/2MCS—51单片机存储器可以分成两大类:RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。11/26/202299MCS—51单片机存储器可以分成两大类:11/26/2022MCS-51单片机把程序存储器和数据存储器分开,具有各自的寻址系统和控制信号。1.内部程序存储器(ROM)存放程序和表格常数8051为4KB8052为8KB2.内部数据存储器(RAM)存放运算过程中的数据8051/8031为128B8052/8032为256B3.外部程序存储器(ROM)存放程序最大可扩展为64KB(包括内部ROM)4.外部数据存储器(RAM)存放大量数据最大可扩展为64KB(不包括内部RAM)11/26/2022100MCS-51单片机把程序存储器和数据存储器分开,具有各自的2.2.4存储器结构特点普林斯顿结构:

程序和数据共用一个存储器逻辑空间,统一编址。哈佛结构:

程序与数据分为两个独立存储器逻辑空间,分开编址。11/26/20221012.2.4存储器结构特点普林斯顿结构:物理上4个存储器地址空间:片内程序存储器片外程序存储器片内数据存储器片外数据存储器逻辑上3个存储器地址空间:64KB程序存储器256B片内数据存储器64KB片外数据存储器8031805164KB11/26/2022102物理上4个存储器地址空间:8031805164KB11/26图2-4MCS-51单片机系统的存储器结构和存储器空间分布11/26/2022103图2-4MCS-51单片机系统的存储器结构和存储器空间分2.2.1程序存储器

对于8051来说,程序存储器(ROM)的内部地址为0000H~0FFFH,共4KB;外部地址为1000H~FFFFH,共60KB。当程序计数器由内部0FFFH执行到外部1000H时,会自动跳转。

=1时,单片机读内部ROM,若超出范围,CPU自动读外部ROM=0时,CPU完全读取外部ROM当读取外部ROM时,变为低电平当读取内部ROM时,保持为高电平11/26/20221042.2.1程序存储器=1时,单片机读内部ROM,若超出范2.2.2MCS-51单片机的数据存储器

数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存在重叠,通过使用不同的指令可予以区别。当访问片内RAM时,用MOV类指令;当访问片外RAM时,则用MOVX类指令,所以地址重叠不会造成操作混乱。

片内数据存储器在物理上又可分成3部分:低128BRAM高128BRAM(仅8032/8052才有)和特殊功能寄存器(SFR)。11/26/20221052.2.2MCS-51单片机的数据存储器

数据存储器用户RAM区00H07H20H1FH2FH30H7FHR7R6R5R4R3R2R1R0寄存器0,1,2,3组位寻址区内部数据存储器的结构分为三个区域:1.寄存器区:

4组寄存器(寄存器阵列)。即4个工作寄存器0区~3区。每组8个寄存单元(每单元8位),以R0~R7作寄存器名,暂存运算数据和中间结果。字节地址为00H~1FH。2.位寻址区:

字节地址为20H~2FH,既可作RAM,也可位操作。共有16个RAM单元,共128位,位地址为00H~7FH。3.用户RAM区:

32个单元,地址为30H~7FH,在一般应用中常作堆栈区。11/26/2022106用户RAM区00H07H20H2FH30H7FHR7R6R511/26/202210711/26/202224

2.特殊功能寄存器区(80H~FFH)

该区用于存放相应功能部件的控制命令状态或数据。因为这些寄存器的功能已作专门规定,故而称为特殊功能寄存器(SFR)。MCS-51特殊功能寄存器共有22个,其中可字节寻址的只有21个,其地址及符号见表2-4。

11/26/20221082.特殊功能寄存器区(80H~FFH)

该区用于存表2-4特殊功能寄存器及其地址分配表11/26/2022109表2-4特殊功能寄存器及其地址分配表11/26/202211/26/202211011/26/202227(1)

程序计数器PC(16位):CPU总是按PC的指示读取程序。PC是一个16位的计数器。其内容为将要执行的指令地址(即下一条指令地址),可自动加1。因此CPU执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。复位时,PC=0000H。11/26/2022111(1)程序计数器PC(16位):11/26/20222(2)

累加器ACC(8位):累加器Acc是一个最常用的专用寄存器,为8位寄存器。累加器的功能较多,地位重要。其具有的功能概括如下:.累加器用于存放操作数,是ALU数据输入的一个重要来源,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的—个操作数也取自累加器;.累加器是从刀运算结果的暂存单元,用于存放运算的中间结果;.累加器是数据传送的中转站,单片机中的大部分数据传送都通过累加器进行;11/26/2022112(2)累加器ACC(8位):累加器Acc是一.在变址寻址方式中把累加器作为变址寄存器使用。单片机中大部分的数据操作都会通过累加器Acc进行,在程序比较复杂的运算中,累加器成了制约软件效率的“瓶颈”,很容易出现阻塞现象。为此在80c51中设置了一些不经过累加器的数据传送指令,例如,寄存器与直接寻址单元之间的数据传送指令,直接寻址单元与间接寻址单元之间的数据传送指令,寄存器、直接寻址单元、间接寻址单元与立即数之间的数据传送指令等,以缓和累加器的拥堵。以至于后来发展的单片机,有的集成了多累加器结构,或者使用寄存器阵列末代替累加器,即赋予更多寄存器以累加器的功能,目的是解决累加器的“交通堵塞”问题。提高单片机的软件效率。11/26/2022113.在变址寻址方式中把累加器作为变址寄存器使用。11/26/2(3)

寄存器B(8位):B是一个8位的寄存器,可以作为通用寄存器,存放各种数据。在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,B为乘数,乘法操作后其结果存放于朋寄存器对中,B中存放高八位。除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。此外,B寄存器也可以作为一股数据寄存器使用。11/26/2022114(3)寄存器B(8位):B是一个8位的寄存器,(4)

程序状态字PSW(8位):程序状态字是一个8位寄存器,用于存放程序运行的状态信息,这个寄存器的一些位可由软件设置,有些位则由硬件运行时根据指令执行结果自动设置。功能说明如表所示。位序D7D6D5D4D3D2D1D0位符号CYACF0RS1RS0OVF1P.cY或c7——进位标志位cY有两个功能,一是存放执行某些算数运算时,存放进位标志,可被硬件或软件置位或清零;一是在位操作中作累加位使用,在位传送、位与、位或等位操作中都要使用进位标志。当进行字节的加法(或减法)运算时,cY作为进位(或借位)标志位。如果运算结果的最高位(D7)有进位(或借位)时,cY育l,反之则为o。在进行布尔运算时,cY作为“位累加器”使用。运算前应存放一位操作数,运算后自动存放运算结果。11/26/2022115(4)程序状态字PSW(8位):程序状态字是一个8位寄.AC——辅助进位标志位进行加、减运算时,当有低4位向高4位进位或信位时,Ac由硬件置位,否则被渭零。在进行十进制数运算时需要十进制调整,此时要用到Ac位状态进行判断。Ac辅助进位位也常用于十进制调整。.F0——用户标志位为通用的“位”存储器,由用户定义的状态标志,四可用软件置位或复位,也可以靠软件测试四的状态以控制程序的执行顺序。开机时该位为“0”。.Rs1、Rs0:寄存器组选择控制位11/26/2022116.AC——辅助进位标志位11/26/202233.ov——溢出标志位主要反映带符号数运算的结果是否正确。带符号加减运算中,超出了累加器A所能表示的符号数有效范围(一128——127)时,即产生溢出,ov=l。表明运算结果错误。如果ov=0,表明运算结果正确,即无溢出产生。执行加法指令ADD时,当位6向位7进位,而位7不向c进位时ov=1;或者位6不向位7进位,而位7向c进位时,同样ov=1。乘法指令,乘积超过255时,ov=1。表面乘积在AB寄存器对中。若ov=0,则说明表面乘积没有超过255,乘积应在累加器A中。除法指令,ov=l,表示除数为o,运算不被执行。否则ovzo。11/26/2022117.ov——溢出标志位11/26/202234

(5)

堆栈指针SP:栈指针是一个8位专用寄存器,用于指示栈项在内部RAM中的位置。它总是指出栈项的位置。在进行压栈操作时,sP自动加一,在进行出栈操作时,sP自动减一。当调用于程序或进入中断服务程序时,堆栈都要自动保持主程序的断点地址,以便在于程序结束时能够正确返回到主程序。在复位状态时,sP为07H,堆栈区符由08H单元开始向上延伸。可以通过指令修改sP的内容,另行指定堆栈区的位置。.P———奇偶校验位声明累加器A的台偶性,每个指令周期都由硬件来置位或清零,当Acc中有奇数个时,P=1,否则为0。在串行通信时,常作为一锁数据的奇偶校验位。.PSw.1是保留位,末使用11/26/2022118(5)堆栈指针SP:栈指针是一个8位专用

(6)

数据指针DPTR

(16位):(7)并行的I/O接口P0、P1、P2、P3均为8位。通过对这4个寄存器的读/写,可以实现数据从相应接口的输入/输出。

(8)其余的特殊功能寄存器将在以后的章节中详细介绍。11/26/2022119(6)数据指针DPTR(16位):(7)并行

注意:21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,共83个可寻址位。尽管还剩余许多空闲单元,但用户并不能使用。在22个专用寄存器中,唯一一个不可寻址的PC。PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。11/26/2022120注意:11/26/202237MCS—51共有四个8位的双向并行I/O口,分别记作P0、P1、P2和P3。实际上它们已被归入专用寄存器之列。口是一个综合概念,是一个集数据输入缓冲、数据输出驱动及锁存等多项功能为一体的I/O电路。对于口有时也称为端口。2.3并行输入/输出口电路11/26/2022121MCS—51共有四个8位的双向并行I/O口,分别记作PP0口:一个数据输出锁存器和两个三态数据输入缓冲器。一个多路转接电路MUX在控制信号的作用下,MUX可以分别接通锁存器输出或地址/数据线。当作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门将输出驱动电路的

温馨提示

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

评论

0/150

提交评论