- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中断函数使用
中断函数的使用:《单片机C语言编程与实例》
中断函数通过使用interrupt关键字和中断编号0-4来实现。
使用该扩展属性的函数声明语法如下:
返回值 函数名 interrupt n
N对应中断源的编号
中断编号告诉编译器中断程序的入口地址,它对应者IE寄存器中的使能位,即IE寄存器中的0位对应着的外部中断0,相应的外部中断0的中断编号是0。
中断编号
中断源
入口地址
0
外部中断0
0003H
1
定时器/计数器0溢出
000BH
2
外部中断1
0013H
3
定时器/计数器1溢出
001BH
4
串行口中断
0023H
当正在执行一个特定任务是,可能有更紧急的事情需要CPU处理,这就涉及到终端优先级,搞优先级的中断可以中断正在处理的底有限级中断程序,因而最好给每种优先级分配不同的寄存器组。在c51中可以使用using制定的寄存器组,using后的变量为0-3的长整数,分别表示51单片机内的四个寄存器组。
中断函数的完整语法及实例如下:
返回值 函数名(【参数】)【模式】【重入】interrupt n [using n]
Unsigned int interruptent;
Unsigned char second;
Void time0(void)interrupt 1 using 2
{
if(++interruptent==4000) %计数到4000
{second++; % 另一个计数器
Interruptent=0; %计数器清零
}
}
要是摸个中断源的申请得到相应,必须保证EA=1和相应的允许位为1
定义中断服务函数的一般形式为::
函数类型 函数名(形式参数表)[interrupt n][using n]
Interrupt 后面的n是中断号,n的取值范围为0-31,编译器从8n+3处产生中断向量。
11.111111
外部中断
例题:通过P1.7口电量发光二极管,然后外部输入一脉冲串,则发光二极管亮、暗交替
#include REGX51.H
Sbit P1_7=P1^7;
Void tnterrupt0()interrupt 0 using 2//定义定时器0
{ P1_7=!P1^7;}
Void main()
{
EA=1;//开启总中断
IT0=1;//外部中断0低电平触发
EX0=1; //外部中断0
P1_7=0;
Do()while(1);
}
2222相套中断
外部中断INT1触发后,启动计数器0,计数达到10次后停止计数,启动定时器1,由定时器1控制定时,由P1.7输出周期为200ms的方波性能好,接受2次中断后关闭方波发生器,P1.7置低。
#include REGX51.H
#define uchar unsigned char
Uchar data a,b,c;
Void tnterrupt0()interrupt 2using 1//定义外部中断1
{ a++;}
Void time0()interrupt 1using 2//定义计数器0
{
TL0=0Xff;
B++;
}
Void time1()interrupt 3using 3//定义计数器1
{
TH1=0x06;
c--;
}
Sbit P1_7=P1^7;
Void main()
{
P1_7=1; //初始化
TCON=0x01; // //外部中断为低电平出触发方式
TMOD=0x27; //启动定时器1和计数器0,工作方式2
IE=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;//关闭总中断
EX0=0; //禁止外部中断
}
C51单片机中断函数
2011-04-20 12:38
开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。
????? 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。
???? (1)中断源:中断请求信号的来源。(8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去))
???? (2)中断响应与返回:CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。期间涉及到CPU响应中断的条件,现场保护,现场
您可能关注的文档
最近下载
- 高考真题分类(2024年)专题三 牛顿运动定律含答案及解析.docx VIP
- 2023初中数学培优竞赛例题+练习 专题33 三角形的四心(学生版+解析版).docx
- 企业级AI+数据治理.pptx VIP
- KEYENCE基恩士DL-EC1A × Beckhoff TwinCAT®3 系列 EtherCAT® 协议 传感器设定指南.pdf
- 妊娠合并病毒性肝炎护理.pptx
- 《人工湿地工程施工与质量检验规程》.docx VIP
- 基础德语 (1基础德语.pdf
- 汉语拼音字母表一年级汉语拼音26字母表.docx VIP
- 技术标(葡萄长廊木架结构施工组织设计).doc VIP
- 《GB/T 9711-2023石油天然气工业 管线输送系统用钢管》.pdf
文档评论(0)