按键开关控制 流水灯(定时器)
时间:10-02
整理:3721RD
点击:
各路高手老师~~请指正不足之处~~谢谢!
按键开关控制 流水灯(定时器)
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key=P3^4;//定义自个的键
//void keyscan();
void init();
uchar aa,cc;
void yanshi(uint z)
{
uchar a,b;
for(a=z;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
init();
cc=0xfe;
P1=cc;
P0=0xff;
while(1)
{
if(key==0)
{
yanshi(10);
if(key==0);
while(!key);
TR0=~TR0;
}
}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
}
void tims()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==10)
{
aa=0;
P1=cc;
cc=_crol_(cc,1);
}
}
按键开关控制 流水灯(定时器)
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key=P3^4;//定义自个的键
//void keyscan();
void init();
uchar aa,cc;
void yanshi(uint z)
{
uchar a,b;
for(a=z;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
init();
cc=0xfe;
P1=cc;
P0=0xff;
while(1)
{
if(key==0)
{
yanshi(10);
if(key==0);
while(!key);
TR0=~TR0;
}
}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
}
void tims()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==10)
{
aa=0;
P1=cc;
cc=_crol_(cc,1);
}
}
不错,如果能用一个按键实现切换多种功能就更好了,比如:按一次就可以使流水灯流向发生变换,长按可以关闭/打开定时器之类的
考虑到了去抖动,还有松手检测,挺好的
顶。。
顶。。
有一个建议,就是最好加上一些注释,还有的话就是代码的格式规范一下,这样在代码量代码大的情况下对自己很有帮助。个人觉得
正解
可以设置按键次数,来切换不同效果显示
好的,谢谢大家~~ 提的宝贵意见
我的意见同上
管住嘴,迈开腿,打开百度搜一搜,点开论坛问一问,问题统统都解决