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

    <address id="qec3z"><var id="qec3z"><center id="qec3z"></center></var></address>

      <span id="qec3z"><code id="qec3z"></code></span>
    • <dfn id="qec3z"></dfn>
      <ruby id="qec3z"><thead id="qec3z"><noscript id="qec3z"></noscript></thead></ruby>
      <label id="qec3z"></label><dfn id="qec3z"><var id="qec3z"></var></dfn>

        新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機電子琴C代碼

        51單片機電子琴C代碼

        作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏
        #include
        #include
        #include
        #include
        #include
        #define uchar unsigned char
        typedef unsigned char uint8; // 無符號8位整型變量
        typedef signed char int8; // 有符號8位整型變量
        typedef unsigned short uint16; // 無符號16位整型變量
        typedef signed short int16; // 有符號16位整型變量
        typedef unsigned int uint32; // 無符號32位整型變量
        typedef signed int int32; // 有符號32位整型變量
        typedef float fp32; // 單精度浮點數(shù)(32位長度)
        typedef double fp64; // 雙精度浮點數(shù)(64位長度)
        sbit row1 = P1 ^ 0;
        sbit row2 = P1 ^ 1;
        sbit row3 = P1 ^ 2;
        sbit col1 = P0 ^ 1;
        sbit col2 = P0 ^ 2;
        sbit col3 = P0 ^ 3;
        sbit col4 = P0 ^ 4;
        sbit col5 = P0 ^ 5;
        sbit col6 = P0 ^ 6;
        sbit col7 = P0 ^ 7;
        #define uint unsigned int
        uchar STH0; //定時器計數(shù)初值
        uchar STL0;
        bit FY=0; //放樂曲時FY=1, 電子琴彈奏時FY=0
        uchar Song_Index=0,Tone_Index=0; //放音樂的參數(shù)
        uchar k, key;
        sbit SPK=P3^7;
        sbit LED1=P1^0;
        sbit LED2=P1^1;
        sbit LED3=P3^4;
        sbit LED4=P3^5;
        sbit LED5=P3^6;
        void Delay(uint16 count)
        {
        uint8 i;
        while(--count != 0)
        {
        for(i = 0; i < 125; i++); // ";" 表示空語句,CPU空轉。
        } // i 從0加到125,在12M晶體下CPU大概耗時1毫秒
        }
        uint8 KeyDown(void)
        {
        col1=0; col2=0; col3=0; col4=0; col5=0; col6=0; col7=0; // 列線全部置低
        if((row1==0) || (row2==0) || (row3==0)) // 若有任一行線讀回狀態(tài)為低
        {
        Delay(80); // 延時消抖
        if((row1==0) || (row2==0) || (row3==0)) // 再次讀行線狀態(tài),若有任一行線讀回狀態(tài)為低
        return 1; // 返回1,表明有鍵盤按下
        else
        return 0; // 返回0,表明無鍵盤按下
        }
        else
        return 0;
        }
        uint8 KeyUp(void)
        {
        col1=0; col2=0; col3=0; col4=0; col5=0; col6=0; col7=0;
        if((row1==1) && (row2==1) && (row3==1))
        {
        Delay(80);
        if((row1==1) && (row2==1) && (row3==1))
        return 1;
        else
        return 0;
        }
        else
        return 0;
        }
        uint8 KeyNum(void)
        {
        uint8 KeyTemp;
        KeyTemp=0;
        if(KeyDown()==1)
        {
        col1=0; col2=1; col3=1; col4=1; col5=1; col6=1; col7=1; // 將列線1置低,其他列線置高
        if (row1==0) KeyTemp=1; // 若行線1讀回狀態(tài)為低,則表明按鍵1被按下
        if (row2==0) KeyTemp=8; // 若行線2讀回狀態(tài)為低,則表明按鍵8被按下
        if (row3==0) KeyTemp=15; // 若行線3讀回狀態(tài)為低,則表明按鍵15被按下
        col1=1; col2=0; col3=1; col4=1; col5=1; col6=1; col7=1;
        if (row1==0) KeyTemp=2;
        if (row2==0) KeyTemp=9;
        if (row3==0) KeyTemp=16;
        col1=1; col2=1; col3=0; col4=1; col5=1; col6=1; col7=1;
        if (row1==0) KeyTemp=3;
        if (row2==0) KeyTemp=10;
        if (row3==0) KeyTemp=17;
        col1=1; col2=1; col3=1; col4=0; col5=1; col6=1; col7=1;
        if (row1==0) KeyTemp=4;
        if (row2==0) KeyTemp=11;
        if (row3==0) KeyTemp=18;
        col1=1; col2=1; col3=1; col4=1; col5=0; col6=1; col7=1;
        if (row1==0) KeyTemp=5;
        if (row2==0) KeyTemp=12;
        if (row3==0) KeyTemp=19;
        col1=1; col2=1; col3=1; col4=1; col5=1; col6=0; col7=1;
        if (row1==0) KeyTemp=6;
        if (row2==0) KeyTemp=13;
        if (row3==0) KeyTemp=20;
        col1=1; col2=1; col3=1; col4=1; col5=1; col6=1; col7=0;
        if (row1==0) KeyTemp=7;
        if (row2==0) KeyTemp=14;
        if (row3==0) KeyTemp=21;
        return KeyTemp;
        }
        else
        return 0; //無按鍵按下
        }

        上一頁 1 2 下一頁

        評論


        技術專區(qū)

        關閉