微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机的中断函数

51单片机的中断函数

时间:11-23 来源:互联网 点击:
中断使用interrupt 关键字和终端编号0-4来实现:
返回值 函数名 interrupt n
n对应中断源的编号,中断编号告诉中断器中断程序的入口地址,它对应着IE寄存器中的使能位,即IE寄存器中的0位对应着外部中断0。
8051单片机的中断源以及终端编号如下:

中断编号中断源入口地址
0外部中断00003H
1定时器/计数器0 溢出000BH
2外部中断10013H
3定时器/计数器1 溢出001BH
4串行口中断0023H

在51系列单片机中,有的单片机多达32哥中断源,所以终端编号是0-31.
当正在执行一个特定的任务时,可能有更紧急的事情需要CPU处理,这就涉及到了中断优先级。高优先级中断可以中断正在处理的低优先级中断程序,因而最好给每种优先级程序分配不同的寄存器组。在C51中可使用using指定寄存器组,using后的变量为0-3的常整数,分别表示51单片机内的4哥寄存器组。中断函数的完整语法如下:
返回值 函数名([参数])[模式][重入]interrupt n[usingn]
unsigned int interruptcnt;
unsigned char second;
void timer0(void) interrupt 1 using 2
if(++interruptcnt==4000) // 计数到4000
second++; //另一个计数器
interruptcnt=0; //计数器清零

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top