单片机_中断函数调用

单片机_中断函数调用

ID:14516336

大小:47.00 KB

页数:4页

时间:2018-07-29

单片机_中断函数调用_第1页
单片机_中断函数调用_第2页
单片机_中断函数调用_第3页
单片机_中断函数调用_第4页
资源描述:

《单片机_中断函数调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、中断函数的使用:《单片机C语言编程与实例》中断函数通过使用interrupt关键字和中断编号0-4来实现。使用该扩展属性的函数声明语法如下:返回值函数名interruptnN对应中断源的编号中断编号告诉编译器中断程序的入口地址,它对应者IE寄存器中的使能位,即IE寄存器中的0位对应着的外部中断0,相应的外部中断0的中断编号是0。中断编号中断源入口地址0外部中断00003H1定时器/计数器0溢出000BH2外部中断10013H3定时器/计数器1溢出001BH4串行口中断0023H当正在执行一个特定任务是,可能有更紧急的事情需要CPU处理,这就涉及到终端优先级,搞优先级的中断可以中断正在处理的底

2、有限级中断程序,因而最好给每种优先级分配不同的寄存器组。在c51中可以使用using制定的寄存器组,using后的变量为0-3的长整数,分别表示51单片机内的四个寄存器组。中断函数的完整语法及实例如下:返回值函数名(【参数】)【模式】【重入】interruptn[usingn]Unsignedintinterruptent;Unsignedcharsecond;Voidtime0(void)interrupt1using2{if(++interruptent==4000)%计数到4000{second++;%另一个计数器Interruptent=0;%计数器清零}}要是摸个中断源的申请得到相

3、应,必须保证EA=1和相应的允许位为1定义中断服务函数的一般形式为::函数类型函数名(形式参数表)[interruptn][usingn]Interrupt后面的n是中断号,n的取值范围为0-31,编译器从8n+3处产生中断向量。11.111111外部中断例题:通过P1.7口电量发光二极管,然后外部输入一脉冲串,则发光二极管亮、暗交替#includeSbitP1_7=P1^7;Voidtnterrupt0()interrupt0using2//定义定时器0{P1_7=!P1^7;}Voidmain(){EA=1;//开启总中断IT0=1;//外部中断0低电平触发EX0=1

4、;//外部中断0P1_7=0;Do()while(1);}2222相套中断外部中断INT1触发后,启动计数器0,计数达到10次后停止计数,启动定时器1,由定时器1控制定时,由P1.7输出周期为200ms的方波性能号,接受2次中断后关闭方波发生器,P1.7置低。#include#defineucharunsignedcharUchardataa,b,c;Voidtnterrupt0()interrupt2using1//定义外部中断1{a++;}Voidtime0()interrupt1using2//定义计数器0{TL0=0Xff;B++;}Voidtime1()inte

5、rrupt3using3//定义计时器1{TH1=0x06;c--;}SbitP1_7=P1^7;Voidmain(){P1_7=1;//初始化TCON=0x01;//外部中断为低电平出触发方式TMOD=0x27;//启动定时器1和计数器0,工作方式2IE=0x8B;//开中断a=0;do{}while(a!=1);//等待外部中断P1_7=!P1_7;//取反TL0=0xFF;//初值TH0=0x06;//初值b=0;TR0=0;TR1=1;Do{C=0xC8;Do{}while(c!=0);P1_7=!P1_7;}while(a!=3);TR1=0;P1_7=0;EA=0;//关闭总中断

6、EX0=0;//禁止外部中断}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。