标题: 利用单片机中断按键控制点亮LED灯程序 [打印本页]
作者: lon7085 时间: 2019-1-2 22:34
标题: 利用单片机中断按键控制点亮LED灯程序
功能说明:
利用中断按键,每按1次亮1个LED灯,8次后全亮,第9次全灭,第10次又从第1个LED灯开始亮,周而复始循环点亮。
单片机源程序:
- #include<reg51.h>
- #include<intrins.h>
- #define ledP1
- sbit key =P3^2;
- int i,a=0;
- chartable[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
- voiddelay_ms(unsigned int xms) //延时函数
- {
- unsigned int i,j;
- for(i=xms;i>0;i--)
- {
- for(j=124;j>0;j--);
- }
- }
- voidmain() //主函数
- {
- EA = 1;
- EX0 = 1;
- TCON = 0x01;
- while(1)
- {
- if(i<=8)
- {
- i=a;
- led=table;
- delay_ms(500); //延时0.5s
- }
- }
- }
- voidExternal_Interrupt_0() interrupt 0
- {
- if(key==0)
- {
- delay_ms(50); //延时50ms,消抖
- if(key==0) //再判断是否按下
- {
- while(!key); //松手检测
- a++;
- if(a==9)
- { a=0; }
- }
- }
- }
复制代码
作者: 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 |