蓝桥杯笔记之 外部中断程序设计(二)

蓝桥杯外部中断程序设计

一、寄存器介绍

1.中断允许寄存器IE(可位寻址)

名称地址B7B6B5B4B3B2B1B0
IEA8HEAELVDEADCESET1EX1ET0EX0

EA:CPU的总中断允许位 EA=1 中断开放
ELVD:低压检测中断允许位,ELVD=1中断允许
EADC:ADC中断允许位,EADC=1 允许ADC中断
ES:串行口1中断允许位,ES=1,允许串行口中断
ET1:定时/计数器 T1 的溢出中断允许位,ET1=1 允许T1中断
EX1:外部中断1中断允许位,EX1=1允许外部中断1(P3^3)
ET0:T0
EX0:外部中断0(P3^2)

2.定时/计数器中断控制寄存器TCON(可位寻址)

名称地址B7B6B5B4B3B2B1B0
TCON88HTF1TR1TF0TR0IE1IT1IE0IT0

TF1:T1溢出中断标志,T1溢出时TF1由硬件置 1 ,CPU响应后置0,可软件查询。

TR1:T1的运行控制位,TR1=1时T1工作
TF0:T0溢出中断标志
TR0:T0的运行控制位
IE1:外部中断1(INT1/P3^3)中断请求标志,IE1=1时请求中断,CPU相应后,由硬件置0

IT1:外部中断源类型选择位,IT1=0 (INT1/P3^3)上升沿或下降沿触发中断,IT1=1 下降沿触发
IE0:外部中断0(INT0/P3^2)中断请求标志
IT0:外部中断源类型选择位

二、程序例程

sbit led1=P0^0;
void led_init()
{
	P2=0x80;	//译码器输出选择Y4 ,p27,p27,p25控制译码器输出
	P0=0x00;
}

void close_buzz()
{
	P2=0xa0;	//ULN2003
	P0=0x00;	//主要是想关了蜂鸣器	
}

void main(void)
{	
	close_buzz();
	led_init();
	EA = 1;		//开启总中断
	EX0 = 1;	//允许外部中断0工作(P32,按键S5)
    IT0 = 1;	//设置触发方式(下降沿)

	
    while(1);
}

void int_0(void) interrupt 0
{ 
	led1=~led1;	//led1反转
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值