STC`15W4K32S4单片机包含21个中断请求源,中断系统功能强大,与中断有关的特殊功能寄存器有21个,具体寄存器名称和位定义格式见表6-1。
表6-1 中断控制寄存器
与中断请求标志有关的特殊寄存器如下:
1.TCON
TCON为定时器/计数器控制寄存器,字节地址为88H,可位寻址。TCON的格式见表6-1。与中断系统有关的各标志位的功能如下:
1)IT0:外部中断0中断触发方式选择位。
外部中断有两种触发方式:电平触发方式和跳变触发方式。
IT0=1,为下降沿触发中断方式,当引脚INT0上出现下降沿信号时,置IE0=1,向CPU申请中断。
IT0=0,为上升沿、下降沿均可以触发中断方式,当引脚INT0上出现从高电平到低电平跳变,或者从低电平到高电平的跳变时,都会置IE0=0,向CPU申请中断。
单片机的外部中断定义为边沿跳变触发方式,外部中断申请触发器能锁存外部中断输入线上的正跳变或负跳变。即使CPU暂时不能响应,中断申请标志也不会丢失。在这种方式下,如果连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则中断申请触发器置1,直到CPU响应此中断后才由硬件自动清0,这样不会丢失中断。为了确保检测到负跳变,INT0引脚上的高电平与低电平至少应各保持一个机器周期。外部中断的跳变触发方式适合于以负脉冲形式输入的外部中断请求。
2)IE0:外部中断0请求标志位。若IE0=1,表示外部中断0正在向CPU申请中断。
在IT0=1跳变触发方式下,当第一个机器周期采样到INT0为高电平,下一个机器周期采样到INT0为低电平时,则IE0置1。只要IE0置1,就会立即向CPU申请中断。
在IT0=0跳变触发方式下,当第一个机器周期采样到INT0为高电平,下一个机器周期采样到INT0为低电平,即下降沿时,则IE0置1。同样,当第一个机器周期采样到INT0为低电平,下一个机器周期采样到INT0为高电平,即上升沿时,则IE0置1。
INT0、INT1外部中断请求还可以用于将单片机从掉电模式唤醒。
3)IT1:外部中断1中断触发方式选择位,其功能和IT0相同。
4)IE1:外部中断1的中断请求标志位,其功能和IE0类同。
5)TF0:单片机内部定时器/计数器0溢出中断请求标志位。定时器/计数器0计数溢出时,TF0置1,向CPU发出申请中断。
6)TF1:单片机内部定时器/计数器1溢出中断请求标志位,其功能和TF0类同。
TR1、TR0与中断无关,仅与定时器/计数器T1和T0的启动/停止有关。
单片机复位后,TCON清0。
2.SCON
SCON为串行口1控制寄存器,字节地址为98H,可位寻址。SCON的格式见表6-1,与中断系统有关的标志位是TI和RI,其功能如下:
1)TI:串行口的发送中断请求标志位。CPU将一字节的数据写入发送缓冲器SBUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件自动置TI位为1。
2)RI:串行口的接收中断请求标志位。在串行口允许接收时,每接收完一帧串行数据,硬件自动置RI为l。
3.S2CON、S3CON、S4CON
S2CON、S3CON、S4CON是串行口2、串行口3和串行口4的控制寄存器,字节地址分别为9AH、ACH、84H,不可位寻址,寄存器位格式见表6-1,与中断系统有关的标志位是S2TI和S2RI、S3TI和S3RI、S4TI和S4RI,其功能如下:(www.xing528.com)
1)S2TI:串行口2的发送中断请求标志位。CPU将一字节的数据写入发送缓冲器S2BUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件自动置TI位为1。
2)S2RI:串行口2的接收中断请求标志位。在串行口允许接收时,每接收完一帧串行数据,硬件自动置RI为1。
3)S3TI:串行口3的发送中断请求标志位。CPU将一字节的数据写入发送缓冲器S3BUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件自动置TI位为1。
4)S3RI:串行口3的接收中断请求标志位。在串行口允许接收时,每接收完一帧串行数据,硬件自动置RI为1。
5)S4TI:串行口4的发送中断请求标志位。CPU将一字节的数据写入发送缓冲器S4BUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件自动置TI位为1。
6)S4RI:串行口4的接收中断请求标志位。在串行口允许接收时,每接收完一帧串行数据,硬件自动置RI为1。
4.PCON、ADC_CONTR、SPSTAT、CCON、CMPCR1、PWMIF、PWMFDCR
PCON为电源控制寄存器,字节地址为87H,不可位寻址。
ADC_CONTR是A-D转换控制寄存器,字节地址为BCH,不可位寻址。
SPSTAT是SPI状态寄存器,字节地址为CDH,不可位寻址。
CCON是PCA控制寄存器,字节地址为D8H,可位寻址。
CMPCR1是比较器控制寄存器,字节地址为E6H,不可位寻址。
PWMIF是PWM中断标志寄存器,字节地址为F6H,不可位寻址。
PWMFDCR是外部异常控制寄存器,字节地址为F7H,不可位寻址。
这些寄存器的位格式见表6-1,与中断系统有关的标志位是LVDF、ADC_FG、SPIF、CMPIF、CBIF、CF/CCF2/CCF1/CCF0、FDIF,其功能如下:
1)LVDF:低压检测标志位,也是低压检测中断请求标志位。在正常工作和空闲工作状态时,不管低压检测中断是否允许,只要内部工作电压Vcc低于检测门槛电压,则自动置LVDF=1,向CPU发出申请中断。该位应软件清0。清0后,如果内部工作电压Vcc还是低于检测门槛电压,则又会自动置LVDF=1。
在进入掉电工作状态前,如果低压检测中断被关闭,则在进入掉电模式后,低压检测电路也掉电不工作;如果掉电前开启了低压检测中断允许,则在进入掉电模式后,低压检测电路处于工作状态,在内部工作电压Vcc低于检测门槛电压后,置LVDF=1,产生低压检测中断请求,可将单片机从掉电模式唤醒。
2)ADC_FG:A-D转换结束标志位,可用于请求A-D转换中断。当A-D转换完成后,ADC_FG被置1,可采用中断方式或查询方式处理,该位必须由软件清0。
3)SPIF:SPI传输完成标志位。当一次数据传输完成,则SPIF被置1,向CPU请求中断。此时,如果中断允许(ESPI=1,EA=1),将产生中断。当SPI处于主模式且SSIG=0时,若SS为输入并驱动为低电平,SPIF也将置位,表示“模式改变”。
4)CMPIF:在比较器模块使能情况下,若设置PIE=1,当比较器的比较结果由低变成高时,则内建的CMPIF_p寄存器被置1;若设置NIE=1,当比较器比较结果由低变成高时,则内建的CMPIF_n寄存器被置1;此时标志位CMPIF=(CMPIF_p‖CMPIF_n)。若CMPIF=1则会向CPU请求中断。
5)CBIF:PWM计数器归零中断请求标志位。当PWM计数器归零时,硬件自动将CBIF置1,向CPU请求中断。若此时ECBI=1,则产生中断响应。该位需要软件清0。
6)FDIF:PWM异常检测中断标志位。当发生PWM异常,即比较器的正极(P5.5/CMP+)电平比负极(P5.5/CMP-)电平高,或者比较器的正极(P5.5/CMP+)电平比内部参考电压源1.28V高,或者比P2.2电平高时,硬件自动化将FDIF置1,向CPU请求中断。若此时EFDI=1,则产生中断响应。该位需要软件清0。
7)CF:PCA计数器溢出标志位。当PCA计数器溢出时,由硬件对CF置1,向CPU请求中断。若此时CMOD寄存器的ECF被置1,则产生中断响应。CF可通过硬件自动或软件手工置1,但必须软件清0。
8)CCF2/CCF1/CCF0:对应PCA三个模块的标志位。其中CCF0对应PCA模块0,CCF1对应PCA模块1,CCF2对应PCA模块2。当发生匹配或比较时,由硬件给相应位置1,向CPU请求中断。这些位只能通过软件清0。在中断响应时,通过判断各个标志位来确定是哪个模块产生了中断。
另外,外部中断INT2、INT3、INT4和定时器/计数器T2、T3、T4这6个中断源的中断请求标志被隐藏,对用户不可见。当发生中断信号时,相应的中断标志位自动被置1,向CPU申请中断。当中断响应完成后,中断请求标志自动被清0。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。