1、AT88SCxx 读写程序(C 程序)使用说明本程序适用于读写 AT88SCxx 系列器件。在将 AT88SCxx 焊装到电路板之前,必须先对其进行配置并在本程序的 GC_TABLE/PASSWORD_TABLE 填好 Gc Password,配置器件可使用本公司提供的参考配置文件和 AT88SCxx 系列读写编程器(SC-RWP2 ) 。技术支持热线:020-856628661 一般说明本程序分为明文读写部分和密文读写部分,数组 GPA 最好能直接寻址,读解到的明文或将要写入的明文存放在数组 rwdata,rwdata 长度可改,最小字节为 0x04,最大为 0x24; 断电前进行了写操作,
2、为保证写数据掉电不丢失,应在断电前再执行一个命令动作;用户不需要的子程序即可将之删除。2.明文读写子程序包括:2.1.校验安全密码unsigned char verify_sc_plaintext(unsigned char sc_firsr_byte,unsigned char sc_second_byte,unsigned char sc_third_byte)sc_firsr_byte: secure code 的第 1 个字节单元sc_second_byte:secure code 的第 2 个字节单元sc_third_byte: secure code 的第 3 个字节单元如:ver
3、ify_sc_plaintext(0xDD,0x42,0x97 )2.2.选用户区void set_user_zone_plaintext(unsigned char zonep)zonep =0x00,选 00 用户区zonep =0x01,选 01 用户区zonep =0x02,选 02 用户区zonep =0x03,选 03 用户区2.3 明文形式读配置区或读用户区void read_paintext(unsigned char rd_cmd,unsigned char A1,unsigned char A2,unsigned char N)rd_cmd:0xb2 或 0xb6A1: h
4、igh_addrA2: low_addrN: read number2.4 明文形式写配置区或写用户区void write_paintext(unsigned char wr_cmd,unsigned char A1,unsigned char A2,unsigned char N)rd_cmd:0xb0 或 0xb4A1: high_addrA2: low_addrN: write number3. 密文读写部分3.1 认证unsigned char AUTHENTICATION(unsigned char GC_select)GC_select=0x00,则使用 GC0 进行认证GC_se
5、lect=0x01,则使用 GC1 进行认证GC_select=0x02,则使用 GC2 进行认证GC_select=0x03,则使用 GC3 进行认证3.2 校验密码unsigned char verify_write_password(unsigned char pw_select)unsigned char verify_read_password(unsigned char pw_select)pw_select=0x00, 则使用 password 0 进行密码校验pw_select=0x01, 则使用 password 1 进行密码校验pw_select=0x02, 则使用 pas
6、sword 2 进行密码校验pw_select=0x03, 则使用 password 3 进行密码校验pw_select=0x04, 则使用 password 4 进行密码校验pw_select=0x05, 则使用 password 5 进行密码校验pw_select=0x06, 则使用 password 6 进行密码校验pw_select=0x07, 则使用 password 7 进行密码校验3.3 选用户区 void set_user_zone(unsigned char zone)zone =0x00,选 00 用户区zone =0x01,选 01 用户区zone =0x02,选 02
7、用户区zone =0x03,选 03 用户区3.4 从用户区读解出明文数据void read_user_zone(unsigned char rd_high_addr,unsigned char rd_low_addr,unsigned char rd_number)rd_high_addr: high_addrrd_low_addr: low_addrrd_number: N3.5 把明文数据写到用户区 write_user_zone(unsigned char wr_high_addr,unsigned char wr_low_addr,unsigned char wr_number)wr_high_addr: high_addrwr_low_addr: low_addrwr_number: N