1、河南科技大学河南科技大学电子信息工程学院自动化系电子信息工程学院自动化系主讲:张松灿主讲:张松灿单单 片片 机机 原原 理理 与与 应应 用用第四章第四章 80C51 80C51单片机的功能单元单片机的功能单元1第四章第四章 80C51 80C51单片机的功能单元单片机的功能单元4.14.1并行并行I/OI/O接口接口4.1.1 P14.1.1 P1口口4.1.2 P34.1.2 P3口口4.1.3 P24.1.3 P2口口4.1.4 P04.1.4 P0口口4.24.2定时器定时器/计数器计数器4.2.14.2.1概述概述4.2.24.2.2定时器定时器/计数器计数器T0T0、T1T124.
2、2.34.2.3定时器定时器/计数器计数器T2T24.2.44.2.4看门狗看门狗4.2.54.2.5定时器定时器/计数器的编程和使用计数器的编程和使用4.34.3串行接口串行接口4.44.4中断系统中断系统4.4.14.4.1中断、中断源及中断优先级中断、中断源及中断优先级4.4.24.4.2中断的控制和操作中断的控制和操作4.4.34.4.3中断的响应过程和中断矢量地址中断的响应过程和中断矢量地址3 80C51 80C51有有四个四个8 8位的并行双向口位的并行双向口,共有,共有3232根输入根输入/输输出出(I/OI/O)口线)口线。口组成:口组成:锁存器、输出驱动器和输入缓冲器锁存器、
3、输出驱动器和输入缓冲器。各并口在各并口在结构上有差异结构上有差异,故各口的性质和功能也有,故各口的性质和功能也有所不同。所不同。4.1 4.1 并行并行I/OI/O接口接口4I/O口口P0口口P1口口P2口口P3口口位数位数8888性质性质真正双向口真正双向口 准双向口准双向口准双向口准双向口准双向口准双向口功能功能I/O口口替代功能替代功能I/O口口替代功能替代功能I/O口口替代功能替代功能I/O口口替代功能替代功能SFR字字节地址节地址80H90HA0HB0H地址地址范围范围80H87H 90H97HA0HA7HB0HB7H驱动驱动能力能力8个个TTL负负载载4个个TTL负载负载4个个TT
4、L负负载载4个个TTL负载负载 80C51 80C51并行并行I/OI/O接口的比较接口的比较5I/O口口 P0口口P1口口P2口口P3口口替 代替 代功能功能程序存储器、程序存储器、片外数据存片外数据存储器储器低低8位地址位地址及及8位数据位数据CTC2:T2、T2EX(C T C 2 仅仅80C52中有中有)串行口串行口程 序 存 储程 序 存 储器、器、片 外 数 据片 外 数 据存储器存储器高高8位地址位地址串行口:串行口:RXD TXD中断:中断:INT0 INT1C T C 0、1:T0、T1片外数据存储片外数据存储器:器:WR RD6 4.1.1 P14.1.1 P1口口 8 8
5、位口位口,可以可以字节访问字节访问,地址:地址:90H90H;也可;也可位访问位访问,地址:地址:90H-97H90H-97H。位结构与工作过程:位结构与工作过程:结构结构:输出锁存器、输入缓冲器输出锁存器、输入缓冲器BUF1BUF1(读引脚)、(读引脚)、BUF2 BUF2(读锁存器)以及(读锁存器)以及由由FETFET晶体管晶体管Q0Q0与上拉电阻组成与上拉电阻组成的输的输出出/输入驱动器输入驱动器。DCLQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5VP1.0引脚引脚锁存器锁存器内部总线内部总线ABUF2BUF1内部上拉电阻内部上拉电阻作用作用:P1P1口只能作为口只能作
6、为输入口输入口或或输出输出口口使用。使用。7返回返回DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5VP1.0锁存器锁存器P1P1口直接做口直接做输出口输出口时,输出信息的过程:时,输出信息的过程:(将(将1 1送到送到P1.0P1.0的过程的过程)1001注意:注意:P1口做输出口时,内部数据经过锁存器送到口做输出口时,内部数据经过锁存器送到P10-P17上。上。由于内部有上拉电阻,所以由于内部有上拉电阻,所以P1口作输出口使用时,不用外接上拉电阻。口作输出口使用时,不用外接上拉电阻。内部总线内部总线8DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5V
7、P1.0锁存器锁存器P1口直接做输入口时,输入信息的过程:口直接做输入口时,输入信息的过程:(将(将P1.0P1.0处的处的0 0送入送入DB0.0DB0.0的过程的过程)00注意注意:1、P1口作输入口时,口作输入口时,P10P17上的信号经过缓冲器送到内部数据总线上。上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。2、CPU对对P1口的读操作有口的读操作有2种:种:读引脚读引脚和和读读改改写锁存器写锁存器。当当CPU执行执行 MOV A,P1或或 JB/JNB P1.x,标号,标号 时,产生读引脚控制信号,时,
8、产生读引脚控制信号,此时读的是引脚的状态此时读的是引脚的状态。当当CPU执行读执行读改改写指令(以端口为目写指令(以端口为目的操作数的的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存等)时,产生读锁存信号,此时是先读锁存器的状态,在修改信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。之后,送回锁存器保存。返回返回内部总线内部总线92 2、P1P1口的特点口的特点 输出锁存输出锁存,输出时没有条件输出时没有条件;输入缓冲输入缓冲,输入时有条件输入时有条件,即需要先即需要先将该口设为输入状将该口设为输入状态态,先输出先输出1;1;工作过程中工作过程中无
9、高阻悬浮状态无高阻悬浮状态,即:该口不是输入态就即:该口不是输入态就是输出态。是输出态。具有这种特性的口不属于具有这种特性的口不属于“真正真正”的双向口,而被的双向口,而被称为称为“准准”双向口双向口。103 3、P1P1口的操作口的操作 对于对于P1P1口不仅可以口不仅可以字节操作字节操作,也可以按也可以按位操作位操作。字节操作指令:字节操作指令:输出输出 MOV P1,A ;(P1)(A)MOV P1,A ;(P1)(A)MOV P1,#data ;(P1)#data MOV P1,#data ;(P1)#data MOV P1,direct ;(P1)(direct)MOV P1,dir
10、ect ;(P1)(direct)输入输入 MOV A,P1 ;(A)(P1)MOV A,P1 ;(A)(P1)MOV direct,P1 ;(direct)(P1)MOV direct,P1 ;(direct)(P1)11位操作指令:位操作指令:置位、清除置位、清除 SETB SETB P1.i ;P1.i1P1.i ;P1.i1 CLR P1.i ;P1.i0 CLR P1.i ;P1.i0输入、输出输入、输出 MOV P1.i,C ;P1.iCY MOV P1.i,C ;P1.iCY MOV C,P1.i ;CY P1.I MOV C,P1.i ;CY P1.I判跳判跳 JB P1.i,
11、rel ;P1.i=1,JB P1.i,rel ;P1.i=1,跳转跳转 JBC P1.i,rel;P1.i=1,JBC P1.i,rel;P1.i=1,跳转且跳转且P1.i0 P1.i0 逻辑运算逻辑运算 ANL C,P1.i;CY(P1.iCY)ANL C,P1.i;CY(P1.iCY)ORL C,P1.i;CY(P1.i+CY)ORL C,P1.i;CY(P1.i+CY)其中:其中:P1.iP1.i中的中的i=0i=0,7 7。124 4、口操作时序、口操作时序 在执行改变端口锁存器内容的指令时,新的内容在执行改变端口锁存器内容的指令时,新的内容在指令执行的最后一个周期的在指令执行的最后
12、一个周期的S6P2S6P2时传送到口的锁存时传送到口的锁存器内。然而口锁存器仅在任何周期的器内。然而口锁存器仅在任何周期的P1P1时才采样端口时才采样端口锁存器(缓冲器),在锁存器(缓冲器),在P2P2时输出锁存器的值并保持时输出锁存器的值并保持P1P1时所采样到的内容。时所采样到的内容。因此,因此,S6P2S6P2时写入端口锁存器的新数值直到下一时写入端口锁存器的新数值直到下一个周期的个周期的P1P1时被采样到,时被采样到,即只有在下一个机器周期的即只有在下一个机器周期的S1P1S1P1时,才真正出现在引脚上。时,才真正出现在引脚上。135 5、P1P1口的多功能线口的多功能线 80C528
13、0C52中,中,P1.0P1.0和和P1.1P1.1是多功能线,除作一般是多功能线,除作一般I/OI/O外,外,还具有下列功能:还具有下列功能:P1.0P1.0定时器定时器/计数器计数器2 2的外部输入端的外部输入端T2;T2;P1.1P1.1定时器定时器/计数器计数器2 2的外部控制端的外部控制端T2EXT2EX。此时,该两位的结构与此时,该两位的结构与P3P3口的位结构相当。口的位结构相当。144.1.2 P34.1.2 P3口口 多功能的多功能的8 8位口位口,可以可以字节访问,字节访问,地址:地址:B0HB0H;也可;也可位访问位访问,地址:地址:B0H-B7HB0H-B7H。1 1
14、位结构与工作过程分析位结构与工作过程分析 P3 P3口的位结构口的位结构 如图如图4-24-2所示。所示。P3 P3口能口能驱动驱动4 4个个TTLTTL负载负载。15DCLKQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5VP3.0锁存器锁存器替代输出功能替代输出功能替代输入功能替代输入功能内部总线内部总线ABCQ0图图42 P342 P3口的位结构口的位结构与与P1P1口的口的区别区别:(1 1)增加一个)增加一个与非与非门门。与非门有两个输。与非门有两个输入:一个为入:一个为Q Q端,另端,另一个为替代功能的控一个为替代功能的控制输出。与非门的输制输出。与非门的输出端控制出
15、端控制FETFET管管Q0Q0。(2 2)输出锁存器从)输出锁存器从Q Q端引出。端引出。(3 3)有)有两个输入缓两个输入缓冲器冲器,替代输入功能,替代输入功能取自第一个缓冲器的取自第一个缓冲器的输出端;输出端;I/OI/O口的通口的通用输入信号取自第二用输入信号取自第二个缓冲器的输出端。个缓冲器的输出端。16DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5VP3.0锁存器锁存器替代输出功能替代输出功能替代输入功能替代输入功能P3P3口直接做输出口时,输出信息的过程:口直接做输出口时,输出信息的过程:(将(将1 1送到送到P3.0P3.0的过程的过程)1001注意:注意:
16、P3P3口做输出口时,内部数据经过锁存器送到口做输出口时,内部数据经过锁存器送到P30-P37P30-P37上。上。由于内部有上拉电阻,由于内部有上拉电阻,P3P3口作输出口使用时,不用外接上拉电阻口作输出口使用时,不用外接上拉电阻。内部总线内部总线BCA17DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5VP3.0锁存器锁存器替代输出功能替代输出功能替代输入功能替代输入功能0P3P3口直接做输入口时,输入信息的过程:口直接做输入口时,输入信息的过程:(将(将P3.0P3.0处的处的0 0送入送入DB0.0DB0.0的过程的过程)0注意注意:1、P3口作输入口时,口作输入口
17、时,P30P37上的信号经过缓冲器送到内部数据总线上。上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。2、CPU对对P3口的读操作有口的读操作有2种:种:读引脚读引脚和和读读改改写锁存器写锁存器。当当CPU执行执行 MOV A,P3或或 JB/JNB P3.x,标号,标号 时,产生读引脚控制信号,时,产生读引脚控制信号,此时读的是引脚的状态此时读的是引脚的状态。当当CPU执行读执行读改改写指令(以端口为目写指令(以端口为目的操作数的的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存
18、等)时,产生读锁存信号,此时是先读锁存器的状态,在修改信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。之后,送回锁存器保存。内部总线内部总线ABC18C内部总线内部总线BQ0A上拉电阻上拉电阻DCLQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0+5VP3.0锁存器锁存器替代输出功能替代输出功能替代输入功能替代输入功能作用作用:1、P3口可以直接作为口可以直接作为输入口输入口或或输出口输出口使用。使用。2、P3口的引脚又具有口的引脚又具有第二功能第二功能。1 当使用单片机内部串行口时,若CPU执行MOV A,SBUF指令,则P3.0(RXD)作为接收信号线,接收由外界串行输
19、入的数据;若CPU执行MOV SBUF,A指令,则P3.1(TXD)作为发送信号线,串行发送数据至外界。2当单片机使用外中断时,P3.2(INT0)作为外中断0的中断请求输入线,3.3(INT1)作为外中断1的中断请求输入线。3当单片机使用定时器,且定时器工作于计数方式时,P3.4(T0)作为定时器0的计数脉冲输入线,P3.5(T1)作为定时器1的计数脉冲输入线。4当单片机外扩RAM或I/O接口芯片时,P3.6(WR)作为RAM或I/O接口芯片的写控制信号,P3.7(RD)作为RAM或I/O接口芯片的读控制信号。当当P3口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为口的一些引脚
20、没有作为第二功能使用时,这些引脚就被释放,直接作为I/O口口线使用。线使用。19(2)(2)输出过程分析输出过程分析 B B点置点置1 1时时,锁存器输出可以顺利通到引脚锁存器输出可以顺利通到引脚P3.iP3.i。此。此时为准双向口。时为准双向口。当当输出锁存器输出(输出锁存器输出(C C点点)置)置1 1,替代输出功能可替代输出功能可以顺利通到引脚以顺利通到引脚P3.iP3.i。若替代输出为。若替代输出为0 0时,因时,因C C点已置点已置1 1,现现B B点为点为0 0,故与非门输出为,故与非门输出为1 1,使,使Q0Q0导通,从而使导通,从而使A A点点为为0 0。若替代输出为。若替代输
21、出为1 1时,与非门输出为时,与非门输出为1 1,Q0Q0截止,从截止,从而使而使A A点为高电平。点为高电平。P3P3口处于替代输出功能状态。口处于替代输出功能状态。总之。不论是替代输出还是替代输入功能时,总之。不论是替代输出还是替代输入功能时,输输出锁存器的输出置出锁存器的输出置1 1是必需是必需。因此,因此,P3P3口不论作替代功能输入,还是作替代功能口不论作替代功能输入,还是作替代功能输出,甚至作一般输出,甚至作一般I/OI/O的输入功能时,都需要向该口位的输入功能时,都需要向该口位输出输出1 1。202 2、P3P3口的功能和特点口的功能和特点 P3 P3口口-多功能口。多功能口。(
22、1 1)可作)可作I/OI/O口使用口使用,为准双向口。为准双向口。既可以字节操作,也可以位操作;既可以字节操作,也可以位操作;既可以既可以8 8位口操作,也可以逐位定义口线为输入位口操作,也可以逐位定义口线为输入线或输出线;线或输出线;既可以读引脚,也可以读锁存器,实现既可以读引脚,也可以读锁存器,实现“读读修改修改输出输出”操作。操作。21(2 2)替代功能。)替代功能。替代输入功能替代输入功能:P3.0RXDP3.0RXD,串行输入口。串行输入口。P3.2INT0P3.2INT0,外部中断外部中断0 0的请求。的请求。P3.3INT1P3.3INT1,外部中断外部中断1 1的请求。的请求
23、。P3.4T0P3.4T0,定时器定时器/计数器计数器0 0外部计数脉冲输入。外部计数脉冲输入。P3.5T1P3.5T1,定时器定时器/计数器计数器1 1外部计数脉冲输入。外部计数脉冲输入。替代输出功能替代输出功能:P3.1TXDP3.1TXD,串行输出口。串行输出口。P3.6WRP3.6WR,外部数据存储器写选通,输出,低有效。,外部数据存储器写选通,输出,低有效。P3.7RDP3.7RD,外部数据存储器读选通,输出,低有效。,外部数据存储器读选通,输出,低有效。22DCLQQDB0.0控制线控制线+5VP2.0多路开关多路开关锁存器锁存器作用作用:1、外扩芯片时,、外扩芯片时,P2口不再做
24、口不再做I/O口使用,而是传送高口使用,而是传送高8位地址。位地址。2、没有外扩芯片时,、没有外扩芯片时,P2口可以直接作为口可以直接作为输入口输入口或或输出口输出口使用。使用。读引脚读引脚读锁存器读锁存器写锁存器写锁存器内部总线内部总线地址地址4.1.3 P24.1.3 P2口口 P2 P2口,多功能的口,多功能的8 8位口位口,可以字节访问也可位访问可以字节访问也可位访问,字节访问地址:字节访问地址:A0H,A0H,位访问地址:位访问地址:A0H-A7HA0H-A7H。1 1 位结构与工作过程分析位结构与工作过程分析 AQ0BC23与与P1P1口的区别:口的区别:P2 P2口口增加一个多路
25、开关增加一个多路开关。多路开关的输入有两个:一个是口输出锁存器的多路开关的输入有两个:一个是口输出锁存器的输出端输出端Q Q;一个是地址寄存器(;一个是地址寄存器(PCPC或或DPTRDPTR)的)的高位输出高位输出端端。多路开关的输出经反相器反相后去控制输出。多路开关的输出经反相器反相后去控制输出FET FET Q0Q0。多路开关的切换由内部控制信号控制多路开关的切换由内部控制信号控制。输出锁存器的输出锁存器的输出端是输出端是Q Q而不是而不是/Q/Q。24返回返回DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0控制线控制线+5VP2.0多路开关多路开关锁存器锁存器P2P2口
26、直接做输出口时,输出信息的过程:口直接做输出口时,输出信息的过程:(将(将0 0送到送到P2.0P2.0的过程的过程)00010注意:注意:P2口做输出口时,内部数据经过锁存器送到口做输出口时,内部数据经过锁存器送到P20-P27上。上。由于内部有上拉电阻,所以由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。口作输出口使用时,不用外接上拉电阻。AQ0BC地址地址内部总线内部总线25DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0控制线控制线+5VP2.0转换开关转换开关锁存器锁存器P2P2口直接做输入口时,输入信息的过程:口直接做输入口时,输入信息的过程:(将(
27、将P2.0P2.0处的处的0 0送入送入DB0.0DB0.0的过程的过程)000注意注意:1、P2口作输入口时,口作输入口时,P20P27上的信号经过缓冲器送到内部数据总线上。上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。2、CPU对对P2口的读操作有口的读操作有2种:种:读引脚读引脚和和读读改改写锁存器写锁存器。当当CPU执行执行 MOV A,P2或或 JB/JNB P2.x,标号,标号 时,产生读引脚控制信号,时,产生读引脚控制信号,此时读的是引脚的状态此时读的是引脚的状态。当当CPU执行读执行读改改写指令(
28、以端口为目写指令(以端口为目的操作数的的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存等)时,产生读锁存信号,此时是先读锁存器的状态,在修改信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。之后,送回锁存器保存。返回返回AQ0BC地址地址内部总线内部总线26(2)2)工作过程分析工作过程分析 多路开关投向输出锁存器的输出(多路开关投向输出锁存器的输出(C C点点),接通输),接通输出锁存器。出锁存器。P2P2口的工作状态是口的工作状态是I/OI/O口状态口状态。多路开关的输入投向地址输出(多路开关的输入投向地址输出(B B点点),多路开关),多路开关
29、将接通地址寄存器输出。同样可以知道,将接通地址寄存器输出。同样可以知道,A A点的电平将点的电平将随地址输出的随地址输出的0 0、1 1而相应地变化。而相应地变化。P2 P2口的工作状态是口的工作状态是输出高输出高8 8位地址位地址。272 2、P2P2口的功能和特点口的功能和特点 P2 P2口是一个双功能的口:口是一个双功能的口:(1)(1)作作I/OI/O口时,口时,P2P2口为口为一准双向口一准双向口,功能与,功能与P1P1口一样。口一样。(2)(2)作地址输出时,作地址输出时,P2P2口可以口可以输出程序存储器或片外数输出程序存储器或片外数据存储器的高据存储器的高8 8位地址位地址,与
30、,与P0P0口输出的低地址一起构成口输出的低地址一起构成1616位地址线,从而可分别寻址位地址线,从而可分别寻址64 KB64 KB的程序存储器或片的程序存储器或片外数据存储器。外数据存储器。8 8位地址线是一起自动输出位地址线是一起自动输出。(3)P2(3)P2口能驱动口能驱动4 4个个TTLTTL负载。负载。283 3、P2P2口使用中注意的问题口使用中注意的问题(1)(1)由于由于P2P2口具有输出锁存功能,在取指周期或外部口具有输出锁存功能,在取指周期或外部RAMRAM读、写期间,输出的高读、写期间,输出的高8 8位地址是锁存的,故位地址是锁存的,故无需外加无需外加地址锁存器地址锁存器
31、。(2)(2)如果如果外接程序存储器外接程序存储器,访问片外程序存储器时需要,访问片外程序存储器时需要不断进行取指操作,不断进行取指操作,P2P2口需要不断送出高位地址,这时口需要不断送出高位地址,这时P2P2口线均口线均不宜再作不宜再作I/OI/O口使用口使用。(3)(3)仅有片外数据存储器的系统中,仅有片外数据存储器的系统中,P2P2口使用可分为两口使用可分为两种情况:种情况:29 若片外若片外RAMRAM容量容量256 B256 B:可使用:可使用“MOVX A“MOVX A,Ri”Ri”及及“MOVX Ri“MOVX Ri,A”A”访问片外访问片外RAMRAM,此时,此时P2P2口不输
32、出地口不输出地址,址,P2P2口仍可作为口仍可作为I/OI/O口使用;口使用;若片外数据存储器的容量若片外数据存储器的容量256 B256 B,使用,使用“MOVX A“MOVX A,DPTR”DPTR”及及“MOVX DPTR“MOVX DPTR,A”A”指令访问片外数据存储指令访问片外数据存储器,器,P2P2口需输出高口需输出高8 8位地址位地址。在片外在片外RAMRAM容量不太大时,也可只利用容量不太大时,也可只利用P1P1、P3P3甚至甚至P2P2口中的口中的某几根口线送高位地址某几根口线送高位地址,从而保留,从而保留P2P2口的全口的全部或部分口线作部或部分口线作I/OI/O口用。口
33、用。注意,这时使用的是注意,这时使用的是“MOVX A“MOVX A,Ri”Ri”及及“MOVX “MOVX RiRi,A”A”类访问指令,类访问指令,高位地址不再是自动送出的高位地址不再是自动送出的,而,而要通过程序设定。要通过程序设定。30DCLQQDB0.0地址地址/数据线数据线+5VP0.0多路开关多路开关锁存器锁存器作用作用:1、外扩芯片时,、外扩芯片时,P0口不再做口不再做I/O口使用,而是口使用,而是先传送地址,后传送数据先传送地址,后传送数据。2、没有外扩芯片时,、没有外扩芯片时,P0口可以直接作为口可以直接作为输入口输入口或或输出口输出口使用。使用。控制控制读引脚读引脚读锁存
34、器读锁存器写锁存器写锁存器内部总线内部总线AQ04.1.4 P04.1.4 P0口口 多功能多功能8 8位口位口,可以字节访问,地址为可以字节访问,地址为80H80H;也可位;也可位访问访问,地址为地址为80H-87H80H-87H。1 1 位结构与工作过程分析位结构与工作过程分析1031与与P1P1口口有明显区别有明显区别:P0 P0口中增加一个口中增加一个多路开关多路开关:其:其输入输入有两个,地址有两个,地址/数据输出;输出锁存器的输出。数据输出;输出锁存器的输出。其输出用于控制输出其输出用于控制输出FET Q0FET Q0的导通和截止。的导通和截止。多路开关的切换由内部控制信号控制多路
35、开关的切换由内部控制信号控制。P0 P0口的上拉电路与口的上拉电路与P1P1口完全不同:口完全不同:P0 P0口的上拉电路导通和截止受口的上拉电路导通和截止受内部控制信号和地内部控制信号和地址址/数据信号共同数据信号共同(相(相“与与”)来控制。)来控制。32(2)(2)工作过程分析工作过程分析 控制信号置控制信号置1 1时,接通地址时,接通地址/数据输出端。数据输出端。当地址当地址/数据线置数据线置1 1时,时,“与与”门输出为门输出为1 1,上拉上拉FETFET导通导通;同时反相器输出;同时反相器输出0 0,控制,控制下拉下拉FETFET截止截止,A A点电位点电位上拉,地址上拉,地址/数
36、据输出线为数据输出线为1 1。当地址当地址/数据线置数据线置0 0时,时,“与与”门输出为门输出为0 0,上拉上拉FETFET截止截止,同时反相器输出,同时反相器输出1 1,控制,控制下拉下拉FETFET导通导通,A A点电位点电位下拉,地址下拉,地址/数据输出线为数据输出线为0 0。此时的输出状态随地址此时的输出状态随地址/数据线而变。数据线而变。因此,因此,P0P0口可以作为地址口可以作为地址/数据复用总线使用数据复用总线使用。上。上下两个下两个FETFET处于反相,构成处于反相,构成推拉式输出电路推拉式输出电路,负载能力,负载能力大大增加。此时的大大增加。此时的P0P0口相当一个双向口。
37、口相当一个双向口。33 控制信号置控制信号置0 0时,接输出锁存器的时,接输出锁存器的/Q/Q端。端。与门关闭,上拉与门关闭,上拉FETFET截止,截止,P0P0口为漏极开路输出。口为漏极开路输出。P0P0口作输出口,若口作输出口,若P0.iP0.i输出输出1 1,输出锁存器的端为,输出锁存器的端为0 0,下拉下拉FETFET截止,截止,P0.iP0.i为为漏极开路输出漏极开路输出;若;若P0.iP0.i输出输出0 0,输,输出锁存器的端为出锁存器的端为1 1,下拉,下拉FETFET导通,导通,P0.iP0.i输出低电平。输出低电平。P0 P0口作输入口,必须先使口作输入口,必须先使P0.iP
38、0.i锁存器置锁存器置1 1。下拉。下拉FETFET也截止,也截止,P0.iP0.i处于悬浮状态。处于悬浮状态。A A点的电平由外设的电平点的电平由外设的电平而定,通过输入缓冲器读入而定,通过输入缓冲器读入CPUCPU。P0P0口相当于一个高阻口相当于一个高阻抗的输入口。抗的输入口。具体见下图说明:具体见下图说明:34P0P0口直接做输出口时,输出信息的过程:口直接做输出口时,输出信息的过程:(将(将0 0送到送到P0.0P0.0的过程的过程)返回返回DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0地址地址/数据线数据线+5VP0.0多路开关多路开关锁存器锁存器00010注意注
39、意:P0口做输出口时,内部数据经过锁存器送到口做输出口时,内部数据经过锁存器送到P00-P07上。由于上管上。由于上管始终截止,而当下管也截止时,始终截止,而当下管也截止时,P00P07被架空,没有标准的高电平,所被架空,没有标准的高电平,所以以P0口作输出口使用时,必须外接上拉电阻。口作输出口使用时,必须外接上拉电阻。控制控制内部总线内部总线AQ0035P0口直接做输入口时,输入信息的过程:(将P0.0处的1送入DB0.0的过程)DCPQQ读引脚读引脚读锁存器读锁存器写锁存器写锁存器DB0.0地址地址/数据控制线数据控制线+5VP0.0转换开关转换开关锁存器锁存器001注意注意:1、P0口作
40、输入口时,口作输入口时,P00P07上的信号经过缓冲器送到内部数据总线上。上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。2、CPU对对P0口的读操作有口的读操作有2种:种:读引脚读引脚和和读读改改写锁存器写锁存器。1当当CPU执行执行 MOV A,P0或或 JB/JNB P0.x,标号,标号 时,产生读引脚控制信号,时,产生读引脚控制信号,此时读的是引脚的状态此时读的是引脚的状态。当当CPU执行读执行读改改写指令(以端口为写指令(以端口为目的操作数的目的操作数的ANL、ORL、XRL、DEC、INC SETB、C
41、LR等)时,产生等)时,产生读锁存信号,此时是先读锁存器的状态,读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。在修改之后,送回锁存器保存。返回返回内部总线内部总线AQ00362 2、P0P0口的功能和特点口的功能和特点(1)(1)作作I/OI/O口使用。口使用。相当于一个真正的双向口,相当于一个真正的双向口,输出锁存、输入缓冲输出锁存、输入缓冲,输入时需先将口置输入时需先将口置1 1;每根口线可以独立定义为输入或输出。它具有双每根口线可以独立定义为输入或输出。它具有双向口的一切特点。向口的一切特点。特点:特点:输出为输出为漏极开路输出漏极开路输出,与,与NMOSNMOS的电路
42、接口时的电路接口时要用要用电阻上拉电阻上拉;输入时为悬浮状态,为一个高阻抗的输入口。输入时为悬浮状态,为一个高阻抗的输入口。37 (2)(2)作地址作地址/数据复用总线用。数据复用总线用。P0 P0口为一个准双向口。但是没有上拉电阻,作数口为一个准双向口。但是没有上拉电阻,作数据输入时,口也不是悬浮状态。据输入时,口也不是悬浮状态。作地址作地址/数据复用总线时,口不能逐位定义为输入数据复用总线时,口不能逐位定义为输入/输出。作数据总线用,输入输出。作数据总线用,输入/输出输出8 8位数据;作地址总位数据;作地址总线用,输出低线用,输出低8 8位地址。也不能作位地址。也不能作I/OI/O口使用。
43、口使用。(3)P0(3)P0口口能驱动能驱动8 8个个TTLTTL负载。负载。38例例1例例2例例1例例2MCS-51 MCS-51 单片机并行口应用单片机并行口应用 在没有外扩任何芯片时,单片机内部并行口在没有外扩任何芯片时,单片机内部并行口 可以作为输出口,直接与输出外设连接,常用的可以作为输出口,直接与输出外设连接,常用的输出外设是输出外设是发光二极管发光二极管;可以作为输入口,直接与输入外设连接,常用的可以作为输入口,直接与输入外设连接,常用的输入外设是输入外设是开关开关。直接做输出口直接做输出口 直接做输入口直接做输入口39直接做输出口直接做输出口P1.0P1.1P1.2P1.3P1
44、.4P1.5P1.6P1.789C51+5V电阻的作用是当流过发光二极管的电流过大时,它就会被烧坏。电阻可以电阻的作用是当流过发光二极管的电流过大时,它就会被烧坏。电阻可以限制流过发光二极管的电流,因此这个电阻叫作限流电阻。限流电阻阻值限制流过发光二极管的电流,因此这个电阻叫作限流电阻。限流电阻阻值的计算方法如下:的计算方法如下:R=(5-1.75)/Id ;Id 是流过发光二极管的电流,一般从是流过发光二极管的电流,一般从8mA到到20mA,其,其值越大,发光二极管越亮值越大,发光二极管越亮,但不能太大,当流过发光二极管的电流超过,但不能太大,当流过发光二极管的电流超过20mA时,容易烧坏发
45、光二极管。时,容易烧坏发光二极管。例例1:用:用89C51的的P1口驱动口驱动8个发光二极管,使个发光二极管,使8个发光二极管由上向下轮流点个发光二极管由上向下轮流点亮。试画出连接图,编制驱动程序。亮。试画出连接图,编制驱动程序。解:解:1、画电路图、画电路图2、编程、编程 mov a,#0feh up:mov p1,a lcall delay rl a sjmp upDelay:mov r7,#2delay11:mov r6,#250 djnz r6,$djnz r7,delay11 ret40直接做输出口直接做输出口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51
46、+5V例例2:用用80c51的的P1口驱动口驱动1个数码管,制成个数码管,制成1位秒表位秒表.试画出连接图,编制驱动程序。试画出连接图,编制驱动程序。解:解:1、画电路图、画电路图2、编程、编程思考思考abcdefgDpabcdefgDpUP0:MOV R7,#10 MOV R2,#00H MOV DPTR,#TAB UP:MOV A,R2 MOVC A,A+DPTR MOV P1 ,A LCALL D1S INC R2 DJNZ R7,UP SJMP UP0TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H41例例2:用用8051的的P1口
47、驱动口驱动1个数码管,制成个数码管,制成1位秒表位秒表.试画出连接图,编制驱试画出连接图,编制驱动程序。动程序。思考:思考:如果用如果用P2口驱动发光二极管,公共端接口驱动发光二极管,公共端接P3.0,则如何修改?,则如何修改?如果制成如果制成0.1S的表,则如何修改?的表,则如何修改?P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.789C51P3.0abcdefgDp CLR P3.0UP0:MOV R7,#10 MOV R2,#00H MOV DPTR,#TAB UP:MOV A,R2 MOVC A,A+DPTR MOV P2 ,A LCALL D1S INC R2 DJN
48、Z R7,UP SJMP UP0TAB:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H,80H,98H42P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5V例例1:用:用89C51的的P1口传送口传送8个开关状态,用个开关状态,用P2口显示口显示8个开关个开关状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。解:解:1、画电路图、画电路图MOV P1,#0FFHUP:MOV A,P1 MOV P2,A SJMP UPP2.0P2.1P2.2P2.3P2.4P2.5P2.
49、6P2.7+5V开关处的电阻称为上拉电阻上拉电阻,它的作用是当开关断开时,使P1口的电压上拉为准确的高电平,避免悬空状态。2、编程、编程强调:强调:8051内部并行口内部并行口直接作为输入口时,直接作为输入口时,必须先将口锁存器必须先将口锁存器置置1。思考思考直接做输入口直接做输入口43P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51MOV P1,#0FFHUP:MOV A,P1 CPL A MOV P2,A SJMP UPP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7+5V思考:如果将发光二极管反接,则如何修改程序?思考:如果将发光二极管反接,则如
50、何修改程序?44直接做输入口直接做输入口89C51+5V例例2:用:用8051的的P1口驱动口驱动8个发光二极管,个发光二极管,P3.4接一个开关接一个开关K1,当开关按下,当开关按下时,时,8个发光二极管由左向右轮流点亮;开关断开时,个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。个发光二极管不亮。试画出连接图,编制驱动程序。试画出连接图,编制驱动程序。解:解:1、画电路图、画电路图P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.72、编程、编程+5VP3.4 mov p3,#0ffh up0:mov a,#0feh up1:jb p3.4,up1 mov p1,