1、2022-12-191第第2 2章章 单片机硬件结构单片机硬件结构单片机原理及应用2022-12-19电信学院2第第2章章w一、教学目标:一、教学目标:w1、了解、了解MCS-51单片机芯片基本特征及内部架构单片机芯片基本特征及内部架构w2、熟悉外部引脚及部分引脚功能、熟悉外部引脚及部分引脚功能w3、熟悉存储结构体系及部分特殊功能寄存器、熟悉存储结构体系及部分特殊功能寄存器w4、掌握、掌握I/O电路原理及应用电路原理及应用w二、教学重难点二、教学重难点:三、教学时数:三、教学时数:8课时课时w四、习题:四、习题:P40 三三2.5.7.832022-12-192.1.1 结构框图结构框图2.1
2、.2 内部逻辑结构内部逻辑结构2.1.3 信号引脚信号引脚2.1 逻辑结构及信号引脚逻辑结构及信号引脚2.1.1 结构框图结构框图8031无无52022-12-19图2-2 MCS-51单片机的内部结构框图2.1.2 内部逻辑结构内部逻辑结构CPU运算器电路运算器电路CPU控制器电路控制器电路CPU控制器电路控制器电路72022-12-191.CPU(中央处理器中央处理器)完成单片机的运算和控制能完成单片机的运算和控制能力力 运算器运算器控制器控制器ALU、ACC、寄存器、寄存器B、暂存、暂存器、器、PSW寄存器、十进制调整寄存器、十进制调整电路等电路等定时控制逻辑、指令寄存器、译码器、定时控
3、制逻辑、指令寄存器、译码器、信息传输控制部件信息传输控制部件82022-12-19 MCS51 CPU CPU内部结构:内部结构:(1)运算器电路:)运算器电路:运算部件以算术逻辑运算单元运算部件以算术逻辑运算单元ALUALU为核心,包含累加器为核心,包含累加器ACCACC、B B寄寄存器、暂存器、标志寄存器存器、暂存器、标志寄存器PSWPSW等许多部件,它能实现算术运算、逻等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。辑运算、位运算、数据传输等处理。算术运算单元算术运算单元ALUALU是一个是一个8 8位的运算器,它不仅可以完成位的运算器,它不仅可以完成8 8位二位二进制数
4、据加、减、乘、除等基本的算术运算,还可以完成进制数据加、减、乘、除等基本的算术运算,还可以完成8 8位二进位二进制数据逻辑制数据逻辑“与与”、“或或”、“异或异或”、循环移位、求补、清零等、循环移位、求补、清零等逻辑运算,并具有数据传输、程序转移等功能。逻辑运算,并具有数据传输、程序转移等功能。ALUALU还有一个一般还有一个一般微型计算机没有的位运算器,它可以对一位二进制数据进行置位、微型计算机没有的位运算器,它可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑清零、求反、测试转移及位逻辑“与与”、“或或”等处理。这对于控等处理。这对于控制方面很有用。制方面很有用。累加器累加器ACC
5、ACC(简称为(简称为A A)为一个)为一个8 8位的寄存器,它是位的寄存器,它是CPUCPU中使用最频中使用最频繁的寄存器,繁的寄存器,ALUALU进行运算时,数据绝大多数时候都来自于累加器进行运算时,数据绝大多数时候都来自于累加器ACCACC,运算结果也通常送回累加器运算结果也通常送回累加器ACCACC。92022-12-19 寄存器寄存器B B称为辅助寄存器,它是为乘法和除法指令而设置的。在称为辅助寄存器,它是为乘法和除法指令而设置的。在乘法运算时,累加器乘法运算时,累加器A A和寄存器和寄存器B B在乘法运算前存放乘数和被乘数,在乘法运算前存放乘数和被乘数,运算完后,通过寄存器运算完后
6、,通过寄存器B B和累加器和累加器A A存放结果。除法运算时,运算前,存放结果。除法运算时,运算前,累加器累加器A A和寄存器和寄存器B B存入被除数和除数,运算后用于存放商和余数。存入被除数和除数,运算后用于存放商和余数。标志寄存器标志寄存器PSW是一个是一个8位的寄存器,它用于保存指令执行位的寄存器,它用于保存指令执行结果的状态,以供程序查询和判别。结果的状态,以供程序查询和判别。D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):进位标志位。):进位标志位。AC(PSW.6):辅助进位标志位。):辅助进位标志位。F0(PSW.5):用户标志位。):用户标志位。
7、RS1、RS0(PSW.4、PSW.3):):寄存器组选择位。寄存器组选择位。OV(PSW.2):溢出标志位。):溢出标志位。P(PSW.0):奇偶标志位。):奇偶标志位。若若累加器累加器A中中1的个数为奇数,则的个数为奇数,则P置置位,若累加器位,若累加器A中中1的个数为偶数,的个数为偶数,则则P清零。清零。102022-12-19(2)控制器电路:)控制器电路:MCS51 CPU 控制部件是单片机的控制中心,它包括定时和控制电控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器路、指令寄存器、指令译码器、程序计数器PCPC、堆栈指针、堆栈指针SPSP、数据指
8、针、数据指针DPTRDPTR以及信息传送控制部件等。它先以振荡以及信息传送控制部件等。它先以振荡信号为基准产生信号为基准产生CPUCPU的时序,从的时序,从ROMROM中取出指令到指令寄存中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。挥各功能部件产生相应的操作,完成对应的功能。112022-12-192.2.内部存储器内部存储器程序存储器程序存储器ROM数据存储器数据存储器 RA
9、M 存放程序指令存放程序指令,常数和数据表格常数和数据表格(只读只读)存放数据存放数据,分为内部和外部数据存储分为内部和外部数据存储器器(随机随机)单片机内有单片机内有256个个RAM单元单元,作为寄作为寄存器被用户使用的只有前存器被用户使用的只有前128个单个单元元,后后128个被专用寄存器占用个被专用寄存器占用内部内部RAM指的是前指的是前128单元单元122022-12-193.定时与中断系统定时与中断系统 MCS-51单片机内有两个单片机内有两个16位的定时器位的定时器/计数器:计数器:实现定时和计数,并将其结果作为查询和中断的实现定时和计数,并将其结果作为查询和中断的控制凭据;控制凭
10、据;MCS-51单片机内有单片机内有5个中断源个中断源(2个中断优先级个中断优先级)2个外部中断源个外部中断源 2个定时器个定时器/计数器中断源计数器中断源 1个串行口中断源个串行口中断源 132022-12-194.并行并行I/O口口 4个个8位的并行位的并行I/O口口 (P0 P1 P2 P3)实实现数据并行输入输出现数据并行输入输出5.串行串行I/O口口 一个全双工的串行口一个全双工的串行口 实现与外部的串行数据实现与外部的串行数据传送传送6.时钟电路时钟电路 为单片机产生时钟脉冲序列为单片机产生时钟脉冲序列,协调和控制单片机的协调和控制单片机的工作工作.MCS-51单片机内部有时钟电路
11、单片机内部有时钟电路(但是需外接但是需外接石英晶体振荡器和微调电容石英晶体振荡器和微调电容)最高时钟频率为最高时钟频率为12MHZ142022-12-19图2-3 80C51单片机引脚图2.2.1 2.2.1 程序存储器程序存储器2.2.2 2.2.2 数据存储器数据存储器2.2.3 2.2.3 堆栈操作堆栈操作2.2 内部存储器内部存储器162022-12-19MCS51单片机存储器可以分成两大类:单片机存储器可以分成两大类:RAM,CPU在运行时能随时进行数据的写入和在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。读出,但在关闭电源时,其所存储的信息将丢失。它用来
12、存放暂时性的输入输出数据、运算的中间它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。结果或用作堆栈。ROM是一种写入信息后不易改写的存储器。断是一种写入信息后不易改写的存储器。断电后,电后,ROM中的信息保留不变。用来存放固定中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。的程序或数据,如系统监控程序、常数表格等。172022-12-19MCS-51 单片机把程序存储器和数据存储器分开,具有各自单片机把程序存储器和数据存储器分开,具有各自的寻址系统和控制信号。的寻址系统和控制信号。1.内部程序存储器内部程序存储器(ROM)存放程序和表格常数存放程序和表格常数
13、8051为为4KB 8052为为8KB2.内部数据存储器内部数据存储器(RAM)存放运算过程中的数据存放运算过程中的数据 8051/8031为为128B 8052/8032为为256B3.外部程序存储器外部程序存储器(ROM)存放程序存放程序 最大可扩展为最大可扩展为64KB (包括内部包括内部ROM)4.外部数据存储器外部数据存储器(RAM)存放大量数据存放大量数据 最大可扩展为最大可扩展为64KB (不包括内部不包括内部RAM)182022-12-192.2.4 2.2.4 存储器结构特点存储器结构特点192022-12-19物理上物理上4个存储器地址空间:个存储器地址空间:片内程序存储器
14、片内程序存储器 片外程序存储器片外程序存储器 片内数据存储器片内数据存储器 片外数据存储器片外数据存储器逻辑上逻辑上3个存储器地址空间个存储器地址空间:64KB 程序存储器程序存储器 256B 片内数据存储器片内数据存储器 64KB 片外数据存储器片外数据存储器8031805164KB202022-12-19图2-4 MCS-51单片机系统的存储器结构和存储器空间分布212022-12-192.2.1 程序存储器程序存储器 对于对于8051来说来说,程序存储器(程序存储器(ROM)的内部地址为)的内部地址为 0000H0FFFH,共共 4 KB;外部地址为外部地址为 1000HFFFFH,共共
15、 60 KB。当程序计数器由内部当程序计数器由内部 0FFFH执行到外部执行到外部 1000H 时时,会自动跳转。会自动跳转。EA=1时时,单片机读内部单片机读内部ROM,若超出范围若超出范围,CPU自动读外部自动读外部ROMEA=0时时,CPU完全读取外部完全读取外部ROM当读取外部当读取外部ROM时时,PSEN变为低电平变为低电平当读取内部当读取内部ROM时时,PSEN保持为高电平保持为高电平222022-12-192.2.2 MCS-51单片机的数据存储器单片机的数据存储器数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存在重叠,通过使用不同的指令可予以区别。当
16、访问片内RAM时,用MOV类指令;当访问片外RAM时,则用MOVX类指令,所以地址重叠不会造成操作混乱。片内数据存储器在物理上又可分成3部分:低128 B RAM高128 B RAM(仅8032/8052才有)和特殊功能寄存器(SFR)。232022-12-19用户RAM区00H07H20H1FH2FH30H7FHR7R6R5R4R3R2R1R0寄存器0,1,2,3组位寻址区内部数据存储器的结构内部数据存储器的结构分为三个区域:分为三个区域:1 寄存器区:寄存器区:4组寄存器(寄存器阵列)。组寄存器(寄存器阵列)。即即4个工作寄存器个工作寄存器0区区3区。每组区。每组8个寄存单元(每单元个寄存
17、单元(每单元8位),以位),以R0R7作寄存器名,暂存运算数据作寄存器名,暂存运算数据和中间结果。和中间结果。字节地址为字节地址为00H1FH。2 位寻址区位寻址区:字节地址为字节地址为20H2FH,既可,既可作作RAM,也可位操作。,也可位操作。共有共有16个个RAM单元,共单元,共128位,位地址为位,位地址为00H7FH。3 用户用户RAM区:区:32个单元,地址为个单元,地址为30H7FH,在一般应用中常作在一般应用中常作堆栈区堆栈区。242022-12-19252022-12-192.特殊功能寄存器区特殊功能寄存器区(80HFFH)该区用于存放相应功能部件的控制命令状态或数据。因为这
18、些寄存器的功能已作专门规定,故而称为特殊功能寄存器(SFR)。MCS-51特殊功能寄存器共有22个,其中可字节寻址的只有21个,其地址及符号见表2-4。262022-12-19表表2-4 特殊功能寄存器及其地特殊功能寄存器及其地址分配表址分配表272022-12-19282022-12-19 (1)(1)程序计数器程序计数器PC(16位):位):CPU总是按总是按PC的指示读取程序。的指示读取程序。PC是一个是一个16位的计位的计数器。其内容为将要执行的指令地址(即下一条指令地数器。其内容为将要执行的指令地址(即下一条指令地址),可自动加址),可自动加1。因此。因此CPU执行程序一般是顺序方式
19、。当执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,发生转移、子程序调用、中断和复位等操作,PC被强制改被强制改写,程序执行顺序也发生改变。写,程序执行顺序也发生改变。复位时,复位时,PC=0000H。292022-12-19(2)(2)累加器累加器ACC(8位):位):累加器累加器AccAcc是一个最常用的专用寄存器,为是一个最常用的专用寄存器,为8 8位寄存器。累位寄存器。累加器的功能较多,地位重要。加器的功能较多,地位重要。其具有的功能概括如下:其具有的功能概括如下:累加器用于存放操作数,是累加器用于存放操作数,是ALUALU数据输入的一个重要来源,大数据输入的一个重要
20、来源,大部分单操作指令的一个部分单操作指令的一个 操作数取自累加器,很多双操作数指操作数取自累加器,很多双操作数指令中的令中的个操作数也取自累加器;个操作数也取自累加器;累加器是从刀运算结果的暂存单元,用于存放运算的中间结果;累加器是从刀运算结果的暂存单元,用于存放运算的中间结果;累加器是数据传送的中转站,单片机中的大部分数据传送都通累加器是数据传送的中转站,单片机中的大部分数据传送都通过累加器进行;过累加器进行;302022-12-19在变址寻址方式中把累加器作为变址寄存器使用。在变址寻址方式中把累加器作为变址寄存器使用。单片机中大部分的数据操作都会通过累加器单片机中大部分的数据操作都会通过
21、累加器AccAcc进行,进行,在程序比较复杂的运算中,累加器成了制约软件效率的在程序比较复杂的运算中,累加器成了制约软件效率的“瓶颈瓶颈”,很容易出现阻塞现象。为此在,很容易出现阻塞现象。为此在80c5180c51中设置了中设置了一些不经过累加器的数据传送指令,例如,寄存器与直接一些不经过累加器的数据传送指令,例如,寄存器与直接寻址单元之间的数据传送指令,直接寻址单元与间接寻址寻址单元之间的数据传送指令,直接寻址单元与间接寻址单元之间的数据传送指令,寄存器、直接寻址单元、间接单元之间的数据传送指令,寄存器、直接寻址单元、间接寻址单元与立即数之间的数据传送指令等,以缓和累加器寻址单元与立即数之间
22、的数据传送指令等,以缓和累加器的拥堵。的拥堵。以至于后来发展的单片机,有的集成了多累加器结以至于后来发展的单片机,有的集成了多累加器结构,或者使用寄存器阵列末代替累加器,即赋予更多寄存构,或者使用寄存器阵列末代替累加器,即赋予更多寄存器以累加器的功能,目的是解决累加器的器以累加器的功能,目的是解决累加器的“交通堵塞交通堵塞”问问题。提高单片机的软件效率。题。提高单片机的软件效率。312022-12-19(3)(3)寄存器寄存器B(8位):位):B B是一个是一个8 8位的寄存器,可以作为通用寄存器,存放各位的寄存器,可以作为通用寄存器,存放各种数据。在乘除法指令中,乘法指令中的两个操作数分别种
23、数据。在乘除法指令中,乘法指令中的两个操作数分别取自累加器取自累加器A A和寄存器和寄存器B B,B B为乘数,乘法操作后其结果存为乘数,乘法操作后其结果存放于朋寄存器对中,放于朋寄存器对中,B B中存放高八位。除法指令中,被除中存放高八位。除法指令中,被除数取自累加器数取自累加器A A,除数取自寄存器,除数取自寄存器B B,结果商存放于累加器,结果商存放于累加器A A,余数存放于寄存器,余数存放于寄存器B B中。此外,中。此外,B B寄存器也可以作为一寄存器也可以作为一股数据寄存器使用。股数据寄存器使用。322022-12-19(4)(4)程序状态字程序状态字PSW(8位):位):程序状态字
24、是程序状态字是一个一个8位寄存器,用于存放程序运行的状态信息,这个寄位寄存器,用于存放程序运行的状态信息,这个寄存器的一些位可存器的一些位可由软件设置,有些位则由硬件运行时根据指令执行结由软件设置,有些位则由硬件运行时根据指令执行结果自动设置。功能说明如表所示。果自动设置。功能说明如表所示。cYcY或或c7c7进位标志位进位标志位 cYcY有两个功能,一是存放执行某些算数运算时,存放进位标有两个功能,一是存放执行某些算数运算时,存放进位标志,可被硬件或软件置位或清零;一是在位操作中作累加位使用,志,可被硬件或软件置位或清零;一是在位操作中作累加位使用,在位传送、位与、位或等位操作中都要使用进位
25、标志。在位传送、位与、位或等位操作中都要使用进位标志。当进行字节的加法当进行字节的加法(或减法或减法)运算时,运算时,cYcY作为进位作为进位(或借位或借位)标标志位。如果运算结果的最高位志位。如果运算结果的最高位(D7)(D7)有进位有进位(或借位或借位)时,时,cYcY育育l l,反之则为反之则为o o。在进行布尔运算时,。在进行布尔运算时,cYcY作为作为“位累加器位累加器”使用。运使用。运算前应存放一位操作数,运算后自动存放运算结果。算前应存放一位操作数,运算后自动存放运算结果。332022-12-19 ACAC辅助进位标志位辅助进位标志位 进行加、减运算时,当有低进行加、减运算时,当
26、有低4 4位向高位向高4 4位进位或信位时,位进位或信位时,AcAc由硬件置位,否则被渭零。在进行十进制数运算时需要十进制由硬件置位,否则被渭零。在进行十进制数运算时需要十进制调整,此时要用到调整,此时要用到AcAc位状态进行判断。位状态进行判断。AcAc辅助进位位也常用于辅助进位位也常用于十进制调整。十进制调整。F0F0用户标志位用户标志位 为通用的为通用的“位位”存储器,由用户定义的状态标志,四可用存储器,由用户定义的状态标志,四可用软件置位或复位,也可以靠软件测试四的状态以控制程序的执软件置位或复位,也可以靠软件测试四的状态以控制程序的执行顺序。开机时该位为行顺序。开机时该位为“0”0”
27、。Rs1Rs1、Rs0:Rs0:寄存器组选择控制位寄存器组选择控制位342022-12-19 ovov溢出标志位溢出标志位 主要反映带符号数运算的结果是否正确。带符号加减运主要反映带符号数运算的结果是否正确。带符号加减运算中,超出了累加器算中,超出了累加器A A所能表示的符号数有效范围所能表示的符号数有效范围(一一128128127)127)时,即产生溢出,时,即产生溢出,ovovl l。表明运算结果错误。如果。表明运算结果错误。如果ovov=0=0,表明运算结果正确,即无溢出产生。表明运算结果正确,即无溢出产生。执行加法指令执行加法指令ADDADD时,当位时,当位6 6向位向位7 7进位,而
28、位进位,而位7 7不向不向c c进位进位时时ovov1 1;或者位;或者位6 6不向位不向位7 7进位,而位进位,而位7 7向向c c进位时,同样进位时,同样ovov1 1。乘法指令,乘积超过乘法指令,乘积超过255255时,时,ovov1 1。表面乘积在。表面乘积在ABAB寄存寄存器对中。若器对中。若ov=0,则说明表面乘积,则说明表面乘积没有超过没有超过255255,乘积应在,乘积应在累加器累加器A A中。中。除法指令,除法指令,ovovl l,表示除数为,表示除数为o o,运算不被执行。否则,运算不被执行。否则ovzoovzo。352022-12-19(5)(5)堆栈指针堆栈指针SP:栈
29、指针是一个栈指针是一个8 8位专用寄存器,用于指示栈项在内部位专用寄存器,用于指示栈项在内部RAMRAM中中的位置。它总是指出栈项的位置。在进行压栈操作时,的位置。它总是指出栈项的位置。在进行压栈操作时,sPsP自动自动加一,在进行出栈操作时,加一,在进行出栈操作时,sPsP自动减一。当调用于程序或进入自动减一。当调用于程序或进入中断服务程序时,堆栈都要自动保持主程序的断点地址,以便中断服务程序时,堆栈都要自动保持主程序的断点地址,以便在于程序结束时能够正确返回到主程序。在复位状态时,在于程序结束时能够正确返回到主程序。在复位状态时,sPsP为为07H07H,堆栈区符由,堆栈区符由08H08H
30、单元开始向上延伸。可以通过指令修改单元开始向上延伸。可以通过指令修改sPsP的内容,另行指定堆栈区的位置。的内容,另行指定堆栈区的位置。P奇偶校验位奇偶校验位 声明累加器声明累加器A的台偶性,每个指令周期都由硬件来置位或清零,当的台偶性,每个指令周期都由硬件来置位或清零,当Acc中有奇中有奇数个时,数个时,P=1,否则为,否则为0。在串行通信时,常作为一锁数据的奇偶校验位。在串行通信时,常作为一锁数据的奇偶校验位。PSw1是保留位,末使用是保留位,末使用362022-12-19(6)(6)数据指针数据指针DPTR(16位):位):(7)并行的并行的I/O接口接口P0、P1、P2、P3均为均为8
31、位。通过对这位。通过对这4个寄存器的读个寄存器的读/写,可以实现数据从相应接口的输入写,可以实现数据从相应接口的输入/输出。输出。(8)其余的特殊功能寄存器将在以后的章节中详细介绍。其余的特殊功能寄存器将在以后的章节中详细介绍。372022-12-19 注意:注意:21个可字节寻址的专用寄存器是个可字节寻址的专用寄存器是不连续不连续地分散在地分散在内部内部RAM高高128单元之中,共单元之中,共83个可寻址位。尽个可寻址位。尽管还剩余许多空闲单元,但用户并不能使用。管还剩余许多空闲单元,但用户并不能使用。在在22个专用寄存器中,个专用寄存器中,唯一唯一一个不可寻址的一个不可寻址的PC。PC不占
32、据不占据RAM单元,它在物理上是独立的,因单元,它在物理上是独立的,因此是不可寻址的寄存器。此是不可寻址的寄存器。对专用寄存器只能使用对专用寄存器只能使用直接寻址直接寻址方式,书写时既方式,书写时既可使用寄存器符号,也可使用可使用寄存器符号,也可使用寄存器单元地址寄存器单元地址。MCS51共有四个共有四个8位的双向并行位的双向并行I/O口,口,分别记分别记作作P0、P1、P2和和P3。实际上它们已。实际上它们已被归入专用寄存器之列。被归入专用寄存器之列。口是一个综合概念,是一个集数据输入缓冲、口是一个综合概念,是一个集数据输入缓冲、数据输出驱动及锁存等多项功能为一体的数据输出驱动及锁存等多项功
33、能为一体的I/O电路。对于口有时也称为端口。电路。对于口有时也称为端口。2.3 并行输入并行输入/输出口电路输出口电路P0口:口:402022-12-19P0P0用作通用用作通用I/OI/O口口 当系统不进行片外的当系统不进行片外的ROMROM扩展,也不进行片外扩展,也不进行片外RAMRAM扩展扩展时时,P0P0用作通用用作通用I/OI/O口口。在这种情况下,单片机硬件自动使控制在这种情况下,单片机硬件自动使控制C=0C=0,MUXMUX开关开关接向锁存器的反相输出端。接向锁存器的反相输出端。另外,与门输出的另外,与门输出的“0”0”使输出驱动器的上拉场效应管使输出驱动器的上拉场效应管T1T1
34、处于截止状态。因此,输出驱动级工作在需外接上拉电处于截止状态。因此,输出驱动级工作在需外接上拉电阻的漏极开路方式。阻的漏极开路方式。漏极开路是驱漏极开路是驱动电路的输出动电路的输出三极管的发射三极管的发射极开路,可以极开路,可以通过外接的上通过外接的上拉电阻提高驱拉电阻提高驱动能力。动能力。412022-12-19 作输出口时,作输出口时,CPUCPU执行口的输出指令,内部数据总线上的数执行口的输出指令,内部数据总线上的数据在据在“写锁存器写锁存器”信号的作用下由信号的作用下由D D端进入锁存器,经锁存器的端进入锁存器,经锁存器的反向端送至场效应管反向端送至场效应管T2T2,再经,再经T2T2
35、反向,在反向,在P0.XP0.X引脚出现的数据正引脚出现的数据正好是内部总线的数据。好是内部总线的数据。作输入口时,数据可以读自口的锁存器,也可以读自口的引作输入口时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是脚。这要根据输入操作采用的是“读锁存器读锁存器”指令还是指令还是“读引脚读引脚”指令来决定。指令来决定。422022-12-19P0P0用作通用用作通用I/OI/O口口 CPUCPU在执行在执行“读读修改修改写写”类输入指令时,内部产类输入指令时,内部产生的生的“读锁存器读锁存器”操作信号,使锁存器操作信号,使锁存器Q Q端数据进入内部端数据进入内部数据总线,在
36、与累加器数据总线,在与累加器A A进行逻辑运算之后,结果又送回进行逻辑运算之后,结果又送回P0P0的口锁存器并出现在引脚(如:的口锁存器并出现在引脚(如:ANL P0ANL P0,A A)。读口。读口锁存器可以避免因外部电路原因使原口引脚的状态发生变锁存器可以避免因外部电路原因使原口引脚的状态发生变化造成的误读。化造成的误读。432022-12-19 CPU CPU在执行在执行“MOV”MOV”类输入指令时,内部产生的操作信号是类输入指令时,内部产生的操作信号是“读引脚读引脚”(如:(如:MOV AMOV A,P0P0)。注意,在执行该类输入指令。注意,在执行该类输入指令前要先把锁存器写入前要
37、先把锁存器写入“1”1”,使场效应管,使场效应管T2T2截止,使引脚处于悬截止,使引脚处于悬浮状态,可以作为高阻抗输入。否则,在作为输入方式之前曾向浮状态,可以作为高阻抗输入。否则,在作为输入方式之前曾向锁存器输出过锁存器输出过“0”0”,则,则T2T2导通会使引脚箝位在导通会使引脚箝位在“0”0”电平,使输电平,使输入高电平入高电平“1”1”无法读入。所以,无法读入。所以,P0P0口在作为通用口在作为通用I/OI/O口时,属于口时,属于准双向口。准双向口。442022-12-19P0P0用作地址用作地址/数据总线数据总线 当系统进行片外的当系统进行片外的ROMROM扩展或进行片外扩展或进行片
38、外RAMRAM扩展,扩展,P0P0用用作地址作地址/数据总线时。数据总线时。在这种情况下,单片机内硬件自动使在这种情况下,单片机内硬件自动使C=1C=1,MUXMUX开关接开关接向反相器的输出端,这时与门的输出由地址向反相器的输出端,这时与门的输出由地址/数据线的状数据线的状态决定。态决定。CPUCPU在执行输出指令时,低在执行输出指令时,低8 8位地址信息和数据信息分位地址信息和数据信息分时地出现在地址时地出现在地址/数据总线上。数据总线上。P0.XP0.X引脚的状态与地址引脚的状态与地址/数数据线的信息相同。据线的信息相同。CPUCPU在执行输入指令时,首先低在执行输入指令时,首先低8 8
39、位地址信息出现在地位地址信息出现在地址址/数据总线上,数据总线上,P0.XP0.X引脚的状态与地址引脚的状态与地址/数据总线的地址数据总线的地址信息相同。然后,信息相同。然后,CPUCPU自动地使转换开关自动地使转换开关MUXMUX拨向锁存器,拨向锁存器,并向并向P0P0口写入口写入FFHFFH,同时,同时“读引脚读引脚”信号有效,数据经缓信号有效,数据经缓冲器进入内部数据总线。冲器进入内部数据总线。P0P0口作为地址口作为地址/数据总线使用时是一个真正的双向口。数据总线使用时是一个真正的双向口。P1口:口:作通用作通用I/OI/O口使用,输入输出原理特性与口使用,输入输出原理特性与P0P0口
40、作为通用口作为通用I/OI/O接口使接口使用时一样。在电路结构上与用时一样。在电路结构上与P P0 0口有一些不同之处。首先它不再需要多口有一些不同之处。首先它不再需要多路转接电路路转接电路MUXMUX;其次是电路的内部有上拉电阻,与场效应管共同组成;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。这样,作为输出口使用时,已能向外提供推拉电流负输出驱动电路。这样,作为输出口使用时,已能向外提供推拉电流负载,无需再外接上拉电阻。载,无需再外接上拉电阻。P1P1口是通用的准双向口是通用的准双向I/OI/O口。输出高电平时,能向外提供拉电流负载,不必口。输出高电平时,能向外提供拉电流负载
41、,不必再接上拉电阻。当口用作输入时,须向口锁存器写入再接上拉电阻。当口用作输入时,须向口锁存器写入1 1。P2口:口:P P2 2口电路中比口电路中比P P1 1口多了一个多路转换电路口多了一个多路转换电路MUXMUX,这又正好,这又正好与与P P0 0口一样。口一样。P P2 2口也可以作为通用口也可以作为通用I/OI/O口使用。这时多路转接口使用。这时多路转接开关倒向锁存器的开关倒向锁存器的Q Q端。但通常应用情况下,端。但通常应用情况下,P P2 2口是作为口是作为高位高位地址线地址线使用,此时多路转接开关应倒向相反方向。使用,此时多路转接开关应倒向相反方向。472022-12-19P2
42、P2用作通用用作通用I/OI/O口口 当不需要在单片机芯片外部扩展程序存储器,只需扩当不需要在单片机芯片外部扩展程序存储器,只需扩展展256B256B的片外的片外RAMRAM时,只用到了地址线的低时,只用到了地址线的低8 8位,位,P2P2口仍可口仍可以作为通用以作为通用I/OI/O口使用。口使用。CPUCPU在执行输出指令时,内部数据总线的数据在在执行输出指令时,内部数据总线的数据在“写锁写锁存器存器”信号的作用下由信号的作用下由D D端进入锁存器,经反相器反相后端进入锁存器,经反相器反相后送至场效应管送至场效应管T T,再经,再经T T反相,在反相,在P2.XP2.X引脚出现的数据正好引脚
43、出现的数据正好是内部总线的数据。是内部总线的数据。P2P2口用作输入时,数据可以读自口的锁存器,也可以口用作输入时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是读自口的引脚。这要根据输入操作采用的是“读锁存器读锁存器”指令还是指令还是“读引脚读引脚”指令来决定。指令来决定。482022-12-19P2P2用作地址用作地址/数据总线数据总线 当需要在单片机芯片外部扩展程序存储器或扩展的当需要在单片机芯片外部扩展程序存储器或扩展的RAMRAM容量超过容量超过256256字节时,单片机内硬件自动使控制字节时,单片机内硬件自动使控制C=1C=1,MUXMUX开关接向地址线,这时
44、开关接向地址线,这时P2.XP2.X引脚的状态正好与地址线引脚的状态正好与地址线的信息相同。的信息相同。CPU CPU在执行在执行“读读修改修改写写”类输入指令时内部产生的类输入指令时内部产生的“读锁存器读锁存器”操作信号使锁存器操作信号使锁存器Q Q端数据进入内部数据总线,端数据进入内部数据总线,在与累加器在与累加器A A进行逻辑运算之后,结果又送回进行逻辑运算之后,结果又送回P2P2的口锁存器并的口锁存器并出现在引脚。出现在引脚。CPUCPU在执行在执行“MOV”MOV”类输入指令时,内部产生的操作信号类输入指令时,内部产生的操作信号是是“读引脚读引脚”。应在执行输入指令前要把锁存器写入。
45、应在执行输入指令前要把锁存器写入“1”1”,从而使引脚处高阻抗输入状态。从而使引脚处高阻抗输入状态。所以,所以,P2P2口在作为通用口在作为通用I/OI/O口时,属于准双向口。口时,属于准双向口。P3口:口:P P3 3口的特点在于为适应引脚信号第二功能的需要。口的特点在于为适应引脚信号第二功能的需要。对于第二功能为输出的信号引脚,当作为对于第二功能为输出的信号引脚,当作为I/OI/O使用时,第二功能使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。据输出通路的畅通。当输出第二功能信号时,该位的
46、锁存器应置当输出第二功能信号时,该位的锁存器应置“1”1”,使与非门对,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。第二功能信号的输出是畅通的,从而实现第二功能信号的输出。502022-12-19P3P3用作第一功能的通用用作第一功能的通用I/OI/O口口 当当CPUCPU对对P3P3口进行字节或位寻址时(多数应用场合是口进行字节或位寻址时(多数应用场合是把几条口线设为第二功能,另外几条口线设为第一功能,把几条口线设为第二功能,另外几条口线设为第一功能,这时宜采用位寻址方式),单片机内部的硬件自动将第这时宜采用位寻址方式),单片机内部的硬件自动将第二功能输出线的二功能输出
47、线的W W置置1 1。这时,对应的口线为通用。这时,对应的口线为通用I/OI/O口方口方式。式。512022-12-19P3P3用作第一功能的通用用作第一功能的通用I/OI/O口口 作为输出时,锁存器的状态(作为输出时,锁存器的状态(Q Q端)与输出引脚的状端)与输出引脚的状态相同;态相同;作为输入时,也要先向口锁存器写入作为输入时,也要先向口锁存器写入1 1,使引脚处于,使引脚处于高阻输入状态。输入的数据在高阻输入状态。输入的数据在“读引脚读引脚”信号的作用下,信号的作用下,进入内部数据总线。进入内部数据总线。P3P3口在作为通用口在作为通用I/OI/O口时,也属于准双向口口时,也属于准双向
48、口。522022-12-19P3P3用作第二功能使用用作第二功能使用 当当CPUCPU不对不对P3P3口进行字节或位寻址时,内部硬件自动口进行字节或位寻址时,内部硬件自动将口锁存器的将口锁存器的Q Q端置端置1 1。这时,。这时,P3P3口作为第二功能使用。口作为第二功能使用。P3.0 P3.0:RXDRXD(串行口输入);(串行口输入);P3.1 P3.1:TXDTXD(串行口输出);(串行口输出);P3.2 P3.2:外部中断外部中断0 0输入;输入;P3.3 P3.3:外部中断外部中断1 1输入;输入;P3.4 P3.4:T0T0(定时器(定时器0 0的外部输入);的外部输入);P3.5
49、 P3.5:T1T1(定时器(定时器1 1的外部输出);的外部输出);P3.6 P3.6:(片外数据存储器(片外数据存储器“写写”选通控制输出);选通控制输出);P3.7 P3.7:(片外数据存储器(片外数据存储器“读读”选通控制输出)。选通控制输出)。532022-12-19542022-12-19端口小结:端口小结:P0 P0、P1P1、P2P2、P3P3口的电平与口的电平与CMOSCMOS和和TTLTTL电平兼容。电平兼容。P0P0口的每一位口线可以驱动口的每一位口线可以驱动8 8个个LSTTLLSTTL负载。在作为通用负载。在作为通用I/OI/O口时,由于输出驱动电路是开漏方式,由集电
50、极开路口时,由于输出驱动电路是开漏方式,由集电极开路(OCOC门)电路或漏极开路电路驱动时需外接上拉电阻;当作门)电路或漏极开路电路驱动时需外接上拉电阻;当作为地址为地址/数据总线使用时,口线输出不是开漏的,无须外接数据总线使用时,口线输出不是开漏的,无须外接上拉电阻。上拉电阻。P1P1、P2P2、P3P3口的每一位能驱动口的每一位能驱动4 4个个LSTTLLSTTL负载。它们的输负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(路(OCOC门)电路或漏极开路电路所驱动,而无须外接上拉电门)电路或漏极开路电路所驱动,而无须