您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 单片机原理与应用-基于汇编、C51及混合编程第7章中断控制定时计数器及PCAPWM的应用
系统扩展设计及例题的介绍与实际应用相结合,原理图中给出了各元器件的实际应用参数。在第7-12章中的每一道例题都采用汇编、C51两种语言分别编程实现。第12章中数字显示温度计、RLC测量仪两个应用实例的电路及程序都通过了验证。2第7章中断控制、定时/计数器及PCA/PWM的应用3主要内容•7.1中断的概念•7.2中断系统的结构•7.3中断寄存器•7.4低压检测中断•7.5外部中断•7.6定时/计数器T0、T1的工作方式•7.7定时/计数器T0、T1的应用举例•7.8定时/计数器T2的工作方式及应用•7.9PCA/PWM模块的结构及应用47.1中断的概念1.中断源及中断请求中断请求RETI主程序中断服务子程序继续执行主程序中断请求PC断点PC断点对于一个中断源,中断请求信号产生一次,CPU中断一次,而不能出现中断请求一次,CPU响应多次的情况,所以要求中断信号及时撤除。•产生中断请求的事件,称为中断源。•STC12C5A60S2单片机有10个中断源:外部中断0、定时/计数器T0、外部中断1、定时/计数器T1、串行口1(UART1)、A/D转换、串行口2(UART2)、低压检测(LVD)中断、PCA中断和SPI中断。57.1中断的概念1.中断源及中断请求•对突发事故,做出紧急处理。•根据现场随时变化的各种参数、信息,做出实时监控。•CPU与外部设备并行工作,以中断方式相联系,提高工作效率。•在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求。中断的作用:67.1中断的概念2.中断优先权控制3.中断允许与中断屏蔽4.中断响应与中断返回当有中断请求时,如果CPU正在执行某一条指令,需要执行完当前指令后再响应中断,如果正在执行RETI,或者是访问IE、IP寄存器指令时,需要执行完当前指令后,再执行一条指令才响应中断。CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。!!!在中断系统中,有一个总中断使能位控制所有中断是否允许,另外每个中断源还有各自的中断使能位控制该中断是否允许,只有在总的中断允许及相应中断也允许时,CPU才能响应中断。另外,当有高优先级中断正在响应时,也会屏蔽同级中断和低优先级中断。77.2中断系统的结构中断源、中断请求中断允许寄存器IE和IE287.3中断寄存器1.中断允许寄存器IEIE寄存器的地址为A8H,可进行位寻址D7D6D5D4D3D2D1D0EAELVDEADCESET1EX1ET0EX0CPU的中断允许控制位,当EA=0时,所有的中断源请求均被屏蔽;当EA=1时,允许CPU检测中断源的标志位。EA的作用使中断允许形成两级控制,即各中断源首先受EA控制,其次还受各中断源自己的中断允许控制位控制。低压检测中断允许位。当ELVD=0时,禁止低压检测中断;当ELVD=1,允许低压检测中断。A/D转换中断允许位。当EADC=0时,禁止A/D转换中断;当EADC=1时,允许A/D转换结束时中断。串行口1中断允许控制位。当ES=0时,禁止串行口1中断;当ES=1时,允许串行口1中断。定时/计数器T1溢出中断允许控制位。当ET1=0时,禁止T1中断;当ET1=1时,允许T1中断外部中断1中断允许控制位。当EX1=0时,禁止外部中断1中断;当EX1=1时,允许外部中断1中断定时/计数器T0溢出中断允许控制位。当ET0=0时,禁止T0中断;当ET0=1时,允许T0中断外部中断0中断允许控制位。当EX0=0时,禁止外部中断0中断;当EX0=1时,允许外部中断0中断97.3中断寄存器1.中断允许寄存器IE2IE2的地址为AFH,不能进行位寻址D7D6D5D4D3D2D1D0------ESPIES2SPI串行通信中断允许位。ESPI=0时,禁止SPI中断;当ESPI=1,允许SPI中断串行口2中断允许控制位。当ES2=0时,禁止串行口2中断;当ES2=1时,允许串行口2中断107.2中断系统的结构•STC系列单片机复位后,IE和IE2寄存器的各位均被清0,即所有中断源均处于禁止状态,由用户程序对寄存器IE和IE2相应的位置1或清0,实现允许或禁止各中断源的中断请求。•要改变IE寄存器各控制位的状态既可以用字节操作指令MOVIE,#DATA来实现,也可用位操作指令SETB或CLR实现。•改变IE2寄存器的各控制位,只能用字节操作指令来实现,如:MOVIE2,#DATA。117.2中断系统的结构127.2中断系统的结构中断优先级控制寄存器IP、IP2和IPH、IP2H137.3中断寄存器2.中断优先级控制寄存器IP、IP2和IPH、IP2HD7D6D5D4D3D2D1D0PPCAPLVDPADCPSPT1PX1PT0PX0IP寄存器的地址为B8H,可进行位寻址D7D6D5D4D3D2D1D0PPCAHPLVDHPADCHPSHPT1HPX1HPT0HPX0HIPH寄存器的地址为B7H,不能进行位寻址PPCAH、PPCA为PCA中断优先级的高、低位PLVDH、PLVD为低压检测中断优先级的高、低位PADCH、PADC为A/D转换中断优先级的高、低位PSH、PS为串行口1中断优先级的高、低位PT1H、PT1为定时/计数器1中断优先级的高、低位PX1H、PX1为外部中断1中断优先级的高、低位PT0H、PT0为定时/计数器T0中断优先级的高、低位PX0H、PX0为外部中断0中断优先级高、低位147.3中断寄存器2.中断优先级控制寄存器IP、IP2和IPH、IP2HD7D6D5D4D3D2D1D0------PSPIPS2D7D6D5D4D3D2D1D0------PSPIHPS2HIP2寄存器的地址为B5H,不能进行位寻址IP2H寄存器的地址为B6H,不能进行位寻址PSPIH,PSPI为SPI串行口中断优先级的高、低位PS2H、PS2为串行口2中断优先级的高、低位157.2中断系统的结构IPH.X、IP.X或IP2H.X、IP2.X为11时为最高优先级中断IPH.X、IP.X或IP2H.X、IP2.X为10时为2级中断IPH.X、IP.X或IP2H.X、IP2.X为01时为1级中断IPH.X、IP.X或IP2H.X、IP2.X为00时为最低优先级中断167.3中断寄存器2.中断优先级控制寄存器IP、IP2和IPH、IP2HD7D6D5D4D3D2D1D0PPCAPLVDPADCPSPT1PX1PT0PX0PPCAPLVDPADCPSPT1PX1PT0PX0------PSPIPS2------PSPIPS2上电复位后,中断优先级控制寄存器IP、IP2、IPH和IP2H中的各位均为0IP寄存器的内容可通过位操作指令或字节操作指令来改变,而IP2、IPH和IP2H寄存器的内容只能通过字节操作指令来改变。177.3中断寄存器各中断源中断优先查询次序中断查询序号中断源中断服务程序的入口地址0INT00003H1T0000BH2INT10013H3T1001BH4URAT10023H5ADC002BH6LVD0033H7PCA003BH8UART20043H9SPI004BH使用C语言编程,中断查询次序号就是中断号当几个中断源都在同一个优先级,其中的几个中断源同时产生中断请求,响应中断的次序取决于内部的查询次序。18中断处理的流程图置位中断优先级触发器保存断点转入中断服务子程序硬件完成保护现场执行中断服务程序恢复现场用户编程完成清除中断优先级触发器中断返回RETI指令完成19中断服务程序的流程图关中断保护现场开中断执行中断任务关中断恢复现场开中断中断返回在低优先级中断服务程序中,保护和恢复现场之后的开中断,是为了允许更高级的中断嵌套。在低优先级中断服务程序中,保护现场和恢复现场的过程,不允许高优先级的中断源中断,以免现场遭到破坏。20以外部中断1为例,其中断服务处理程序ORG0013H;外部中断1的入口地址LJMPINT1;在中断入口处放一条长转移指令……INT1:CLREAPUSHPSWPUSHACCPUSHDPHPUSHDPL……SETBEA……;执行中断任务CLREA……POPDPLPOPDPHPOPACCPOPPSWSETBEARETI保护现场恢复现场217.4低压检测中断烧写程序时可以将P4.6引脚设置为第二复位引脚RST2,若烧写程序时没有将P4.6引脚设置为第二复位引脚RST2,P4.6为低压检测中断引脚EX_LVD----LVD_P4.6ALE_P4.5NA_P4.4----P4SW功能切换寄存器LVD_P4.6=0时P4.6为低压检测中断引脚EX_LVDLVD_P4.6=1时P4.6为I/O引脚227.4低压检测中断若烧写程序时没有将P4.6引脚设置为第二复位引脚RST2,P4.6为低压检测中断引脚EX_LVDD7D6D5D4D3D2D1D0SMODSMOD0LVDFPOFGF1GF0PDIDL电源控制寄存器PCONEX_LVD引脚输入的电压低于低压检测电压门槛值1.33V时,LVDF位自动置1请求中断,注意:上电复位后,电源控制寄存器PCON中的外部低压检测标志位LVDF为1,要由软件清零(注意该位不可位寻址),建议清零后,再读一次该位,若仍然为1,说明电源还未达到正常值,应再次将该位清零,直至检测到该位为0时再转入正常运行当外部供电电压产生波动时,无法保证单片机正常工作,可以在单片机的外部低压检测中断服务程序中保存相关数据,避免掉电后数据丢失。237.5外部中断外部中断0输入引脚外部中断1输入引脚247.5外部中断TCON寄存器的地址为88H,可进行位寻址D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0IT1:外部中断1触发方式选择位。若IT1=0,引脚输入低电平信号触发中断;若IT1=1,引脚为下降沿触发方式外部中断1请求中断标志。若外部中断1输入引脚产生外部触发信号时,硬件将IE1位置1,外部中断1设置为下降沿触发方式时,CPU响应该中断时由硬件自动将IE1位清0,如果设置为低电平触发方式,必须在程序中通过指令清0外部中断0触发方式选择位。若IT0=0,引脚输入低电平信号触发外部中断;若IT0=1,引脚为下降沿触发方式外部中断0请求中断标志。若外部中断0输入引脚产生外部触发信号时,硬件将IE0位置1,外部中断0设置为下降沿触发方式时,当CPU响应该中断时由硬件自动将IE0清0,如果设置为低电平触发方式,必须在程序中通过指令清0257.5外部中断IT0IE0IT1IE1注意:如果外部中断设置为下降沿触发方式时,必须在该外部中断输入引脚至少保持1个系统时钟周期的高电平及1个时钟周期的低电平,才能保证CPU检测到该下降沿。同样,如果外部中断为低电平触发,则须在该引脚至少保持2个系统时钟周期的低电平,这样才能保证CPU能够检测到该低电平信号。267.6定时/计数器T0、T1的工作方式定时/计数器T0和T1工作方式寄存器TMOD的地址为89HT1工作方式控制T0工作方式控制计数、定时方式的选择位。为0时,定时/计数器工作在定时方式;为1时,定时/计数器工作在计数方式,对外部T0、T1引脚输入的脉冲计数定时/计数器门控方式选择位M1、M0:定时/计数器工作方式的选择位M1M0工作方式00方式001方式110方式211方式3D7D6D5D4D3D2D1D0GATEM1M0GATEM1M0/CT/CT/CT/CT27TCON寄存器的地址为88H,可进行位寻址D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0定时/计数器T1的溢出中断标志。当T1从初值开始加1计数计满产生溢出时,由硬件使该位置1。中断响应后由内部硬件电路自动清0。定时/计数器T1的运行控制位。由软件置位或清0,置位时,定时/计数器T1开始工作;清0时,T1停止工作。定时/计数器T0的运行控制位。由软件置位或清0,置位时,定时/计数器T0开始工作;清0时,T0停止工作。定时/计数器T0的溢出中断标志。当T0从初值开始加1计数计满产生溢出时,由
本文标题:单片机原理与应用-基于汇编、C51及混合编程第7章中断控制定时计数器及PCAPWM的应用
链接地址:https://www.777doc.com/doc-3862645 .html