STC12C5A60S2笔记6(中断)

1. 基本特性

  1) 中断源

   STC12C5A60S2共有十个中断源,每个中断源可设置4类优先级;当相同优先级下各中断优先级由高到低依次如下:

    1.1)INT0(外部中断0) 中断向量地址 0003H, C语言编程:void Int0_Routeine(void)  interrupt0;

    1.2)T0(T0溢出中断)中断向量地址 000BH,C语言编程:void Timer0_Rountine(void) interrupt1;

    1.3)INT1(外部中断1)中断向量地址0013H,C语言编程:void Int1_Routine(void) interrupt2;

    1.4)T1(T1溢出中断)中断向量地址 001BH,C语言编程:void Timer1_Rountine(void) interrupt3;

    1.5)UART1(串口1)中断向量地址 0023H, C语言编程:void UART_Routine(void) interrupt4;

    1.6)ADC(AD转换中断)中断向量地址 002BH,C语言编程:void ADC_Routine(void) interrupt5;

    1.7)LVD(低压检测中断)中断向量地址 003BH,C语言编程:void LVD_Routine(void) interrupt6;

    1.8)PCA(PCA中断)中断向量地址 003BH,C语言编程:void PCA_Routine(void) interrupt7;

    1.9)UART2(串行口2)中断向量地址 0043H,C语言编程:void UART_Routine(void) interrupt8;

    1.10)SPI(SPI中断)中断向量地址 004BH,C语言编程:void SPI_Routine(void) interrupt9;

 

  2) 寄存器

    2.1)IE、IE2 中断允许控制寄存器,确定CPU对中断源的开放或屏蔽;

    2.2)IP、IP2、IPH、IP2H 中断优先级控制寄存器,确定各个中断源的优先级0~3级;

    2.3)TCON,定时/计数器T0、T1、外部中断INT0和INT1的控制寄存器;

    2.4)SCON/S2CON,串口控制寄存器,包括串口接收和发送中断标识位

    2.5)PCON,低压检测中断寄存器

    2.6)ADC_CONTR,ADC控制寄存器,标示AD转换完成时的中断允许

 

2. 典型例子

复制代码
#include<reg51.h>

unsigned int g_status = 0;

void exint0() interrupt 0 //外部中断0回调
{
    if(0 == g_status){
        P0 = 0xfe;
        g_status = 1;
    }else{
        P0 = 0xff;
        g_status = 0;
    }
}

void main()
{
    IT0 = 1; //采用电平触发方式,即输入低电平时触发
    EX0 = 1; //允许外部中断INT0
    EA  = 1; //允许开放中断

    P0 = 0xfe;

    while(1);
}
复制代码

 

posted @   Fredric_2013  阅读(9028)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示