<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        基于51單片機之16鍵電子琴實驗例程

        作者:CaKen   來源:轉自CaKen工作室   點擊數:  更新時間:2014年08月28日   【字體:

        **************************  Copyright(C) CaKe  ****************************************

        ========================================================================================
        ==============**版權信息  : CaKen工作室                                ==============
        ==============**文件名    : main.c              ==============
        ==============**作者      : CaKen              ==============
        ==============**版本號    : V1.0               ==============
        ==============**時間      : 2014.08.23               ==============
        ==============**功能描述  : 16鍵電子琴實驗測試         ==============
        ========================================================================================
        ****************************************************************************************
         
        #include"reg52.h"
         
        #define uchar unsigned  char      //宏定義
        #define uint  unsigned  int
         
        #define  CaKen_KEY1  P1          //定義按鍵
        #define  CaKen_KEY2  P2
         
        sbit CaKen_SPEAKER = P3^7;         //蜂鳴器
         
        uchar CaKen_MUSIC;        //全局變量
        uchar CaKen_STH0;
        uchar CaKen_STL0;
         
        unsigned int code Tab[]=        //電子琴音頻符
        {
        64021,64103,64260,64400,           //低音3開始
        64524,64580,64684,64777,
        64820,64898,64968,65030,
        65058,65110,65157,65178
        };
         
        =====================================================================================
        ==================函數名: main
        ======================================================================================
        void main()
        {
           TMOD = 0x01;          //定時器0工作模式=方式1 (0 0 0 1) 16位定時器/計數器
           ET0  = 1;       //定時器0中斷允許
           EA   = 1;       //開啟總中斷
         
           CaKen_KEY1=0xff;   //按鍵初始化,高電平
           while(1)        //進入循環
             {
           if(CaKen_KEY1!=0xff|CaKen_KEY2!=0xff)
                {
               switch(~CaKen_KEY1)  //顯示的列位置
             {
               case 0x01: CaKen_MUSIC = 1;break;
            case 0x02: CaKen_MUSIC = 2;break;
            case 0x04: CaKen_MUSIC = 3;break;
            case 0x08: CaKen_MUSIC = 4;break;
            case 0x10: CaKen_MUSIC = 5;break;
            case 0x20: CaKen_MUSIC = 6;break;
            case 0x40: CaKen_MUSIC = 7;break;
            case 0x80: CaKen_MUSIC = 8;break;
            default:break;
           }
            switch(~CaKen_KEY2)
            {
            case 0x01: CaKen_MUSIC = 9 ;break;
            case 0x02: CaKen_MUSIC = 10;break;
            case 0x04: CaKen_MUSIC = 11;break;
            case 0x08: CaKen_MUSIC = 12;break;
            case 0x10: CaKen_MUSIC = 13;break;
            case 0x20: CaKen_MUSIC = 14;break;
            case 0x40: CaKen_MUSIC = 15;break;
            case 0x80: CaKen_MUSIC = 16;break;
            default:break;
             }
          
             CaKen_STH0 = Tab[CaKen_MUSIC]/256;
             CaKen_STL0 = Tab[CaKen_MUSIC]%6;
             TR0  = 1; //開啟定時器0 進入定時器中斷函數
         
             }
            else
            {
              CaKen_SPEAKER = 1;        //關蜂鳴器
           TR0 = 0;            //關定時器
            }
          }  
        }
         
        ======================================================================================
          ==================函數名:定時器中斷服務函數
        =======================================================================================
         
        void CaKen_QQ1145266160_TIMER0(void) interrupt 1
        {
           TH0 = CaKen_STH0;
         TL0 = CaKen_STL0;
         CaKen_SPEAKER = ~CaKen_SPEAKER;
        }
         
         
         
         
        =======================================================================================
         -------------------      CaKen工作室  原創作品     --------------------
         -------------------            CaKen工作室  版權所有       --------------------
        ========================================================================================
         
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮