51单片机外部中断详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.外部中断相关寄存器

1.定时器/计数器控制寄存器控制寄存器(TCON)

IT0:外部中断0触发方式控制位

当IT0=0时,为电平触发方式(低电平有效)

当IT0=1时,为边沿触发方式(下降沿有效)

IT1:外部中断1触发方式控制位

当IT1=0时,为电平触发方式(低电平有效)

当IT1=1时,为边沿触发方式(下降沿有效)

2.中断允许控制寄存器(IE)

EX0:外部中断0允许位;

EX1:外部中断1允许位;

EA :CPU中断允许(总允许)位。

二.外部中断的处理过程

1、设置中断触发方式,即IT0=1或0,IT1=1或0

2、开对应的外部中断,即EX0=1或EX1=1;

3、开总中断,即EA=1;

4、等待外部设备产生中断请求,即通过,口连接外部设备产生中断

5、中断响应,执行中断服务函数

三.程序编写

要求:通过两位按键连接外部中断0和1,设定外部中断0为下降沿触发方式,外部中断1为低电平触发方式,按键产生中断使数字加减,用一位共阳极数码管来显示数值。

目的:感受外部中断对程序的影响,体会低电平触发和下降沿触发的区别。

#include<>#define uint unsigned int #define uchar unsigned char uchar code dat[]={0xc0, 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint num;

void main()

{

EA=1; //开总中断

IT0=1; //下降沿触发

IT1=0; //低电平触发

EX0=1; //外部中断0允许

EX1=1; //外部中断1允许

while(1)

{

P0=dat[num%10];

}

}

{

void plus() interrupt 0//外部中断0

{

EX0=0;

num++;

EX0=1;

}

void minus() interrupt 2//外部中断1 {

EX1=0;

num--;

EX1=1;

}

相关文档
最新文档