51单片机的外部中断小小了解

CPU与外设之间的数据传输方式有:无条件、查询和中断传送。而中断的效率最佳。
所谓的中断,CPU在运行过程中,暂停正在运行的主程序,而转去处理单片机内部或者外部突发的程序-

中断服务程序,中断处理程序),待中断服务程序处理完之后在返回原来的地方(中断点),继续执行主程序。

中断的产生由中断源通过中断标志传输给CPU进行相关的处理

通常情况下有五个可用的 中断源

外部中断
1、低电平触发方式

2、下降沿触发方式
定时器/计数器中断
串行中断
中断标志有(它们分别在特殊功能寄存器TCON,SCON的相应的位)
一、定时器控制寄存器(TCON)
(1)、IE0和IE1:外部中断请求标志位。当CPU在INT0(P3.2)/INT1(P3.3)引脚上采样到有效的中断请求信号时,IE0和IE1位的硬件置1。在中断响应完成后,再由硬件将该位自动清0.

(2)、IT0和IT1:外部中断请求触发控制位。IT0(ITI)=1时为下降沿触发方式,IT0(ITI)=0时为低电平触发方式。

(3)、TF0和TF1:定时器/计数器溢出中断请求标志位。TF0或TF1=1时,表示对应计数器的技术值已经有全1变成全0,计数器计数溢出,相应的溢出标志位由硬件置1.
(4)、TR0和TR1:定时器和计数器的运行控制位。当TR0或TR1为零时,定时器/计数器停止工作;当TR0TR1为1时计数器

/定时器启动工作。
二、串行口控制寄存器(SCON)
(1)、串行发送中断请求标志位标志,
(2)、串行口接收中断请求标志位



这次是进行简单的外部中断的处理,我们只是进行小小的处理;

通过外部中断来控制发光二极管的。主要用(P3.2)和(P3.3)来链接两个按键,利用外部中断请求触发控制位来实现控制

 
 

#include<reg51.h>
void LedOn(void);
void LedOff(void);
void int0(void);
void int1(void);
//主函数
main()
{
	EX0=1;//允许外部中断0的中断请求
	EX1=1;//允许外部中断1的中断请求
	EA=1;//开房总中断开关
	IT0=1;//设置外部中断0为下降沿触发
	IT1=1;//设置外部中断1为下降沿触发
	P1=0xff;//熄灭发光二极管
	while(1)
	{;}
	}
	void etern0_ISR() interrupt 0//外部中断服务子程序1
	{
	LedOn();
	}
	void extern1_ISR() interrupt 3//外部中断服务子程序3
	{
	LedOff();
	}
	void LedOn()
	{
	P1=0x00;
	}
	void LedOff()
	{
	P1=0xff;
	}


后续在做补充,,,,,,


猜你喜欢

转载自blog.csdn.net/allaoe/article/details/80571071