




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 MCS-51MCS-51的的I/0I/0端口端口单片机单片机I/O口的使用口的使用n对单片机的控制,其实就是对对单片机的控制,其实就是对I/O口的控制,无论单片机口的控制,无论单片机对外界进行何种控制,或接受外部的控制,都是通过对外界进行何种控制,或接受外部的控制,都是通过I/O口进行的。口进行的。51单片机总共有单片机总共有P0、P1、P2、P3四个四个8位双位双向输入输出端口,每个端口都有锁存器、输出驱动器和输向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。入缓冲器。4个个I/O端口都能作输入输出口用,其中端口都能作输入输出口用,其中P0和和P2通常用于对外部存储
2、器的访问。通常用于对外部存储器的访问。 5151系列单片机有系列单片机有4 4个个I/OI/O端口,每个端口都是端口,每个端口都是8 8位准双向位准双向口,共占口,共占3232根引脚。每个端口都包括一个锁存器根引脚。每个端口都包括一个锁存器( (即专用寄即专用寄存器存器P0P0P3)P3)、一个输出驱动器和输入缓冲器。通常把、一个输出驱动器和输入缓冲器。通常把4 4个端个端口笼统地表示为口笼统地表示为P0P0P3P3。 在无片外扩展存储器的系统中,这在无片外扩展存储器的系统中,这4个端口的每一位都个端口的每一位都可以作为准双向通用可以作为准双向通用I/O端口使用。在具有片外扩展存储器端口使用。
3、在具有片外扩展存储器的系统中,的系统中,P2口作为高口作为高8位地址线,位地址线,P0口分时作为低口分时作为低8位地位地址线和双向数据总线。址线和双向数据总线。 51单片机单片机4个个I/O端口线路设计的非常巧妙,学习端口线路设计的非常巧妙,学习I/O端口端口逻辑电路,不但有利于正确合理地使用端口,而且会给设计逻辑电路,不但有利于正确合理地使用端口,而且会给设计单片机外围逻辑电路有所启发。单片机外围逻辑电路有所启发。下面简单介绍一下输入下面简单介绍一下输入/ /输出端口结构。输出端口结构。6.1 P06.1 P0口和口和P2P2的结构的结构 下图为下图为P0P0口的某位口的某位P0.n(n=0
4、P0.n(n=07)7)结构图,它由一个输出锁结构图,它由一个输出锁存器、两个三态输入缓冲器、一个输出驱动电路和一个输出存器、两个三态输入缓冲器、一个输出驱动电路和一个输出控制电路组成。输出驱动电路由一对控制电路组成。输出驱动电路由一对FETFET(场效应管)组成,(场效应管)组成,其工作状态受输出控制电路的控制,后者包括:其工作状态受输出控制电路的控制,后者包括:1 1个与门、个与门、1 1个反相器和个反相器和1 1个模拟转换开关(个模拟转换开关(MUXMUX)。)。D QCLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCC
5、T1T2P0P0口口引脚引脚一、一、P0P0口的结构口的结构1 1、P0P0口作为普通口作为普通I/OI/O口口输出时输出时 模拟转换开关的位置由来自模拟转换开关的位置由来自CPU的控制信号决定,当的控制信号决定,当控制信号为控制信号为0(低电平)时,开关处于图示位置,它把输出(低电平)时,开关处于图示位置,它把输出级与锁存器的级与锁存器的Q端接通。同时,因为与门输出为端接通。同时,因为与门输出为0,输出,输出级中的上拉级中的上拉FET处于截止状态,因此输出级是漏极开路的处于截止状态,因此输出级是漏极开路的开漏电路。这时开漏电路。这时P0口可作一般的口可作一般的I/O口用。口用。D QCLK
6、QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚nCPU向端口输出数据时,写脉冲加在触发器时钟端向端口输出数据时,写脉冲加在触发器时钟端CLK上,这上,这样与内部总线相连的样与内部总线相连的D端的数据取反后就出现在端的数据取反后就出现在Q端上,又经输端上,又经输出出FET反相,在反相,在P0引脚上出现的数据正好是内部总线的数据。引脚上出现的数据正好是内部总线的数据。P0口的输出级可以驱动口的输出级可以驱动8个个LS TTL输入,但在开漏状态下,为了驱输入,但在开漏状态下,为了驱动动NMOS或其它拉流负载
7、,需要外接上拉电阻。或其它拉流负载,需要外接上拉电阻。D QCLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚 输入时输入时-分读引脚或读锁存器分读引脚或读锁存器读引脚:由传送指令读引脚:由传送指令(MOVMOV)实现;实现;n端口中的端口中的2个三态缓冲器用于读操作。一个缓冲器用于直接读个三态缓冲器用于读操作。一个缓冲器用于直接读端口引脚处的数据,当执行一般由端口输入的指令时,读脉冲端口引脚处的数据,当执行一般由端口输入的指令时,读脉冲把图中下面一个三态缓冲器打开,这样端口上的数据将经过缓把图中
8、下面一个三态缓冲器打开,这样端口上的数据将经过缓冲器送至内部总线。冲器送至内部总线。D QCLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚D QCLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚 输入时输入时-分读引脚或读锁存器分读引脚或读锁存器 图中上面一个缓冲器并不直接读取端口引脚上的数据,而图中上面一个缓冲器并不直接读取端口引脚上的数据,而是读取锁存器是读取锁存器Q端的数据。端的数据。Q端与引
9、脚处的数据是一致的。结构端与引脚处的数据是一致的。结构上这样安排是为了适应所谓上这样安排是为了适应所谓“读读-修改修改-写写”类指令的需要。这类指令的需要。这类指令的特点是:先读口,随之可能对读入的数据进行修改,类指令的特点是:先读口,随之可能对读入的数据进行修改,然后再写到端口上。然后再写到端口上。n例如逻辑与指令:例如逻辑与指令:ANL P0,A就属于这类指令。此指令先把就属于这类指令。此指令先把P0上的数据读入上的数据读入CPU,随之与累加器,随之与累加器A内的数据按位进行逻辑内的数据按位进行逻辑与操作,最后再把与的结果送回与操作,最后再把与的结果送回P0口。这类指令同样适用于口。这类指
10、令同样适用于P1P3口。口。n对于对于“读读-修改修改-写写”指令,不直接读引脚上的数据而读锁存器指令,不直接读引脚上的数据而读锁存器上的数据,是为了避免错读引脚上电平的可能性。例如,若用上的数据,是为了避免错读引脚上电平的可能性。例如,若用一根口线去驱动一个晶体管的基极,当向此口线写一根口线去驱动一个晶体管的基极,当向此口线写1时,晶体时,晶体管导通,并把引脚上的电平拉低。这时若从引脚上读取数据,管导通,并把引脚上的电平拉低。这时若从引脚上读取数据,会把此数据(应为会把此数据(应为1)错读为)错读为0,若从锁存器,若从锁存器Q端读取,则可以端读取,则可以得到正确的数据。得到正确的数据。D Q
11、CLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚n准双向口:准双向口:从图中结构看,引脚上的外部信号既加在三态缓从图中结构看,引脚上的外部信号既加在三态缓冲器的输入端上,又加在输出级冲器的输入端上,又加在输出级FET2的漏极上,若此的漏极上,若此FET2是导通的(相当于曾输出锁存过数据是导通的(相当于曾输出锁存过数据0),则引脚上的电位始),则引脚上的电位始终被钳位在终被钳位在0电平上(除非外部信号源有极大的负载能力),电平上(除非外部信号源有极大的负载能力),输入数据不可能正确地读入。因此输入
12、数据不可能正确地读入。因此P0口是一个准双向口,即口是一个准双向口,即在输入数据时,应先把口置在输入数据时,应先把口置1,也就是锁存器的,也就是锁存器的Q为为0,这样,这样使输出级的使输出级的2个个FET都截止,引脚处于悬浮状态,可作高阻抗都截止,引脚处于悬浮状态,可作高阻抗输入。这就是所谓的准双向口。输入。这就是所谓的准双向口。n当当P0口作为地址口作为地址/数据总线使用时,可以分为两种情况。一种情况数据总线使用时,可以分为两种情况。一种情况是从是从P0输出地址或数据,这时输出地址或数据,这时CPU发出的控制信号应为高电平发出的控制信号应为高电平1,转换开关把反相器输出端与下拉转换开关把反相
13、器输出端与下拉FET接通,同时与门开锁。输出的接通,同时与门开锁。输出的地址或数据信号即通过与门去驱动上拉地址或数据信号即通过与门去驱动上拉FET,又通过反相器去驱动,又通过反相器去驱动下拉下拉FET。另一种情况是从。另一种情况是从P0输入数据,这时信号仍应从输入缓冲输入数据,这时信号仍应从输入缓冲器进入内部总线。器进入内部总线。D QCLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚2 2、P0P0作为地址作为地址/ /数据总线数据总线 P0P0引脚输出地址引脚输出地址/ /输入数据输入数据 输
14、入信号是从引脚通过输入缓冲器进入内部总线。输入信号是从引脚通过输入缓冲器进入内部总线。 此时,此时,CPUCPU自动使自动使MUXMUX向下,并向向下,并向P0P0口写口写“1 1”,“读引脚读引脚”控制控制信信 号有效,下面的缓冲器打开,外部数据读入内部总线。号有效,下面的缓冲器打开,外部数据读入内部总线。2 2、P0P0作为地址作为地址/ /数据总线数据总线D QCLK QMUXP0.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口口引脚引脚n综上所述,综上所述,P0口既可以作为地址口既可以作为地址/数据总线使用,又可以数
15、据总线使用,又可以作为通用作为通用I/O口用;用作输出口时,输出级属于漏极开路,口用;用作输出口时,输出级属于漏极开路,在驱动在驱动nmos电路时应外接上拉电阻;用作输入口时,应电路时应外接上拉电阻;用作输入口时,应先向锁存器写先向锁存器写1,这时输出级的,这时输出级的2个个FET都截止,可作高阻都截止,可作高阻抗输入。当抗输入。当P0口作地址口作地址/数据总线使用时,就不能再把它数据总线使用时,就不能再把它当通用当通用I/O口使用。口使用。二、二、P2P2的内部结构的内部结构1.P21.P2口作为普通口作为普通I/OI/O口口D QCLK QMUXP2.n读锁存器读锁存器内部总线内部总线写锁
16、存器写锁存器读引脚读引脚地址地址控制控制VCCRTP2口引脚nP2口的位结构如图,它内部有上拉电阻。在结构上,口的位结构如图,它内部有上拉电阻。在结构上,P2口比口比P1口多了一个输出转换控制部分。当转换开关(口多了一个输出转换控制部分。当转换开关(MUX)与锁存)与锁存器的器的Q端接通时,端接通时,P2口作通用的口作通用的I/O口用,是一个准双向口。口用,是一个准双向口。 2.P22.P2口作为地址总线口作为地址总线n当系统中接有外部存储器时,当系统中接有外部存储器时,P2口可用于输出高口可用于输出高8位地址,这位地址,这时在时在CPU控制下,转换开关与地址线接通。在外接程序存储器的控制下,
17、转换开关与地址线接通。在外接程序存储器的系统中,由于访问外部存储器的操作连续不断,系统中,由于访问外部存储器的操作连续不断,P2口不断送出口不断送出高高8位地址,故这时位地址,故这时P2口不可能再作通用口不可能再作通用I/O口使用。口使用。D QCLK QMUXP2.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址控制控制VCCRTP2口引脚n在不接外部程序存储器而接有外部数据存储器的系统中,情况有所不在不接外部程序存储器而接有外部数据存储器的系统中,情况有所不同。若外接数据存储器的容量为同。若外接数据存储器的容量为256B,则可以使用,则可以使用MOVXRi类指类指令由
18、令由P0口送出口送出8位地址,位地址,P2口引脚上的内容,在整个访外期间,不会口引脚上的内容,在整个访外期间,不会改变,故改变,故P2口仍可作通用口仍可作通用I/O口。若外接存储器容量较大,需用口。若外接存储器容量较大,需用MOVXDPTR类指令由类指令由P0和和P2口送出口送出16位地址,在读写周期内,位地址,在读写周期内,P2口引脚上将保持地址信息,但是从图示的结构可知,输出地址时,口引脚上将保持地址信息,但是从图示的结构可知,输出地址时,并不要求并不要求P2锁存器锁存锁存器锁存1,锁存器的内容也不会在送地址的过程中改,锁存器的内容也不会在送地址的过程中改变,故访问外部数据存储器周期结束后
19、,变,故访问外部数据存储器周期结束后,P2锁存器的内容又会重现锁存器的内容又会重现在引脚上。这样根据访问外部数据存储器的频繁程度,在引脚上。这样根据访问外部数据存储器的频繁程度,P2口仍可在口仍可在一定限度内作一般一定限度内作一般I/O口使用。在外部数据存储器容量不太大的情况口使用。在外部数据存储器容量不太大的情况下,也可以从软件上设法,只利用下,也可以从软件上设法,只利用P1P3口中的某几根口线送高口中的某几根口线送高8位位地址,而保留地址,而保留P2中的部分或全部口线作通用中的部分或全部口线作通用I/O口用口用6.2 P16.2 P1口、口、P3P3口的内部结构口的内部结构P1P1口的一位
20、的结构口的一位的结构nP1口也是一个准双向口,用作输入时,口锁存器必须为口也是一个准双向口,用作输入时,口锁存器必须为“1”。它的。它的8位引出线位引出线P1.7P1.0能独立地用作输入线或输出能独立地用作输入线或输出线。线。P1口的每一位均由锁存器、输出驱动器和三态缓冲器组口的每一位均由锁存器、输出驱动器和三态缓冲器组成,其结构如图所示。成,其结构如图所示。D QD QCLK QCLK QP1.nP1.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚VCCRT TP1口引脚nP1口的位锁存器由口的位锁存器由D触发器组成。在触发器组成。在CPU的的“写锁存器写锁存器”信号驱动下,
21、信号驱动下,将内部总线上的一位数据写入锁存器中,经输出驱动器出现在输出线将内部总线上的一位数据写入锁存器中,经输出驱动器出现在输出线上。锁存器的上。锁存器的Q端反馈到通往内部总线的三态输入缓冲器的输入端,端反馈到通往内部总线的三态输入缓冲器的输入端,以响应以响应CPU的的“读锁存器读锁存器”信号,把锁存器的内容读入内部总线上。信号,把锁存器的内容读入内部总线上。在响应在响应CPU“读引脚读引脚”信号时,则将引脚上的信息读至内部总线。但信号时,则将引脚上的信息读至内部总线。但是在是在“读引脚读引脚”即输入之前,应先将即输入之前,应先将“1”写入锁存器,使输出驱动器写入锁存器,使输出驱动器的场效应
22、管的场效应管T截止,引脚由内部上拉电阻拉成了高电平(输出截止,引脚由内部上拉电阻拉成了高电平(输出1)。当)。当外部输入外部输入1时,该引脚为高电平,输入时,该引脚为高电平,输入0时,该引脚为低电平。时,该引脚为低电平。n结构上这样安排是为了结构上这样安排是为了“读读修改修改写写”类指令的需要,这类指令是类指令的需要,这类指令是从锁存器读取数据,进行处理,并把处理后的数据重新写入锁存器。从锁存器读取数据,进行处理,并把处理后的数据重新写入锁存器。在在ANL、ORL、XRL、JBC、CPL、INC、DEC、DJNZ、MOV等指等指令中,当目的操作数为某令中,当目的操作数为某I/O口或口或I/O口
23、的某一位时,就是口的某一位时,就是“读读修修改改写写”。例如:。例如:ANL P1,A指令,先把指令,先把P1口上的数据读入口上的数据读入CPU,随之与累加器随之与累加器A按位进行与操作,最后再把结果送按位进行与操作,最后再把结果送P1口。又如:口。又如:MOV P1.0,C指令,是先把指令,是先把P1口的口的8位读入,再修改位读入,再修改P1.0位即进位标位即进位标志志C送送P1.0,最后再把新字节写回到,最后再把新字节写回到P1口。口。n读引脚指令一般都是以读引脚指令一般都是以I/O口为源操作数的指令,执行读引脚指令时,口为源操作数的指令,执行读引脚指令时,打开三态缓冲器,输入接口的状态。
24、例如,读打开三态缓冲器,输入接口的状态。例如,读P1口的输入状态时,口的输入状态时,读引脚指令为读引脚指令为MOV A,P1P3P3的内部结构的内部结构D QD QCLK QCLK QP3.nP3.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚VCCRT TP3口引脚第二输入功能第二输入功能第二输出功能第二输出功能一、作为通用一、作为通用I/OI/O口与口与P1P1口类似口类似-准双向口准双向口(W=1)(W=1)nP3口也是准双向口,与口也是准双向口,与P1不同的是不同的是P3口是双功能口。口是双功能口。P3口作为第一功能使用时,同口作为第一功能使用时,同P1口。作为第二功能
25、使用时,口。作为第二功能使用时,它的引脚见后面列表。它的引脚见后面列表。WnP3口的位结构如图所示。比口的位结构如图所示。比P1口多了一个与非门。与非门口多了一个与非门。与非门的两个输入端是锁存器的的两个输入端是锁存器的Q端和第二输出功能端。当第二端和第二输出功能端。当第二输出功能为高电平时,与非门的输出就是输出功能为高电平时,与非门的输出就是Q,与,与P1口的结口的结构相同。当锁存器的构相同。当锁存器的Q端为高电平时,第二功能的输出信端为高电平时,第二功能的输出信号从第二输出功能线经过与非门反相再通过输出驱动器反号从第二输出功能线经过与非门反相再通过输出驱动器反相后输出。当与非门的两个输入端
26、都为高电平时,输出驱相后输出。当与非门的两个输入端都为高电平时,输出驱动器的场效应管动器的场效应管T截止,输入的第二功能信号经缓冲器,截止,输入的第二功能信号经缓冲器,从第二输入功能线进入。输入的第一功能信号经缓冲器后从第二输入功能线进入。输入的第一功能信号经缓冲器后仍由读引脚信号读入内部总线。仍由读引脚信号读入内部总线。P3P3的内部结构的内部结构D QD QCLK QCLK QP3.nP3.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚VCCRT TP3口引脚第二输入功能第二输入功能第二输出功能第二输出功能二、第二功能(Q=1)此时引脚部分输入(Q=1、W=1) ,部分输出
27、(Q=1、W输出) 。W第二功能各引脚功能定义: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外部读控制n综上所述:当综上所述:当P0作为作为I/O口使用时,特别是作为输出时,输口使用时,特别是作为输出时,输出级属于开漏电路,必须外接上拉电阻才会有高电平输出;出级属于开漏电路,必须外接上拉电阻才会有高电平输出;如果作为输入,必须先向相应的锁存器写如果作为输入,必须先向相应的锁存器写“1”,才不会影响,才不会影响输入电平。输入电平
28、。n当当CPU内部控制信号为内部控制信号为“1”时,时,P0口作为地址口作为地址/数据总线使数据总线使用,这时,用,这时,P0口就无法再作为口就无法再作为I/O口使用了。口使用了。nP1、P2 和和P3 口为准双向口口为准双向口, 在内部差别不大在内部差别不大, 但使用功能但使用功能有所不同。有所不同。 nP1口是用户专用口是用户专用 8 位准双向位准双向I/O口口, 具有通用输入具有通用输入/输出功能输出功能, 每一位都能独立地设定为输入或输出。当有输出方式变为输每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时入方式时, 该位的锁存器必须写入该位的锁存器必须写入“1”, 然后才能
29、进入输入操然后才能进入输入操作。作。 nP2口是口是 8 位准双向位准双向I/O口。外接口。外接I/O设备时设备时, 可作为扩展系统可作为扩展系统的地址总线的地址总线, 输出高输出高8位地址位地址, 与与P0 口一起组成口一起组成 16 位地址总位地址总线。线。 对于对于 8031 而言而言, P2 口一般只作为地址总线使用口一般只作为地址总线使用, 而不而不作为作为I/O线直接与外部设备相连。线直接与外部设备相连。 例例1 闪烁灯闪烁灯 1实验任务实验任务 如图所示:在如图所示:在P1.0端口上接一个发光二极管端口上接一个发光二极管L1,使,使L1在不停地一亮一灭,在不停地一亮一灭,一亮一灭
30、的时间间隔为一亮一灭的时间间隔为0.2秒。秒。 2电路原理图电路原理图 3系统板上硬件连线系统板上硬件连线 把把“单片机系统单片机系统”区域中的区域中的P1.0端口用导线连接到端口用导线连接到“八路发光二极管指示模八路发光二极管指示模块块”区域中的区域中的L1端口上。端口上。 4程序设计内容程序设计内容 (1) 延时程序的设计方法延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,秒,相对于微秒来说,相差太
31、大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:介绍其原理: 如果使用的石英晶体为如果使用的石英晶体为12MHz,则,则1个机器周期为个机器周期为1微秒微秒MOV R6,#20 2个机器周期 D1: MOV R7,#248 2个机器周期 DJNZ R7,$ 2个机器周期 DJNZ R6,D1 2个机器周期 因此,上面的延时程序时间为因此,上面的延时程序时间为2+20(2+2+2248)=10.002ms 延时程序的思路:延时程序的思路:由以上可知,当由以上可知,
32、当R610、R7248时,延时时,延时5ms,R620、R7248时,延时,延时时10ms,以此为基本的计时单位。如本实验要求以此为基本的计时单位。如本实验要求0.2秒秒200ms,10msR5200ms,则,则R520,延时子程序如下:,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2) 输出控制输出控制 如图如图1所示,当所示,当P1.0端口输出高电平,即端口输出高电平,即P1.01时,根据发光二极管的单向导时,根据发光二极管的单向导电性可知,这时
33、发光二极管电性可知,这时发光二极管L1熄灭;当熄灭;当P1.0端口输出低电平,即端口输出低电平,即P1.00时,时,发光二极管发光二极管L1亮;我们可以使用亮;我们可以使用SETBP1.0指令使指令使P1.0端口输出高电平,使端口输出高电平,使用用CLRP1.0指令使指令使P1.0端口输出低电平。端口输出低电平。 5 程序框图程序框图 如图所示如图所示 6 汇编源程序汇编源程序 ORG 0START: CLR P1.0 LCALL DELAY SETB P1.0 LCALL DELAY LJMP STARTDELAY: MOV R5,#20 ;延时子程序,延时延时子程序,延时0.2秒秒 D1:
34、 MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END例例2、多路开关状态指示、多路开关状态指示 如图如图 所示,所示,AT89S51 单片机单片机的的 P1.0P1.3 接四个发光二极管接四个发光二极管 L1L4,P1.4P1.7 接了四个开接了四个开关关 K1K4,编程将开关的状态,编程将开关的状态反映到发光二极管上。(开关闭反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对合,对应的灯亮,开关断开,对应的灯灭)。应的灯灭)。 对于开关状态检测,相对单对于开关状态检测,相对单片机来说,是输入关系,我们可片机来说,是输入关系,我们可轮流检测每个开关状态,根据每轮流检测每个开关状态,根据每个开关的状态让相应的发光二极个开关的状态让相应的发光二极管指示,可以采用管指示,可以采用 JB P1.X,REL或或 JNB P1.X,REL 指令来完成;指令来完成;也可以一次性检测四路开关状态,也可以一次性检测四路开关状态,然后让其指示,可以采用然后让其指示,可以采用 MOV A,P1 指令一次把指令一次把 P1 端口的状态全端口的状态全部读入,然后取高部读入,然后取高 4 位的状态来位的状态来指示。指示。方法方法1 ORG 00HSTART:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年杭州淳安县第二人民医院公开招聘合同制工作人员2人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年浙江省生态环境厅部分直属事业单位招聘7人(第二批)模拟试卷及完整答案详解一套
- 2025年河北金融学院选聘工作人员60名考前自测高频考点模拟试题含答案详解
- 2025年湖南长沙水业集团有限公司第二批次社会招聘模拟试卷及参考答案详解
- 2025年芜湖广济医院招聘20人模拟试卷附答案详解(考试直接用)
- 2025年环境监测物联网在环境监测设备智能化升级中的应用与数据管理报告
- 2025年教育信息化2.0推动下教师终身学习与职业成长研究报告
- 2025年智能穿戴设备市场消费需求特征及品牌竞争格局研究报告
- 2025年电商平台供应链金融创新与金融科技应用前景研究报告
- 2025年海上风能资源评估与深远海风电场项目施工质量控制优化研究报告
- GB/T 45951-2025科技馆常设展览实施通用流程
- 新生儿硬肿症个案护理
- (2025)汽车驾驶员(技师)考试题库及答案
- 2025年全科医师转岗培训理论必刷试题库及答案
- 城市智能感知系统-洞察及研究
- 中储粮损耗管理办法
- 2025年《治安管理处罚法》新修订课件
- 【课件】有理数的加法(第1课时+有理数的加法法则)(课件)数学人教版2024七年级上册
- 透析患者血磷控制健康宣教
- 2025年江苏省苏州市中考数学模拟试卷(十三)(含答案)
- 项目制用工管理制度
评论
0/150
提交评论