C51单片机的中断设置

C51单片机的中断设置,第1张

/ 外部中断参考程序

/

函数名:外部中断INT初始化函数

调 用:INT_init();

参 数:无

返回值:无

结 果:启动外部中断INT1、INT0中断,设置中断方式

备 注:

//

void INT_init (void){

EA = 1; //中断总开关

EX1 = 1; //允许外部中断1中断

EX0 = 1; //允许外部中断0中断

IT1 = 1; //1:下沿触发 0:低电平触发

IT0 = 1; //1:下沿触发 0:低电平触发

}

//

/

函数名:外部中断INT1中断处理程序

调 用:[外部引脚INT1中断处理]

参 数:无

返回值:无

结 果:用户处理外部中断信号

备 注:

//

void INT_1 (void) interrupt 2 using 2{ //切换寄存器组到2

//用户函数内容

}

//

/

函数名:外部中断INT0中断处理程序

调 用:[外部引脚INT0中断处理]

参 数:无

返回值:无

结 果:用户处理外部中断信号

备 注:

//

void INT_0 (void) interrupt 0 using 2{ //切换寄存器组到2

//用户函数内容

}

//

- 程序模块

/

程序名: 外部中断程序实例

编写人: 杜洋 

编写时间:2009年9月24日

硬件支持:STC12C2052AD 外部12MHZ晶振

接口说明:

修改日志:

NO1-

/

说明:

两个按键分别控制LED灯的开关。

INT0接口的按键按下时开灯。

INT1接口的按键按下时关灯。

//

#include <REG51h> //51头文件

sbit LED = P1 ^ 0; //定义LED灯

//注:外部中断固定与P32和P33复用,无需定义这两个接口。

/

函数名:外部中断INT初始化函数

调 用:INT_init();

参 数:无

返回值:无

结 果:启动外部中断INT1、INT0中断,设置中断方式

备 注:

//

void INT_init (void){

EA = 1; //中断总开关

EX1 = 1; //允许外部中断1中断

EX0 = 1; //允许外部中断0中断

IT1 = 1; //1:下沿触发 0:低电平触发

IT0 = 1; //1:下沿触发 0:低电平触发

}

//

/

函数名:外部中断INT1中断处理程序

调 用:[外部引脚INT1中断处理]

参 数:无

返回值:无

结 果:用户处理外部中断信号

备 注:

//

void INT_1 (void) interrupt 2 using 2{ //切换寄存器组到2

LED = 1; //关灯

}

//

/

函数名:外部中断INT0中断处理程序

调 用:[外部引脚INT0中断处理]

参 数:无

返回值:无

结 果:用户处理外部中断信号

备 注:

//

void INT_0 (void) interrupt 0 using 2{ //切换寄存器组到2

LED = 0; //开灯

}

//

//

void main(void){

INT_init(); //外部中断初始化

while(1){

//其他程序

}

}

//

参考资料:

单片机编程宝典

>

51看1、先初始化,设置外部中断、串口工作模式,开中断;2、写中断服务程序;//--------------------------------------------///初始化//--------------------------------------------/voidinit(void){TMOD|=0x20;//工作模式SCON=0x50;TH1=0xfd;//定时器1初值,设置波特率TL1=0xfd;//波特率为9600TR1=1;//启动定时器1ES=1;//串口中断允许工作于方式1IT0=1;//外部中断0下降沿触发方式IT1=1;//外部中断1下降沿触发方式EX0=1;//开外部中断0EX1=1;//开外部中断1EA=1;//开总中断}////中断服务程序//voidint0(void)interrupt0//外部0中断服务{}//--------------------------------------------//复位中断//--------------------------------------------voidint1(void)interrupt2//外部1中断服务{}//--------------------------------------------/voiduart(void)interrupt4//串口中断{uchar;if(RI)//接收{RI=0;ud=SBUF;//取收到的字节}elseTI=0;//发送完成}

初始化,就像是100赛跑前的准备工作,这个过程你要配置中断,如配置工作方式(我以什么方式跑)等。这样中断一直处于等待的状况(运动员等待哨响),一旦有中断请求信号(哨响),便立即进入中断服务程序(运动员跑起来了)。。。明白吗

以上就是关于C51单片机的中断设置全部的内容,包括:C51单片机的中断设置、合泰单片机的中断优先级如何设置、中断初始化配置方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9862593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存