久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2452|回復(fù): 0
收起左側(cè)

單片機8鍵電子琴

[復(fù)制鏈接]
ID:321563 發(fā)表于 2018-7-7 12:50 | 顯示全部樓層 |閱讀模式
#include <reg52.H>
unsigned char temp;
unsigned char key;
unsigned char i,j;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]=  {64820,64898,64968,65030,65058,65110,65157,65178};  //音符表 do re mi fa sol la xi duo

unsigned int aa;

sbit K1=P1^0;  //音符按鍵
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
sbit K6=P1^5;
sbit K7=P1^6;
sbit K8=P1^7;

sbit Speak=P2^0; //喇叭
/***********************1ms*****************************/
void delay_1ms(unsigned int q)
{
        unsigned int i,j;
        for(i=0;i<q;i++)
                for(j=0;j<120;j++);
}

void main(void)   //主程序
{                         
    TMOD=0x01;
        ET0=1;
        EA=1;
        Speak=0;
        while(1)
                {
           if(!K1)               
                    {
                           delay_1ms(20);//延時去抖
                                  if(!K1)
                                  {
                                     aa=0;
                     key=0;//將音樂的值賦值給定時器以便發(fā)出對應(yīng)的聲音
                                         P0=0xC0;//顯示0
                     STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                     STL0=tab[key]%256;
                                     TR0=1;
                                     while(!K1)
                                   ;
                  }
            }
                if(!K2)               
                    {
                           delay_1ms(20);//延時去抖
                                  if(!K2)
                                  {
                                    aa=0;
                    key=1;
                                        P0=0xF9;//顯示1
                    STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                   STL0=tab[key]%256;
                                   TR0=1;
                                   while(!K2)
                                   ;
                  }
           }
                if(!K3)               
                    {
                           delay_1ms(20);//延時去抖
                                  if(!K3)
                                  {
                                   aa=0;
                   key=2;
                                   P0=0xA4;//顯示2
                    STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                   STL0=tab[key]%256;
                                   TR0=1;
                                   while(!K3)
                                   ;
                  }
             }               
                if(!K4)               
                    {
                          delay_1ms(20);//延時去抖
                           if(!K4)
                                 {
                                  aa=0;
                  key=3;
                                  P0=0xB0;//顯示3
                  STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                   STL0=tab[key]%256;
                                   TR0=1;
                                   while(!K4)
                                   ;
                 }
              }               
                if(!K5)               
                    {
                           delay_1ms(20);//延時去抖
                                  if(!K5)
                                  {
                                   aa=0;
                   key=4;
                                        P0=0x99;//顯示4
                   STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                   STL0=tab[key]%256;
                                   TR0=1;
                                   while(!K5)
                                   ;
                  }
              }
                if(!K6)               
                    {
                         delay_1ms(20);//延時去抖
                         if(!K6)
                          {
                            aa=0;
                key=5;
                                P0=0x92;//顯示5
                STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                STL0=tab[key]%256;
                                TR0=1;
                                while(!K6)
                                ;
               }
            }
                if(!K7)               
                    {
                         delay_1ms(20);//延時去抖
                        if(!K7)
                        {
                          aa=0;
              key=6;
                          P0=0x82;//顯示6
              STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                          STL0=tab[key]%256;
                          TR0=1;
                          while(!K7)
                          ;
            }
           }
                if(!K8)               
                    {
                         delay_1ms(20);//延時去抖
                         if(!K8)
                                {                                 
                                 aa=0;
                 key=7;
                                 P0=0xF8;//顯示7
                 STH0=tab[key]/256;        //計算音符對應(yīng)的定時器計數(shù)值
                                 STL0=tab[key]%256;
                                 TR0=1;
                                 while(!K8)
                                 ;
                }
             }
                 if(aa<50000)aa++;
                 delay_1ms(20);               
                 if(aa>=150) //延時時間數(shù)字越大越久
                    {
                         TR0=0;
                     Speak=0;//當(dāng)按鍵彈起的時候,蜂鳴器停止發(fā)音
                        }       
             }                       
         }

void t0(void) interrupt 1 using 0 {     //定時器T0中斷服務(wù)函數(shù)
        TH0=STH0;
        TL0=STL0;
        Speak=~Speak;                                  //產(chǎn)生方波
}

TIM截圖20180707124949.png

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人国产精品色哟哟 | 亚洲人成人一区二区在线观看 | 中文字幕乱码一区二区三区 | 欧洲亚洲一区二区三区 | 狠狠狠色丁香婷婷综合久久五月 | 一区二区三区欧美在线观看 | 中文字幕精品一区 | 草草草网站 | 午夜在线视频 | 成人免费视频观看 | 国产最新视频在线 | 狠狠影院 | 久草视频在线播放 | 在线免费观看视频你懂的 | 日韩影院一区 | 亚洲综合区 | 777毛片| 青青草av网站 | 国产农村一级片 | 欧美一二三四成人免费视频 | 亚洲乱码国产乱码精品精的特点 | 国产日韩电影 | 婷婷桃色网 | 精品亚洲永久免费精品 | 久久影音先锋 | av色在线 | 国产伦一区二区三区视频 | 日韩av成人在线 | 国产精品无码久久久久 | 日日想夜夜操 | 91欧美| 久久久成人网 | 精品熟人一区二区三区四区 | 亚洲国产欧美一区二区三区久久 | 国产在线观看网站 | 国产69久久精品成人看动漫 | 欧美啪啪 | 精品久久久久久久 | 99精品国自产在线 | 亚洲综合色站 | 久久久精品 |