📄 x24c04.c
字号:
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////型号选择/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
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 + -