当前位置: 首页 > wzjs >正文

仿制网站的后台广告商对接平台

仿制网站的后台,广告商对接平台,wordpress 月经贴,星月教你做网站的文档⚙️ ​一、STC8G中断源列表(共22个)​​ ​中断源​​中断号​​向量地址​​触发方式​​优先级限制​​标志清除方式​​外部中断0 (INT0)​​00x0003下降沿/低电平可配置 (0-3)IE0 0;(手动清零)​定时器0中断 (T0)​​10x00…

⚙️ ​一、STC8G中断源列表(共22个)​

中断源中断号向量地址触发方式优先级限制标志清除方式
外部中断0 (INT0)​00x0003下降沿/低电平可配置 (0-3)IE0 = 0;(手动清零)
定时器0中断 (T0)​10x000B计数器溢出可配置 (0-3)TF0 = 0;(手动清零)
外部中断1 (INT1)​20x0013下降沿/低电平可配置 (0-3)IE1 = 0;(手动清零)
定时器1中断 (T1)​30x001B计数器溢出可配置 (0-3)TF1 = 0;(手动清零)
串口1中断 (UART1)​40x0023数据发送/接收完成可配置 (0-3)RI = 0; TI = 0;(手动清零)
ADC转换完成中断50x002BADC转换结束可配置 (0-3)ADC_CONTR &= ~0x20;(写1清除)
低电压检测中断 (LVD)​60x0033电压低于阈值可配置 (0-3)`PCON
PCA/CCP/PWM中断70x003B捕获/比较/溢出可配置 (0-3)CCF0 = 0;(手动清零)
串口2中断 (UART2)​80x0043数据发送/接收完成可配置 (0-3)RI2 = 0; TI2 = 0;(手动清零)
SPI中断90x004B数据传输完成可配置 (0-3)SPSTAT = 0xC0;(写1清除)
外部中断2 (INT2)​100x0053仅下降沿固定优先级0(最低)​硬件自动清除
外部中断3 (INT3)​110x005B仅下降沿固定优先级0(最低)​硬件自动清除
定时器2中断 (T2)​120x0063计数器溢出固定优先级0(最低)​TF2 = 0;(手动清零)
外部中断4 (INT4)​130x0083仅下降沿可配置 (0-3)硬件自动清除
串口3中断 (UART3)​140x008B数据发送/接收完成固定优先级0(最低)​RI3 = 0; TI3 = 0;(手动清零)
串口4中断 (UART4)​150x0093数据发送/接收完成固定优先级0(最低)​RI4 = 0; TI4 = 0;(手动清零)
定时器3中断 (T3)​160x009B计数器溢出固定优先级0(最低)​TF3 = 0;(手动清零)
定时器4中断 (T4)​170x00A3计数器溢出固定优先级0(最低)​TF4 = 0;(手动清零)
I²C中断180x00C3传输完成/地址匹配可配置 (0-3)I2CMSST = 0;(手动清零)

​💡​:

  1. 固定优先级0的中断​(如INT2/INT3/T2/UART3等)不可被其他中断打断,且自身无法嵌套。
  2. 电平触发外部中断​(INT0/INT1)需确保信号恢复高电平后再清除标志,否则可能重复触发。

🔧 ​二、中断优先级与嵌套机制

1. 四级优先级配置

STC8G支持4级优先级​(0最低,3最高),通过组合 ​IP​(地址 0xB8)和 ​IPH​(地址 0xB7)实现:

组合值优先级
IP.X=0, IPH.X=00(最低)
IP.X=1, IPH.X=01
IP.X=0, IPH.X=12
IP.X=1, IPH.X=13(最高)
// 设置外部中断0(INT0)为优先级3(最高)
PX0 = 1;   // IP.0 = 1
PX0H = 1;  // IPH.0 = 1 → 二进制11 = 优先级3// 设置定时器0(T0)为优先级2
PT0 = 0;   // IP.2 = 0
PT0H = 1;  // IPH.2 = 1 → 二进制10 = 优先级2// 串口1设为优先级1: IP.4=1, IPH.4=0
PS = 1;    // IP.4 = 1
PSH = 0;   // IPH.4 = 0 → 二进制01 = 优先级1// ADC设为优先级0: IP.5=0, IPH.5=0
PADC = 0;  // IP.5 = 0
PADCH = 0; // IPH.5 = 0 → 二进制00 = 优先级0
 ​2. 使能中断
EA = 1;      // 总中断使能(必须开启!)
EX0 = 1;     // 允许外部中断0
ET0 = 1;     // 允许定时器0中断
 ​3. 配置中断触发方式
IT0 = 1;     // 设置INT0为下降沿触发(0=低电平触发)
4. 中断嵌套规则
  • 高优先级可打断低优先级​:若T0(优先级2)正在执行,INT0(优先级3)可中断其流程。
  • 同级中断按查询顺序执行​:同级中断同时发生时,按中断号从小到大执行(如INT0早于T0)。
  • 最低级中断不可嵌套​:INT2/INT3/INT4执行时不可被任何中断打断。

⚡ ​三、中断服务程序(ISR)编写规范

1. 核心要求
  • 短小精悍​:ISR中只做关键操作(如设标志、清中断),复杂逻辑交由主循环处理。
  • 无返回值/参数​:函数声明为 void func() interrupt n [using m]
  • 避免阻塞操作​:禁止使用 printf、长延时等函数
void ISR_Name() interrupt n [using m]
  • n​:中断号(0~21),不可省略
  • m:寄存器组编号(0~3),用于避免寄存器冲突(可选)
  • 执行原则​:无参数/返回值,使用volatile保护全局变量
2. 关键步骤

以定时器0中断为例:

volatile uint8_t timer_flag = 0;  // 全局标志位,用volatile修饰防优化void Timer0_ISR() interrupt 1 {TF0 = 0;                     // 必须手动清除中断标志TH0 = 0xFC; TL0 = 0x66;      // 重装初值(1ms@11.0592MHz)timer_flag = 1;              // 通知主循环处理任务
}

3.各中断源标志位清除方法

中断源标志位清除方式注意事项C语言示例
定时器0/1/2/3/4TF0/TF1/TF2/TF3/TF4写0清除定时器溢出中断需立即清除,否则持续触发TF0 = 0;
外部中断0/1IE0/IE1写0清除(部分型号需检测下降沿后清除)电平触发时需确保信号已恢复高电平IE0 = 0;
外部中断2/3/4IE2/IE3/IE4自动清除(响应后硬件清零)仅支持下降沿触发,优先级固定为0无需手动清除
串口1/2/3/4RI/TI写0清除接收/发送中断需分别清除RI = 0; TI = 0;
ADC转换完成ADC_FLAG写1清除(ADC_CONTR &= ~0x20;需先读取结果再清除标志ADC_CONTR &= ~0x20;
SPI传输完成SPIF读SPI状态寄存器后写1清除清除前需读取数据寄存器SPSTAT = 0xC0;(清SPIF和WCOL)
I²C中断SI写0清除(I2CMSST = 0;需处理状态码后清除I2CMSST = 0;
PWM/CCP中断CCF0/CCF1写0清除PCA模块捕获/比较中断CCF0 = 0;
低电压检测(LVD)​LVDF写1清除(`PCON= 0x20;`)需在ISR中清除,否则持续唤醒

🛠️ ​四、常用中断应用实例

1. 外部中断(按键控制电机)​
sbit K1 = P3^2;                       // 按键接INT0(P3.2)
void INT0_ISR() interrupt 0 {EX0 = 0;                          // 关闭中断防抖动delay_ms(10);                     // 消抖if(K1 == 0) motor_run(FORWARD);   // 执行正转EX0 = 1;                          // 重启中断
}
2. 定时器中断(5秒自动停电机)​
volatile uint16_t count = 0;
void Timer1_ISR() interrupt 3 {TF1 = 0;if(++count >= 5000) { // 5s(中断周期1ms)motor_stop();count = 0;TR1 = 0;         // 关闭定时器}
}
// 主循环中按键触发:TR1=1, count=0;
3. ADC中断(实时采集光照)​
uint16_t adc_value = 0;
void ADC_ISR() interrupt 5 {ADC_CONTR &= ~0x10; // 清中断标志adc_value = ADC_RES; // 读取结果
}

⚠️ ​五、开发注意事项

  1. 中断初始化流程​:
    • 配置中断触发方式(如IT0=1:下降沿触发)。
    • 使能中断(EX0=1)。
    • 设置优先级(可选)。
    • 开启总中断(EA=1)。
  2. 共享变量保护​:
    • 跨ISR与主循环的全局变量需加 volatile 并关中断操作:
      EA = 0;                 // 关中断
      temp = sensor_data;     // 安全读取
      EA = 1;                 // 开中断
  3. 低功耗设计​:
    • 休眠前启用中断唤醒:
      PCON |= 0x01;           // 进入空闲模式
      while(!timer_flag);     // 等待中断唤醒

📊 ​六、中断优化技巧

场景优化策略
高频中断ISR内仅设标志,主循环处理逻辑
实时性要求高使用最高优先级 + 快速硬件操作(如位操作)
多中断冲突合理分配优先级,避免同级中断阻塞
低功耗应用在ISR中唤醒系统,减少主循环轮询

通过合理配置中断系统,STC8G可胜任电机控制、环境监测、多机通信等复杂场景。建议结合STC-ISP工具的 ​代码生成功能​ 初始化寄存器,避免手动配置错误。

http://www.dtcms.com/wzjs/241850.html

相关文章:

  • 网站新闻更新怎么设计安卓优化大师历史版本
  • 如何增加网站会员搜狗排名优化工具
  • php网站模板免费下载自媒体营销代理
  • 淘宝上做网站SEO靠谱吗线上运营的5个步骤
  • 给企业做网站用什么程序小红书搜索指数
  • 做的比较好的政府网站seo推广平台服务
  • 网站建设每年需要交多少钱百度seo正规优化
  • 免费软件app下载大全网站推广排名优化
  • 做商业网站要交税吗百度官方推广平台
  • wordpress 子主题开发北京seo服务
  • 企业网址免费注册网站seo课设
  • 给网站做推广一般花多少钱游戏推广合作
  • 电子产品商务网站模板百度纯净版首页入口
  • 深圳 网站设计百度关键词指数工具
  • 闵行区是郊区吗搜索引擎优化的流程是什么
  • 济南外贸网站建设广告公司推广平台
  • 如何做h5 网站刷百度指数
  • b2b旅游电子商务网站有哪些百度seo如何快速排名
  • app代理商丘seo公司
  • 8大营销工具指的是哪些汕头最好的seo外包
  • 济南企业网站推广方法上海推广系统
  • 抖音代运营可靠吗安全吗seo课程总结
  • 那个网站做推广比较好seo网络营销案例分析
  • 博山做网站公司公司网页制作教程
  • 资料库网站应该怎么做重庆seo公司排名
  • 网站开发与设计的实训场地5188关键词挖掘工具
  • 官方网站建设百度助手下载安装
  • 网站开发职业要求seo基础知识培训
  • 左侧导航栏网站模板太原好的网站制作排名
  • 外贸网站管理系统优化营商环境的意义