两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1.數(shù)組運(yùn)用

實(shí)現(xiàn)上一節(jié)的功能其實(shí)還有更簡潔的方法去書寫,那就是引用數(shù)組,用數(shù)組存取燈的八種狀態(tài)值。定義含有8個元素的數(shù)組如下:

unsigned char LEDSET[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};每個元素輪流賦值給P0后延時即可。

#include <reg52.h> 
//sbit LED2  = P0^0;  本節(jié)代碼中用不到這條語句了
sbit ADDR2 = P1^2;
sbit ADDR1 = P1^1;
sbit ADDR0 = P1^0;
sbit ENLED = P1^4;
sbit ADDR3 = P1^3;

void delay_ms(unsigned int x)
{
    unsigned int i,j;
    if(x==1000)
    {
        for(i=0;i<19601;i++)//延時1s
        {
            for(j=5;j>0;j--);
        }
    }
    else while(x--)for(j=115;j>0;j--);
}

void main()
{  
    unsigned char i = 0;  
    unsigned char LEDSET[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
    ADDR3 = 1;//使能三八譯碼器
    ENLED = 0;// 
  
    ADDR2 = 1;//**************************
    ADDR1 = 1;//讓三八譯碼器的IO6輸出低電平
    ADDR0 = 0;//**************************
  
    while(1)
    {
        P0=LEDSET[i];
        i++;
        if(i>=8)i=0;//i需歸0使P0只能使用數(shù)組中的8個元素,防止使用到超出數(shù)組元素以外的值,其實(shí)就是讓i在0~7之間變化
        delay_ms(100);
    }
}

 

2.移位運(yùn)用

如果只是簡單地實(shí)現(xiàn)上處代碼單一的流水燈,那大可不必用數(shù)組,也不需要算出0xFE,0xFD這樣的這些值,我們運(yùn)用移位知識也可以實(shí)現(xiàn)上處功能,修改主函數(shù)如下

void main()
{  
    unsigned char i = 0;  
    ADDR3 = 1;//使能三八譯碼器
    ENLED = 0;// 

    ADDR2 = 1;//**************************
    ADDR1 = 1;//讓三八譯碼器的IO6輸出低電平
    ADDR0 = 0;//**************************

    while(1)
    {
        P0=~(0x01<<i);//第一次運(yùn)行這條語句i是等于0的,先算出括號中的值:0x01左移0位還是0x01,算出了括號中的值再去取反就得0xFE,                         
                      //所以第一次運(yùn)行這條語句時就相當(dāng)于“P0=0xFE;”,第二次循環(huán)運(yùn)行時i已經(jīng)等于1,0x01左移1位就為0x02,取反得0xFD,所以第二次執(zhí)行這條語句是“P0=0xFD;”
        i++;
        if(i>=8)i=0;
        delay_ms(100);
    }
}

如果讀者對左移右移和取反等C語言知識尚未掌握,建議您上網(wǎng)學(xué)習(xí)基礎(chǔ)教學(xué),又或者參考《手把手教你學(xué)51單片機(jī)》文檔4.8節(jié)。


3.數(shù)組的好處

當(dāng)我們想實(shí)現(xiàn)花式流水燈時還是需要運(yùn)用到數(shù)組的,畢竟數(shù)組可以修改LED的狀態(tài)值,例如我們想實(shí)現(xiàn)這樣的一個花式流水燈:

01111110   //對應(yīng)十六進(jìn)制=0x7E

10111101   //對應(yīng)十六進(jìn)制=0xBD

11011011   //對應(yīng)十六進(jìn)制=0xDB

11100111   //對應(yīng)十六進(jìn)制=0xE7

11011011   //對應(yīng)十六進(jìn)制=0xDB

10111101   //對應(yīng)十六進(jìn)制=0xBD

01111110  

10111101  

......

 

修改主函數(shù)

void main()
{  
    unsigned char i = 0;  
    unsigned char LEDSET[6]={0x7E,0xBD,0xDB,0xE7,0xDB,0xBD};
    ADDR3 = 1;//使能三八譯碼器
    ENLED = 0;// 

    ADDR2 = 1;//**************************
    ADDR1 = 1;//讓三八譯碼器的IO6輸出低電平
    ADDR0 = 0;//**************************

    while(1)
    {
        P0=LEDSET[i];
        i++;
        if(i>=6)i=0; //讓i在0~5之間變化
        delay_ms(100);
    }
}

其他花樣玩法大家可自行編寫數(shù)組里的狀態(tài)值,這次的花樣流水燈我們只用了6種狀態(tài)不停循環(huán),大家編新的花樣狀態(tài)超過6種時記得修改LEDSET[6]里的6和“if(i>=6)i=0;”里的6為你所設(shè)置的花樣狀態(tài)種數(shù)。

點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時間)