标题:
简单的单片机外部中断程序(给P3.2管脚低电平,led会显示取反状态)
[打印本页]
作者:
15942379927
时间:
2018-5-30 21:33
标题:
简单的单片机外部中断程序(给P3.2管脚低电平,led会显示取反状态)
很简单的外部中断程序,希望对正在学习的人有帮助
#include<reg52.h>
sbit k3=P3^2; //定义按键K3
sbit led=P2^0; //定义P20口是led
void delay(unsigned int i) //延时函数,i=1时,大约延时10us
{
while(i--);
}
void Int0Init() //设置外部中断1
{
//设置INT0
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许。
EA=1;//打开总中断
}
void main()
{
Int0Init(); // 设置外部中断0
while(1);
}
void Int0() interrupt 0 //外部中断0的中断函数
{
delay(1000); //延时消抖
if(k3==0)
{
led=~led; // led状态取反
}
}
程序效果就是给P3.2管脚低电平,led会取反状态。
作者:
gnez
时间:
2019-1-9 09:03
感谢分享!!!正好需要。
作者:
尘世繁华
时间:
2019-11-3 22:01
请问程序中while(1)有什么作用???为什么会在Int0Init()后面???
作者:
5314039
时间:
2019-11-6 17:57
尘世繁华 发表于 2019-11-3 22:01
请问程序中while(1)有什么作用???为什么会在Int0Init()后面???
Int0Init(); // 初始化设置,while(1);//无限循环;只要有外部中断发生,就会停止循环,然后去执行中断函数。执行完中断函数后又返回循环。
作者:
明明如此
时间:
2019-11-7 00:14
多谢分享
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1