中断控制led流水灯

上传人:wt****50 文档编号:49157958 上传时间:2018-07-24 格式:PPT 页数:16 大小:2.53MB
返回 下载 相关 举报
中断控制led流水灯_第1页
第1页 / 共16页
中断控制led流水灯_第2页
第2页 / 共16页
中断控制led流水灯_第3页
第3页 / 共16页
中断控制led流水灯_第4页
第4页 / 共16页
中断控制led流水灯_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《中断控制led流水灯》由会员分享,可在线阅读,更多相关《中断控制led流水灯(16页珍藏版)》请在金锄头文库上搜索。

1、 姓名:杨凡学号:10030208实验效果:LED先自高位向低位依次亮。中断效果:按键一次会中断当前效果,执 行反效果定时和按键,都采用了中断方式。即采用 定时器0中断来控制延时时间,用外部中断 0进行方向控制;#include #include unsigned char i = 0, temp;unsigned char bdata j; /在位寻址区定义字节变量sbit j0 = j 0; /定义位变量/-void main(void) TMOD = 0x01; /设定T0定时方式1 TH0 = (65536 - 10000) / 256; /定时10ms12MHz TL0 = (655

2、36 - 10000) % 256; TR0 = 1; ET0 = 1; /允许T0中断 PT0 = 1; /设定T0为高优先级 IT0 = 1; /外部中断输入下降沿有效 EX0 = 1; /允许X0中断 EA = 1; /开放总中断 temp = 0xfe; P1 = temp; while(1);void T0_int(void) interrupt 1 /每隔10ms执行一次 TH0 = (65536 - 10000) / 256; /定时10ms12MHz TL0 = (65536 - 10000) % 256; i+; if(i = 100) i = 0; if(j0 = 0) t

3、emp = _c rol_(temp, 1); if(j0 = 1) temp = _c ror_(temp, 1); P1 = temp; /-void X0_int(void) interrupt 0 using 1 unsigned char k; j0 = j0; /改变运动方向 for(k = 200; k 0; k- -); /延时一会再退出,以避免抖动void main(void) TMOD = 0x01; /设定T0定时方式1 TH0 = (65536 - 10000) / 256; /定时10ms12MHz TL0 = (65536 - 10000) % 256; TR0 =

4、 1; ET0 = 1; /允许T0中断 PT0 = 1; /设定T0为高优先级 IT0 = 1; /外部中断输入下降沿有效 EX0 = 1; /允许X0中断 EA = 1; /开放总中断 temp = 0xfe; P1 = temp; while(1);void X0_int(void) interrupt 0 using 1 unsigned char k; j0 = j0; /改变运动方向 for(k = 200; k 0; k-); /延时一会再退出,以避免抖动CPU在处理某一事件A时,发生了另一事件B请求 CPU迅速去处理(中断发生或中断请求);CPU暂时中断当前的工作,转去处理事件

5、B(中断响 应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中 断的地方继续处理事件A(中断返回)。中断请求中断响应中断服务中断返回中断过程 事件B的 处处理过过程事件A事件B什么什么 是中是中 断断 ?80C51单片机有5个中断源。见下表中断源 说明 外部中断 从P3.2引脚引入的外部中断申请定时器T0中断 定时器T0溢出时引发中断申请外部中断从P3.3引脚引入的外部中断申请定时器T1中断定时器T1溢出时引发中断申请串行口中断一次串行发送或接收完成后,发出中断申 请KEIL的使用画仿真硬件图KEIL与proutes联机调试由于时间仓促,知识使用能力范围有限,对 中断理解不够,此

6、次PPT效果不是很好,但 还是自己课后时间做出来的,实训过程中, 多次出现错误调试不出来也很着急,着急是 没用的,于是请教了同学,看了上学期的中 断内容,自己运用的是外部中断利用按键的 ,首先确定INT0是P3.2口,还有就是延时时 间用计数次数乘上定时时间。如延时 0.5S=50次*10000次*1uS,这些设定好了还 有注意的是要去除按键的消抖。抖动时间的长短由按键的机械特性决定, 一般为5ms10ms。这是一个很重要的时间 参数,在很多场合都要用到。 按键按键稳定闭合时间的长短则是由操作人员 的按键动作决定的,一般为零点几秒至数 秒。键抖动会引起一次按键被误读多次。 为确保CPU对键的一次闭合仅作一次处理, 必须去除键抖动。在键闭合稳定时读取键 的状态,并且必须判别到键释放稳定后再 作处理。硬件消抖用RS触发器软件消抖如果按键较多,常用软件方法去抖,即检 测出键闭合后执行一个延时程序,5ms 10ms的延时,让前沿抖动消失后再一次检 测键的状态,如果仍保持闭合状态电平, 则确认为真正有键按下。当检测到按键释 放后,也要给5ms10ms的延时,待后沿抖 动消失后才能转入该键的处理程序。 谢谢大家!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 无线电电子学/电信技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号