资源简介
读取STC单片机 ID号,利用CRC-ITU算法存入EEPROM,在应用程序中比较单片机ID号和EEPROM中的CRC数据,两者符合规定算法才运行程序执行,这样将达到程序坚不可摧的目的!(在具体应用中,可以灵活修改 生成多项式0X1021的值,防止被破解算法)
代码片段和文件信息
#include
#include
#include
sbit P0_0=P0^0; sbit P1_0=P1^0;
sbit P0_1=P0^1; sbit P1_1=P1^1;
sbit P0_2=P0^2; sbit P1_2=P1^2;
sbit P0_3=P0^3; sbit P1_3=P1^3;
sbit P0_4=P0^4; sbit P1_4=P1^4;
sbit P0_5=P0^5; sbit P1_5=P1^5;
sbit P0_6=P0^6; sbit P1_6=P1^6;
sbit P0_7=P0^7; sbit P1_7=P1^7;
sbit P2_0=P2^0; sbit P3_0=P3^0;
sbit P2_1=P2^1; sbit P3_1=P3^1;
sbit P2_2=P2^2; sbit P3_2=P3^2;
sbit P2_3=P2^3; sbit P3_3=P3^3;
sbit P2_4=P2^4; sbit P3_4=P3^4;
sbit P2_5=P2^5; sbit P3_5=P3^5;
sbit P2_6=P2^6; sbit P3_6=P3^6;
sbit P2_7=P2^7; sbit P3_7=P3^7;
#define ID_ADDR_RAM 0XF1
#define ID_ADDR_ROM 0X1FF9 //stc11 ROM 无ID号
void InitUart(void);
void SendUart(unsigned char dat);
void Delay10ms() ;
unsigned long crc_cal(unsigned char *ptrunsigned char len);//CRC-ITU
sfr AUXR=0x8E;
sfr BRT = 0x9C;
void INT_TR(void) ;
sfr ISP_DATA = 0xC2; /* Flash Data Register */
sfr ISP_ADDRH = 0xC3; /* flash address high */
sfr ISP_ADDRL = 0xC4; /* flash address low */
sfr ISP_CMD = 0xC5; /* flash command register */
sfr ISP_TRIG = 0xC6; /* flash command trigger */
sfr ISP_CONTR = 0xC7; /* isp/iap control register */
#define ISP_IAP_BYTE_READ 1; /* 读字节 */
#define ISP_IAP_BYTE_PROGRAM 2; /* 字节编程 */
#define ISP_IAP_SECTOR_ERASE 3; /* 扇区擦除 */
#define ISP_IAP_ENABLE 0x81; /* 系统工作时钟<12M对ISP_CONTR寄存器设置此值 0x81*/
unsigned char byte_read(unsigned int addr);
void byte_write(unsigned int addrunsigned char program_data);
void Sector_Erase(unsigned int addr);
//void IAP_Disable();
//unsigned int eeprom_address;unsigned int read_eeprom;
void main()
{
unsigned char idata *iptr;
unsigned char code *cptr;
unsigned long xdata outdata;
unsigned char xdata outdata1 outdata2outdata3outdata4;
unsigned char i; unsigned char xdata stc_11[7] ;
Delay10ms(); InitUart();
iptr= ID_ADDR_RAM; cptr=ID_ADDR_ROM;
for (i=0;i<7;i++)
{
SendUart(*iptr++);
}
iptr= ID_ADDR_RAM;
for (i=0;i<7;i++)
{
//SendUart(*cptr++);
}
cptr=ID_ADDR_ROM;
for (i=0;i<7;i++)
{
stc_11[i]=*iptr++;
}
outdata=crc_cal(stc_117);
outdata1=outdata/0x1000000;outdata2=outdata%0x1000000/0x10000;
outdata3=outdata%0x10000/0x100;outdata4=outdata%0x100;
SendUart( outdata1); _nop_(); _nop_();
SendUart(outdata2); _nop_(); _nop_();
SendUart(outdata3); _nop_(); _nop_();
SendUart(outdata4); _nop_(); _nop_();
Sector_Erase(0x77ff);_nop_();_nop_(); byte_write(0x77ffoutdata1);_nop_(); _nop_();
Sector_Erase(0x79ff);_nop_(); _nop_();byte_write(0x79ffoutdata2);_nop_(); _nop_();
Sector_Erase(0x7bff);_nop_();_nop_(); byte_write(0x7bffoutdata3);_nop_(); _nop_();
Sector_Erase(0x7dff);_nop_(); _nop_();byte_write(0x7dffoutdata4);_nop_(); _nop_();
//加密数据写入eeprom
whil
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10840 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.LST
文件 199 2014-12-23 17:15 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.plg
文件 5361 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.c
文件 1143 2014-12-23 17:15 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.Opt
文件 4980 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.OBJ
文件 3770 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id
文件 12805 2014-12-18 20:37 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15f2k08s2.h
文件 1361 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id_Opt.Bak
文件 48 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.lnp
文件 12812 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.M51
文件 45 2014-12-18 21:33 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.__b
文件 2954 2014-12-23 08:39 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.hex
文件 1232 2014-12-18 21:33 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.LIB
文件 6 2014-12-21 22:46 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\新建 文本文档.txt
文件 2151 2014-12-21 00:06 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id_Uv2.Bak
文件 2151 2014-12-22 11:11 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验\stc15-id.Uv2
文件 5702 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11-id.c
文件 8 2014-12-22 11:20 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\新建 文本文档.txt
文件 477 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11.plg
文件 45 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11.lnp
文件 13334 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11.M51
文件 2945 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11.hex
文件 0 2014-12-22 14:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11_Uv2.Bak
文件 2148 2014-12-22 14:41 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11.Uv2
文件 986 2014-12-22 17:43 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11_Opt.Bak
文件 11345 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11-id.LST
文件 14039 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11-id.OBJ
文件 12781 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11
文件 985 2014-12-23 08:40 STC单片机 ID号CRC-ITU加密\STC11 ID号加密试验\stc11.Opt
目录 0 2014-12-23 17:35 STC单片机 ID号CRC-ITU加密\STC15_ID加密试验
............此处省略5个文件信息
- 上一篇:linux0.11内核源码
- 下一篇:基于QT的音乐播放器
相关资源
- 蜂鸣器播放音乐-小星星亮晶晶.rar
- STC90C516RD+ 5min切换点阵LED显示
- VC ListCtrl添加超级连接
- 智能家居测试.下位机
- stc89c51所制作的一个简易计算器包含原
- 基于stc89c51的密码锁
- 电子负载Electronic load.rar
- dnn_utils_v2lr_utilsplanar_utilstestCasestestC
- stc89c51通过modbus协议与上位机通信
- 基于STC单片机的太阳能热水器智能节
- 基于STC89C52单片机的简易计算器不能实
- stc15两轮自平衡小车
- 可编辑子项的ListCtrl (ComboBox与EditB
- 基于STC89C51的CAN总线点对点通信模块设
- stc89c52 智能小车五路循迹程序
- STC-ISP.rar
- stc15xxxx单片机RFID RC 522 读写卡程序可
- 基于STC12C5A60S2两轮平衡小车程序源码
- 基于STC12C5A16S2单片机电子水平仪设计
- STC15系列原理图及封装
- STC_ISP_V3.1.zip破解版
- 基于STC89C51单片机的数字抢答器——毕
- STC_ISP_V480.exe软件
- STC12C5A60S2的最小系统PCB库
- STC12c5a60s2最小系统
- 含有STC型号的keil的CDB文件
- 基于STC单片机的PID温度控制程序
- DS1302+串行通信+数码管 STC15W驱动程序
- stc原理图,iap15w4k58s4系列
- LCD1602时钟程序.zip
评论
共有 条评论