采用中断方式编写c语言程序,c语言编写51单片机中断程序,执行过程是怎样的?...

Q:c语言编写51单片机中断程序,执行过程是怎样的?

例如程序:

#include

void main(void)

{

EA=1;      //开放总中断

EX0=1;     //允许使用外中断

IT0=1;    //选择负跳变来触发外中断

P0=0xff;         //关闭所有P0口的LED灯

while(1); //无限循环,

}

void it0(void) interrupt 0 using 0 //外中断0的中断编号为0

{

P0=~P0;  //每产生一次中断请求,P0取反一次。

}

当有中断时,这个程序的执行过程是怎样的???

A1:从main开始,开放总中断,允许使用外中断,选择负跳变来触发外中断,到这时负跳变没来没就一直while(1),等待。来了后执行

void it0(void) interrupt 0 using 0 //外中断0的中断编号为0

{

P0=~P0;  //每产生一次中断请求,P0取反一次。

}

A2:有中断时直接跑到中断服务去

A3:CPU会一直在检测是否有中断请求的。当收到中断请求EX 时,进行软件设置,开启总中断EA ,再设置中断的触发方式IT。

转载自:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=220199

外部中断定时器c语言程序详解

利用外部中断0,定时器0从数码管到流水灯显示

#include "reg52.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include "intrins.h"

11708ac0bd8fd17d6f0ac8cd38f0e5bb.png

#define uint unsigned int

#define uchar unsigned char

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值