您的位置 首页 测评

EEPROM 存储电台PLL子程序

这是一个单片机控制的收音机程序完整代码和原理图下载地址:http:www51heicombbsdpj-19294-1html下面我我截图的一个子程序include

这是一个单片机操控的收音机程序完好代码和原理图下载地址:http://www.51hei.com/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转化缓存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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区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扇区EEPROM_Write_Byte(Index,0x0e,0x00);			//写入电台序号										break;case 15:EEPROM_Earse(0x0e,0x00);  					//擦除第8扇区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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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电台PLLTemp_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扇区EEPROM_Write_Byte(Index,0x0e,0x00);		//写入电台序号}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/318104.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部