《第二章片内资源PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第二章片内资源PPT讲稿.ppt(151页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章片内资源2022/10/191第1页,共151页,编辑于2022年,星期三 51子系列有子系列有2个个可编程的定时器计数器:可编程的定时器计数器:定时器计数器定时器计数器0与定与定时器计数器时器计数器1,可由程序选择作为,可由程序选择作为定时器定时器用或作为用或作为计数器计数器用,定时用,定时时间或计数值也可由程序设定。时间或计数值也可由程序设定。每个定时器计数器都具有每个定时器计数器都具有4种种工作方式,可用程序选择。工作方式,可用程序选择。任一定时器计数器在定时时间到或计数值到时,可由程序任一定时器计数器在定时时间到或计数值到时,可由程序安排产生中断请求信号或不产生中断请求信号。安排
2、产生中断请求信号或不产生中断请求信号。52子系列有子系列有3个个可编程定时器计数器,增加了定时器计数器可编程定时器计数器,增加了定时器计数器2。定时器计数器定时器计数器2有有3种种工作方式,可用程序选择工作方式,可用程序选择。定时器定时器/计数器的主要特性计数器的主要特性第2页,共151页,编辑于2022年,星期三2.4.1 定时器计数器的结构定时器计数器的结构定时器计数器定时器计数器0 0、1 1的结构框图的结构框图第3页,共151页,编辑于2022年,星期三2.4.1 定时器计数器定时器计数器0、1的结构的结构定时器计数器定时器计数器0 0、1 1的结构框图的结构框图第4页,共151页,编
3、辑于2022年,星期三1.16位加法计数器位加法计数器工作方法:工作方法:作计数器用时,作计数器用时,加法计数器对芯片引脚加法计数器对芯片引脚T0(P3.4)或或T1(P3.5)上输入的上输入的脉冲计数。每输入一个脉冲,脉冲计数。每输入一个脉冲,加法计数器增加加法计数器增加1。加法计数。加法计数溢出时可向溢出时可向CPU发出中断请发出中断请求信号求信号 作定时器用时,加法计数作定时器用时,加法计数器对内部机器周期脉冲器对内部机器周期脉冲 Tcy 计数。计数。定时器计数器定时器计数器0 0、1 1的结构框图的结构框图(P3.5)(P3.4)第5页,共151页,编辑于2022年,星期三2工作方式控
4、制寄存器工作方式控制寄存器TMOD TMOD用来选择定时器计数用来选择定时器计数器器0、1的工作方式,低的工作方式,低4位用于定位用于定时器计数器时器计数器0,高,高4位用于定时器位用于定时器计数器计数器1。定时器计数器定时器计数器0 0、1 1的结构框图的结构框图第6页,共151页,编辑于2022年,星期三2工作方式控制寄存器工作方式控制寄存器TMOD (1)定时器计数器功能选择位定时器计数器功能选择位 C/T:C/T=1为计数器方式,为计数器方式,C/T=0为定时器方式。为定时器方式。(2)定时器计数器工作方式选择位定时器计数器工作方式选择位M1、M0 :定时器计数定时器计数器器4种工作方
5、式的选择由种工作方式的选择由M1、M0的值决定。的值决定。GATEC/TM1M0GATEC/TM1M0T1T0TMOD 89H 第7页,共151页,编辑于2022年,星期三 (2)定时器计数器工作方式选择位定时器计数器工作方式选择位M1、M0 :定时器计数定时器计数器器4种工作方式的选择由种工作方式的选择由M1、M0的值决定。的值决定。第8页,共151页,编辑于2022年,星期三 (3)门控制位门控制位GATE:如果如果GATE1,定时器计数器,定时器计数器0的的工作受芯片引脚工作受芯片引脚INT0(P3.2)控制,定时器计数器)控制,定时器计数器1的工作的工作受芯片引脚受芯片引脚INT1(P
6、3.3)控制;如果控制;如果GATE0,定时器计数器,定时器计数器的工作与的工作与INT0、INT1引脚无关。一般情况下引脚无关。一般情况下GATE=0。GATEC/TM1M0GATEC/TM1M0T1T0TMOD 89H 例:定时器例:定时器T1为定时器方式,工作在方式为定时器方式,工作在方式0,非门控方式,非门控方式,定时器定时器T0为计数器方式,工作在方式为计数器方式,工作在方式1,非门控方式,非门控方式,TMOD的的值应该设置为多少?值应该设置为多少?TMOD=00000101B=05H第9页,共151页,编辑于2022年,星期三3.定时器计数器控制寄存器定时器计数器控制寄存器TCON
7、 作用:作用:TCON高高4位用于控制定位用于控制定时器时器0、1的运行,低的运行,低4位用于位用于控制外部中断控制外部中断,与定时器计,与定时器计数器无关。数器无关。定时器计数器定时器计数器0 0、1 1的结构框图的结构框图第10页,共151页,编辑于2022年,星期三3.定时器计数器控制寄存器定时器计数器控制寄存器TCON (1)定时器计数器定时器计数器1运行控制位运行控制位TR1(TCON.6):TR1=1时定时器计数器时定时器计数器1工作,工作,TR10则停止工作。则停止工作。TRl由软件置由软件置1或清零。或清零。(2)定时器计数器定时器计数器1溢出中断标志溢出中断标志TF1(TCO
8、N.7)定时器计数器定时器计数器1计数溢出时由硬件自动置计数溢出时由硬件自动置TF1=1,在中断允,在中断允许的条件下,便向许的条件下,便向CPU发出定时器计数器发出定时器计数器1的中断请求信号,的中断请求信号,CPU响应后响应后TFl由硬件自动清零。在中断屏蔽条件下,由硬件自动清零。在中断屏蔽条件下,TF1可作可作查询测试用。查询测试用。TF1TR1TF0TR0IE1IT1IE0IT0D7 D6 D5 D4 D3 D2 D1 D0 TCON 88H 第11页,共151页,编辑于2022年,星期三3.定时器计数器控制寄存器定时器计数器控制寄存器TCON (3)定时器计数器定时器计数器0运行控制
9、位运行控制位TR0(TCON.4):TR0=1时定时器计数器时定时器计数器0工作,工作,TR00则停止工作。则停止工作。TR0由软件置由软件置1或清零。或清零。(4)定时器计数器定时器计数器0溢出中断标志溢出中断标志TF0(TCON.5)定时器计数器定时器计数器0计数溢出时由硬件自动置计数溢出时由硬件自动置TF0=1,在中断允许的,在中断允许的条件下,便向条件下,便向CPU发出定时器计数器发出定时器计数器0的中断请求信号,的中断请求信号,CPU响响应后应后TF0由硬件自动清零。在中断屏蔽条件下,由硬件自动清零。在中断屏蔽条件下,TF0可作查询测试可作查询测试用。用。TF1TR1TF0TR0IE
10、1IT1IE0IT0D7 D6 D5 D4 D3 D2 D1 D0 TCON 88H 第12页,共151页,编辑于2022年,星期三运行控制:是否为门控方式运行控制:是否为门控方式工作方式选择:工作方式选择:方式方式0方式方式3 工作状态选择:定时器或计数器状态工作状态选择:定时器或计数器状态 定时器计数器1工作方式0结构图 Tcy2.4.2 定时器计数器的四种工作方式定时器计数器的四种工作方式第13页,共151页,编辑于2022年,星期三一、定时器计数器一、定时器计数器0、1 的工作状态选择的工作状态选择(C/T)定时器定时器/计数器工作状态选择计数器工作状态选择Tcy 1.计数器工作状态计
11、数器工作状态(C/T=1):计数脉冲来自相应的外部计数脉冲来自相应的外部输入引脚,定时器输入引脚,定时器T0的计数脉冲来自的计数脉冲来自P3的第四个引脚的第四个引脚(P3.4),定时器定时器T1的计数脉冲来自的计数脉冲来自P3的第五个引脚的第五个引脚(P3.5)。当定时器)。当定时器/计数器运行时,引脚上的输入计数脉计数器运行时,引脚上的输入计数脉冲由冲由1到到0的跳变,可以使对应的定时器的加的跳变,可以使对应的定时器的加1寄存器对增寄存器对增1。2.4.3定时器计数器的四种工作方式定时器计数器的四种工作方式第14页,共151页,编辑于2022年,星期三定时器定时器/计数器工作状态选择计数器工
12、作状态选择Tcy 2.定时器工作状态定时器工作状态(C/T=0):本质上仍是定时器的加本质上仍是定时器的加1寄寄存器对进行加存器对进行加1运算。运算。振荡器产生的内部时钟脉冲经振荡器产生的内部时钟脉冲经12分频后作为计数脉冲,分频后作为计数脉冲,所以计数频率为振荡频率的所以计数频率为振荡频率的1/12。当采用当采用12MHz的晶体时,计数频率为的晶体时,计数频率为1MHz。由于内部时钟周期是相当精确的频率固定的脉冲,所以由于内部时钟周期是相当精确的频率固定的脉冲,所以通过设定寄存器对的初值,在定时器方式时,可以获得相通过设定寄存器对的初值,在定时器方式时,可以获得相当精确的定时。当精确的定时。
13、第15页,共151页,编辑于2022年,星期三二、定时器计数器二、定时器计数器0、1 的运行控制的运行控制 方法:方法:定时器定时器/计数器的运行控制(启动和停止)是由计数器的运行控制(启动和停止)是由TMOD中的中的GATE位,位,TCON中的中的TRi(i=0或或1)位以及从芯片引脚位以及从芯片引脚INTi(i=0或或1)上引入的外部信号通过上图的逻辑电路实现的。)上引入的外部信号通过上图的逻辑电路实现的。定时器定时器/计数器计数器1 1运行控制运行控制S2第16页,共151页,编辑于2022年,星期三 原理:原理:(1)当定时器当定时器1的的GATE=0时,定时器时,定时器1运行控制由运
14、行控制由TR1的的一个条件确定,而一个条件确定,而TR1可用软件置位或清零,从而可以利用程序控可用软件置位或清零,从而可以利用程序控制定时器的启动和停止运行。制定时器的启动和停止运行。定时器定时器/计数器计数器1运行控制运行控制二、定时器计数器二、定时器计数器0、1 的运行控制的运行控制第17页,共151页,编辑于2022年,星期三二、定时器计数器二、定时器计数器0 0、1 1 的运行控制的运行控制 原理:原理:(2)当定时器当定时器1的的GATE=1时,时,“或或”门的输出电平取决门的输出电平取决于于INT1引脚的信号电平,所以引脚的信号电平,所以“与与”门输出的电平决定于门输出的电平决定于
15、TR1和和INT1两个条件。两个条件。定时器或计数器运行定时器或计数器运行控制控制第18页,共151页,编辑于2022年,星期三三、定时器计数器三、定时器计数器0 0、1 1的的4 4种工作方式种工作方式第19页,共151页,编辑于2022年,星期三三、定时器计数器三、定时器计数器0、1的的4种工作方式种工作方式 设置条件:设置条件:M10、M00 方式方式0为:为:13位定时器计数器,位定时器计数器,TH1是高是高8位加法计数器,位加法计数器,TLl是低是低5位加法计数器位加法计数器(只用只用5位,其高位,其高3位未用位未用)。1.工作方式工作方式0 定时器计数器1工作方式0结构图 第20页
16、,共151页,编辑于2022年,星期三1.工作方式工作方式0计数范围:计数范围:18192 THl、TLl从初值开始加法计数,直至溢出从初值开始加法计数,直至溢出,所以设置的初值不,所以设置的初值不同,定时时间或计数值也不同。同,定时时间或计数值也不同。注意:注意:加法计数器加法计数器TH1溢出后,必须用程序重新对溢出后,必须用程序重新对THl、TLl设置初值,否则下一次设置初值,否则下一次TH1、TLl将从将从0开始加法计数。开始加法计数。初值设置范围:初值设置范围:08191(0213-1)定时范围:定时范围:(18192)Tcy例例 已知振荡器振荡频率已知振荡器振荡频率fosc为为12M
17、Hz,要求定时器计数器,要求定时器计数器0产生产生1ms定时,试编写初始化程序。定时,试编写初始化程序。计数值:计数值:8192-X 定时时间:定时时间:(8192-X)Tcy第21页,共151页,编辑于2022年,星期三(2)初始化程序的编写初始化程序的编写:在在C51中加入中加入头文件,然后在主函数头文件,然后在主函数 中写如下语句:中写如下语句:TH0=0 xE0 ;定时器;定时器/计数器计数器0写入初值写入初值 TL0=0 x18 ;同上;同上 TMOD=0 x00 ;T0设为定时器、工作方式设为定时器、工作方式0 TR0=1;启动定时器;启动定时器/计数器计数器0TH0=E0H TL
18、0=18H解:解:(1)TH0 TL0初值的计算与初值的计算与TMOD方式字的确定:方式字的确定:由于由于Tcy1us,故有,故有 T=(8192-X)Tcy(8192-X)1us=1000us 得得 X=71921C18H=0001 1100 0001 1000BTMOD=00H第22页,共151页,编辑于2022年,星期三2.工作方式工作方式1 设置条件:设置条件:M10、M01 方式方式1为:为:16位定时器计数器,位定时器计数器,TH1是高是高8位加法计数器,位加法计数器,TLl是低是低8位加法计数器。位加法计数器。定时器计数器定时器计数器1工作方式工作方式1结构图结构图 第23页,共
19、151页,编辑于2022年,星期三2.工作方式工作方式1计数范围:计数范围:165536 THl、TLl从初值开始加法计数,直至溢出,所以设置的从初值开始加法计数,直至溢出,所以设置的初值不同,定时时间或计数值也不同。初值不同,定时时间或计数值也不同。注意:注意:加法计数器加法计数器TH1溢出后,必须用程序重新对溢出后,必须用程序重新对THl、TLl设置初值,否则下一次设置初值,否则下一次TH1、TLl将从将从0开始加法计数。开始加法计数。初值设置范围:初值设置范围:065535(0216-1)定时范围:定时范围:(165536)Tcy例例 已知振荡器振荡频率已知振荡器振荡频率fosc为为12
20、MHz,要求定时器计数器,要求定时器计数器0产生产生50ms定时,试编写初始化程序。定时,试编写初始化程序。计数值:计数值:65536-X 定时时间:定时时间:(65536-X)Tcy第24页,共151页,编辑于2022年,星期三(2)初始化程序的编写初始化程序的编写:在在C51中加入中加入头文件,然后在主函数头文件,然后在主函数 中写如下语句:中写如下语句:TH0=0 x3C ;定时器;定时器/计数器计数器0写入初值写入初值 TL0=0 xB0 ;同上;同上 TMOD=0 x01 ;T0设为定时器工作方式设为定时器工作方式1 TR0=1,启动定时器,启动定时器/计数器计数器0TH0=3CH
21、TL0=B0H 解:解:(1)TH0 TL0初值的计算与初值的计算与TMOD方式字的确定:方式字的确定:由于由于Tcy1us,故有,故有 T=(65536-x)Tcy(65536-x)1us=50000us 得得 X=155363CB0HTMOD=01H第25页,共151页,编辑于2022年,星期三解:方波的周期用定时器解:方波的周期用定时器T1产生,根据产生,根据(2n-x)Tcy(216-x)1s=50ms,所以所以x=65536-50000=15536=3CB0H即即TH1=3CH,TL1=B0H 或者通过计算得出或者通过计算得出TH1=15536/256,TL1=15536%256 已
22、知晶振频率已知晶振频率fosc=12MHz,要求定时器,要求定时器1产生产生100ms的方波信的方波信号,定时器号,定时器1工作于方式工作于方式1,编写在,编写在P2.0引脚上产生引脚上产生100ms的方波的方波程序。程序。在在T1中中设设置置初初值值为为15536,在在初初值值的的基基础础上上进进行行加加1计计数数,每每隔隔50ms计计数数溢溢出出1次次,CPU响响应应中中断断后后,在在中中断断服服务务程程序序中中对对P2.0引脚信号取反。引脚信号取反。第26页,共151页,编辑于2022年,星期三#include#define uint unsigned intsbit fangbo=P2
23、0;void delay(uint z);/延时子程序延时子程序void main()TMOD=0 x10;/设置设置T1为定时器模式为定时器模式 /,工作在方式,工作在方式1 TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;/开总中断开总中断 ET1=1;/允许允许T1中断中断 TR1=1;/启动启动T1 while(1);void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void timer1()interrupt 3 TH1=(65536-50000)/256;TL1=(6
24、5536-50000)%256;fangbo=fangbo;第27页,共151页,编辑于2022年,星期三3.工作方式工作方式2 设置条件:设置条件:M11、M00 方式方式2为:自动重新装入初值(自动重装载)的为:自动重新装入初值(自动重装载)的8位定时器计位定时器计数器数器。TL1作为作为8位加法计数器使用,位加法计数器使用,TH1作为初值寄存器用。作为初值寄存器用。TH1、TL1的初值都由软件预置。的初值都由软件预置。定时器计数器定时器计数器1工作方式工作方式2结构图结构图 第28页,共151页,编辑于2022年,星期三3.3.工作方式工作方式2 2计数范围:计数范围:1256 TLl从
25、初值开始加法计数,溢出时从初值开始加法计数,溢出时:(1)置位置位TF1;(2)发出重装载信号,将发出重装载信号,将THl中初值自动送入中初值自动送入TLl,使,使TL1从初值开始从初值开始重新计数。重新计数。注意:注意:重新装入初值后,重新装入初值后,TH1TH1的内容保持不变。的内容保持不变。初值设置范围:初值设置范围:0255(028-1)定时范围:定时范围:(1256)Tcy 工作方式工作方式2特别适用于定时控制。特别适用于定时控制。例已知振荡器振荡频率例已知振荡器振荡频率fosc为为12MHz,要求定时器计数器,要求定时器计数器0要求每隔要求每隔200us产生一定时控制信号。产生一定
26、时控制信号。计数值:计数值:256-X 定时时间:定时时间:(256-X)Tcy第29页,共151页,编辑于2022年,星期三(2)初始化程序初始化程序:在在C51中加入中加入头文件,然后在主函数头文件,然后在主函数 中写如下语句:中写如下语句:TL0=0 x38 ;定时器;定时器/计数器计数器0写入初值写入初值TH0=0 x38 ;同上;同上TMOD=0 x02 ;T0设为定时器工作方式设为定时器工作方式2TR0=1;启动定时器;启动定时器/计数器计数器0TH0=38H TL0=38H 解:解:(1)TH0 TL0初值的计算与初值的计算与TMOD方式字的确定:方式字的确定:由于由于Tcy1u
27、s,故有,故有 T=(256-x)Tcy(256-x)1us=200us得得 X=5638HTMOD=02H第30页,共151页,编辑于2022年,星期三4.4.工作方式工作方式3 3 设置条件:设置条件:M11、M01 方式方式3 3:工作方式工作方式3 3仅对定时器计数器仅对定时器计数器0 0有意义。有意义。TL0TL0、TH0TH0成为成为两个独立的两个独立的8 8位加法计数器。位加法计数器。如把定时器计数器如把定时器计数器1 1设置为工作方式设置为工作方式3 3,相当于,相当于TR1=0TR1=0,即定时器,即定时器计数器计数器1 1实际将停止工作。实际将停止工作。定时器计数器定时器计
28、数器0 0工作方式工作方式3 3结构图结构图 第31页,共151页,编辑于2022年,星期三4.4.工作方式工作方式3 3 说明:说明:定时器计数器定时器计数器0采用工作方式采用工作方式3后,后,51子系列子系列就具有就具有3个定时器个定时器/计数器,即计数器,即8位定时器计数器位定时器计数器TL0,8位定时器位定时器TH0和和16位定时器计数器位定时器计数器1(TH1、TL1)。)。定时器计数器定时器计数器1虽然还可以选择为方式虽然还可以选择为方式0、方式、方式1或方或方式式2,但由于,但由于TR1和和TF1被被TH0借用,不能产生溢出中断借用,不能产生溢出中断请求,所以只用作串行口的波特率
29、发生器。请求,所以只用作串行口的波特率发生器。第32页,共151页,编辑于2022年,星期三定时器定时器/计数器计数器0已预置初值为已预置初值为156,且选定用方式,且选定用方式 2的计数器方的计数器方式,现在式,现在T0引脚上输入周期为引脚上输入周期为1ms脉冲,问:脉冲,问:(1)此时定时器此时定时器/计数器计数器0的实际用途是什么?的实际用途是什么?(2)在什么情况下,定时器在什么情况下,定时器/计数器计数器0溢出?溢出?解:解:(1)实际用作定时器,但采用外部时钟脉冲实际用作定时器,但采用外部时钟脉冲 (2)满满100ms定时器定时器/计数器计数器0将溢出。将溢出。第33页,共151页
30、,编辑于2022年,星期三 设计一个秒表,使它从设计一个秒表,使它从059s计数,并使计数,并使LED数码管左边两个数码管左边两个显示数字显示数字059,假设晶振频率,假设晶振频率fosc=12MHz,定时器,定时器/计数器选计数器选用用T0。解:利用解:利用51单片机的定时器单片机的定时器0,使其,使其50ms中断一次,中断中断一次,中断20次时,次时,秒加秒加1。初值与中断服务程序中,初值与中断服务程序中,TH0、TL0的值设置为:的值设置为:TH0=0 x3C ;定时器;定时器/计数器计数器0写入初值写入初值 TL0=0 xB0 ;同上;同上;模式寄存器的值为:模式寄存器的值为:TMOD
31、=0 x01 ;T0设为定时器工作方式设为定时器工作方式1 第34页,共151页,编辑于2022年,星期三程序如下:程序如下:#include#define uint unsigned int#define uchar unsigned charuchar temp,aa,shi,ge;uchar code table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;/共阳极数共阳极数码管码表码管码表 void display(uchar shi,uc
32、har ge);/显示子程序显示子程序void delay(uint z);/延时子程序延时子程序void init();第35页,共151页,编辑于2022年,星期三void main()init();/初始化子程序初始化子程序while(1)if(aa=20)aa=0;temp+;if(temp=60)temp=0;shi=temp/10;ge=temp%10;display(shi,ge);第36页,共151页,编辑于2022年,星期三void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uchar
33、shi,uchar ge)P2=0 x01;/送入十位数码管位选信号,显示数字送入十位数码管位选信号,显示数字P1=tableshi;/送入十位数码管的段选信号送入十位数码管的段选信号delay(5);P2=0 x02;/送入个位数码管位选信号,显示数字送入个位数码管位选信号,显示数字P1=tablege;/送入个位数码管的段选信号送入个位数码管的段选信号delay(5);第37页,共151页,编辑于2022年,星期三void init()temp=0;TMOD=0 x01;/设置设置T0为定时器模式,工作在方式为定时器模式,工作在方式1TH0=(65536-50000)/256;TL0=(6
34、5536-50000)%256;EA=1;/开总中断开总中断ET0=1;/允许允许T0中断中断TR0=1;/启动启动T0void timer0()interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;第38页,共151页,编辑于2022年,星期三2.5 并行并行I/O端口端口8051单片机共有单片机共有4个个8位双向位双向I/O口,共口,共32口线。每位均有自己的锁存器口线。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。,输出驱动器和输入缓冲器。第39页,共151页,编辑于2022年,星期三u多路开关多路开关1)功能:用
35、于控制选通功能:用于控制选通I/O方式方式还是还是地地址址/数据输出方式数据输出方式2)方式控制:由内部控制信号产生方式控制:由内部控制信号产生数据输出锁存器,用于数据位的数据输出锁存器,用于数据位的锁存锁存两个三态的数据输入缓冲器两个三态的数据输入缓冲器(BUF1和和BUF2)。推拉式推拉式I/OI/O驱动器:由两只场效应驱动器:由两只场效应管(管(FETFET)组成,上面的场效应管)组成,上面的场效应管构成上拉电路。构成上拉电路。2.5.1 P0端口端口BUF2BUF1QQDCVcc控制控制AD0P0R1 P0R2D0P0WP0口口1位的内部结构位的内部结构读锁存器读锁存器读引脚读引脚锁存
36、器锁存器内部总线内部总线写锁存器写锁存器地址地址/数据数据P00多路开关多路开关10字节地址字节地址80H,位地址,位地址80H87H。第40页,共151页,编辑于2022年,星期三2.5.1 P0端口端口BUF2BUF1QQDCVcc控制控制AD0P0R1 P0R2D0P0WP0口内部结构口内部结构读锁存器读锁存器读引脚读引脚锁存器锁存器内部总线内部总线写锁存器写锁存器地址地址/数据数据P00多路开关多路开关10说明:说明:1、当、当CPU发出的发出的控制信号为控制信号为0时,时,P0口做双向口做双向I/O口,为漏口,为漏极开路(三态)极开路(三态)2、当、当CPU发出的发出的控制信号为控制
37、信号为1时,时,P0口为地址口为地址/数据复用总数据复用总线(用于口扩展)线(用于口扩展)第41页,共151页,编辑于2022年,星期三2.5.1 P0端口端口BUF2BUF1QQDCVcc控制控制AD0P0R1 P0R2D0P0WP0口内部结构口内部结构读引脚读引脚锁存器锁存器内部总线内部总线写锁存器写锁存器地址地址/数据数据P00多路开关多路开关103、P0作输入作输入/输出口的使用输出口的使用(1)P0作输出口使用作输出口使用 来来自自CPU的的“写写入入”脉脉冲冲加加在在D锁锁存存器器的的C端端,内内部部总总线线上上的的数数据据写写入入D锁锁存存器,并向端口引脚器,并向端口引脚P0.x
38、输出。输出。注注意意:由由于于输输出出电电路路是是漏漏极极开开路路(因因为为这这时时上上拉拉场场效效应应管管截截止止),必必须须外外接上拉电阻才能有高电平输出。接上拉电阻才能有高电平输出。读锁存器读锁存器第42页,共151页,编辑于2022年,星期三2.5.1 P0端口端口BUF2BUF1QQDCVcc控制控制AD0P0R1 P0R2D0P0WP0口内部结构口内部结构读引脚读引脚锁存器锁存器内部总线内部总线写锁存器写锁存器地址地址/数据数据P00多路开关多路开关103、P0作输入作输入/输出口的使用输出口的使用(1)P0作输出口使用作输出口使用 来来自自CPU的的“写写入入”脉脉冲冲加加在在D
39、锁锁存存器器的的C端端,内内部部总总线线上上的的数数据据写写入入D锁锁存存器器,并向端口引脚并向端口引脚P0.x输出。输出。注注意意:由由于于输输出出电电路路是是漏漏极极开开路路(因因为为这这时时上上拉拉场场效效应应管管截截止止),必必须须外外接接上拉电阻才能有高电平输出。上拉电阻才能有高电平输出。(2 2)P0 P0作输入口使用作输入口使用 区分区分“读引脚读引脚”和和“读锁存器读锁存器”。“读读引引脚脚”信信号号把把下下方方缓缓冲冲器器打打开开,引脚上的状态经缓冲器读入内部总线;引脚上的状态经缓冲器读入内部总线;读锁存器读锁存器第43页,共151页,编辑于2022年,星期三2.5.1 P0
40、端口端口BUF2BUF1QQDCVcc控制控制AD0P0R1 P0R2D0P0WP0口内部结构口内部结构读引脚读引脚锁存器锁存器内部总线内部总线写锁存器写锁存器地址地址/数据数据P00多路开关多路开关103、P0作输入作输入/输出口的使用输出口的使用(1)P0作输出口使用作输出口使用 来来自自CPU的的“写写入入”脉脉冲冲加加在在D锁锁存存器器的的C端端,内内部部总总线线上上的的数数据据写写入入D锁锁存存器器,并向端口引脚并向端口引脚P0.x输出。输出。注注意意:由由于于输输出出电电路路是是漏漏极极开开路路(因因为为这这时时上上拉拉场场效效应应管管截截止止),必必须须外外接接上拉电阻才能有高电
41、平输出。上拉电阻才能有高电平输出。(2 2)P0 P0作输入口使用作输入口使用 区分区分“读引脚读引脚”和和“读锁存器读锁存器”。“读读引引脚脚”信信号号把把下下方方缓缓冲冲器器打打开开,引引脚上的状态经缓冲器读入内部总线;脚上的状态经缓冲器读入内部总线;“读读锁锁存存器器”信信号号打打开开上上面面的的缓缓冲冲器器把锁存器把锁存器Q Q端的状态读入内部总线。端的状态读入内部总线。读锁存器读锁存器第44页,共151页,编辑于2022年,星期三执行执行“MOV A,P0”时时读引脚读引脚信号有效。信号有效。说明:说明:执行执行“ANL P0,#0FH”时时读锁存器读锁存器信号有效。信号有效。第45
42、页,共151页,编辑于2022年,星期三2.5.2 P1端口端口P1口内部结构如下图所示。口内部结构如下图所示。输出部分有内部上拉电阻输出部分有内部上拉电阻R*约为约为20K。其他部分与其他部分与P0端口使用相类似(读引脚时先写入端口使用相类似(读引脚时先写入1)。)。写数据读端口字节地址字节地址90H,位地址,位地址90H97H。第46页,共151页,编辑于2022年,星期三P1口只作通用的口只作通用的I/O口使用口使用,在电路结构上与,在电路结构上与P0口有口有两点区别:两点区别:(1)因为只传送数据,不再需要多路转接开关)因为只传送数据,不再需要多路转接开关MUX。(2)由由于于P1口口
43、用用来来传传送送数数据据,因因此此输输出出电电路路中中有有上上拉拉电电阻阻,这这样样电电路的输出不是三态的。路的输出不是三态的。因此:因此:(1)P1口作为输出口使用时口作为输出口使用时,外电路无需再接上拉电阻。,外电路无需再接上拉电阻。(2)P1口口作作为为输输入入口口使使用用时时,应应先先向向其其锁锁存存器器先先写写入入“1”,使使输输出出驱驱动动电路的电路的FET截止,所以截止,所以P1口是准双向口。口是准双向口。第47页,共151页,编辑于2022年,星期三字节地址为字节地址为A0H,位地址位地址A0HA7H。2.5.3 P2端口端口P2口的位结构的电路原理图口的位结构的电路原理图说明
44、:说明:1 1、P2P2可以作为通用的可以作为通用的I/OI/O,也可以作为高,也可以作为高8 8位地址输出输出。位地址输出输出。2 2、当控制信号为、当控制信号为1 1时时P2P2口输出地址信息,口输出地址信息,此时单片机完成外部的取此时单片机完成外部的取指操作或对外部数据存储指操作或对外部数据存储器器1616位地址的读写操作。位地址的读写操作。3 3、当控制信号为、当控制信号为0 0时时,作为普作为普通通I/OI/O口使用时口使用时用法和用法和P1P1口类似。口类似。10第48页,共151页,编辑于2022年,星期三P3口的字节地址为口的字节地址为B0H,位地址位地址为为B0HB7H。P3
45、口的口的第二功能第二功能定义,应熟记。定义,应熟记。表表2-5 P3口的第二功能定义口的第二功能定义 口引脚口引脚 第二功能第二功能 P3.0 RXD(串行输入口)(串行输入口)P3.1 TXD(串行输出口)(串行输出口)P3.2 INT0*(外部中断(外部中断0)P3.3 INT1*(外部中断(外部中断1)P3.4 T0(定时器(定时器0外部计数输入)外部计数输入)P3.5 T1(定时器(定时器1外部计数输入)外部计数输入)P3.6 WR*(外部数据存储器写选通)(外部数据存储器写选通)P3.7 RD*(外部数据存储器读选通)(外部数据存储器读选通)2.5.4 P3端口端口第49页,共151
46、页,编辑于2022年,星期三图图2-10 P2口的位结构的电路原理口的位结构的电路原理第50页,共151页,编辑于2022年,星期三第二功能信号第二功能信号有有输出输出和和输入输入两类:两类:(1 1)作)作通用的通用的I/OI/O输出输出,“第二输出功能第二输出功能”线应保持高电平,与线应保持高电平,与非门开通,使锁存器非门开通,使锁存器Q Q端输出畅通。作端输出畅通。作第二功能信号输出第二功能信号输出,锁存,锁存器预先置器预先置“1”“1”,使,使与非门与非门对对“第二输出功能第二输出功能”信号的输出是信号的输出是畅通的。畅通的。(2 2)作)作第二功能信号输入第二功能信号输入,在口线引脚
47、的内部增加了一个缓冲器,在口线引脚的内部增加了一个缓冲器,输入的信号就从这个缓冲器的输出端取得。而作为输入的信号就从这个缓冲器的输出端取得。而作为通用通用I/OI/O输入输入,仍取自三态缓冲器的输出端。仍取自三态缓冲器的输出端。P3P3口无论作哪种输入,锁存器输出和口无论作哪种输入,锁存器输出和“第二输出功能第二输出功能”线都应保持线都应保持高电平。高电平。第51页,共151页,编辑于2022年,星期三使用中应注意的问题:使用中应注意的问题:(1)P0P3口口都都是是并并行行I/O口口,但但P0口口和和P2口口,还还可可用用来来构构建建系系统统的的数据总线和地址总线,所以在数据总线和地址总线,
48、所以在电路中有一个电路中有一个MUX,以进行转换。,以进行转换。而而P1口口和和P3口口无无构构建建系系统统的的数数据据总总线线和和地地址址总总线线的的功功能能,因因此,此,无需转接开关无需转接开关MUX。由由于于P0口口可可作作为为地地址址/数数据据复复用用线线使使用用,需需传传送送系系统统的的低低8位位地地址址和和8位数据,因此位数据,因此MUX的一个输入端为的一个输入端为“地址地址/数据数据”信号信号。而而P2口口仅仅作作为为高高位位地地址址线线使使用用,不不涉涉及及数数据据,所所以以MUX的的一一个个输输入信号为入信号为“地址地址”。2.5.5 P0P3端口功能总结端口功能总结第52页
49、,共151页,编辑于2022年,星期三(2)在在4个个口口中中只只有有P0口口是是一一个个真真正正的的双双向向口口,P1P3口口都都是是准准双双向向口口。原原因因:P0口口作作数数据据总总线线使使用用时时,为为保保证证数数据据正正确确传传送送,需需解解决决芯芯片片内内外外的的隔隔离离问问题题,即即只只有有在在数数据据传传送送时时芯芯片片内内外外才才接接通通;不不进进行行数数据据传传送送时时,芯芯片片内内外外应应处处于于隔隔离离状状态态。为为此此,P0口口的的输输出出缓缓冲冲器器应为三态门。应为三态门。在在P0口口中输出三态门是由两只场效应管(中输出三态门是由两只场效应管(FET)组成)组成,所
50、以,所以是一个真正的双向口。而是一个真正的双向口。而P1P3口口,上拉电阻代替,上拉电阻代替P0口中的场口中的场效应管效应管,输出缓冲器不是三态的,输出缓冲器不是三态的准双向口准双向口第53页,共151页,编辑于2022年,星期三(3)P3口口的的口口线线具具有有第第二二功功能能,为为系系统统提提供供一一些些控控制制信信号号。因因此此在在P3口口电电路路增增加加了了第第二二功功能能控控制制逻逻辑辑。这这是是P3口口与与其其它它各各口口的的不不同同之处之处。第54页,共151页,编辑于2022年,星期三引脚功能分类图引脚功能分类图第55页,共151页,编辑于2022年,星期三仿真电路如下图,编写