版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 MCS-51单片机中断、定时及通信系统第一部分:中断/定时系统本章学习目标v MCS-51单片机中断源的种类及工作方式v 中断控制寄存器IE、中断优先级寄存器IP及定时器/计数器及外部中断控制寄存器TCON的使用方法v MCS-51型单片机中断响应过程v 外部中断的结构及原理v 熟练编制中断服务程序v 定时器/计数器的结构及原理v 定时器/计数器的各种工作方式v 掌握定时器计数器的应用5.1中断的概念中断系统主程序中断响应执行主程序执行中断处理程序中断请求断点继续执行主程序中断返回中断系统的结构框图查询硬件中断优先中断开放级寄存器中断源开放 01PX 0EX 0IE0IT 0INT 0
2、高级中断请求101PT 0ET 0TF 0中断源0中断向量1PX1 INT10EX1IEIT1011PT1ET1TF10低级中断请求1T1R1ESPS0EA中断源中断向量中断源入口地址具体入口如下:中断源INT0 T0 INT1 T1RI/TI入口地址0003000BH0013H001BH0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。优点(1) 分时操作(2) 实现实时处理(3) 故障处理5.1.1中断的功能 1实现中断及返回 2能实现优先权排队 3能实现中断嵌套5.1.21.中断源中断请求共有五个中断源,分别是外部中断两个、定时
3、中断两个和串行中断一个,它们是: 外部中断0-INT0,由P3.2提供,外部中断1INT1,由P3.3提供,外部中断有两种信号方式,即电平方式和脉冲方式。T0溢出中断;T1溢出中断;由片内定时/计数器0提供由片内定时/计数器1提供串行口中断RI/TI;由片内串行口提供2中断请求标志在中断请求被响应前,中断请求是由CPU锁存在特殊功能寄存器TCON和SCON的相应中断标志位中。与中断控制有关的控制寄存器有四个:TCON定时控制寄存器,IE中断允许控制寄存器,IP中断优先级控制寄存器,SCON及串行口控制寄存器。1定时控制寄存器TCON0 低电平1 下降沿触发方式选择中断请求标志1)TCON7TF
4、1:T1溢出中断标志。T1被启动计数后,从初值开始加1计数,直至计满溢出由硬件使TF1=l,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清“0”。也可用软件查询该标志,并由软件清“0”。2) TCON53) TCON3请中断。4) TCON1TF0:T0溢出中断标志。其操作功能类似于TF1。IE1:外部中断1标志。IE1=1表明外部中断1向CPU申IE0:外部中断0标志。其操作功能与IE1类似。D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT02串行口控制寄存器SCON串行中断请求标志1)SCON1TI:串行发送中断标志。CPU将一个字节数据写入发送缓冲器
5、SBUF后启动发送,每发送完一个串行帧,硬件置位TI。但CPU响应中断后,并不能自动清除TI标志,必须由软件清除。2)SCON0RI:串行接收中断标志。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断后不会自动清除RI标志,必须由软件清除。D7D6D5D4D3D2D1D0TIRI5.1.3中断的控制3中断允许控制寄存器IE0 禁止,1允许D7D6D5D4D3D2D1D0EAESET1EX1ET0EX01)IE.7EA:CPU中断总允许位。EA=1,CPU开放中断,每个中断源是被允许还是被禁止,分别由各自的允许位确定;EA=0,CPU屏蔽所有的中断要求,称关中断。2)I
6、E.4ES:串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。3)IE.3ET1:T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。4)IE.2EX1:外部中断1允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。5)IE.1ET0:T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。6)IE.0EX0:外部中断0允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。2中断优先级的设定基本原则是:(1) 高优先级不能被低优先级中断;(2) 低优先级可被高优先级中断。(3) 任何一种中断(不管是高级还是低
7、级),一旦得到响应,不会再被它的同级中断所中断。 (4)两个同一级的中断源同时向CPU发出中断申请,CPU通过内部硬件查询,按自然优先级确定优先响应哪一个中断要求序号中断源自然优先顺序1外部中断 0最高2定时器 0次高3外部中断 1中4定时器 1此低5串行口中断最低4中断优先级控制寄存器(IP)0 低级别,1高级别 PS:串行口中断优先级控制位。 PT1:定时计数器T1中断优先级控制位。 PX1:外部中断1中断优先级控制位。 PT0:定时计数器T0中断优先级控制位。 PX0:外部中断0中断优先级控制位。单片机复位后,IP寄存器被清0,所有中断源为低级中断。D7D6D5D4D3D2D1D0PSP
8、T1PX1PT0PX05.1.4中断响应1CPU的中断响应条件无同级或高级中断正在服务;当前指令周期结束,如果查询中断请求的机器周期不是当前指令的最后一个周期,则不行; 若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。2.响应过程置位中断优先级有效触发器,即关闭同级和低级中断:调用入口地址,断点入栈,相当于LCALL指令;进入中断服务程序。响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1) 最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LCALL)(
9、2) 最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。3中断处理中断处理(又称中断服务)程序从入口地址开始执行,直到返回指令“RETI”为止,这个过程称为中断处理。此过程一般包括两部分内容,一是保护现场,二是处理中断源的请求。4.中断返回中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。5.2外部中断 5.2.1外部中断的方式选择外部中断的方式选择是通过定时/计数器及外部中断控制寄存器TCON中的标志位选择的
10、。 1)TCON2 IT1:外部中断1触发方式控制位。当 IT1=0,外部中断l为电平触发方式。若IT1=1,外部中断1控制为边沿触发方式。2)TCON0 IT0:外部中断0触发方式控制位。 5.2.2外部中断的系统设计应用外设数据经P1口输入单片机,每准备好一个数据,外设发出选通信号,经触发器和非门至INT0。+5VDCLK选通信号P1口P3.0 INT08031数据1Q CLR数据传送过程:外设每准备好一个数据后,发出选通信号,使触发器输出1再经非门得0至INT0,向CPU发出中断请求,CPU响应这个中断请求后,在中断处理程序中先撤除中断请求信号,(通过P3.0=0, 使INT0=1)再由
11、P1口输入数据到单片机内部。+5VDCLK选通信号P1口P3.0 INT08031数据1Q CLR程序:ORG0000H MAIN 0003H IINT00030HSTART:LJMPORG LJMP ORG;主程序;低电平触发MAIN:CLRIT0SETBSETBEAEX0;开中断MOV. ORGDPTR,#1000H0100HPSW ACCP3.0IINT0:PUSH;中断处理程序PUSHCLRNOPNOP SETB MOV MOVX INC.POPPOP RETIP3.0;撤除INT0;输入数据;保存数据A,P1DPTR,ADPTRACCPSW;恢复现场;返回主程序5.2.3多级外部中断
12、的扩展应用利用单片机扩展5个外部中断源,中断的优先次序为X0X4,其中X0接到外部中断上, X1X4接到外部中断上;单片机的P1.4 P1.7接4个发光二极管用来作输出指示;当有X1X4其中一个外部中断发生时,相应的发光二极管D1D4点亮;当X0外部中断发生时,4个发光二极管全亮。ORG AJMP ORG AJMP ORG AJMP ORG MAIN: SETB SETB MOV先级MOV断1MOV0000H MAIN0003H ;中断服务程序入口地址ZHD00013H ;中断服务程序入口地址ZHD10030HMOV IT0IT1SP,#70H;设置堆栈指针;设置外部中断0为边沿触发方式;设置
13、外部中断1为边沿触发方式IP,#00000001B;设置外部中断0为最高优IE,#10000101B;开放外部中断0及外部中A,#0FFH;关闭发光二极管MOV LOOP:ZHD0:P1,AAJMP PUSH PUSH MOV MOV POP POP RETI PUSH PUSH ORLJNBLOOP PSW AA,#0FHP1,A APSW;保护现场;4个发光二极管全亮;恢复现场;中断返回;保护现场ZHD1:PSW AP1,#0FHP1.0,IN1;读取P1口的低4位;中断源查询,并转向相应的中断服务程序JNBP1.1,IN2JNBJNBP1.2,IN3P1.3,IN4 APSWFH1:PO
14、P POP RETI MOV MOV AJMP MOV MOV AJMP MOV MOVAJMP;恢复现场IN1:A,#11101111B;中断服务程序1P1,AFH1;D1发光二极管亮IN2:A,#11011111BP1,A FH1A,#10111111B P1,AFH1;中断服务程序2;D2发光二极管亮IN3:;中断服务程序3;D3发光二极管亮IN4:MOV MOV AJMPENDA,#01111111BP1,A FH1;中断服务程序4;D4发光二极管亮5.2MCS-51单片机的定时/计数器定时/实现方式:1. 软件定时;2. 不可编程硬件定时;3.可编程定时。一、定时/计数器的定时和计数
15、功能定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。1.定时功能计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。2.计数功能计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。在TMOD中,各有一个控制位(CT),分别用于控制定时/计数器T0和T1是工作在定时器方式还是计数器方式。定时系统的结构:C/T=0中断C/T=1TX 端控制信号 TFX加 1 计数器振荡器 12二、定时器计数器的控制寄存器与定时器计数器有关的控制寄存器有:1定时器控制寄存器TCON触发方式选择0 低电平1 下降沿中断请求标志启动定时/
16、计数器0 停止1 启动D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT02工作方式控制寄存器TMODT1控制T0控制GATE门控位C/T计数/定时选择M1 M0工作方式选择D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0GATE位:门控位。当GATE=1时,只有或引脚为高电平且TR0或TR1置1 时,相应的定时/计数器才被选通工作,这时可用于测量在端出现的正脉冲宽度;当GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,而不管或的电平是高还是低。C / T 位:计数/定时功能选择位。C / T=0,设置定时/计数器为定时器方式
17、,计数器的输入是内部时钟脉冲,其周期等于机器周期。C / T=1,设置定时/计数器为计数器方式,计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。M1、M0位:工作方式选择位。定时/计数器工作方式M1M0工作方式功能00方式 0初值寄存器 TL 的低 5 位与 TH 的 8 位构成 13 位计数器01方式 1寄存器 TL 与 TH 构成 16 位计数器,计满溢出,16 位计数器回零10方式 2自动装载 8 位计数器,TL 溢出,TH 内容送 TL11方式 3定时器 T0 分成两个 8 位定时器,T1 停止工作TF1位:定时器1溢出标志位。当定时/计数器1溢出时,由硬件置1。使用查
18、询方式时, 此位做状态位供查询,查询有效后需由软件清零;使 用中断方式时,此位做中断申请标志位,进入中断服 务后被硬件自动清零。TR1位:定时器1运行位。该位靠软件置位或清零,置位时,定时/计数器接通工作,清零时,停止工作。TF0位:定时器0溢出标志位,其功能和操作情况同TF1。TR0位:定时器0运行控制位,其功能和操作类同于TR1。5.1.3定时器计数器的工作方式定时器计数器共有四种工作方式方式013位方式1.定时器C/T=0C/T=1T0TR0GATE低5位8位13位计数器&1INT0计数器计数脉冲输入TF0TL0TH011/12振荡器当C / T=0时,控制开关接通内部振荡器,T0对机器
19、周期进行计数,其定时时间为: t=(213-T0初值)机器周期当C / T=1时,控制开关接通外部输入信号,当外部信号电平从“1”到“0”跳变时,加1计数器加1,处于计数工作方式。方式116位方式2.C/T=0C/T=18位T0TR0GATE8位&16位计数器1INT0TF0TL0TH011/12振荡器3. 方式28位自动装入时间常数方式C/T=0C/T=1T0TR0GATEINT0&1TH0TF0TL011/12振荡器4. 方式32个8位方式仅T0可以工作在方式3此时T0分成2个独立的计数器TL0和TH0,前者用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)
20、。四、应用举例可编程器件在使用前需要进行初始化:确定TMOD控制字:编程时将控制字送TMOD;计算计数器的计数初值:编程时将计数初值送THi、TLi;开中断(如果使用中断方式):编程实置位EA、ETiTRi位置位控制定时器的启动和停止。例题1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0 输出。试以中断方式实现。500s8051P1.0TMOD确定T1控制T0控制控制字10H计算计数器的计数初值;要产生500s的方波脉冲,只需在P1.0端以250s为间隔,交替输出高低电平即可实现。为此,定时间应为250s。使用6z晶振,则一个机器周期为2s,设待
21、求计数初值为,则:GATEC/TM1M0GATEC/TM1M00001XXXX(216X)210即216X=125X216-125=10000H-7DH0FF83H所以,初值为:TH1=0FFH,TL1=83H采用中断方式:编程时打开全局和局部中断。-6=25010-6由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。TR11,启动;TR10,停止。程序设计ORGLJMP ORG LJMP0000HMAIN 001BH INTT1;主程序入口;T1中断入口主程序:ORG1000HMAIN:MOVMOV MOV SETB SETB SETBSJMPTMOD,TH1,#10H;T1为方
22、式1#0FFHTL1,#83HEA ET1 TR1$;初值;允许中断;启动定时;等待中断INTT1:中 断 处 理程序:MOVMOVCPL RETITH1,#0FFHTL1,#83HP1.0;重新设置初值;输出取反例题2:设晶振频率fOSC=6MHz,分别讨论各种工作方式下最长定时时间。解:1. 由fOSC=6MHz可知,MC=2us;2. 由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。所以此时有:方式0:(2130)2us=214us=16384us=16.384ms方式1:(2160)2us=217us=131.072ms方式2、3(280)2us=29us=0.5
23、12ms注意:以上是当fOSC=6MHz,即MC=2us时各种方式下的定时时间,若fOSC=12MHz,则最长定时时间将缩短一半。五、定时计数器用作外部中断扩展在计数方式下,如果把计数器预置为全1,则只要在计数输入端(T0或T1输入端)加一脉冲就可以使计数器溢出,产生溢出中断。这就是定时计数器实现外部中断扩展的思想。具体方法是:置定时计数器为工作方式,即自动加载式位计数,以便在一次中断响应后,自动为下一次中断作准备;TH和TL均置为FFH;扩展的外部中断请求信号接计数脉冲输入端(T0或T1);把扩展的外中断服务程序存放在所占用的定时计数器中断入口地址处(000BH或001BH)。T0计数器方式
24、例:以T0实现一个外部中断扩展。则初始化程序为:MOVMOV MOV SETB SETB SETBTMOD,#06HTH0,#0FFH TL0,#0FFH EAET0TR0;00000110T0方式2;开全局中断;开T0中断;准备计数将中断子程序放在T0中断入口处(000BH)。题 11 思路:1.1000Hz方波,即周期是1ms,定时时间为500us, P1.1交替输出0、1电平,即可得到该方波。2.由定时时间知,用哪种方式都可实现500us定时。可用方式2(自动装入时间常数), 比较简单。第五章上机实验(1)1. 分别用2种定时方式使P1口输出信号, 轮流点亮8个LED,每个LED点亮时间
25、为50ms。方式1:利用调用延时子程序方式;方式2:利用定时器定时50ms,设晶振频率为12MHz;参考习题13。2. 每个LED点亮时间为2s。参考P9596接口实训(一)一.定时器/计数器应用实训。3.题目中没有指明用T0还是T1,可任意,我们用T0。确定TMOD控制字T1控制T0控制控制字02H计算计数器的计数初值;GATEC/TM1M0GATEC/TM1M0XXXX0010(28X)210即28X=250X28-250=100H-FAH06H所以,初值为:TH0=06H,TL0=06H-6=50010-6采用中断方式:编程时打开全局中断:置位EA局部中断:置位ET0。置位TR0位控制定
26、时器的启动。程序设计ORGLJMP ORG LJMP0000HMAIN 000BH INTT0;主程序入口;T0中断入口主程序:ORG1000HMAIN:MOVMOV MOV SETB SETB SETBSJMPTMOD,TH0,#02H;T0为方式2#06HTL0,#06HEA ET0 TR0$;初值;允许中断;启动定时;等待中断中断处INTT0:CPLRETIP1.1;输出取反理程序:题13 思路:1.通过P1.0P1.7分别送“1”给8个灯;2.每次持续时间20分之一秒,即50ms,由定时器T0来定时,又知fOSC=6MHz,由例题2可知可用方式1。LED7RLED08051P1.7.P
27、1.0.R确定TMOD控制字T1控制T0控制控制字01H计算计数器的计数初值;(216X)210即216X=25000X216-25000=10000H-61A8H9E58H所以,初值为:TH1=9EH,TL1=58H-6=5010-3GATEC/TM1M0GATEC/TM1M0XXXX0001采用中断方式:编程时打开全局中断:置位EA局部中断:置位ET0。置位TR0位控制定时器的启动。程序设计ORGLJMP ORG LJMP0000HMAIN 000BH INTT0;主程序入口;T0中断入口主程序:ORG1000HMAIN:MOVMOV MOV SETB SETB SETB MOV MOVS
28、JMPTMOD,TH0,#01H;T0为方式1#9EHTL0,#58HEA ET0 TR0 A,#01H P1,A$TH0,#9EH TL0,#58HA;初值;允许中断;启动定时;LED0先亮;等待中断;重新设置初值中断处 INTT0: 理程序:MOVMOVRL RETI;依次点亮8051LED7LED6LED5LED4LED3LED2LED1LED0P1.7 P1.6 P1.5 P1.4P1.3 P1.2 P1.1 P1.0RRRRRRRR上机实验1:方法1.调用50ms延时子程序。设晶振频率为12MHz,则机器周期为1us。下面为延时子程序:DEL:MOVR7,#200R6,#123;1MC;1MC;1MC;2MC;2MC;2MCDEL1:MOVNOPDJNZDJNZRETR6,$R7,DEL1延时时间:t=1+200(1+1+2*123+2)+250000us=50ms程序:ORG1100HORGMOVLOOP:MOV1000HA,#01HP1,ADEL:MOVR7,#200R6,#123DEL1:MOVNOPLCALLDELDJNZDJNZRETR6,$R7,DEL1RLASJMPLOOP子程序主程序方法2:见习题13,但时间常数为3CB0H上机实验2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营销技巧培训习题及答案解析
- 公路一建模拟试题及参考答案
- 门诊制度相关试题及精准答案解析
- 2025-2026学年新疆维吾尔喀什地区四年级数学第二学期期中模拟试题含答案解析
- 2025-2026学年惠水县数学三年级第二学期期中统考试题含答案
- 中国地名问答大赛题目及答案
- 黄磷生产知识测试题及详细答案
- 2025-2026学年山东省临沂市平邑县数学四下期末预测试题含答案
- 2026个人述职报告个人述职报告个人述职报告个人述职报告例文(3篇)
- 急救培训测试题与参考答案
- 2026海南省农业信贷担保有限责任公司招聘高层管理人员1人考试模拟试题及答案详解
- 2026年新高考北京政治真题含答案
- 2026年博物馆社会教育活动策划方案
- 新版2026年高考政治(山东卷)真题详细解读及评析
- 【新教材】统编版(2024)一年级上册语文第二单元集体备课教案
- 2026年招聘消防文员笔试题库附答案
- 2026年企业法律顾问资格考试模拟卷
- 立克次体病防治指南(2025版)
- 2026新疆吐鲁番市托克逊县面向社会招聘警务辅助人员138人笔试参考题库及答案解析
- 危险化学品管理台账规范范本
- 初一语文词性练习
评论
0/150
提交评论