单片机实现小灯轮流点亮间隔闪亮

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:53:26
AT89S51单片机的P1.0~P1.3接四个发光二极管,P3.0~P3.2口为闪烁方式控制开关K1,K2,K3按键接口,P3.3为备用,实现小灯轮流点亮,间隔闪亮

这个程序不难实现,很简单,在网上随便下载个教程都有流水灯的控制程序,自己改改就可以实现了!为什么要来问呢!给你个方向,自己去研究吧!那样东西才是你的,不然帮你就是害了你!!!

键控流水灯的程序
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
void mDelay(unsigned int DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;} }}
uchar Key()
{ uchar KeyV;
uchar tmp;
P3=P3|0x3c; //四个按键所接位置
KeyV=P3;
if((KeyV|0xc3)==0xff) //无键按下
return(0);
mDelay(10); //延时,去键抖
KeyV=P3;
if((KeyV|0xc3)==0xff)
return(0);
else
{ for(;;){ tmp=P3;
if((tmp|0xc3)==0xff)
break;}
return(KeyV);}}
void main()
{ unsigned char OutData=0xfe;
bit UpDown=0;
bit Start=0;
uchar KValue;
for(;;)
{ KValue=Key();
switch (KValue)
{ case 0xfb : //P3.2=0,Start
{ Start=1;
break; }
case 0xf7: //P3.3=0,Stop
{ Start=0;
brea