51单片机外部中断处理源程序

发布时间:2022-12-26  

//---------------------------------------------------

#include

//---------------------------------------------------

//重定义I/0引脚名称

sbit led1=P1^1;

sbit led2=P1^2;

sbit led3=P1^3;

sbit led4=P1^4;

sbit P32=P3^2;

//---------------------------------------------------

//全局变量及位标志定义

bit FINT0;

bit FINT1;

bit FT0;

bit FT1;

bit FT2;

unsigned char T0_10ms;

unsigned char T0_50ms;

unsigned char T0_100ms;

//---------------------------------------------------

//固定函数声明

void int_0(); //外部中断0

void int_1(); //外部中断1

void timer_0(); //定时器中断1

void timer_1(); //定时器中断2

void serial_1(); //串行中断1

void serial_2(); //串行中断2

//---------------------------------------------------

//用户函数声明

void initial(); //初始化

//---------------------------------------------------

void main(){

initial();

while(1){

P32=0; //为了使按'取消'、'确定'键能够产生INT0及INT1中断

//led4=0; //上一句等价于此句

if(FINT0){ //中断0来到要做什么事情

FINT0=0;

led1=0; //INT0中断时点亮

led2=0;

led3=0;

led3=0; //可以在此设一个断点

}

if(FINT1){ //中断1来到要做什么事情

FINT1=0;

led1=1; //INT1中断时熄灭

led2=1;

led3=1;

}

if(FT0){

FT0=0;

if(++T0_10ms>30){

T0_10ms=0;

//定时多少做什么事,未初始化里定时器尚未设置

}

}

}

}

//-------------------------------------------------------------------

void initial(){

EA=1; // CPU所有中断开(IE最高位MSB)

EX0=1; // INT0中断开

IT0=0; // INT0低电平触发(为1则为下降沿触发)

EX1=1; // INT1中断开

IT1=0; // INT1低电平触发(为1则为下降沿触发)


return;

}

//-------------------------------------------------------------------

//INT0中断 由P3.2引脚产生

void int_0() interrupt 0 using 0

{

FINT0=1;

}

//-------------------------------------------------------------------

//INT1中断 由P3.3引脚产生

void int_1() interrupt 2 using 1

{

FINT1=1;

}

//-------------------------------------------------------------------

//定时器0中断

void timer_0() interrupt 1 using 2

{

FT0=1;

}

//-------------------------------------------------------------------

//定时器1中断

void timer_1() interrupt 3 using 3

{

FT1=1;

}

//-------------------------------------------------------------------

//串行中断1

void serial_1() interrupt 4

{

}

//-------------------------------------------------------------------

//定时器2中断

void timer_2() interrupt 5

{

FT2=1;

}

//-------------------------------------------------------------------

1. 项目文件夹:

先关闭其它Project,,新建一个Project,, 保存在EXT_C文件夹,此Project包含的

所有源程序文件都放在这个文件夹,统一编辑修改和编译。

2. 仿真芯片选择:

硬件仿真必须选择特定的CPU,软件仿真只需要选择一般的52系列,这里

选择常用的Atmel 89C52

3. 系统初始化文件Startup.A51:

主要是内存清零,模拟堆栈安排等系统初始化操作,有时需要修改这个宏汇编

文件, 这个Project里没有加入这个文件。

4. 单步、全速运行到中断:

编译后可以用仿真器单步查看运行结果,在判断外部中断0或1到来的地方

设置断点,全速运行,如果有外部中断(P3.2/P3.3变低或有一个下降沿),那么

程序就停在设置的断点处。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    51单片机中的数据类型解析;  数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。数据类型包括原始类型、多元组、记录单元、代数数据类型、抽象数据类型、参考类型以及函数类型。本文......
    【MCS-51中断系统及应用;51单片机中断系统是嵌入式开发中非常重要的一部分。中断是一种特殊的程序执行方式,可以在主程序执行过程中,对外部事件进行及时响应和处理。本文将从中断原理、中断优先级和中断......
    80C51单片机片内与片外程序存储器的选择;大多数51系列单片机内部都配置一定数量的程序存储器ROM。如80C51芯片内有4KB掩模ROM存储单元,AT89C51芯片内部配置了4KB Flash......
    这条转移指令,便转向其他地方去继续执行中断服务程序。   数据存储器   数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个......
    STM32的中断机制 stm32中断方式有几种;STM32的中断机制stm32中断方式有几种 中断机制在单片机中是很重要的环节,中断代码默认地从上往下执行,遇到特定条件或特定语句,将按......
    51单片机到底是什么跟单片机有什么关系; 的种类繁多且应用广泛,如今我们的生活中大大小小的应用都离不开。51作为单片机中应用最广泛的一类,市场需求量也是非常的大。那么到底是什么,跟单片机......
    51单片机定时器中断_51单片机中断系统_51单片机扩展中断的四种方法;  中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使单片机去处理中断......
    51单片机中断用法实例解析;51单片机共有5个中断源,分别为: 外部中断0 定时器0中断 外部中断1 定时器1中断 串口中断 每一个中断都对应一个中断向量,中断向量表如下所示: 2什么是中断......
    信号表示读取数据,WR信号表示写入数据,ALE信号用于锁存地址信息。通过控制总线,CPU可以对存储器、IO等设备进行操作。 二、总线基本原理 1. 存储器映射 51单片机中的存储器包括RAM和ROM两种......
    各种通用指令和算术运算,并且具有很好的中断处理能力。 (2) 存储器:51单片机内部具有RAM、ROM、EEPROM三种类型的存储器。其中,RAM 可以用于存放变量、栈和寄存器等数据;ROM 存储......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>