找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6805|回復(fù): 0
收起左側(cè)

花樣流水燈,拉幕花樣+左移位+右移位+循環(huán)左移+循環(huán)右移

[復(fù)制鏈接]
ID:140489 發(fā)表于 2016-9-28 11:53 | 顯示全部樓層 |閱讀模式
//花樣流水燈,拉幕花樣+左移位+右移位+循環(huán)左移+循環(huán)右移


#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar y,aa;

void delay(uint i)                         //延時(shí)子函數(shù)
{
        uint m;
        uchar n;
        for(m=i;m>0;m--)
        for(n=110;n>0;n--);
}


void main()
{       
     while(1)
       {
            uchar k;
                for(k=0;k<2;k++)
                {
                P1=0xff;
            delay(1000);                 //拉幕花樣
                P1=0x7e;
            delay(1000);
            P1=0x3c;
            delay(1000);
            P1=0x18;
            delay(1000);
            P1=0x00;
            delay(1000);
            P1=0x00;
            delay(1000);
                P1=0x18;
            delay(1000);
            P1=0x3c;
            delay(1000);
            P1=0x7e;
            delay(1000);
            P1=0xff;
            delay(1000);
               
                P1=0;                                   //燈閃爍1次
            delay(1000);
                P1=0xff;
            delay(1000);
                   }

               
                         
                   y=8;                                           // y=8時(shí),不需要里面的for循環(huán)就可以,流水燈為1次,改變y的值可以改變亮燈的位數(shù)。
                 while(y--)                                   //這里如果不加while語(yǔ)句,燈會(huì)亂跳幾下后,就去執(zhí)行后面的程序了
             {                                                   //如果需要多次流水燈,就需要for循環(huán)語(yǔ)句,改變K的值就可以改變次數(shù)
                     uchar k;
                     for(k=0;k<2;k++)          //流水循環(huán)次數(shù)
                         {
                         P1 = P1 << 1;                  //按位左移
                     delay(1000);                  //延時(shí)
                     
                         if(P1 == 0)              //如果P1等于零,
                             {                                  /*則跳到下一步,P1全送高電平*/
                              P1 = 0xff;
                              delay(1000);
                             }
                         
                           }
                    }
          
                 
                 y=8;
                 while(y--)
             {
                     uchar k;
                     for(k=0;k<2;k++)          //流水循環(huán)次數(shù)
                         {
                         P1 = P1 >> 1;                  //按位右移
                     delay(1000);                  //延時(shí)
                     
                         if(P1 == 0)              //如果P1等于零,
                             {                                  /*則跳到下一步,P1全送高電平*/
                              P1 = 0xff;
                              delay(1000);
                              }
                         
                          }
                    }
                          
                          
                           aa=0xfe;
                           y=8;
                           while(y--)
                           {
                                   P1 = aa;
                                delay(1000);
                                aa=_crol_(aa,1);        //循環(huán)左移
                                }
         
                           
                           aa=0x7f;
                           y=8;
                           while(y--)
                           {
                                   P1 = aa;
                                delay(1000);
                                aa=_cror_(aa,1);          //循環(huán)右移
                                }
         }
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表