查看: 1584|回复: 0
打印 上一主题 下一主题

LED灯的书写

[复制链接]
跳转到指定楼层
沙发
发表于 2014-10-12 16:19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************
*   程序功能:用实验板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);
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表