51单片机int0中断初始化,要完成哪三个 *** 作

51单片机int0中断初始化,要完成哪三个 *** 作,第1张

#include "reg51h"

void int0(void) interrupt 0

{

}

void main(void)

{

IT0=1;

EX0=1;

//EA=1;

}

#include <reg51h>

void InitTimer1(void)

{

TMOD = 0x10;

TH1 = 0x3C;

TL1 = 0x0B0;

EA = 1;

ET1 = 1;

TR1 = 1;

}

void main(void)

{

InitTimer1();

}

void Timer1Interrupt(void) interrupt 3

{

TH1 = 0x3C;

TL1 = 0x0B0;

//add your code here!

}

由于“interrupt 1”的标识,编译器会将“a()”编译为对应中断1的中断入口地址,也就是在中断1的中断向量入口处放置类似“jump a”的汇编指令,并在flash其他合适的地方链接“a()”的执行代码。

中断初始化中的中断势能打开后,外设开始工作,当中断条件满足后,“硬件”使PC自动跳转到中断1的入口,并跳转到a执行。在进出中断的时候,会有现场的保护和恢复,这部分代码会有编译器生成。

有错, 指令MOV IE;#84与这两条指令SETB EX1; SETB EA ;效果是一样的!!!

ORL IP,#04H;与 SETB PX1;效果一样!!!

ANL TCON ,#0FBH与CLR IT1效果一样!!!

你是初始化外部中断1,低态动作。

TMOD工作方式

TCON一般不用设置

EA总中断

ET0定时器中断

TH0设置中断时间

TL0

TR0工作方式选择为定时器

就这些内容

当某中断产生而且被CPU响应,主程序被中断,接下来将执行如下 *** 作:

1 当前正被执行的指令全部执行完毕;

2 PC值被压入栈;

3 现场保护;

4 阻止同级别其他中断;

5 将中断向量地址装载到程序计数器PC;

6 执行相应的中断服务程序。

中断服务程序ISR完成和该中断相应的一些 *** 作。ISR以RETI(中断返回)指令结束,将PC值

从栈中取回,并恢复原来的中断设置,之后从主程序的断点处继续执行。

以上就是关于51单片机int0中断初始化,要完成哪三个 *** 作全部的内容,包括:51单片机int0中断初始化,要完成哪三个 *** 作、AT89C51单片机,定时器1,50ms中断,用c语言写出初始化程序和中断函数程序、在c51单片机 void main () { 中断初始化} while; void a() in等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9642194.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存