您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 单片机的中断系统与定时计数器
孙砚飞中断的基本概念中断系统的设置中断的应用1.中断源MCS-51单片机共有5个中断源。外部中断源(2个)外部中断0、1通过引脚INT0(P3.2)、INT1(P3.3)接受外部中断请求信号,可选择电平触发或边沿触发(跳变触发)方式。内部中断源(3个)定时器/计数器T0、T1溢出中断;串行口发送/接收中断(共用一个中断源)。MCS-51中断系统中断入口地址中断入口地址(中断矢量)是指中断服务程序的入口地址。5个中断源的中断入口地址外部中断0定时器T0外部中断1定时器T1串行口0003H000BH0013H001BH0023H中断请求标志定时器控制寄存器TCON中的中断请求标志IT0、IT1:外部中断0、1电平触发方式选择位。“0”低电平有效;“1”下降沿有效。IE0、IE1:外部中断0、1中断请求标志。置位时有中断请求,中断响应后自动清零。TF0、TF1:定时器/计数器T0、T1计数溢出中断请求标志。置位时有中断请求,中断响应后自动清零。TCON可位寻址。复位后,TCON=00H。D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0串行口控制寄存器SCON中的中断请求标志TI/RI:串行口发送/接收中断请求标志。串行发送/接收完一帧后自动置位,请求中断。需要再次发送/接收时,应通过指令清零。SCON可位寻址。复位后,SCON=00H。D7D6D5D4D3D2D1D0TIRI2.中断允许控制中断允许控制寄存器IEEA:CPU中断允许控制位。EA=1,开CPU中断。EX0、EX1=1时,允许外部中断0、1中断。ET0、ET1=1时,允许T0、T1计数溢出中断。ES=1时,允许串行口发送/接收中断。IE可位寻址。复位后,IE=00H,禁止所有中断源中断。D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0总允许源允许3.中断优先级管理MCS-51中断系统的中断优先级中断优先级(权)就是指当有多个中断源同时申请中断时,CPU所采取的响应顺序的原则。MCS-51单片机中断系统允许软件设置每个中断源为高优先级中断或低优先级中断,并可实现两级中断嵌套。中断嵌套原则高优先级中断可以中断低优先级中断,反之不能;同级或低优先级的中断源不能中断正在执行的中断服务程序。中断优先级寄存器IPIP可位寻址。复位后,IP=00H(所有中断源均为低优先级)。D7D6D5D4D3D2D1D0PSPT1PX1PT0PX0自然优先级若同一优先级中断源有多个同时申请中断,则CPU按自然优先级原则确定响应顺序。外部中断0高定时器T0外部中断1定时器T1串行口低自然优先级4.中断系统的控制中断系统的设置对4个与中断有关的特殊功能寄存器:TCON、SCON、IE和IP中的相关位进行管理和设置。这4个SFR均可位寻址。复位后:TCON=00H;IT0、IT1=0,电平触发!SCON=00HIE=00H;禁止所有中断源中断!IP=00H;所有中断源均为低优先级!中断系统的控制中断请求信号将中断请求有效信号转为标志存储中断允许控制中断优先级设置中断优先级激活触发器中断处理过程中断处理过程大致包含中断请求、中断响应、中断服务、中断返回四个阶段。中断响应条件允许中断;CPU此时没有响应同级或更高级的中断;当前正处于所执行指令的最后一个机器周期;正在执行的指令不是RETI或访问IE、IP的指令。中断处理过程流程硬件自动完成中断服务程序中断请求标志的撤除中断响应后(1)外部中断、定时器中断请求标志由硬件自动撤除;(2)串行口中断请求标志(TI、RI)必须由软件清0。中断系统的应用1.中断系统应用要解决的问题电路连接外部中断请求信号电平及持续时间应符合要求。应用程序设计主程序部分(中断系统初始化)设置堆栈指针SP;若为外部中断,定义触发方式;根据需要给IP赋值,定义中断优先级;开放中断。中断服务程序部分在相应的中断入口地址设置一条跳转指令,转移到中断服务程序的实际入口处;根据需要保护现场;若为电平触发的外部中断,应有中断请求信号撤除操作;若是串行口中断,对TI、RI清0;安排中断服务所做的操作(中断服务程序的主体);恢复现场;中断返回(RETI)。2.中断系统应用举例[例1]:利用中断设计一个应用系统,实时显示P3.2引脚上出现的负跳变脉冲的个数。从低位到高位依次存入3AH、3BH、3CH。分析:解此题利用中断系统,主程序对中断系统进行初始化以及实时显示脉冲个数;利用P3.2引脚上出现的负跳变信号作为中断请求信号,每中断一次,将3AH~3BH单元内容按BCD码加1。ORG0000H;主程序入口LJMPMAIN;转实际主程序ORG0003H;外部中断0中断入口地址LJMPINT0;转中断服务程序ORG0030HMAIN:MOVSP,#70H;设置堆栈指针SETBIT0;置外部中断0为边沿触发方式SETBEA;CPU开中断SETBEX0;允许外部中断0中断MOV3AH,#0;计数单元置初值MOV3BH,#0ORG0050H;中断服务程序,从0003H转来INT0:PUSHACCPUSHPSWPUSHDPLPUSHDPH;保护现场MOVA,3AH;取计数值的个位ADDA,#1DAAMOV3AH,A;按BCD码加1,并存回原单元MOVA,3BHADDCA,#0DAAMOV3BH,A;个位、十位加1若有进位,对高一字节加1POPDPH;恢复现场POPDPLPOPPSWPOPACCRETI;中断返回定时/实现方式:1.软件定时;2.不可编程硬件定时;3.可编程定时。单片机的定时/计数器一、定时/计数器的定时和计数功能在TMOD中,各有一个控制位(C/T),分别用于控制定时/计数器T0和T1是工作在定时器方式还是计数器方式。1.定时功能----计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。2.计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。单片机的定时/计数器二、定时器/计数器的控制寄存器与定时器/计数器有关的控制寄存器有:1.定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0低电平1下降沿0停止1启动2.工作方式控制寄存器TMODT1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—门控位C/T—计数/定时选择M1M0—工作方式选择计数脉冲输入三、定时器/计数器的工作方式定时器/计数器共有四种工作方式1.方式0—13位方式TF0T0TR0GATEINT01≥1&C/T=1振荡器1/12C/T=0TL0TH08位低5位13位计数器定时器计数器2.方式1—16位方式振荡器1/12TL0TH0TF01≥1&T0TR0GATEINT0C/T=0C/T=18位8位16位计数器3.方式2—8位自动装入时间常数方式TF0振荡器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TH04.方式3—2个8位方式仅T0可以工作在方式3—此时T0分成2个独立的计数器—TL0和TH0,前者用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)。四、应用举例②计算计数器的计数初值:编程时将计数初值送THi、TLi;可编程器件在使用前需要进行初始化:①确定TMOD控制字:编程时将控制字送TMOD;③开中断(如果使用中断方式):编程时置位EA、ETi④TRi位置位控制定时器的启动和停止。例1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500μs的方波脉冲,并由P1.0输出。试以中断方式实现。8051P1.0500μs①TMOD确定T1控制T0控制XXXX1000M0M1C/TGATEM0M1C/TGATE控制字10H要产生500μs的方波脉冲,只需在P1.0端以250μs为间隔,交替输出高低电平即可实现。为此,定时间应为250μs。使用6MHz晶振,则一个机器周期为2μs,设待求计数初值为X,则:②计算计数器的计数初值;(216–X)×2×10-6=250×10-6即216–X=125X=216-125=10000H-7DH=0FF83H所以,初值为:TH1=0FFH,TL1=83H③采用中断方式:编程时打开全局和局部中断。④由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。TR1=1,启动;TR1=0,停止。程序设计ORG0000HLJMPMAIN;主程序入口ORG001BHLJMPINTT1;T1中断入口ORG1000HMAIN:MOVTMOD,#10H;T1为方式1MOVTH1,#0FFHMOVTL1,#83H;初值SETBEA;允许中断SETBET1SETBTR1;启动定时SJMP$;等待中断主程序:INTT1:MOVTH1,#0FFH;重新设置初值MOVTL1,#83HCPLP1.0;输出取反RETI中断处理程序:例2:设晶振频率fOSC=6MHz,分别讨论各种工作方式下最长定时时间。分析:1.由fOSC=6MHz可知,MC=2us;2.由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。所以此时有:方式0:(213–0)×2us=214us=16384us=16.384ms方式1:(216–0)×2us=217us=131.072ms方式2、3(28–0)×2us=29us=0.512ms注意:以上是当fOSC=6MHz,即MC=2us时各种方式下的定时时间,若fOSC=12MHz,则最长定时时间将缩短一半。思考•试编写利用定时器T1,工作方式1,实现1s的延时程序,设晶振频率为12MHz。2.什么是中断?图示看书继续看书电话铃响记号接听电话主程序中断服务程序继续执行主程序中断请求响应中断中断返回断点地址入口地址中断与子程序调用调用调用主程序返回子程序子程序入口断点地址1断点地址2预先安排的中断的发生是随机的!3.中断源能向CPU发出中断请求,引起中断的设备或事件。外围设备故障源实时时钟或定时器人为设置的中断源4.采用中断方式的优点提高CPU工作效率具有实时处理功能实现分时操作
本文标题:单片机的中断系统与定时计数器
链接地址:https://www.777doc.com/doc-3505356 .html