第一个单片机 中断程序

板子上运行现象:烧录程序后,led灯管做二进制加法形式的亮,当我用导线连接  INT0 即P3^2口与P0^0
时候,中断响应了,led灯管停住在当前的状态(锁存原因),而蜂鸣器响了。

大致的编程思路:首先得把总中断打开,接着是需求的中断类型的中断打开(这里的打开,其实就是控制
中断允许寄存器的相关标志位),接着是选择引脚中断触发的方式(电平触发|边沿触发),然后是写
中断处理函数。

中断响应条件:(三个条件同时满足,方能有中断响应)
1.中断源有中断请求;
2.此中断源的中断允许位为1;
3.CPU开中断(即EA=1)。


代码如下:

#include <reg51.h>
#define uint unsigned int
sbit beep=P1^5;
sbit p0_0 = P0^0; 
void delay(uint milliSec);
void main()
{	uint NUM = 0xFF;
	EA = 1; //开总中断
	EX0 = 1; //开外部中断0
	IT0 = 0;  //设置为电平触发
	p0_0 = 0;
	while(1)
	{
	 	P2=NUM--;
		delay(1000);//延时
	}

}
//中断处理函数,中断响应时候,系统自己会调用这个方法,这个C51单片机编程设计好的,为用C语言
//开放中断程序带来很大方便。
void exter0() interrupt 0
{
	while(1){
		beep = 1;
		delay(1000);//延时
		beep = 0;
		}
}	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值