1 / 7
文档名称:

中断函数的使用.doc

格式:doc   大小:42KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

中断函数的使用.doc

上传人:zbfc1172 2019/1/10 文件大小:42 KB

下载得到文件列表

中断函数的使用.doc

文档介绍

文档介绍:中断函数通过使用interrupt关键字和中断编号0-4来实现。使用该扩展属性的函数声明语法如下:返回值函数名interruptnN对应中断源的编号中断编号告诉编译器中断程序的入口地址,它对应者IE寄存器中的使能位,即IE寄存器中的0位对应着的外部中断0,相应的外部中断0的中断编号是0。中断编号中断源入口地址0外部中断00003H1定时器/计数器0溢出000BH2外部中断10013H3定时器/计数器1溢出001BH4串行口中断0023H当正在执行一个特定任务是,可能有更紧急的事情需要CPU处理,这就涉及到终端优先级,搞优先级的中断可以中断正在处理的底有限级中断程序,因而最好给每种优先级分配不同的寄存器组。在c51中可以使用using制定的寄存器组,using后的变量为0-3的长整数,分别表示51单片机内的四个寄存器组。中断函数的完整语法及实例如下:返回值函数名(【参数】)【模式】【重入】interruptn[usingn]Unsignedintinterruptent;Unsignedcharsecond;Voidtime0(void)interrupt1using2{if(++interruptent==4000)%计数到4000{second++;%另一个计数器Interruptent=0;%计数器清零}}要是摸个中断源的申请得到相应,必须保证EA=1和相应的允许位为1定义中断服务函数的一般形式为::函数类型函数名(形式参数表)[interruptn][usingn]Interrupt后面的n是中断号,n的取值范围为0-31,编译器从8n+3处产生中断向量。:,然后外部输入一脉冲串,则发光二极管亮、暗交替#include<>SbitP1_7=P1^7;Voidtnterrupt0()interrupt0using2//定义定时器0{P1_7=!P1^7;}Voidmain(){EA=1;//开启总中断 IT0=1;//外部中断0低电平触发 EX0=1; //外部中断0P1_7=0;Do()while(1);}2222相套中断外部中断INT1触发后,启动计数器0,计数达到10次后停止计数,启动定时器1,由定时器1控制定时,,接受2次中断后关闭方波发生器,。#include<>#defineucharunsignedcharUchardataa,b,c;Voidtnterrupt0()interrupt2using1//定义外部中断1{a++;}Voidtime0()interrupt1using2//定义计数器0{TL0=0Xff;B++;}Voidtime1()interrupt3using3//定义计数器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;TR