标题: 51hei-5板子流水灯多种花样显示_C语言 [打印本页]

作者: admin    时间: 2010-6-1 00:24
标题: 51hei-5板子流水灯多种花样显示_C语言
/*功能说明:
   1、单个LED流水灯从左到右
   2、单个LED流水灯从右到左
   3、从左边一个个点亮8个LED
   4、从右边一个个点亮8个LED
   5、所有的LED开关8次
   6、左右闪烁8次
   7、8个流水灯两边向中间依次点亮8次
   8、8个流水灯中间向两边依次点亮8次
晶振:11.0592
*************************************************************/
#include<reg51.h>           //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int   //定义无符号整数
sbit leds=P1^4;

void delay(uint);           //声明延时函数
void main(void);            //声明主函数
/***********************************************************
                主程序
/***********************************************************/
void main(void)
{ 
uint i;
uchar temp;
leds=0;
P2=P2&0x7f;  //将p2.7置0,锁存段选74hc573,使得所有数码管熄灭

while(1)
{
/***********************************************************
         8个流水灯逐个闪动
/***********************************************************/
    temp=0x01;
    for(i=0;i<8;i++) 
    {
     P0=~temp;
     delay(100);   
     temp<<=1;
    }
/***********************************************************
            8个流水灯反向逐个闪动
/***********************************************************/
temp=0x80;
for(i=0;i<8;i++) 
   {
    P0=~temp;
    delay(100);  
    temp>>=1;
   }
/***********************************************************
            8个流水灯依次全部点亮     
/***********************************************************/         
    temp=0xFE;
for(i=0;i<8;i++)  
    {
     P0=temp;
     delay(100);   
     temp<<=1;
    }
/***********************************************************
            8个流水灯依次全部熄灭     
/***********************************************************/         
    temp=0xFE;
for(i=0;i<8;i++)  
    {
     P0=~temp;
     delay(100);   
     temp<<=1;
    }
/***********************************************************
           8个流水灯依次反向全部点亮
/***********************************************************/
   temp=0x7F;
   for(i=0;i<8;i++) 
    {
     P0=temp;
     delay(100);   
     temp>>=1;
    }
/***********************************************************
           8个流水灯依次反向全部熄灭
/***********************************************************/
   temp=0x7F;
   for(i=0;i<8;i++) 
    {
     P0=~temp;
     delay(100);   
     temp>>=1;
    }
/***********************************************************
           8个流水灯全部点亮关闭8次
/***********************************************************/
   temp=0xfF;
   for(i=0;i<8;i++) 
    {
     P0=temp;
     delay(100);   
     P0=~temp;
     delay(100);
    }
/***********************************************************
           8个流水灯左右晃动8次
/***********************************************************/
   temp=0xAA;
   for(i=0;i<8;i++) 
    {
     P0=temp;
     delay(200);   
     P0=~temp;
     delay(200);
    }
/***********************************************************
           8个流水灯两边向中间点亮8次
/***********************************************************/
    P0=0XFF;
    delay(200);
   for(i=0;i<8;i++) 
    {
     P0=0x7e;
     delay(100); 
     P0=0xbd;
     delay(100);   
     P0=0xdb;
     delay(100);   
     P0=0xe7;
     delay(100);   
    }
/***********************************************************
         8个流水灯中间向两边点亮8次  
/***********************************************************/
    P0=0XFF;
    delay(200);
   for(i=0;i<8;i++) 
    {
     P0=0xe7;
     delay(100); 
     P0=0xdb;
     delay(100);   
     P0=0xbd;
     delay(100);   
     P0=0x7e;
     delay(100);   
    }
}

}
/***********************************************************
                延时程序
/***********************************************************/
void delay(uint t)   //定义延时函数
      {
register uint bt;
        for(;t;t--)
        for(bt=0;bt<155;bt++);
      }
 


作者: cwz668    时间: 2010-6-6 08:07
正在学习,谢谢。
作者: oyh499    时间: 2010-8-28 15:23
学习学习





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