收藏 分享(赏)

51单片机 流水灯 中断.doc

上传人:HR专家 文档编号:11559773 上传时间:2020-06-24 格式:DOC 页数:2 大小:69.50KB
下载 相关 举报
51单片机 流水灯 中断.doc_第1页
第1页 / 共2页
51单片机 流水灯 中断.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、/51单片机控制8个LED灯,左右循环移动,当外部中断0引脚的按键,第一次按下时,停在当前位置;第二次按下时,继续向下执行/*/注释:当主函数中在执行左右流水点亮LED灯的时候,按键按下(这是第一次按下,即奇数次),CPU暂时/中断当前点亮灯的工作,转去处理中断程序(c=1),处理完后,再返回原来中断的地方继续原来的工作,/因为这时候C为1,while(c);为真,为死循环状态,即是LED亮的状态停在当前位置;当按键按下(这是第二次按下,即偶数次)/CPU中断当前状态,转去处理中断程序(c=0),处理完后,再返回原来中断的地方继续原来的工作,/这时候C为0,while(c);为假,则程序继续向

2、下执行。/*#include#include/控制左右移的头文件void delay(int);/声明延时函数unsigned char i=0,a=0,b=0,c=0;/a为判断按键按下时奇数次还是偶数次void main() P2=0xfe;IT0=0;/ 低电平有效EX0=1;/开外部中断0EA=1; /开总中断while(1) for(i=0;i7;i+)/左循环 b=1;while(c);/C为0时,顺序向下执行,为1时停在当前状态, P2=_crol_(P2,1); delay(500); for(i=0;i7;i+)/右循环 b=1;while(c);/C为0时,顺序向下执行,为1时停在当前状态, P2=_cror_(P2,1); delay(500); while(1);/等待中断void int0_int(void) interrupt 0 /中断服务函数 delay(40);/延时一段时间,消除抖动if(b=1) b=0; a+=1;/按键为奇数次时,停在当前的状态;偶数次时,接着原来的状态继续往下执行 if(a%2) c=1; else c=0; void delay(int n)/延时函数 unsigned int i,j; for(i=0;in;i+) for(j=0;j50;j+);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报