标题: 利用单片机中断按键控制点亮LED灯程序 [打印本页]

作者: lon7085    时间: 2019-1-2 22:34
标题: 利用单片机中断按键控制点亮LED灯程序
功能说明:
利用中断按键,每按1次亮1个LED灯,8次后全亮,第9次全灭,第10次又从第1个LED灯开始亮,周而复始循环点亮。


单片机源程序
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define ledP1
  4. sbit key =P3^2;
  5. int i,a=0;
  6. chartable[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
  7. voiddelay_ms(unsigned int xms)  //延时函数
  8. {
  9.   unsigned int i,j;
  10.   for(i=xms;i>0;i--)
  11.    {
  12.      for(j=124;j>0;j--);
  13.    }
  14. }

  15. voidmain()  //主函数
  16. {
  17.   EA = 1;
  18.   EX0 = 1;
  19.   TCON = 0x01;
  20. while(1)
  21.         {
  22.          if(i<=8)
  23.          {
  24.        i=a;
  25.           led=table;
  26.           delay_ms(500);  //延时0.5s
  27.           }
  28.         }
  29. }

  30. voidExternal_Interrupt_0() interrupt 0
  31. {
  32. if(key==0)
  33.    {
  34.      delay_ms(50);  //延时50ms,消抖
  35.      if(key==0)     //再判断是否按下
  36.      {
  37.       while(!key);   //松手检测
  38. a++;
  39.          if(a==9)
  40.           { a=0; }
  41.      }
  42.    }
  43. }
复制代码



作者: bhjyqjs    时间: 2019-1-3 09:00

led = table;  这句错了吧,应该是led = table;

作者: lon7085    时间: 2019-1-3 12:05
不好意思漏打了,正确应该是”led = table[i];” 。
作者: 3220604661    时间: 2019-1-3 13:04
led = table;  这句错了吧,应该是led = table
作者: wqwqwq.    时间: 2019-12-11 18:40
led=table[i];  还是不对呀




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1