亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myboard.c

?? 單片機電子音樂程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
  SCL=0;
  IICClockDelay();
}
/*************************************************************************/
void StartIIC()                /*發送IIC總線啟動時序*/
{
    SCL=1;
	IICClockDelay();
	SDA=1;
	IICClockDelay();
    SDA=0;
	IICClockDelay();
	SCL=0;
	IICClockDelay();   
}
/*************************************************************************/
void StopIIC()                 /*發送IIC總線停止時序*/
{
    SDA=0;
	IICClockDelay();
	SCL=1;
	IICClockDelay();
	SDA=1;
	IICClockDelay();
	SCL=1;
	IICClockDelay();
}
/*************************************************************************/
bit IICSendByte(uchar byteData)   /*向24C02發送一個字節數據或地址函數,返回值為發送成功與否標志*/
{
    bit ackFlag;
	uchar i;
    for(i=0;i<8;i++)              /*要傳送的數據長度為8位*/
    {
        if((byteData<<i)&0x80)    /*依次判斷待發送位高低*/
            SDA=1;                
        else  
            SDA=0;                   
        IICClockDelay();
        SCL=1;                    /*置時鐘線為高,通知24C02開始接收數據位*/
        IICClockDelay();         
        SCL=0; 
	    IICClockDelay();
    }
    SDA=1;                        /*8位數據發送完后釋放數據線,準備接收應答位*/
    IICClockDelay();   
    SCL=1;
    IICClockDelay();
    if(SDA==1)
        ackFlag=0;                /*24c02無應答*/     
    else 
        ackFlag=1;                /*數據成功發送*/
    SCL=0;
    IICClockDelay();
	return(ackFlag);              /*返回24C02應答標志*/
}
/*************************************************************************/
uchar  IICRcvByte()               /*從24C02讀取一個字節數據函數,返回值為讀入的該字節*/
{
    uchar retbyteData=0x00,i;       /*置返回值初值為0x00*/
    for(i=0;i<8;i++)
    {
        SDA=1;
        IICClockDelay();
        SCL=1;                    /*拉高時鐘線后讀取數據線電平*/
        IICClockDelay();
	    retbyteData=retbyteData<<1;   /*返回值依次左移一位*/
	    if(SDA==1)                    /*讀取數據線電平至于返回值空出的一位*/
	    { 
	        retbyteData+=1;
	    }
	    SCL=0;                    /*拉低釋放時鐘線*/     
	    IICClockDelay();
   }
   return(retbyteData);
}
/*************************************************************************/
/*向24C02的指定地址寫入若干個數據函數*/
bit IICWrite(uchar slaveAddress,uchar subAddress,uchar *dataPointer,uchar num)
{
    bit retBit;	
    uchar i;
    StartIIC();               	              /*啟動總線*/
    retBit=IICSendByte(slaveAddress);         /*發送器件地址*/
    if(retBit==0)
        return(0);
    retBit=IICSendByte(subAddress);           /*發送器件子地址*/
    if(retBit==0)
        return(0);
    for(i=0;i<num;i++)
    {
        retBit=IICSendByte(*(dataPointer+i)); /*發送數據*/
        if(retBit==0)
            return(0);
    }   
    StopIIC();  		                      /*結束總線*/ 
    return(0);
}
/*************************************************************************/
/*從24C02的指定地址讀入若干個數據函數*/
bit IICRead(uchar slaveAddress,uchar subAddress,uchar *dataPointer,uchar num)
{
    bit retBit;	
	uchar i;
    StartIIC();                               /*啟動總線*/
    retBit=IICSendByte(slaveAddress);         /*發送器件從地址*/   
    if(retBit==0)
        return(0);   
    retBit=IICSendByte(subAddress);           /*發送器件子地址*/   
    if(retBit==0)
        return(0);
    StopIIC();                                /*結束總線*/ 
    StartIIC();			                      /*重新啟動總線*/
    retBit=IICSendByte(slaveAddress+1);   
    if(retBit==0)
        return(0);  
    for(i=0;i<num-1;i++)
    {
        *dataPointer=IICRcvByte();            /*接收數據*/
        IICAck(0);                            /*發送應答位*/
        dataPointer++;
    }                   
    *dataPointer=IICRcvByte();                /*接收數據*/
    IICAck(1);
    StopIIC();                                /*結束總線*/ 
    return(1);
}
/*************************************************************************/
void Timer0Int() interrupt 1 using 2   	    /*每隔SCAN_CYCLEus中斷掃描一次數碼管*/
{
    uint temp;
    LEDCycle500usFlag=1;                    /*置500us標志位*/
    ScanSeg7();
    if(Int0Flag==1)                         /*如果需要產生音樂頻率則按音頻改變Timer0的中斷周期*/
	{	    
        P3_3=~P3_3;                         /*每個Timer0中斷翻轉一下P3.7的電平以產生相應頻率的方波*/
		TH0=TH0Global;
	    TL0=TL0Global;
	}
	else                                    /*如果不需要產生音樂頻率則按固定掃描時間改變Timer0的中斷周期*/
	{
	    temp=65536-SCAN_CYCLE;
	    TH0=temp>>8;
		TL0=temp-((temp>>8)<<8);
	}	
}	
/*************************************************************************/
void Timer1Int() interrupt 3 using 3     	/*Timer1中斷服務程序,中斷周期為10ms*/
{
    uchar ucharTemp,ucharTemp1,TH0temp,TL0temp;
	uint temp;
    static uchar s_timeBaseCounter;
    static uchar s_paiCounter,s_secCounter,s_paiNum;
	temp=65536-10000;                       /*中斷周期為10ms*/
    TH1=temp>>8;	                        /*temp/256相當于右移8位*/ 	
    TL1=temp-((temp>>8)<<8);                /*temp%256*/
	if(++s_timeBaseCounter>=10)             /*100ms到了則設置100ms標志位*/
	{
	    s_timeBaseCounter=0;
	    LEDCycle100msFlag=1;       
	}
	LEDCycle10msFlag=1;                     /*設置10ms標志位*/

    if(++s_paiCounter>=s_paiNum)		    /*音樂一拍的時間到了*/
    {
        s_paiCounter=0;
        switch(s_musicCounter)              /*根據當前音樂編號查找下一個音樂標識碼*/
		{
		case 0x01: ucharTemp=c_music1[s_tableCounter++];break;
		case 0x02: ucharTemp=c_music2[s_tableCounter++];break;
		case 0x03: ucharTemp=c_music3[s_tableCounter++];break;
		case 0x04: ucharTemp=c_music4[s_tableCounter++];break;
		case 0x05: ucharTemp=c_music5[s_tableCounter++];break;
		case 0x06: ucharTemp=c_music6[s_tableCounter++];break;
		case 0x07: ucharTemp=c_music7[s_tableCounter++];break;
		case 0x08: ucharTemp=c_music8[s_tableCounter++];break;
		case 0x09: ucharTemp=c_music9[s_tableCounter++];break;
		case 0x00: ucharTemp=c_music0[s_tableCounter++];break;
		}			
		if(ucharTemp==0x00)                 /*如果查到0x00則表示本首歌曲結束*/
		{
			Int0Flag=0;                     /*產生音樂頻率標志置零*/
			temp=65536-SCAN_CYCLE;
			TH0temp=temp>>8;                    /*temp/256相當于右移8位*/
			TL0temp=temp-((temp>>8)<<8);        /*temp%256*/
			TH0=TH0temp;
			TL0=TL0temp;
			s_paiNum=4*PAI_BASE;            /*本首歌曲結束后停頓4*PAI_BASE*10ms=600ms再繼續播放*/
			P3_7=1;                         /*把喇叭關掉*/
			s_tableCounter=0;
			if(musicAutoFlag==1)            /*如果歌曲自動循環播放功能打開則跳到下一首歌曲*/
			{
			    if(++s_musicCounter>(uchar)MUSIC_NUM)
			    {
				    s_musicCounter=0x01;
			    }
			}
		}
		else                                       /*如果查到非0x00則表示是音樂標識碼*/
		{			    
			s_paiNum=(ucharTemp&0x0f)*PAI_BASE;    /*音樂標識碼的低四位為節拍碼*/
			ucharTemp1=(ucharTemp&0xf0)>>4;        /*音樂標識碼的高四位為音頻碼*/
			if(ucharTemp1==0)                      /*如果音頻碼為零則表示不發音*/
			{
			    Int0Flag=0;
				temp=65536-SCAN_CYCLE;
				TH0temp=temp>>8;                       /*temp/256相當于右移8位*/
			    TL0temp=temp-((temp>>8)<<8);           /*temp%256*/
				TH0=TH0temp;
			    TL0=TL0temp;
				Int0Flag=0;
			}
			else                                   /*如果音頻碼不為零則按此改變Timer0的中斷周期*/
			{
			    Int0Flag=0;
			    temp=c_musicFreq[ucharTemp1-1];
				TH0temp=temp>>8;                       /*temp/256相當于右移8位*/
			    TL0temp=temp-((temp>>8)<<8);           /*temp%256*/
				TH0=TH0temp;
			    TL0=TL0temp;
				TH0Global=TH0;                       /*保存新的代表音頻的Timer0周期值*/
				TL0Global=TL0;
				Int0Flag=1;
		    }
		}
    }

    if(++s_secCounter>=100)               /*如果Timer1中斷100次則表示1s到了*/
	{
	    s_secCounter=0;
        sec++;			                  /*秒加一*/
        modifyTimeFlag=1;
    }	
    TF1=0;                                 
}				
/*************************************************************************/
void UARTInt() interrupt 4 using 1   	  /*串口中斷服務程序*/
{
    if(TI==1)                             /*是發送中斷則返回*/
	{
	    TI=0;
		return;
	}
	else                                  /*接收到數據*/
	{	
	    uchar rcv;
        while(RI!=1);
	    {
	        RI=0;                         /*請接收標志位以激活下次串口中斷*/
		    rcv=SBUF;
		    switch(rcv)
		    {
			case 48: UARTKeyFlag=0x0d;    /*收到'0'*/
					 break;
		    case 49: UARTKeyFlag=0x00;    /*收到'1'*/
					 break;
			case 50: UARTKeyFlag=0x01;    /*收到'2'*/
					 break;
			case 51: UARTKeyFlag=0x02;    /*收到'3'*/
					 break;
			case 52: UARTKeyFlag=0x04;    /*收到'4'*/
					 break;
			case 53: UARTKeyFlag=0x05;    /*收到'5'*/
					 break;
			case 54: UARTKeyFlag=0x06;    /*收到'6'*/
					 break;
			case 55: UARTKeyFlag=0x08;    /*收到'7'*/
					 break;
			case 56: UARTKeyFlag=0x09;    /*收到'8'*/
					 break;
			case 57: UARTKeyFlag=0x0a;    /*收到'9'*/
					 break;
			case 65: UARTKeyFlag=0x03;    /*收到'A'*/
					 break;
			case 66: UARTKeyFlag=0x07;    /*收到'B'*/
					 break;
			case 67: UARTKeyFlag=0x0b;    /*收到'C'*/
					 break;
			case 68: UARTKeyFlag=0x0f;    /*收到'D'*/
					 break;
			case 69: UARTKeyFlag=0x0c;    /*收到'E'*/
					 break;
			case 70: UARTKeyFlag=0x0e;    /*收到'F'*/
					 break;
			}
	    }
	}
}
/*************************************************************************/
/////////////////////////////End of Program////////////////////////////////
/*************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩理论片中文av| 天堂一区二区在线| 91超碰这里只有精品国产| 国产一区二区三区日韩 | 91精品国产色综合久久久蜜香臀| 国产精一品亚洲二区在线视频| 亚洲一区在线观看网站| 久久精品亚洲一区二区三区浴池| 欧美色大人视频| 不卡av电影在线播放| 久久国产精品99久久久久久老狼| 亚洲人成在线播放网站岛国| 国产亚洲精品福利| 日韩丝袜美女视频| 欧美视频日韩视频在线观看| 成人97人人超碰人人99| 国产东北露脸精品视频| 韩国三级电影一区二区| 一本色道久久综合亚洲精品按摩 | 色综合一个色综合亚洲| 亚洲精品成人天堂一二三| 国产欧美日韩麻豆91| 日韩一区二区三| 欧美人伦禁忌dvd放荡欲情| 欧美在线免费播放| 91免费国产视频网站| 成人va在线观看| 丰满亚洲少妇av| 国产mv日韩mv欧美| 国产jizzjizz一区二区| 国产精品一卡二卡在线观看| 精品一区二区精品| 久久国产精品99精品国产| 久久精品国产**网站演员| 蜜桃视频免费观看一区| 免费观看一级欧美片| 日日夜夜一区二区| 日韩高清不卡一区二区| 欧美aⅴ一区二区三区视频| 日韩不卡手机在线v区| 奇米亚洲午夜久久精品| 人人狠狠综合久久亚洲| 久久99精品一区二区三区三区| 精品综合久久久久久8888| 麻豆高清免费国产一区| 精品亚洲aⅴ乱码一区二区三区| 久久成人免费电影| 久久99精品国产| 国产成人av自拍| 91一区二区在线| 在线欧美日韩国产| 在线播放国产精品二区一二区四区 | 日韩亚洲国产中文字幕欧美| 欧美另类变人与禽xxxxx| 欧美狂野另类xxxxoooo| 日韩一区二区三区在线观看| 精品日韩av一区二区| 中文字幕第一页久久| 椎名由奈av一区二区三区| 亚洲一区二区黄色| 午夜av一区二区三区| 久久精品国产一区二区| 国产不卡在线视频| 91国偷自产一区二区三区成为亚洲经典| 日本精品免费观看高清观看| 欧美福利视频导航| 久久久精品天堂| 亚洲男人天堂一区| 秋霞av亚洲一区二区三| 国产伦精品一区二区三区免费| 成人黄色av电影| 欧美日韩国产一二三| 亚洲精品在线电影| 亚洲美女电影在线| 美腿丝袜在线亚洲一区 | 99精品偷自拍| 欧美日韩高清影院| 久久免费视频一区| 亚洲午夜激情网页| 国产在线精品免费av| 色综合天天综合网天天狠天天| 欧美高清激情brazzers| 国产视频一区不卡| 亚洲高清视频在线| 成人免费视频视频在线观看免费| 欧美日韩一区小说| 久久精品欧美一区二区三区麻豆| 一区二区欧美国产| 国产老肥熟一区二区三区| 欧美日韩精品一区二区天天拍小说 | 久久66热偷产精品| 91福利在线观看| 久久久久97国产精华液好用吗| 亚洲第一久久影院| 成人美女在线视频| 日韩免费在线观看| 亚洲一区二区三区三| 成人永久免费视频| 日韩一区二区电影网| 一区二区三区免费看视频| 国产在线精品国自产拍免费| 欧美精品日韩综合在线| 最新国产成人在线观看| 精品无人码麻豆乱码1区2区| 欧美少妇bbb| 亚洲六月丁香色婷婷综合久久 | 亚洲最大色网站| 国产成人在线电影| 日韩欧美你懂的| 亚洲午夜久久久久| 色综合天天天天做夜夜夜夜做| 久久亚洲精品国产精品紫薇| 美女视频免费一区| 欧美电影在哪看比较好| 亚洲高清免费视频| 日本伦理一区二区| 综合av第一页| jlzzjlzz欧美大全| 亚洲国产精品黑人久久久| 黑人精品欧美一区二区蜜桃| 欧美一区二区久久久| 香蕉av福利精品导航| 欧美自拍丝袜亚洲| 亚洲精品国产品国语在线app| www.久久久久久久久| 国产欧美日韩精品在线| 国产曰批免费观看久久久| 欧美大尺度电影在线| 蜜桃视频第一区免费观看| 欧美精品色综合| 天天操天天色综合| 欧美日韩第一区日日骚| 午夜精品影院在线观看| 欧美三级韩国三级日本一级| 亚洲综合视频网| 欧美日韩一区二区三区在线看| 一区二区三区四区五区视频在线观看| 91在线精品一区二区三区| 日韩理论片在线| 色综合视频一区二区三区高清| 亚洲美女在线国产| 在线观看欧美黄色| 亚洲第一主播视频| 日韩一区二区在线观看| 国模套图日韩精品一区二区| 久久亚洲欧美国产精品乐播| 国产盗摄视频一区二区三区| 国产精品人成在线观看免费 | 在线视频综合导航| 亚洲一卡二卡三卡四卡无卡久久 | 日一区二区三区| 精品久久国产字幕高潮| 国产精品中文字幕一区二区三区| 国产亚洲va综合人人澡精品| 成人免费看视频| 亚洲色图视频免费播放| 欧美另类久久久品| 黄网站免费久久| 国产精品久久久久久久久免费樱桃 | 欧美日韩1234| 久久精品国产第一区二区三区| 久久午夜免费电影| 99精品一区二区| 日韩福利电影在线观看| 欧美精品一区二区在线播放| 成人精品一区二区三区中文字幕 | 国产一区二区三区视频在线播放| 国产精品视频免费| 欧美性生活久久| 久久爱www久久做| 中文字幕一区二区5566日韩| 欧美影院精品一区| 九九国产精品视频| 日韩理论在线观看| 91精品欧美久久久久久动漫 | 国产成人免费视| 亚洲午夜久久久久中文字幕久| 7777精品久久久大香线蕉| 国产精品自拍毛片| 亚洲18女电影在线观看| 久久精品免费在线观看| 欧美性极品少妇| 国产精品主播直播| 婷婷成人激情在线网| 久久美女艺术照精彩视频福利播放 | 日韩电影在线免费看| 国产精品狼人久久影院观看方式| 欧美日精品一区视频| 国产精品白丝av| 亚洲国产一区二区在线播放| 久久精品视频一区二区三区| 欧美日韩在线精品一区二区三区激情| 国内精品国产三级国产a久久| 亚洲一区视频在线| 中文字幕国产精品一区二区| 日韩欧美另类在线| 欧美日韩国产综合一区二区 | 国内精品在线播放| 性欧美大战久久久久久久久| 中文字幕制服丝袜成人av|