欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)8鍵電子琴 [打印本頁]

作者: subobo    時間: 2018-7-7 12:50
標(biāo)題: 單片機(jī)8鍵電子琴
#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 (22.11 KB, 下載次數(shù): 45)

TIM截圖20180707124949.png





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1