51单片机流水灯中断.doc

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

// 51 单片机控制 8 个 LED灯,左右循环移动, 当外部中断 0 引脚的按键,第一次按下时, 停在当前位置;第二次按下时,继续向下执行

//***************************************************************************** *****************************************

注释:当主函数中在执行左右流水点亮 LED灯的时候,按键按下(这是第一次按下,即奇数次), CPU 暂时

中断当前点亮灯的工作,转去处理中断程序( c=1),处理完后,再返回原来中断的地方继续原来的工作,

// 因为这时候 C 为 1, while(c); 为真,为死循环状态,即是 LED 亮的状态停在当前位置;当按键按下(这是第二次按下,即偶数次)

//CPU 中断当前状态,转去处理中断程序( c=0),处理完后,再返回原来中断的地方继续原

来的工作,

这时候 C 为 0, while(c); 为假,则程序继续向下执行。

//***************************************************************************** ******************************************

#include<>

#include<>// 控制左右移的头文件

void delay(int);// 声明延时函数

unsigned char i=0,a=0,b=0,c=0;//a 为判断按键按下时奇数次还是偶数次 void main()

{

P2=0xfe;

IT0=0;// 低电平有效

EX0=1;// 开外部中断 0

EA=1; // 开总中断

while(1)

{

for(i=0;i<7;

最近下载