專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

3種方法實(shí)現(xiàn)流水燈

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年01月29日   【字體:

(P0一般接10K的上拉電阻,此圖復(fù)位電路沒給出)

當(dāng)然,有些比較有心的同學(xué)會做些有花樣的,如這種“心”形的流水燈
下面試代碼:

(1)用總線的方法實(shí)現(xiàn)流水燈

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uchartable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint xms) //延時約1ms

{

       uintx,y;

       for(x=110;x>0;x--)

       for(y=xms;y>0;y--);

}

void main()

{

       uchar i;

       while(1)

       {

              for(i=0;i<8;i++)

              {

                     P0=table[i];

                     delay(500);

              }

       }

}

(2)移位實(shí)現(xiàn)流水燈

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

void delay(uint xms) //延時約1ms

{

       uintx,y;

       for(x=110;x>0;x--)

       for(y=xms;y>0;y--);

}

void main()

{

       uchar a,i;

       while(1)

       {

              a=0xfe;

              for(i=0;i<8;i++)

              {

                     P0=a;

                     a=a<<1;

                     a=a|0x01;

                     delay(500);

              }

       }

}

(3)用庫函數(shù)實(shí)現(xiàn)流水燈

#include<reg52.h>

#include<intrins.h>//此頭文件包含移位函數(shù)

#define uchar unsigned char

#define uint unsigned int

void delay(uint xms) //延時約1ms

{

       uint x,y;

       for(x=110;x>0;x--)

       for(y=xms;y>0;y--);

}

void main()

{

       uint a;

       a=0xfe;

       while(1)

       {

              P2=a;

              a=_crol_(a,1);

              delay(500);

       }

}

關(guān)閉窗口

相關(guān)文章