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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

EEPROM 存儲電臺PLL子程序

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年06月23日   【字體:

這是一個單片機控制的收音機程序完整代碼和原理圖下載地址: http://www.zg4o1577.cn/bbs/dpj-19294-1.html 下面我我截圖的一個子程序.

#include "STC12C5620AD.H"
#include "EEPROM.H"
#include "Channel_Handle.H"
/********************** 聲明外部變量**************************/
/********************** EEPROM 存儲電臺PLL*************************/
void EEPROM_Save_PLL(uchar Index,uint Udata)
{
	 uchar	Temp_H;
	 uchar	Temp_L;				//PLL轉(zhuǎn)換緩存
	 uchar	EEPROM_H;
	 uchar	EEPROM_L;			//EEPROM讀取緩存
	 Temp_H=Udata>>8;
	 Temp_L=Udata%256;
	 switch (Index)
	 	{
			case 1:
				EEPROM_H=EEPROM_Read_Byte(0x00,0x02);	  	//暫存N0.8電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x00,0x03);	  	//暫存N0.8電臺PLL高位
	 			EEPROM_Earse(0x00,0x00);  					//擦除第1扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x00,0x00);		//寫入N0.1電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x00,0x01);		//寫入N0.1電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x00,0x02);		//寫入N0.8電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x00,0x03);		//寫入N0.8電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 2:
				EEPROM_H=EEPROM_Read_Byte(0x02,0x02);	  	//暫存N0.9電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x02,0x03);	  	//暫存N0.9電臺PLL高位
	 			EEPROM_Earse(0x02,0x00);  					//擦除第2扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x02,0x00);		//寫入N0.2電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x02,0x01);		//寫入N0.2電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x02,0x02);		//寫入N0.9電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x02,0x03);		//寫入N0.9電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 3:
				EEPROM_H=EEPROM_Read_Byte(0x04,0x02);	  	//暫存N0.10電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x04,0x03);	  	//暫存N0.10電臺PLL高位
	 			EEPROM_Earse(0x04,0x00);  					//擦除第3扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x04,0x00);		//寫入N0.3電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x04,0x01);		//寫入N0.3電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x04,0x02);		//寫入N0.10電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x04,0x03);		//寫入N0.10電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 4:
				EEPROM_H=EEPROM_Read_Byte(0x06,0x02);	  	//暫存N0.11電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x06,0x03);	  	//暫存N0.11電臺PLL高位
	 			EEPROM_Earse(0x06,0x00);  					//擦除第4扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x06,0x00);		//寫入N0.4電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x06,0x01);		//寫入N0.4電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x06,0x02);		//寫入N0.11電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x06,0x03);		//寫入N0.11電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 5:
				EEPROM_H=EEPROM_Read_Byte(0x08,0x02);	  	//暫存N0.12電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x08,0x03);	  	//暫存N0.12電臺PLL高位
	 			EEPROM_Earse(0x08,0x00);  					//擦除第5扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x08,0x00);		//寫入N0.5電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x08,0x01);		//寫入N0.5電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x08,0x02);		//寫入N0.12電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x08,0x03);		//寫入N0.12電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 6:
				EEPROM_H=EEPROM_Read_Byte(0x0a,0x02);	  	//暫存N0.13電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x0a,0x03);	  	//暫存N0.13電臺PLL高位
	 			EEPROM_Earse(0x0a,0x00);  					//擦除第6扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x0a,0x00);		//寫入N0.6電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x0a,0x01);		//寫入N0.6電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x0a,0x02);		//寫入N0.13電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x0a,0x03);		//寫入N0.13電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 7:
				EEPROM_H=EEPROM_Read_Byte(0x0c,0x02);	  	//暫存N0.14電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x0c,0x03);	  	//暫存N0.14電臺PLL高位
	 			EEPROM_Earse(0x0c,0x00);  					//擦除第7扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x0c,0x00);		//寫入N0.7電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x0c,0x01);		//寫入N0.7電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x0c,0x02);		//寫入N0.14電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x0c,0x03);		//寫入N0.14電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 8:
				EEPROM_H=EEPROM_Read_Byte(0x00,0x00);	  	//暫存N0.1電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x00,0x01);	  	//暫存N0.1電臺PLL高位
	 			EEPROM_Earse(0x00,0x00);  					//擦除第1扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x00,0x02);		//寫入N0.8電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x00,0x03);		//寫入N0.8電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x00,0x00);		//寫入N0.1電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x00,0x01);		//寫入N0.1電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 9:
				EEPROM_H=EEPROM_Read_Byte(0x02,0x00);	  	//暫存N0.2電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x02,0x01);	  	//暫存N0.2電臺PLL高位
	 			EEPROM_Earse(0x02,0x00);  					//擦除第2扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x02,0x02);		//寫入N0.9電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x02,0x03);		//寫入N0.9電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x02,0x00);		//寫入N0.2電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x02,0x01);		//寫入N0.2電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 10:
				EEPROM_H=EEPROM_Read_Byte(0x04,0x00);	  	//暫存N0.3電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x04,0x01);	  	//暫存N0.3電臺PLL高位
	 			EEPROM_Earse(0x04,0x00);  					//擦除第3扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x04,0x02);		//寫入N0.10電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x04,0x03);		//寫入N0.10電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x04,0x00);		//寫入N0.3電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x04,0x01);		//寫入N0.3電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 11:
				EEPROM_H=EEPROM_Read_Byte(0x06,0x00);	  	//暫存N0.4電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x06,0x01);	  	//暫存N0.4電臺PLL高位
	 			EEPROM_Earse(0x06,0x00);  					//擦除第4扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x06,0x02);		//寫入N0.11電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x06,0x03);		//寫入N0.11電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x06,0x00);		//寫入N0.4電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x06,0x01);		//寫入N0.4電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 12:
				EEPROM_H=EEPROM_Read_Byte(0x08,0x00);	  	//暫存N0.5電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x08,0x01);	  	//暫存N0.5電臺PLL高位
	 			EEPROM_Earse(0x08,0x00);  					//擦除第5扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x08,0x02);		//寫入N0.12電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x08,0x03);		//寫入N0.12電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x08,0x00);		//寫入N0.5電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x08,0x01);		//寫入N0.5電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 13:
				EEPROM_H=EEPROM_Read_Byte(0x0a,0x00);	  	//暫存N0.6電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x0a,0x01);	  	//暫存N0.6電臺PLL高位
	 			EEPROM_Earse(0x0a,0x00);  					//擦除第6扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x0a,0x02);		//寫入N0.13電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x0a,0x03);		//寫入N0.13電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x0a,0x00);		//寫入N0.6電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x0a,0x01);		//寫入N0.6電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 14:
				EEPROM_H=EEPROM_Read_Byte(0x0c,0x00);	  	//暫存N0.7電臺PLL高位
				EEPROM_L=EEPROM_Read_Byte(0x0c,0x01);	  	//暫存N0.7電臺PLL高位
	 			EEPROM_Earse(0x0c,0x00);  					//擦除第7扇區(qū)
				EEPROM_Write_Byte(Temp_H,0x0c,0x02);		//寫入N0.14電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x0c,0x03);		//寫入N0.14電臺PLL低位
				EEPROM_Write_Byte(EEPROM_H,0x0c,0x00);		//寫入N0.7電臺PLL高位
				EEPROM_Write_Byte(EEPROM_L,0x0c,0x01);		//寫入N0.7電臺PLL低位
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號										
				break;
			case 15:
	 			EEPROM_Earse(0x0e,0x00);  					//擦除第8扇區(qū)
				EEPROM_Write_Byte(Index,0x0e,0x00);			//寫入電臺序號
				EEPROM_Write_Byte(Temp_H,0x0e,0x02);		//寫入N0.15電臺PLL高位
				EEPROM_Write_Byte(Temp_L,0x0e,0x03);		//寫入N0.15電臺PLL低位														
				break;
			default:
				break;
		}

}
/********************** EEPROM 讀取電臺PLL*************************/
uint EEPROM_Get_PLL(uchar Index)
{
	 uint PLL_Temp;
	 uchar	Temp_H;
	 uchar	Temp_L;
	 switch (Index)
	 	{
			case 1:										//NO.1電臺PLL
				Temp_H=EEPROM_Read_Byte(0x00,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x00,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 2:										//NO.2電臺PLL
				Temp_H=EEPROM_Read_Byte(0x02,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x02,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 3:										//NO.3電臺PLL
				Temp_H=EEPROM_Read_Byte(0x04,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x04,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 4:										//NO.4電臺PLL
				Temp_H=EEPROM_Read_Byte(0x06,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x06,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 5:										//NO.5電臺PLL
				Temp_H=EEPROM_Read_Byte(0x08,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x08,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 6:										//NO.6電臺PLL
				Temp_H=EEPROM_Read_Byte(0x0a,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x0a,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;
			case 7:										//NO.7電臺PLL
				Temp_H=EEPROM_Read_Byte(0x0c,0x00);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x0c,0x01);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 8:										//NO.8電臺PLL
				Temp_H=EEPROM_Read_Byte(0x00,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x00,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 9:										//NO.9電臺PLL
				Temp_H=EEPROM_Read_Byte(0x02,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x02,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 10:									//NO.10電臺PLL
				Temp_H=EEPROM_Read_Byte(0x04,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x04,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 11:									//NO.11電臺PLL
				Temp_H=EEPROM_Read_Byte(0x06,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x06,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;	
			case 12:									//NO.12電臺PLL
				Temp_H=EEPROM_Read_Byte(0x08,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x08,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 13:									//NO.13電臺PLL
				Temp_H=EEPROM_Read_Byte(0x0a,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x0a,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 14:									//NO.14電臺PLL
				Temp_H=EEPROM_Read_Byte(0x0c,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x0c,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;
			case 15:									//NO.15電臺PLL
				Temp_H=EEPROM_Read_Byte(0x0e,0x02);	  	//獲取PLL高位
				Temp_L=EEPROM_Read_Byte(0x0e,0x03);	  	//獲取PLL高位
				PLL_Temp=Temp_H<<8|Temp_L;										
				break;																																													
			default:
				break;
		}
		return PLL_Temp;
}
/********************** EEPROM 讀取最后一次序號*************************/
uchar EEPROM_Get_Index()
{
	uchar Index;
	Index=EEPROM_Read_Byte(0x0e,0x00);
	return Index;
}
/********************** EEPROM 寫入最后一次序號*************************/
void EEPROM_Write_Index(uchar Index)
{
	 EEPROM_Earse(0x0e,0x00);  				//首先擦除第8扇區(qū)
	 EEPROM_Write_Byte(Index,0x0e,0x00);		//寫入電臺序號
}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 天天想天天干 | 黄色一级片视频 | 极品电影院 | 国产精品免费小视频 | 黄色av网站在线免费观看 | 国产日韩欧美 | 免费视频二区 | 亚洲国产二区 | 高清成人av | 欧美a级成人淫片免费看 | 成人免费视频 | 日本亚洲欧美 | 国产精品久久久久9999鸭 | 久久久国产一区 | 国产乱码精品1区2区3区 | 欧美一区二区三区在线观看 | 亚洲综合视频 | 亚洲高清成人 | 国产精品久久久久久久久久三级 | 国产a视频 | 红桃视频一区二区三区免费 | 精品欧美一区二区三区久久久 | av网址在线播放 | 中文字幕国 | 亚洲午夜在线 | 国产精品黄色 | 亚洲美女在线一区 | 99re在线免费视频 | 成人一区二区在线 | 日韩av一区二区在线观看 | 色成人免费网站 | 福利影院在线看 | 亚洲手机视频在线 | 国产激情视频 | 国产精品日日做人人爱 | 国色天香成人网 | 亚洲区一区二 | 天天干狠狠操 | 国产成人精品午夜视频免费 | 精品视频一区二区三区 | 成人欧美一区二区三区在线播放 |