⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x24c04.c

📁 一个X24C系列芯片的离线编程器
💻 C
📖 第 1 页 / 共 2 页
字号:

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////型号选择/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
void menu(void)
{
//unsigned long i;
unsigned char tmp_k1=0,tmp_k2=0;
unsigned char xz=0;//选择计数器
unsigned int i;


printf("如果要读取芯片,请直接按下确认键\n\n如果要编程芯片,请连续按下选择/编程键,直至出现您要写入的型号后,按下确认键\n\n");
	while(1)
	{
		
		while((tmp_k1==0)&(tmp_k2==0))
		{
			i=0;while(K1==0){i++;if(i>1000)tmp_k1=1;else tmp_k1=0;}//按键防抖,按键检测
			//while(K1==0){while(K1==0);tmp_k1=1;}
			i=0;while(K2==0){i++;if(i>1000)tmp_k2=1;else tmp_k2=0;}
			//while(K2==0){while(K2==0);tmp_k2=1;}
		}

			//按下选择/编程键,进入菜单选择
			while(tmp_k1)
			{	
				tmp_k1=0;
				xz=xz+1;//按下选择/编程键选择计数器 + 1
				switch(xz)
				{
					case 1:  printf("按下确认键选择4200中文版芯片编程\n\n");
					break;

					case 2:  printf("按下确认键选择4200英文版芯片编程\n\n");
					break;

					case 3:  printf("按下确认键选择4200韩文版芯片编程\n\n");
					break;
					
					case 4:  printf("按下确认键选择4720中文版芯片编程\n\n");
					break;

					case 5:  printf("按下确认键选择4720英文版芯片编程\n\n");
					break;

					case 6:  printf("按下确认键选择4720韩文版芯片编程\n\n");
					break;
					
					case 7:  printf("按下确认键选择2150芯片编程\n\n");
					break;

					case 8:  printf("按下确认键选择2250中文版芯片编程\n\n");
					break;

					case 9:  printf("按下确认键选择2250英文版芯片编程\n\n");
					break;
					
					case 10:  printf("按下确认键选择3119芯片编程\n\n");
					break;

					case 11:  printf("按下确认键选择PE220芯片编程\n\n");
					break;

					case 12:  printf("按下确认键选择180芯片编程\n\n");
					break;

					default:
					{
						xz=0;//已无可型号可选择,将从头开始选择
						printf("按下确认键读取芯片中的全部内容\n\n");
						//printf("已无可用型号供选择,再按一下选择/编程键将从头开始选择\n\n");
					}
				}
			}

			//按下确认/返回键,初始化编程数据,并进入编程函数
			while(tmp_k2)
			{	
				tmp_k2=0;
				switch(xz)
				{
					case 1:
					{
						printf("你已选择了对4200中文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x10;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1400;
						zz_code2=0x1a00;
						zz_code3=0x1c00;
						zz_code4=0x1c80;
						jy_code=0x75a2;

						bc();//芯片编程函数
					}break;

					case 2:
					{
						printf("你已选择了对4200英文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x20;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1480;
						zz_code2=0x1a00;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0x7f28;

						bc();//芯片编程函数
					}break;
		
					case 3:
					{
						printf("你已选择了对4200韩文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x30;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1500;
						zz_code2=0x1a00;
						zz_code3=0x1c00;
						zz_code4=0x1c80;
						jy_code=0x75b2;

						bc();//芯片编程函数
					}break;

					case 4:
					{
						printf("你已选择了对4720中文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x40;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1580;
						zz_code2=0x1a80;
						zz_code3=0x1c00;
						zz_code4=0x1c80;
						jy_code=0x7297;
						bc();//芯片编程函数
					}break;

					case 5:
					{
						printf("你已选择了对4720英文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x50;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1600;
						zz_code2=0x1a80;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0x7d1b;

						bc();//芯片编程函数
					}break;
		
					case 6:
					{
						printf("你已选择了对4720韩文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x60;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1680;
						zz_code2=0x1a80;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0x7d1b;

						bc();//芯片编程函数
					}break;

					case 7:
					{
						printf("你已选择了对2150芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x70;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1700;
						zz_code2=0x1b00;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0xd4cf;
						bc();//芯片编程函数
					}break;

					case 8:
					{
						printf("你已选择了对2250中文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x80;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1780;
						zz_code2=0x1b80;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0xd667;

						bc();//芯片编程函数
					}break;
		
					case 9:
					{
						printf("你已选择了对2250英文版芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0x90;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1800;
						zz_code2=0x1c80;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0xd667;

						bc();//芯片编程函数
					}break;

					case 10:
					{
						printf("你已选择了对3119芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0xA0;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1880;
						zz_code2=0x1a00;
						zz_code3=0x1c00;
						zz_code4=0x1c80;
						jy_code=0x77f8;
						bc();//芯片编程函数
					}break;

					case 11:
					{
						printf("你已选择了对PE220芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0xB0;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1900;
						zz_code2=0x1a00;
						zz_code3=0x1c80;
						zz_code4=0x1c80;
						jy_code=0x8159;

						bc();//芯片编程函数
					}break;
		
					case 12:
					{
						printf("你已选择了对180芯片编程\n\n");
		
						//sn_address1是序列号防掉电备份器件地址;sn_address2是序列号防掉电备份数据地址
						sn_address1=0xac;
						sn_address2=0xC0;

						//sn_address3是写入序列号器件地址;sn_address4是写入序列号数据地址
						sn_address3=0xa0;
						sn_address4=0x3b;

						//zz_code代码开始地址指针;jy_code代码校验数据
						zz_code1=0x1980;
						zz_code2=0x1a80;
						zz_code3=0x1c00;
						zz_code4=0x1c80;
						jy_code=0x72c2;

						bc();//芯片编程函数
					}break;
			

					default:
					{
						printf("读取芯片中\n\n");

						x24c04_read_all();//读芯片

						printf("读取芯片完成\n\n");

						printf("如果要再次读取芯片,请直接按下确认键\n\n如果要编程芯片,请连续按下选择/编程键,直至出现您要写入的型号后,按下确认键\n\n");
					}
				}
			}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////

////////主程序///////////////////////////////////////////////////////////////////////////////////////////
//
void main(void) 
{
	BELL=1;
	rs232reset();//串行端口初始化
	x24c08_init();//i2c总线初始化,初始化24C08

	menu();//编程型号选择
	while(1);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////end///////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -