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仿真系统进行仿真。
51单片机总共有5个中断源,分别为:
外部中断0(int0),对应中断号是0,
中断入口地址0003h
定时/计数器0(t1),对应中断号1
,中断入口地址000bh
外部中断1(int1),中断号2
入口地址0013h
定时/计数器1(t1)中断号3
入口地址001bh
串行口中(ri/ti)中断号4
入口地址0023h
标准51有5个中断向量(不算复位),分别是外部中断0,定时器0,外部中断1,定时器1,串行口;总共有6个中断标志,串行口的发送和接受共享一个中断向量。\x0d\x0a 各个终端标志产生情况如下:\x0d\x0a 外部中断可以设置边沿触发或者电平触发,边沿触发进入中断程序后硬件自动清中断标志,电平触发需要软件清标志位;\x0d\x0a 定时器T0,T1计数溢出产生中断,进入中断程序硬件自动清标志位;\x0d\x0a 串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清标志位;\x0d\x0a\x0d\x0a 以上是标准51的中断系统,52由于多了一个T2定时器(T2定时器跟T0,T1功能相差很大,T2要强大很多),因此多了一个中断向量2个中断标志(溢出中断和T2外部中断),T2中断标志必须由软件清除标志位\x0d\x0a 中断使能位于IE寄存器\x0d\x0a 各中断标志位于相应的模块控制寄存器里面\x0d\x0a 模块 位地位 位名称 说明\x0d\x0a T1 TCON.7 TF1 T1溢出标志\x0d\x0a T0 TCON.5 TF0 T0溢出标志\x0d\x0a T2 T2CON.7 TF2 T2溢出中断标志 \x0d\x0a T2CON.6 EXF2 T2外部中断标志\x0d\x0a 外部中断1 TCON.3 IE1 外部中断1标志\x0d\x0a 外部中断0 TCON.1 IE0 外部中断0标志\x0d\x0a 串行口 SCON.1 TI 发送中断标志\x0d\x0a SCON.0 RI 接受中断标志
所谓的外部中断1中断类型号:
这是用C语言编程才有这个问题,而用汇编语言编程就没有这个问题了。
对于C语言编程,中断号是按这个顺序排列的,即用在interrupt 后面的类型号
外部中断0 ,是0号
定时器0 ,是1号
外部中断1,是2号
定时器1,是3号
串口UART,是4号
这是51单片机的。52单片机中断源还要多。
MCS-51单片机有两个中断优先级。
在51单片机中,有2个可编程定时/计数器·5个中断源,2个优先级,21个专用寄存器。另有8位CPU的4kbytes程序存储器(ROM) ,128bytes的数据存储器(RAM),32条I/O口线·111条指令,大部分为单字节指令。
优先级设定方法:
1、IP的状态由软件设定,某位设定为“1”,则相应的中断源为高优先级中断;某位设定为“0”,则相应的中断源为低优先级中断。
2、同一优先级中的中断申请不止一个时,则有中断优先权排队问题。
3、同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列从高到低为外部中断0;定时/计数器0;外部中断1;定时/计数器1;串行口。
4、每个中断源的中断优先级都是由中断优先级寄存器(IP)中的相应位的状态来规定的。
扩展资料:
51系列是基本型,包括8051、8751、8031、8951.这四个机种区别,仅在于片内程序储存器。8051为4KBROM,8751为4KBEPROM,8031片内无程序储存器,8951为4KBEEPROM。
其他性能结构一样,有片内128B RAM,2个16位定时器/计数器,5个中断源。其中,8031性价比较高,又易于开发,目前应用面广泛。
MCS-51采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
参考资料来源:百度百科-MCS-51单片机
mcs51单片机中断号的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:mcs51单片机中断号