<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ![](https://box.kancloud.cn/2016-03-01_56d547e048395.jpg) ~~~ #include <reg51.h>? #include <intrins.h> ? #define uint unsigned int? #define uchar unsigned char sbit SPK = P3^7; ? ? ? ? ? ? ? ? ?//P3.7外接揚聲器 uint FreqTemp; unsigned int code Freqtab[] = { //定時半周期的初始值 ? ? ?64021,64103,64260,64400, ? ? ?//低音3 4 5 6 ? ? ?64524,64580,64684,64777, ? ? ?//低音7,中音1 2 3 ? ? ?64820,64898,64968,65030, ? ? ?//中音4 5 6 7 ? ? ?65058,65110,65157,65178}; ? ? //高音1 2 3 4 //關于半周期的初始值與頻率的關系,可見: //http://hi.baidu.com/do_sermon/item/8cff22baf5142245bb0e1247 /*************************************************************? * 函數功能 : 用掃描法讀 P1 外接 4×4 鍵盤 * 函數返回 : 按下鍵:返回0~15、如無鍵按下:返回16 **************************************************************/? uchar Keyscan(void)? {? ? ? ?uchar i, j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7};? ? ? ?for(j = 0; j < 4; j++) { ? ?//循環四次,掃描四行 ? ? ? ?P1 = Buffer[j]; ? ? ? ? ? //在低四位分別輸出一個低電平 ? ? ? ?_nop_();? ? ? ? ?temp = 0x80; ? ? ? ? ? ? ?//計劃先讀出P1.7位 ? ? ? ?for(i = 0; i < 4; i++) { //循環四次,檢查四列 ? ? ? ? ?if(!(P1 & temp)) { ? ? ?//從高四位,截取1位 ? ? ? ? ? ?return (i + j * 4); //返回取得的按鍵值? ? ? ? ? ?} ? ? ? ? ?temp >>= 1; ? ? ? ? ? ? //換右邊一位 ? ? ?} } ? ? ?return 16; ? ? ? ? ? ? ? ? ?//沒有鍵按下就返回16 }? /**************************************************************? * 函數功能 : 將參數分成十位、個位,分別顯示到P2 * 輸入 : k (鍵盤數值)? ***************************************************************/? void Display(uchar k) { ? ? ?P2 = ((k / 10) << 4) + (k % 10); } /**************************************************************? * 主函數? ***************************************************************/? void main()? {? ? ? ?uchar Key_Value = 16, Key_Temp1, Key_Temp2;//讀出的鍵值? ? ? ?TMOD = 0x01; ? ? ? ? ? ? ? ? ? //T0定時方式1 ? ? ?ET0 = 1; ? ? ? ? ? ? ? ? ? ? ? //允許T0中斷 ? ? ?EX0 = 1; ? ? ? ? ? ? ? ? ? ? ? //允許X0中斷 ? ? ?EA = 1; ? ? ?while(1) {? ? ? ? ?TR0 = 0; ? ? ? ? ? ? ? ? ? ? //暫不發音 ? ? ? ?Key_Temp1 = Keyscan(); ? ? ? //讀入按鍵 ? ? ? ?if(Key_Temp1 != 16) { ? ? ? ?//有鍵按下 ? ? ? ? ?Display(Key_Value); ? ? ? ?//顯示鍵值、延時消抖? ? ? ? ? ?Key_Temp2 = Keyscan(); ? ? //再讀一次 ? ? ? ? ?if (Key_Temp1 == Key_Temp2) {//兩次相等 ? ? ? ? ? ?Key_Value = Key_Temp1; //就確認下來 ? ? ? ? ? ?FreqTemp = Freqtab[Key_Value]; //根據鍵值,取出定時半周期的初始值 ? ? ? ? ? ?Display(Key_Value); ? ? ?//顯示 ? ? ? ? ? ?TR0 = 1; ? ? ? ? ? ? ? ? //啟動定時器,發音 ? ? ? ? ? ?while (Keyscan() < 16); //等待釋放 ? ? ? ? ? ?SPK = 1; ? ? ? ? ? ? ? ? //停止發音 } } } } //===============================================? void T0_INT(void) interrupt 1 { ? ? ?TL0 = FreqTemp; ? ? ? ? ? ? ? ?//載入定時半周期的初始值 ? ? ?TH0 = FreqTemp >> 8; ? ? ?SPK = ~SPK; ? ? ? ? ? ? ? ? ? ?//發音 }? ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看