在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 學(xué)習(xí)單片機(jī)的日記

            學(xué)習(xí)單片機(jī)的日記

            作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
            void display(uchar aa,uchar bb,uchar cc,uchar bai ,uchar shi,uchar ge)

            {
            dula=1;
            P0=table[aa];
            dula=0;
            P2=0;
            delay(5);

            dula=1;
            P0=table[bb];
            dula=0;
            P2=1;
            delay(5);
            dula=1;
            P0=table[cc];
            dula=0;
            P2=2;
            delay(5);
            dula=1;
            P0=table[bai];
            dula=0;
            P2=3;
            delay(5);

            dula=1;
            P0=table[shi];
            dula=0;
            P2=4;
            delay(5);
            dula=1;
            P0=table[ge];
            dula=0;
            P2=5;
            delay(5);


            }

            void delay(uint z)
            {
            uint x,y;
            for(x=z;x>0;x--)
            for(y=110;y>0;y--);

            }



            三月31日:今天學(xué)完矩陣鍵盤,終于會編了,弄了好久。。。。(今天開始記錄思想,幫我加強(qiáng)記憶并自己再理解一遍)

            #include /reg52.h是頭文件,包含了下列關(guān)鍵字
            #define uint unsigned int /定義無符號型整數(shù)
            #define uchar unsigned char /定義無符號型字符型
            sbit dula=P3^7; /數(shù)碼管的段是由P3.7引腳控制,位聲明下
            sbit wela=P2; /數(shù)碼管的位選是由P2引腳控制,東流電子的板子位選是由譯碼器控制
            uchar temp,num;

            void delay(uint z); /延時函數(shù)聲明

            uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, /數(shù)碼管的數(shù)組
            0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

            void main() /主函數(shù)
            {
            dula=1; /首先將數(shù)碼管不顯示,段選是由鎖存器控制,將鎖存器賦值1打開鎖存器,
            P0=0; / 往里面輸入數(shù)據(jù)再賦值0關(guān)閉鎖存器
            dula=0;
            P2=0; /我的板子的數(shù)碼管是由譯碼器控制,通過向P2口輸入不同的值進(jìn)而控制不同數(shù)碼管,0代表第一個數(shù)碼管
            while(1) /主循環(huán),while語句當(dāng)()里的值為1是一直循環(huán){ }里的語句,不為1則跳出語句
            {
            P1=0xfe; /如上圖所示P1指的是第一行鍵盤,矩陣鍵盤的檢測是給除了第一行賦值0外全部賦值為1,也就是111111
            temp=P1; 10,再將P1值賦給temp,讓后temp和0xf0(11110000)與(邏輯與)原理是:先掃描第一行,將其他端
            temp=temp&0xf0; /口賦值1,當(dāng)有按鍵按下時有一列為0,列是在高四位如果是第一個鍵按下就是0111 0111和0xf0與下就不為0xf0
            if(temp!=0xf0) /如果temp不為0xfo(就相當(dāng)于有按鍵被按下)
            {
            delay(10); 延時消抖
            temp=P1; 再將P1值賦給temp
            temp=temp&0xf0; 再和0xf0邏輯與
            if(temp!=0xf0) 再判斷是否按鍵
            {
            temp=P1; 將P1值重新賦給temp
            switch(temp) swith語句是多條件語句,()中temp是表達(dá)式,case(表達(dá)式):對應(yīng)語句,。break是停止
            { switch語句跳出
            case 0xee:num=1; 如果是按第一個鍵就在數(shù)碼管上顯示0(為啥不是1?下面解釋)
            break;
            case 0xde:num=2; 如果按第一行第二個鍵在數(shù)碼管上顯示1
            break;
            case 0xbe:num=3;
            break;
            case 0x7e:num=4;
            break;
            }
            dula=1;
            P0=table[num-1]; 數(shù)碼管顯示[ ]中是上面聲明數(shù)組中的值,num-1對應(yīng)數(shù)組的值(num為1則代表數(shù)組的0)
            dula=0;
            }
            }
            P1=0xfd;
            temp=P1; 以下就是不同行數(shù)的檢測,檢測第二行就給P1.2賦值0,改變下P1的值和num值就可以進(jìn)行第
            temp=temp&0xf0; 二行以及第三第四行的鍵盤是否按下
            if(temp!=0xf0)
            {
            delay(10);
            temp=P1;
            temp=temp&0xf0;
            if(temp!=0xfe)
            {
            temp=P1;
            switch(temp)
            {
            case 0xed:num=5;
            break;
            case 0xdd:num=6;
            break;
            case 0xbd:num=7;
            break;
            case 0x7d:num=8;
            break;
            }
            dula=1;
            P0=table[num-1];
            dula=0;
            }
            }
            P1=0xfb;
            temp=P1;
            temp=temp&0xf0;
            if(temp!=0xf0)
            {
            delay(10);
            temp=P1;
            temp=temp&0xf0;
            if(temp!=0xfe)
            {
            temp=P1;
            switch(temp)
            {
            case 0xeb:num=9;
            break;
            case 0xdb:num=10;
            break;
            case 0xbb:num=11;
            break;
            case 0x7b:num=12;
            break;
            }
            dula=1;
            P0=table[num-1];
            dula=0;
            }
            }
            P1=0xf7;
            temp=P1;
            temp=temp&0xf0;
            if(temp!=0xf0)
            {
            delay(10);
            temp=P1;
            temp=temp&0xf0;
            if(temp!=0xfe)
            {
            temp=P1;
            switch(temp)
            {
            case 0xe7:num=13;
            break;
            case 0xd7:num=14;
            break;
            case 0xb7:num=15;
            break;
            case 0x77:num=16;
            break;
            }
            dula=1;
            P0=table[num-1];
            dula=0;
            }

            關(guān)鍵詞: 單片機(jī)日

            評論


            技術(shù)專區(qū)

            關(guān)閉