1、打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。
2、导入51单片机的头文件,否则后续使用的端口都会出现未定义的情况,然后在主函数中,使得EA=1,即总中断允许,打开中断的总开关。
3、分别打开外部中断0和外部中断1的分开关,即EX0=1和EX1=1,同时设置中断的触发方式为跳沿触发,可以避免增加额外的电路。
4、如果不添加别的代码的话,此时这两个中断的优先级是外部中断0>外部中断1,如果一个中断正在执行来了另外一个中断是不会打断前一个中断的执行过程的,这里需要为中断设置优先级。
5、编写完主函数后,我们要为两个中断分别编写对应的中断服务函数,才能在中断发生后产生相应的响应,注意外部中断0和外部中断1的中断号分别是0和2。
6、然后到Project菜单中的output项目中勾选Create Hex File,OK后点击编译按钮,如果没有错误,即可生成可以烧录或者仿真的.hex文件。
7、最后把生成出的.hex烧入进51单片机进行运行或者装载入Proteus仿真系统进行仿真。
首先你要开总中断EA其次你才是开启五个小中断ET0 ET1 ES INT0 INT1
只要你对应中断的接口接受到有效电平它就启动
设置这些优先级
不过我的建议是 刚学习中断 基本是一个中断没什么优先级好说的 只有你对一个中断玩熟了 才慢慢设置多个中断 对吧,哥们
这要看单片机的IO端口是否支持外部中断,这要查芯片资料,中断需要专门的格式,比如INT0引脚的外部中断:void EX_INT0() interrupt 0 // INT0外部中断模式 0
{
//中断代码
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)