返回主站 | 设为首页 | 加入收藏      
   
 
  首页 关于我们 产品展示 方案设计 技术分享 行业资讯 联系我们  
 
无线收发IC
2.4G无线收发IC
315MHz/433MHz无线遥控器发射接收IC
功放IC
电源管理IC
马达驱动IC/步进电机控制芯片
数模(DAC)/模数(ADC)转换芯片
智能处理器
音量控制IC
模拟开关IC
电容式触摸感应IC
RGB LED呼吸趣味灯驱动IC
音频CODEC IC
方案设计
电压电平转换器IC
运算放大器
I/O扩展器IC
 
名称:
种类:
类别:

业务洽谈:

联系人:张顺平 
手机:17727550196(微信同号) 
QQ:3003262363
EMAIL:zsp2018@szczkjgs.com

联系人:鄢先辉 
手机:17727552449 (微信同号)
QQ:2850985542
EMAIL:yanxianhui@szczkjgs.com

负责人联络方式:
手机:13713728695(微信同号) 
QQ:3003207580 
EMAIL:panbo@szczkjgs.com
联系人:潘波

 
当前位置:首页 -> 方案设计
用外中断方式读按键,控制灯的亮灭
文章来源: 更新时间:2014/3/29 9:35:00

 这一颗,我们学习外中断的用法。也就是外部IO的中断INT0,和INT1。对应的引脚是P32和P33。在我们的电路图中,P32也就是接在K1的引脚。所以当我们按下P32接到地的时候,可以触发一个INT0中断,当然,必须预先初始化才会启动。

这种中断方式的按键,可以实现按键的立即响应。对于需要快速响应的场合是很有用的。外部IO中断还常用在用IO模拟通讯的场合,可以对数据的到来立即响应。

下面请看代码:

―――――――――――――――――

#define uchar unsigned char //定义一下方便使用

#define uint unsigned int

#define ulong unsigned long

#include //包括一个52标准内核的头文件

sbit P10 = P1^0; //头文件中没有定义的IO就要自己来定义了

sbit P11 = P1^1;

sbit P12 = P1^2;

sbit P13 = P1^3;

sbit K1= P3^2;

bit ldelay=0; //长定时溢出标记,预置是0

uchar speed=10; //设置一个变量保存默认的跑马灯的移动速度

uchar speedlever=0; //保存当前的速度档次

char code dx516[3] _at_ 0x003b;//这是为了仿真设置的

//用外中断方式读按键K1,点亮一个LED

void main(void) // 主程序

{

IT0=1; //外中断跳变产生中断

EX0=1;

EA=1; //打开总中断

while(1) //主程序循环

{

}

}

//外中断0

int0() interrupt 0

{

P10=0; //在中断里点亮LED

}

――――――――――――――――――――――――――――――――――

这个程序里,按一下K1(P32)之后,就会触发INT0中断,在该中断里点亮LED灯。

请编译运行,并看结果。可以看到,在按下K1之后,LED1变处于亮着的状态。

作业:

用中断方式的按键K1,控制一个LED灯的亮和灭两种状态

提示:需要去抖操作,否则按键抖动会引起多种中断。

 
 
深圳市永阜康科技有限公司 粤ICP备17113496号  服务热线:0755-82863877 手机:13242913995