您的位置 首页 数字

怎么完成键盘自在操控二极管流水灯

#includereg52.h>//流水灯从上到下点亮然后熄灭;再从下到上点亮然后熄灭sbitKey1=P2^7;//启动停止定时器T0sbitKey2=P2^…

#include

//流水灯 从上到下点亮 然后平息; 再从下到上点亮 然后平息
sbit Key1=P2^7; //发动 中止 定时器T0
sbit Key2=P2^6; //中止 定时器T0, 经过键盘完成 流水灯 从上到下点亮 然后平息
sbit Key3=P2^5; //中止 定时器T0, 经过键盘完成 流水灯 从下到上点亮 然后平息
unsigned char t=0;
unsigned char i=0;
void Delay(unsigned int i) //延时
{
unsigned char j;
for( ; i>0; i–)
for(j=110; j>0; j–);
}
void LED_UP() // 二极管向上 逐步点亮
{
unsigned char n;
P0=0xff;
for(n=1; n<=8; n++)
{
P0=P0>>1;
Delay(1000);
}
P0=0xff;
}
void LED_Down()// 二极管向下 逐步点亮
{
unsigned char n;
P0=0xff;
for(n=1; n<=8; n++)
{
P0=P0<<1;
Delay(1000);
}
P0=0xff;
}
void Keycan() // 检测键盘是否被按下
{
if(Key1==0) //发动 中止 定时器T0
{
Delay(10);
if(Key1==0)
{
TR0=~TR0;
}
while(!Key1);
}
if(TR0==0) //定时器T0 中止, Key2, Key3 键 被按下才有效果
{
if(Key2==0) //
{
Delay(10);
if(Key2==0)
{
LED_UP(); // 二极管向上 逐步点亮
}
while(!Key2);
}
if(Key3==0) //
{
Delay(10);
if(Key3==0)
{
LED_Down(); // 二极管向下 逐步点亮
}
while(!Key3);
}
} //end if(TR0==0)
}
void main()
{
TMOD=0x01; //
EA=1; //
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(1)
{
Keycan();
if(t==20)
{
t=0;
LED_UP();
LED_Down();
}
}
}
void TimerLED() interrupt 1 using 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/266788.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部