单片机原理及应用.ppt

上传人:本田雅阁 文档编号:3484839 上传时间:2019-09-02 格式:PPT 页数:157 大小:869.01KB
返回 下载 相关 举报
单片机原理及应用.ppt_第1页
第1页 / 共157页
单片机原理及应用.ppt_第2页
第2页 / 共157页
单片机原理及应用.ppt_第3页
第3页 / 共157页
单片机原理及应用.ppt_第4页
第4页 / 共157页
单片机原理及应用.ppt_第5页
第5页 / 共157页
点击查看更多>>
资源描述

《单片机原理及应用.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用.ppt(157页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用,第五章MCS-51单片机的硬件资源 5.1 MCS-51的并行接口及其应用 5.2 MCS-51的中断系统 5.3 MCS-51的定时器/计数器 5.4 MCS-51的串行接口及串行通信,输入/输出接口是CPU外设间信息的桥梁,它可以制成一块单独的大规模集成电路,也可以和CPU集成在同一块芯片上,单片机中就是后一种结构。I/O接口有并行接口和串行接口两种。,5.1.1 MCS51内部并行I/O端口,8031有四个并行端口,分别命名为P0、P1 、P2 和P3 。这四个并行I/O端口的内部位结构如图51所示,每个端口皆有八位。由图51可见,每个位结构都有一个输出锁存器和一个输入

2、缓冲器。输出锁存器,用于存放需要输出的数据。,5.1 MCS-51的并行接口及其应用,第五章MCS-51单片机的硬件资源,每个端口的八位输出锁存器构成一个特殊功能寄存器,且冠名与端口相同。输入缓冲器用于对端口引脚上输入数据进行缓冲,因此各引脚上输入的数据必须一直保持到CPU把它读走为止。P0、P1 、P2 和P3端口的电路形式不同,其功能也不同。下面结合电路结构就其功能加以说明。,一、P0口,第五章 MCS-51单片机的硬件资源,在访问外部存储器时,P0口是一个真正的双向数据口,并分时送出地址的8位和送出(接收)相应存储单元的数据。,第五章MCS-51单片机的硬件资源,图51(a)是P0口的位

3、结构图,它包括一个输出锁存器,两个三态缓冲器,一个输出驱动电路和一个输出控制电路。,第五章MCS-51单片机的硬件资源,当从P0口输出地址或数据时,控制信号应为高电平1,模拟转换开关(MUX)把地址/数据信息经反相器和下拉场效应管接通,同时与门打开。输出的地址或数据既通过与门去驱动上拉场效应管,又通过反相器去驱动下拉场效应管。,例如,若地址/数据信息为“0”,该“0”信号一方面通过与门使上拉场效应管截止,另一方面经反相器使下拉场效应管导通,从而使引脚上输出相应的“0”信号,反之,若地址/数据信息为“1”,将会使上拉场效应管导通而下拉场效应管截止,引脚上将出现相应的“1”信号。,第五章MCS-5

4、1单片机的硬件资源,若P0口作为一般I/O口使用,在CPU向端口输出数据时,对应的输出控制信号应为0,模拟转换开关将把输出级与锁存器Q端接通。同时,因与门输出为0,使上拉场效应管处于截止状态,因此输出级是漏极开路电路。这样,当写脉冲加在触发器时针端CP上时,则与内部总线相连的D端数据取反后就出现在Q端,再经场效应管反相,在P0引脚上出现的数据正好是内部总线的数据。,不难看出,P0口在输出地址/数据信息和作为一般I/O口输出数据时,其输出驱动电路的工作状态是有差别的。,第五章MCS-51单片机的硬件资源,一般P0口的输出级能驱动8个LS TTL 输入,但对NMOS输入而言,P0口做地址/数据总线

5、口使用时,不必外加提升电阻。而作一般I/O口使用时,由于输出驱动电路工作于开漏状态,故需外接上拉电阻。,当P0口引脚上输入数据,此时上拉FET应一直处于截止状态。引脚上的外部信号即加在下面一个三态缓冲器的输入端,又加在下拉FET的漏极,假定在此之前曾输出锁存过数据0 ,则FET是导通的,这样引脚上的电位就始终被钳位在0 电平,使输入高电平无法读入。因此作为一般I/O口使用时,P0口是一个准双向口,即输入数据时,应先向口写“1”,使两个FET均截止,然后方可作高阻抗输入。,第五章 MCS-51单片机的硬件资源,但在P0口连接外部存储器时,由于访问外部存储器期间,CPU会自动向口0的锁存器写入0F

6、FH,所以,对用户而言,P0口用作地址/数据总线时,则是一个真正的双向口。,上面所述为数据由引脚输入的情况,称为“读引脚”操作。但在有些情况下 ,例如用一根口线去驱动一个晶体管的基极,则向此口线写“1”时,晶体管导通,并把引脚上的电平拉低,这时若从引脚上读取数据,会把此数据错读为0。为了避免错读引脚上电平的可能性,单片机中还提供了另一类所谓“读锁存器”操作。,第五章MCS-51单片机的硬件资源,这类操作的特点是:先读口,随之可对读入的数据进行修改,然后再写到端口上。例如执行指令ORL P0,A时,则先把P0上的内容读入CPU,然后与A累加器内容按位进行逻辑“或”操作,最后把“或”的结果送回P0

7、口。能使单片机产生这种读-修改-写操作的指令,其目的操作数一般为某I/O口或口的某一位,这些指令是:ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ,MOV PXY,C,CLR PXY和SETB PXY等,它们的含义详见指令系统一章的说明。,第五章MCS-51单片机的硬件资源,综上所述,P0口既可作地址/数据总线口,这时它是真正的双向口,也可作通用I/O口,但只是一个准双向口。一般情况下,P0口已当作地址/数据口使用时,就不能再作通用I/O口使用。,P2口的位结构如图5-1(b)所示,它与P0口基本相同,只有输出部分略有不同,在输出FET的漏极接有上拉电阻,这种结构不必外接上拉

8、电阻就可驱动任何MOS输入电路,且能驱动四个LSTTL输入。P2口常用作外部存储器的高八位地址口。当不用作地址口时,P2口亦可作通用I/O口,这时它也是一个准双向I/O口。,二、P2口,第五章MCS-51单片机的硬件资源,第五章MCS-51单片机的硬件资源,三、P1口,第五章MCS-51单片机的硬件资源,四、P3口,P3口是一个双功能口,第一功能和P2口一样可作为通用I/O口。P3口工作于第二功能时,各位的定义如下:,第五章MCS-51单片机的硬件资源,第五章MCS-51单片机的硬件资源,由图5-1(d)P3口位结构可以看出,实现第一功能作通用I/O输出口时,选择输出功能端应保持高电平,使与非

9、门对锁存器Q端是畅通的。同理,实现第二功能做专用信号输出时,则该位的锁存器应置1,使与非门对选择输出功能端是畅通的。对输入而言,无论该位是作通用输入口还是作第二功能输入口,其输出锁存器和选择输出功能端都应置1,即使FET 截止。,由于所有口锁存器在上电复位时均置为1,自然满足了上述条件,所以用户不必做任何工作,就可以直接使用P3口的第二功能。至于第一功能,应在确信某一引脚第二功能提供的信号不用时,该引脚才可作I/O线使用,使用方法同与一般准双向口相同。,第五章MCS-51单片机的硬件资源,5.1.2 MCS51内部并行I/O口的应用,MCS51四个I/O端口共有三种操作方式:输出数据方式,读端

10、口数据方式和读端口引脚方式。,在数据输出方式下,CPU通过一条数据操作指令就可以把输出数据写入P0P3的端口锁存器,然后通过输出驱动器送到端口引脚。因此,凡是端口操作指令都能达到从端口引脚上输出数据的目的,例如如下指令均可在P0口输出数据:,MOV P0,A ;累加器A中的内容送P0口 ANL P0,A ;P0口的内容和A中的内容相与后送P0口,第五章 MCS-51单片机的硬件资源,读端口数据方式是一种仅对端口锁存器中数据进行读入的操作方式,CPU读入的这个数据并非端口引脚的数据。因此,CPU只要用一条传送指令就可把端口锁存器中的数据读入累加器A或内部RAM中来。例如,如下指令可以从P1口输入

11、数据:,MOV A, P1 ;P1锁存器中数据送A MOV 20H, P1 ; P1锁存器数据送内部20H单元,读引脚方式可从端口引脚上读入信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的锁存器置1,以便驱动器中的T2管截止,然后打开输入三态缓冲器,使相应端口引脚上信号输入CPU内部数据总线。因此,在读引脚时必须连续使用两条指令。,第五章 MCS-51单片机的硬件资源,例如读P1口低四位引脚上的信号的程序为:,MOV P1,#0FH ;使P1口低4位锁存器置1 MOV A,P1 ;读P1口低4位引脚信号,I/O端口的应用举例:,一、I/O口直接用于输入/输出,在I/O口直接用作输入/输

12、出时,既可以把它们看作数据口也可以看作状态口,这由用户根据实际情况决定。,第五章 MCS-51单片机的硬件资源,例5.1 试编出模拟图5-2(a)中电路的程序。,对电路进行模拟是指模拟它的输出状态如何随输入状态的变化而变化。,第五章 MCS-51单片机的硬件资源,相应程序为:,ORG 0500H D BIT 00H E BIT 01H G BIT 02H LOOP1:ORL P1,#08H ;准备P1.3输入 LOOP2:MOV C,P1.3 ;检测K2状态 JC LOOP2 ;若未准备好(K2断开),则转 ; LOOP2 ORL P1,#03H ;若准备好了,则输入K0和K1状态 MOV C

13、,P1.0 ;K0状态送入D MOV D,C MOV C,P1.1 ;K1状态送入E MOV E,C ANL C, D ;D与E送G,第五章 MCS-51单片机的硬件资源,第五章 MCS-51单片机的硬件资源,二、 I/O口对外部锁存器的接口,第五章 MCS-51单片机的硬件资源,MOV DPTR, #7FFFH ;DPTR指向74LS373端口 MOVX A, DPTR ;输入数据,应当注意:8031也可以通过外部锁存器输出数据,但由于8031内部每个I/O端口都带有8位锁存器,因此只有扩展I/O端口时才需要利用外部锁存器来输出数据。,第五章 MCS-51单片机的硬件资源,5.2 MCS-5

14、1中断系统,5.2.1中断概述,一、中断和中断系统,CPU正在处理某件事的时候,外部发生了另一事件,请求CPU迅速处理,CPU暂时停止当时的工作,转入处理所发生的事件,处理结束后,再回到原来的地方,继续原来的工作,这样的过程称为中断,如图5-4所示。,第五章 MCS-51单片机的硬件资源,中断系统实现中断功能的部件,中断源产生中断请求的源,二、中断优先级,一般计算机系统允许有多个中断源。当几个中断源同时向CPU请求中断,要求服务时,就存在CPU优先响应哪一个中断请求的问题。为此系统根据中断源的轻重缓急进行排队,规定每个中断源都有一个中断优先级别,优先处理最紧急事件的中断请求。,第五章 MCS-

15、51单片机的硬件资源,三、中断嵌套,中断嵌套是指CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果CPU能够暂时中止执行原来的处理程序,转而去处理优先级更高的中断请求,处理结束后,再继续执行原来的低级中断处理程序的过程。,第五章 MCS-51单片机的硬件资源,四、中断过程,对于不同的计算机,中断过程可能不尽相同,但是一般应包括中断请求、中断响应、中断处理和中断返回等四个步骤。,1.中断请求,中断过程是由中断源向CPU发出中断请求而开始的。有效中断请求信号应该一直保持到CPU作出响应为止。,2.中断响应,CPU检测到中断请求信号后,在满足一定条件的情况下进行响应。其

16、主要条件是:中断标志是否开放,是否高级中断,是否执行完一条指令等。,第五章 MCS-51单片机的硬件资源,3.中断处理,中断处理或称为中断服务,就是执行中断源所要求的中断服务程序。在中断服务程序中需要完成的主要工作是:,保护现场根据需要把断点处有关存储器的内容压入堆栈,以保护主程序运行的结果。,开/关中断标志根据CPU响应中断后开/关中断情况,适当处理中断标志,以确保保护/恢复现场的正确进行,确保所需中断嵌套的实现。,中断处理根据中断源的要求,完成相应的任务,这是中断服务的核心。,第五章 MCS-51单片机的硬件资源,恢复现场在完成中断服务之后,返回被中断的主程序之前,恢复堆栈中保护的各有关寄

17、存器的内容。,4.中断返回,在中断服务程序后,用一条中断返回指令(RETI),保证返回主程序继续执行被中断的程序。,5.2.2 MCS-51中断系统与控制,MCS51的51子系列(8031、8051、8751等)有5个中断源,52子系列(8032、8052等)有6个中断源,它们均有两个优先级,通过4个中断控制器(IE、IP、TCON、SCON)进行中断管理,其结构原理如图5-6所示。,第五章 MCS-51单片机的硬件资源,第五章 MCS-51单片机的硬件资源,一、中断源,CPU在每个机器周期的S5P2检测上的信号。,第五章 MCS-51单片机的硬件资源,对于电平方式,只要检测到低电平信号即为有

18、效申请;对于脉冲方式,则需要比较两次检测到的信号,才能确定中断请求信号是否有效,并且中断请求信号高低电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机检测到。,思考:,脉冲触发方式下,外部中断脉冲的最高触发频率为系统振荡频率的多少倍?, 内部中断除外部中断源外,内部还有TF0、TF1、TI、RI分别为定时器/计数器中断和发送/接收中断的中断源。,第五章 MCS-51单片机的硬件资源,二、中断控制,MCS-51单片机设置了4个专用寄存器用于中断控制 ,用户通过设置其状态来管理中断系统。,1.定时器控制寄存器(TCON),TCON的格式如下:,TCON D7 D6 D5 D4 D3 D2

19、 D1 D0,(88H),如前所述,寄存器中TR1(TR0)用于定时器/计数器的启动控制,其余6位用于中断控制,其作用如下:,第五章 MCS-51单片机的硬件资源,IT0为外部中断0请求信号方式控制位。IT0 = 1,脉冲方式(负跳变有效);IT0 = 0,电平方式(低电平有效)。,IT1为外部中断1请求信号方式控制位,其作用同IT0。,IE1为外部中断1请求标志位,其作用同IE0。,TF0(TF1)为定时器/计数器溢出标志位,此标志作用将在定时器/计数器一节说明。,第五章 MCS-51单片机的硬件资源,2.串行口控制寄存器(SCON),SCON格式如下:,SCON D7 D6 D5 D4 D

20、3 D2 D1 D0,(98H),串行口控制寄存器格式及各位功能将在串行接口一节介绍,其中高6位用于串行口控制,低2位(RI、TI)用于中断控制,其作用如下:,TI为串行口发送中断请求标志位,发送完一帧串行数据后,由硬件置1,其清零须由软件完成。,第五章 MCS-51单片机的硬件资源,RI为串行口接收中断请求标志位,接完一帧串行数据后,由硬件置1,其清零由软件完成。,在MCS-51单片机串行口中,TI和RI的逻辑“或”作为一个内部中断源,二者之一置位都可以产生串行口中断请求,然后在中断服务程序中测试这两个标志位,以决定是发送中断还是接收中断。,3.中断允许控制寄存器(IE),中断允许寄存器格式

21、如下:,IE D7 D6 D5 D4 D3 D2 D1 D0,(A8H),第五章 MCS-51单片机的硬件资源,ES为串行口中断允许位,ES=1时,允许串行口中断;ES=0时,禁止串行口中断。,寄存器中用于控制中断的共6位,实现中断的管理,其作用如下:,EX1为外部中断1允许控制位,EX1=1允许外部中 断1中断,EX1=0,禁止外部中断1中断。,ET1为定时器/计数器1(T1)中断允许控制位,ET1=1时,允许T1中断;ET1=0时,禁止T1中断。,ET0为定时器/计数器0(T0)中断允许控制位,其控制功能同ET1。,EX0为外部中断0允许控制位,其控制功能同EX1。,MCS-51单片机的硬

22、件资源,MCS51单片机中断系统的管理是由中断允许总控制位EA和各中断源的中断控制位联合作用实现的,缺一不可。,4.中断优先级控制寄存器(IP),中断优先级控制寄存器的格式如下:,IP D7 D6 D5 D4 D3 D2 D1 D0,(B8H),MCS-51单片机规定了两级中断优先级:高级中断和低级中断,用中断优先级寄存器(IP)的5位状态管理5个中断源的优先级别。相应位是“0”的中断源为低级中断,相应位是“1”的中断源为高级中断。,MCS-51单片机的硬件资源,各状态位的作用如下:,PS为串行口中断优先控制位,PS = 1,串行口为高优先级中断;PS = 0,串行口为低优先级中断。,PT1为

23、定时器/计数器1(T1)中断优先控制位,PT1 = 1,T1为高优先级中断,PT1 = 0,T1为低优先级中断。,PT0为定时器/计数器优先控制位,PT0 = 1,T0为高优先级中断;PT0 = 0,T0为低优先级中断。,PX0为外部中断0中断优先控制位,PX0 = 1,外部中断0为高优先级中断;PX0 = 0,外部中断0为低优先级中断,MCS-51单片机的硬件资源,PX0为外部中断0中断优先控制位,PX0 = 1,外部中断0为高优先级中断;PX0 = 0,外部中断0为低优先级中断。,MCS51单片机优先级的控制原则是:,为了实现中断嵌套,高优先级中断请求可以中断低优先级的中断服务;反之则不允

24、许。,同等优先级中断源之间不能中断对方的中断服务过程。,多个同级中断源同时产生中断请求时,则按查询顺序确定哪个中断请求先被响应。MCS51单片机规定的查询顺序是:外部中断0、定时器/计数器0、外部中断1、定时器/计数器1和串行口中断。,MCS-51单片机的硬件资源,5.2.3 中断响应,一、中断响应过程,MCS51单片机在每个机器周期的S6状态按优先级顺序查询中断标志,如果查询到某个标志位为“1”,则表明有中断请求发生,以下一个机器周期的S1状态开始响应中断。但是,出现下列情况之一时,中断不能进行:, CPU正在为高级或同级的中断服务;, 查询中断请求的机器周期不是当前指令的最后一个机器周期(

25、以确保当前指令的完整执行);, 正在执行的指令是RETI或是访问IE或IP的指令(这时,必须再执行一条指令后才能响应中断)。,MCS-51单片机的硬件资源,以上三种情况,通常称为中断受阻。 在响应中断请求时,MCS51的中断系统先把该中断请求存在各自的中断标志位中,然后在下一个机器周期内按照IP和固定的中断优先级顺序查询中断标志位状态,并完成中断优先级排队。在下一个机器周期的S1状态时,MCS51开始响应最高优先级中断。在响应中断时,CPU将自动做如下几件事:,先将断点地址压入堆栈进行保护,然后根据不同的中断源将程序转向相应的中断服务程序入口。这是通过硬件自动生成一条长调用指令LCALL实现的

26、。,中断源与其中断服务程序入口地址之间的关系是固定的,见表51。,表51 8051中断服务程序入口地址表,ORG 0003H LJMP 2000H,二、中断响应时间,在实时控制系统中,为了满足控制速度要求,常要弄清CPU响应中断所需的时间。中断响应时间是指从查询中断请求标志位到转向中断服务程序入口地址所需的机器周期数,一般是3-8个机器周期。,响应中断最短时间是:,CPU查询中断标志的周期正好是执行一条指令的最后一个机器周期(占用一个机器周期),此后,不需等待即可响应中断,硬件自动生成并执行LCALL指令(需要2个机器周期),所以总共需要3个机器周期。,响应中断最长时间是:,CPU查询中断标志

27、时,正好是开始执行RETI或访问IE、IP的指令,此时,需要把当前指令执行完再继续执行一条指令后,才能响应中断。执行前者最长需2个机器周期,而执行后者最长需4个机器周期(如乘、除指令),再加上执行长调用指令LCALL所需2个机器周期,总共需要8个机器周期。,通常,中断响应时间可以不予考虑,但在某些需要精确定时的场合,应作出调整,以保证精确的定时。,5.2.4中断请求的撤除,在中断请求被响应前,中断源发出的中断请求是由CPU锁存在特殊功能寄存器TCON和SCON的相应中断标志位中的。一旦某个中断请求得到响应,CPU必须把它的相应标志位复位成“0”状态。否则,MCS51就会因中断未能得到及时撤除而

28、重复响应同一中断请求,这是绝对不能允许的。,五个中断源只分属于三种中断类型。这三种类型是:外部中断、定时器溢出中断和串行口中断。对于这三种中断类型的中断请求,其撤除方法是不同的。,一、定时器溢出中断请求的撤除,定时器溢出中断源的中断请求是自动撤除的,用户根本不必专门为它们撤除。,二、串行口中断请求的撤除,TI和RI是串行口中断的标志位,中断系统不能自动将它们撤除,这是因为MCS51进入串行口中断服务程序后常需要对它们进行检测,以测定串行口发生了接收中断还是发送中断。为了防止CPU再次响应这类中断,用户应在中断服务程序的适当位置处通过如下指令将它们撤除:,CLR TI ;撤除发送中断 CLR R

29、I ;撤除接收中断,若采用字节指令,则也可采用如下指令: ANL SCON,#0FCH;撤除发送和接收中断,三、外部中断的撤除,外部中断请求有二种触发方式:电平触发和负边沿触发。对于这两种不同的中断触发方式,MCS51撤除它们的中断请求的方法是不相同的。,在负边沿触发方式下,外部中断标志IE0和IE1是依靠CPU两次检测INT0和INT1上触发电平状态而置位的。因此,芯片设计者使CPU在响应中断时自动复位IE0和IE1,以撤除INT0或INT1上的中断请求。在中断服务时,既然INT0或INT1停留在低电平,就不会再产生负边沿而使相应中断标志位IE0或IE1置位。,在电平触发方式下,外部中断标志

30、IE0和IE1是依靠CPU检测INT0或INT1 上低电平而置位的。尽管CPU响应中断时相应中断标志IE0或IE1,能自动复位成“0”状态,但若外部中断源不能及时撤除它在INT0或INT1上低电平就会再次使已经变“0”的中断标志IE0或IE1置位,这是绝对不能允许的。因此,电平触发型外部中断请求的撤除必须使INT0或INT1上低电平随着其中断被CPU响应而变为高电平。,外部中断信号,INSVR:ORL P1,#01H ANL P1,#0FEH CLR IE0 END,5.2.5中断系统的初始化,中断系统初始化就是用户对管理中断系统的特殊功能寄存器中的各控制位进行赋值。,中断系统初始化步骤如下:

31、,(1)开相应中断源的中断;,(2)设定所有中断源的中断优先级;,(3)若为外部中断,则应规定低电平还是负边沿的中断触发方式。,MCS-51单片机的硬件资源,解: 采用位操作指令, 采用字节型指令,MCS-51单片机的硬件资源,5.2.6 MCS-51单片机的单步工作方式,单步工作方式,即单步执行:就是由外来脉冲控制程序的执行,使之达到来一个脉冲就执行一条指令的目的。而外来脉冲是通过按键产生的,因此实际上单步执行就是按一次键执行一条指令。,假定利用外部中断0来实现程序的单步执行,为此应事先作好两项准备工作:, 建立单步执行的外部控制电路;, 编写外部中断0的中断服务程序。,第五章 MCS-51

32、单片机的硬件资源,CLR IT0 ;设置外部中断0为电平触发 SETB EA ;CPU开中断 SETB PX0 ;置外部中断0为高优先级 SETB EX0 ;外部中断0开中断,其初始化程序如下:,第五章 MCS-51单片机的硬件资源,5.2.7 外部中断源的扩展,一、定时器/计数器用于外部中断源的扩展,用8051的定时器/计数器作为计数器使用时,计数输入端T1(T0)发生负跳变将使计数器加1。利用此特性,适当处理计数初值,就可以把计数输入端T1(T0)作为外部中断请求输入端。,例如,将定时器/计数器0设置为工作方式2、计数模式、计数初值0FFH,且允许中断,其初始化程序如下:,MOV TMOD

33、,#06H ;设置定时器0为工作方式2、计数模式 MOV TH0,#0FFH ;设置计数器初值 MOV TL0,#0FFH SETB TR0 ;启动定时器0 SETB ET0 ;允许定时器中断 SETB EA ;CPU开中断,第五章 MCS-51单片机的硬件资源,以上程序执行后,当定时器/计数器0计数输入端T0的信号发生负跳变时,TL0加1,产生溢出,标志位TF0置“1”,向CPU发出中断请求,同时TH0的值重新送入TL0。这样T0端相当于脉冲方式的外部中断请求输入端。,用本方法扩展外部中断源是以牺牲内部定时中断为代价的!,二、查询式扩展外部中断源,当外部中断源较多时,可以采用查询的方式扩展中

34、断源。把多个中断源通过硬件(如或非门)引入外中断源输入端(INT0或INT1),同时又连到某I/O口。这样,每个中断源都可能引起中断,并在中断服务程序中通过软件查询便可确定哪一个是正在申请的中断源,其查询的次序则由中断源优先级决定,这样可实现多个外部中断源的扩展。,第五章 MCS-51单片机的硬件资源,当系统的各部分工作正常时,4个故障源输入端全为低电平,显示灯全熄灭。只有当某部分出现故障时,对应的输入线由低电平变为高电平,从而引起8031中断,在中断服务程序中通过查询即可判定故障源,并进行相应的灯光显示。,第五章 MCS-51单片机的硬件资源,对应的参考程序清单如下:,ORG 0000H A

35、JMP MAIN ORG 0003H AJMP PINT ;转中断服务程序 ORG 100H MAIN:ANL P1,#55H ;使P1口输入不变,输出全0 SETB IT0 ;置外部中断0为边沿触发方式 SETB EX0 ;外部中断0开中断 SETB EA ;CPU开中断 LOOP: MOV A,P1 ;取P1口输入状态 ANL A,#55H,第五章 MCS-51单片机的硬件资源,JNZ LOOP ;有外部中断请求去LOOP ANL P1,#55H ;无外部中断请求输出清0 ;(灯全灭) SJMP LOOP ;去LOOP等待中断,参考中断服务程序如下:,PINT: JNB P1.0,L1 ;

36、查询中断源,P1.0为0转L1 SETB P1.1 ;P1.0为1,P1.1送出“1”使对应的灯亮 SJMP L2 ;查询中断源,P1.2 L1: CLR P1.1 ;清P1.1,使对应灯灭 L2: JNB P1.2,L3 ;P1.2为0转查下一个中断源,第五章 MCS-51单片机的硬件资源,SETB P1.3 ;P1.2为1,P1.3送出1使对应灯亮 SJMP L4 L3: CLR P1.3 L4: JNB P1.4,L5 SETB P1.5 SJMP L6 L5: CLR P1.5 L6: JNB P1.6,L7 SETB P1.7 SJMP L8 L7: CLR P1.7 L8: RET

37、I ;返回主程序,第五章 MCS-51单片机的硬件资源,5.3 MCS-51单片机的定时器/计数器,5.3.1定时方法概述,可供选择的定时方法有:,一、 软件定时,软件定时靠执行一个循环程序以进行时间延迟。,特点是时间精确,且不需要外加硬件电路。但软件定时要占用CPU开销,因此软件定时的时间不宜太长。,二、硬件定时,特点是(定时功能全部由硬件电路完成)不占CPU时间,但需通过改变电路的元件参数来调节定时时间,在使用上不够灵活方便。,第五章 MCS-51单片机的硬件资源,三、可编程定时器定时,这种定时方法是通过对系统时钟脉冲的计数来实现的。计数值通过程序设定,改变计数值,也就改变了定时时间,使用

38、起来既灵活有方便。,MCS-51单片机把定时电路集成在芯片中,称之为定时器/计数器。,5.3.2定时器/计数器的定时和计数功能,MCS51单片机内部有两个可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1。它们都是16位加法计数结构,分别由TH0和TL0及TH1和TL1两个8位计数器组成。,第五章 MCS-51单片机的硬件资源,一、计数功能,计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。MCS51芯片有T0(P3.4)和T1(P3.5)两个信号引脚,分别是这两个计数器的输入端。外部输入的脉冲为负跳变时有效,进行计数器加1。,

39、单片机在每个机器周期的S5P2拍节对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效脉冲。在下一个机器周期的S3P1进行计数。可见采样计数脉冲是在2个机器周期进行的。因此,计数脉冲的频率不能高于震荡脉冲频率的1/24。外部输入脉冲高电平和低电平时间必须在一个机器周期以上。,第五章 MCS-51单片机的硬件资源,二、定时功能,定时功能也是通过定时器/计数器的计数来实现的。不过此时的计数脉冲来自单片机内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1。,由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。这样不但可

40、以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的初值。,第五章 MCS-51单片机的硬件资源,5.3.3 定时器/计数器的控制寄存器,与定时器/计数器应用有关的控制寄存器有:,一、 定时控制寄存器(TCON),TCON寄存器既参与中断控制又参与定时控制,其中有关定时的控制位共有4位:, TF0和TF1计数溢出标志位,当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后,须用软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。,第五章 MCS-51单片机的硬件资源, TR0和TR1

41、定时器运行控制位 TR0(TR1)=0 停止定时器/计数器工作 TR0(TR1)=1 启动定时器/计数器工作 该位根据需要以软件方法使其置“1”或清“0”。,二、 工作方式控制寄存器(TMOD, 89H),各位定义如下:,第五章 MCS-51单片机的硬件资源,M1 M0工作方式选择位 M1 M0=00 方式0为13位定时器/计数器; M1 M0=01 方式1为16位定时器/计数器; M1 M0=10 方式2为常数自动装入的8位定时器/计数器; M1 M0=11 方式3(仅适用于T0)为两个8位定时器/计数器, 在方式3时T1停止计数。,GATE门控位 GATE=0 由运行控制位TR启动定时器;

42、 GATE=1 由外中断请求信号(INT0或INT1)启动定时器; C/T定时方式或计数方式选择位 C/T=0 定时工作方式; C/T=1 计数工作方式;,第五章 MCS-51单片机的硬件资源,三、中断允许控制寄存器(IE,A8H),与定时器/计数器有关的位重复介绍如下:,EA中断允许总控制位。,ET0和ET1定时/计数中断允许控制位。 ET0(ET1)= 0,禁止定时/计数中断;ET0(ET1)=1,允许定时/计数中断。,5.3.4 定时器/计数器工作方式,MCS51单片机的定时器/计数器共有4种工作模式。,一、方式0,第五章 MCS-51单片机的硬件资源,定时器/计数器方式0的计数器结构:

43、,第五章 MCS-51单片机的硬件资源,定时器/计数器运行控制的情况:,由TR0控制的情况,要运行控制位TR0能够控制定时器/计数器的运行,其或门的输出一定要为1,这就意味着GATE要设置为0或者INT0=1。 因此在单片机的定时或计数应用中,要注意定时器方式寄存器TMOD的GATE位一定要设置为0。,第五章 MCS-51单片机的硬件资源,2、定时和计数应用,在方式0下,当为计数工作方式时,计数值的范围是:18192(213),当为定时工作方式时,定时时间的计算公式为: T=(213计数初值)晶振周期12,如晶振频率为6MHZ,则最小定时时间为:,Tmin=213(2131)1/610- 61

44、2 =210-6=2(s),最大定时时间为:,Tmax=(2130)1/610-612=16384(s),第五章 MCS-51单片机的硬件资源,例5.3设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500s的等宽正方波连续脉冲,并由P1.0输出。以查询方式完成。,解: 计算计数初值,欲产生500s的等宽正方波脉冲,只需在P1.0端以250s为周期交替输出高低电平即可实现,为此定时时间应为250s。使用6MHZ晶振,则一个机器周期为2s。方式0为13位计数结构。设待求的计数初值为X,则,(213X)210-6=25010-6,求解得:X=8067。二进制数表示为00011111100

45、00011B。十六进制(按方式0的13位11111100XXX00011)表示得:高8位为0FCH,低5位为03H。,第五章 MCS-51单片机的硬件资源, 相关控制寄存器的设定,TMOD各位的设定。设定方式0:M1M0=00;实现定时:C/T=0;定时应用:GATE=0。注意: 定时器/计数器0不用,一般来说不要改变其原设置,为此在程序设计时,应加以屏蔽。,TCON(地址:88H)是可以位寻址的,又因与该题有关的位只有TR1,故这里采用位寻址方式,用设置TR1 =1来启动定时器T1,TR1 =0来停止定时器T1。,IE的设定。题目要求采用查询方式,当定时时间到定时器溢出标志位TF1置1时,不

46、允许产生中断,故应禁止中断,即置IE=00H。,第五章 MCS-51单片机的硬件资源, 程序设计,ANL TMOD,#0FH ;设置T1为定时工作方式0 ORL TMOD,#00H ;且不影响T0的工作 MOV TH1,#0FCH ;置计数初值 MOV TL1,#03H MOV IE,#00H ;禁止中断 LOOP:SETB TR1 ;启动定时器 JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1:MOV TH1,#0FCH ;重新设置计数初值 MOV TL1,#03H CPL P1.0 ;输出取反 AJMP LOOP ;重复循环 END,第五章 MCS-51单片机的硬

47、件资源,二、方式1,方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。,第五章 MCS-51单片机的硬件资源,当定时器/计数器在方式1下作计数器用时,其计数范围是:165536(216),当定时器/计数器在方式1下作定时器用时,其定时时间计算公式为: T=(216-计数初值)晶振周期12,如晶振频率为6MHZ,则最小定时时间为: Tmin=216-(216-1)1/6 10-612 =210-6=2(s),第五章 MCS-51单片机的硬件资源,X=65411=FF83H,即可得:TH0=0FFH,TL0=83H,最大定时时间为: Tmax=(216-0)1/610-

48、612=131072 10-6 =131072(s),例5.4设单片机晶振频率为6MHZ,要求使用定时器0工作方式1产生周期为500s的等宽正脉冲,并在P1.0端输出。试编写采用中断方式完成的相关程序。,解:.计算计数初值,(216-X)1/610-612=25010-6,第五章 MCS-51单片机的硬件资源,.设置各相关控制寄存器,TMOD应设置为XXXX0001B; IE和TCON均采用位寻址方式。,.程序设计,ORG 0000H START: AJMP MAIN ORG 000BH AJMP INTER ORG 0100H MAIN: ANL TMOD,#0F0H ;置定时器0工作方式1 ORL TMOD,#01H,第五章 MCS-51单片机的硬件资源,MOV TH0,#0FFH ;设置计数初值 MOV TL0,#83H SETB EA ;CPU开中断 SETB ET0 ;定时器0开中断 SETB TR0 ;启动定时器0 SJMP ;等待中断 INTER:MOV TH0,#0FF ;重新设置计数初值 MOV TL0, #83H CPL P1.0 ;输出取反 RETI ;中断返回 END,第五章 MCS-51单片机的硬件资源,三、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1