因仑“3+1”工程特种兵精英论坛

标题: LED灯的书写 [打印本页]

作者: SDC158477392    时间: 2014-10-12 16:19
标题: LED灯的书写
/*******************************************************
*   程序功能:用实验板8个LED灯
*   硬件说明:用国信长天实验板 STC89C52RC
*   实验现象:
*        日    期 : 2014/10/10
*        作    者 : xxx
*******************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define led P2=0X80
#define buzz P2=0Xa0

#define guan P2=0

/*******************************************
函数名称:delayms(uint z)
功    能:延时函数
入口参 数:z
返回值  :无
********************************************/  
void delayms(uint z)
        {
        uint x,y;
        for(x=z;x>0;x--)
           for(y=110;y>0;y--);
        }
/*******************************************
函数名称:主函数main()  
********************************************/  
void main()
{
  char i,j,a,b,c;
                buzz;
                P0=0;
                guan;
       
       
                P0=0x55;       
        for(i=0;i<6;i++)//实现奇数亮再偶数亮
                {
                led;
                P0=~P0;
                guan;
                delayms(300);
                }

                for(i=0;i<3;i++) //一个灯上下循环三次
                {        a=0xfe;
                        for(j=0;j<14;j++)
                        {        led;
                                P0=a;
                                guan;
                                delayms(300);
                                if(j<7)a=_crol_(a,1);
                                else a=_cror_(a,1);       
                        }       
                }

           for(i=0;i<3;i++)        //两灯从两边往中间
           {
            a=0x7f;
                b=0xfe;
            for(j=0;j<4;j++)
                {
                c=a&b;
                led;
                P0=c;
                guan;
                delayms(300);
                a=_cror_(a,1);
                b=_crol_(b,1);
                }
           }

         for(i=0;i<3;i++)        //两灯从中间往两边
           {
            a=0xef;
                b=0xf7;
            for(j=0;j<4;j++)
                {
                c=a&b;
                led;
                P0=c;
                guan;
                delayms(300);
                a=_crol_(a,1);
                b=_cror_(b,1);
                }
           }

        P0=0;
        for(i=0;i<7;i++)        //两灯从中间往两边
        {
         led;
         P0=~P0;
         guan;
         delayms(300);
        }
        while(1);
}







欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4