打印
[产品供应]

STC将推出15系列单片机(14.08.10收到最新STC15W4K32S4样片)

[复制链接]
楼主: autopccopy
手机看帖
扫描二维码
随时随地手机跟帖
321
学学

使用特权

评论回复
322
autopccopy|  楼主 | 2013-5-29 20:45 | 只看该作者
在虾坛看到有人又有说51落后的月经贴,我回复了一下,有感而发,转到这里来。

我们知道最早的PC用8088 CPU, 现在X86架构新Core i7也是落后的吗?也要BS吗?丢人的是那些扮大佬装-->逼的人罢了!!!


例如我们知道最早的PC用8088 CPU, 但现在的X86架构的Haswell新Core i7也是落后的吗?也要BS吗?丢人的是那些扮大佬装-->逼的人罢了!!!
有些人讨论单片机好像非ARM不可。其实现在的51单片机的性能还想以前的8031,8051一样吗???道理大家都知道!
现在的X86架构的Haswell新Core i7与前辈8088 同样不可而论了! :)
现在全球的PC还是X86为主。APPLE 的新MAC/MACBOOK都是INTEL CPU的。
豪不夸张的说世界是X86+WIN撑起的世界,同样我认为永远的51也不会淘汰。
每种CPU都有自己的特点和定位,看市场规律会挑选哪些用途的最适合的。
我目前用51不丢人。丢人的是那些扮大佬装-->逼的人而已。

http://diy.pconline.com.cn/327/3276616.html

http://blog.csdn.net/doyoungnet/article/details/5623536
:)

forever51.JPG (107.77 KB )

forever51.JPG

使用特权

评论回复
323
autopccopy|  楼主 | 2013-5-29 22:57 | 只看该作者
STC-ISP Ver6.39 (2012-5-29)
  1. 对STC15F104E/STC15L104E系列和STC15F204EA/STC15L204EA系列
     的LVR的高两级进行限制
  2. 支持对AHCI模式的硬盘序列号的读取功能
  3. 增加STC15F408AD系列的芯片选型,并将选型表按芯片系列进行颜色区分
  4. 开放89系列的在线烧录(不支持脱机下载和项目发布)




stc-isp-15xx-v6.39.rar (373.5 KB)

http://www.****ducst/STCISP/stc-isp-15xx-v6.39.exe

(39418)

使用特权

评论回复
324
autopccopy|  楼主 | 2013-5-30 21:40 | 只看该作者
根据www.**.COM 提示,大家还是暂用回STC-ISP V6.38C版,其他版本有兼容性问题。等待升级到V6.51!

杯具!STC要加强测试,同时先发布为测试版为好啊。:(

(39501)

使用特权

评论回复
325
autopccopy|  楼主 | 2013-5-31 08:30 | 只看该作者
本帖最后由 autopccopy 于 2013-5-31 13:51 编辑

STC-ISP Ver6.51 (2012-5-31)
  1. 修正6.39版和6.38D版因开放89系列而导致其它系列烧录的兼容问题
  2. 修正了STC11系列烧录大文件时会影响EEPROM数据的问题
  3. 修正了界面的一些显示问题
  4. 优化代码,加速程序的启动速度

http://www.****ducst/STCISP/stc-isp-15xx-v6.51.exe
stc-isp-15xx-v6.51.rar (373.39 KB)

(39537)

使用特权

评论回复
326
wuzhaokui| | 2013-5-31 20:15 | 只看该作者
了解下

使用特权

评论回复
327
autopccopy|  楼主 | 2013-6-1 15:11 | 只看该作者
本帖最后由 autopccopy 于 2013-6-3 21:29 编辑

已经发布为STC-ISP V6.51A版。

从V6.51起可以下载STC89系列了,而且好像比STC-ISP V4.83要快。(同HEX,同主频及设置,同下载波特率比较,见附图)


实例:

正在检测目标单片机 ...
  单片机型号: STC89C/LE52RC
  固件版本号: 4.3C
当前芯片的硬件选项为:
  . 当前的时钟频率: 12.023MHz
  . 系统频率为12T(单倍速)模式
  . 振荡器的放大增益不降低
  . 当看门狗启动后,任何复位都可停止看门狗
  . MCU内部的扩展RAM可用
  . ALE脚的功能选择仍然为ALE功能脚
  . P1.0和P1.1与下次下载无关
  . 下次下载用户程序时,不擦除用户EEPROM区
  . 单片机型号: STC89C/LE52RC

正在重新握手 ... 成功   [0.937"]
当前的波特率: 38400
正在擦除目标区域 ... 完成 !  [0.172"]
正在下载用户代码 ... 完成 !  [3.266"]
正在设置硬件选项 ... 完成 !  [0.016"]
更新后的硬件选项为:
  . 当前的时钟频率: 12.023MHz
  . 系统频率为12T(单倍速)模式
  . 振荡器的放大增益不降低
  . 当看门狗启动后,任何复位都可停止看门狗
  . MCU内部的扩展RAM可用
  . ALE脚的功能选择仍然为ALE功能脚
  . P1.0和P1.1与下次下载无关
  . 下次下载用户程序时,不擦除用户EEPROM区
  . 单片机型号: STC89C/LE52RC
  操作成功 !

stc-isp-15xx-v6.51A.rar (373.25 KB)
(39601)

使用特权

评论回复
328
squallner| | 2013-6-3 22:35 | 只看该作者
autopccopy 发表于 2013-6-1 15:11
已经发布为STC-ISP V6.51A版。

从V6.51起可以下载STC89系列了,而且好像比STC-ISP V4.83要快。(同HEX,同 ...

6•51很好,我申请的15系列都能用了。

使用特权

评论回复
329
autopccopy|  楼主 | 2013-6-7 21:19 | 只看该作者
纪念一下,近3年了,今天浏览终于过40K了!

另:今天高考的日子,不知又有多少学子会选择做“电工”呢?  :)呵呵


(40073)

使用特权

评论回复
330
autopccopy|  楼主 | 2013-6-7 21:28 | 只看该作者
本帖最后由 autopccopy 于 2013-6-8 23:00 编辑

STC15系列单片机电气特性

stcmcu_stc15dqtx_a.jpg (177.3 KB )

stcmcu_stc15dqtx_a.jpg

使用特权

评论回复
331
autopccopy|  楼主 | 2013-6-7 21:31 | 只看该作者
本帖最后由 autopccopy 于 2013-6-7 21:36 编辑

请允许我介绍一款STC USB自动下载线,实际使用,还是比较稳定滴 ,而且支持3.3V/5V,在自动下载线中价格最便宜了。( 开窗打码,希望不要当广告删了)
;P



使用特权

评论回复
332
autopccopy|  楼主 | 2013-6-8 22:44 | 只看该作者
本帖最后由 autopccopy 于 2013-6-8 22:46 编辑

宏晶STC15F2K60S2系列单片机ADC第9通道应用(内部带隙电压作基准)的C例程(转自宏晶科技)

--------------------------------------------------------------------------------
说明:
    ADC的第9通道是用来测试内部的带隙电压的,由于内部带隙电压很稳定,不会随芯片的工作电压的改变而变化,所以可以通过测量带隙电压,然后通过ADC的值便可反推出VCC的电压,从而用户可以实现自己的低压检测功能。

    ADC的第9通道的测量方法:首先将P1ASF初始化为0,即关闭所有P1口的模拟功能然后通过正常的ADC转换的方法读取第0通道的值,即可通过ADC的第9通道读取当前带隙电压值。

    用户实现自己的低压检测功能的实现方法:首先用户需要在VCC很精准的情况下(比如5.0V),测量出带隙电压的ADC转换值(比如为BGV5),并这个值保存到EEPROM中,然后在低压检测的代码中,在实际VCC变化后,所测量出的带隙电压的ADC转换值(比如为BGVx),通过计算公式: 实际VCC = 5.0V * BGV5 / BGVx ,即可计算出实际的VCC电压值,需要注意的是,第一步的BGV5的基准测量一定要精确。
(例如:美国Analog Devices公司的【AD780】(http://www.analog.com/zh/special-linear-functions/voltage-references/ad780/products/product.html) 就是一款独立的超高精度 带隙基准电压源,可以利用4.0 V至36 V的输入提供2.5 V或3.0 V输出。它具有低初始误差、低温度漂移和低输出噪声。)

百度百科关于《带隙》解释:(http://baike.baidu.com/view/1008384.htm)

带隙基本概况
带隙:导带的最低点和价带的最高点的能量之差。也称能隙。

带隙越大,电子由价带被激发到导带越难,本征载流子浓度就越低,电导率也就越低。
带隙主要作为带隙基准的简称,带隙基准是所有基准电压中最受欢迎的一种,由于其具有与电源电压、工艺、温度变化几乎无关的突出优点,所以被广泛地应用于高精度的比较器、A/D或D/A转换器、LDO稳压器以及其他许多模拟集成电路中。
带隙的主要作用是在集成电路中提供稳定的参考电压或参考电流,这就要求基准对电源电压的变化和温度的变化不敏感。

Bandgap voltage reference,常常有人简单地称它为Bandgap。是利用一个与温度成正比的电压与二极管压降之和,二者温度系数相互抵消,实现与温度无关的电压基准。因为其基准电压与硅的带隙电压差不多,因而称为带隙基准。实际上利用的不是带隙电压。现在有些Bandgap结构输出电压与带隙电压也不一致。




同时可见:STC-ISP软件中的【重要说明】
固件版本在7.1.2及以上版本的STC15系列芯片(STC15F104E和STC15F204EA除外)
的RAM和ROM空间中都包含有一些附加信息,地址分配如下:

ROM信息:
内部BandGap电压值(毫伏,高字节在前)(2字节)
例如: STC15F104W 4K程序空间 地址为0FF7H-0FF8H
STC15F2K60S2 60K程序空间 地址为EFF7H-EFF8H

RAM信息:
内部BandGap电压值(毫伏,高字节在前)(2字节)
例如: STC15F104W 128字节RAM 地址为06FH-070H
STC15F2K60S2 256字节RAM 地址为0EFH-0F0H



--------------------------------------------------------------------------------

/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC15F4K60S4 系列 ADC第9通道应用举例----------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-755-82905966 -------------------------------------------*/
/* --- Tel: 86-755-82948412 -------------------------------------------*/
/* --- Web: www.**.com --------------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序   */
/* 如果要在**中应用此代码,请在**中注明使用了宏晶科技的资料及程序   */
/*---------------------------------------------------------------------*/

//本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
//假定测试芯片的工作频率为18.432MHz

#include "reg51.h"
#include "intrins.h"

#define FOSC    18432000L
#define BAUD    115200

typedef unsigned char BYTE;
typedef unsigned int WORD;

#define     URMD    0               //0:使用定时器2作为波特率发生器
                                    //1:使用定时器1的模式0(16位自动重载模式)作为波特率发生器
                                    //2:使用定时器1的模式2(8位自动重载模式)作为波特率发生器

sfr T2H   = 0xd6;                   //定时器2高8位
sfr T2L   = 0xd7;                   //定时器2低8位

sfr  AUXR       =   0x8e;           //辅助寄存器

sfr ADC_CONTR   =   0xBC;           //ADC控制寄存器
sfr ADC_RES     =   0xBD;           //ADC高8位结果
sfr ADC_LOW2    =   0xBE;           //ADC低2位结果
sfr P1ASF       =   0x9D;           //P1口第2功能控制寄存器

#define ADC_POWER   0x80            //ADC电源控制位
#define ADC_FLAG    0x10            //ADC完成标志
#define ADC_START   0x08            //ADC起始控制位
#define ADC_SPEEDLL 0x00            //540个时钟
#define ADC_SPEEDL  0x20            //360个时钟
#define ADC_SPEEDH  0x40            //180个时钟
#define ADC_SPEEDHH 0x60            //90个时钟

void InitUart();
void InitADC();
void SendData(BYTE dat);
BYTE GetADCResult();
void Delay(WORD n);
void ShowResult();

void main()
{
    InitUart();                     //初始化串口
    InitADC();                      //初始化ADC

    while (1)
    {
        ShowResult();               //显示ADC结果
    }
}

/*----------------------------
发送ADC结果到PC
----------------------------*/
void ShowResult()
{
    SendData(GetADCResult());       //显示ADC高8位结果
//    SendData(ADC_LOW2);           //显示低2位结果
}

/*----------------------------
读取ADC结果
----------------------------*/
BYTE GetADCResult()
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | 0 | ADC_START;
    _nop_();                        //等待4个NOP
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
    ADC_CONTR &= ~ADC_FLAG;         //Close ADC

    P2 = ADC_RES;

    return ADC_RES;                 //返回ADC结果
}

/*----------------------------
初始化串口
----------------------------*/
void InitUart()
{
    SCON = 0x5a;                    //设置串口为8位可变波特率
#if URMD == 0
    T2L = 0xd8;                     //设置波特率重装值
    T2H = 0xff;                     //115200 bps(65536-18432000/4/115200)
    AUXR = 0x14;                    //T2为1T模式, 并启动定时器2
    AUXR |= 0x01;                   //选择定时器2为串口1的波特率发生器
#elif URMD == 1
    AUXR = 0x40;                    //定时器1为1T模式
    TMOD = 0x00;                    //定时器1为模式0(16位自动重载)
    TL1 = 0xd8;                     //设置波特率重装值
    TH1 = 0xff;                     //115200 bps(65536-18432000/4/115200)
    TR1 = 1;                        //定时器1开始启动
#else
    TMOD = 0x20;                    //设置定时器1为8位自动重装载模式
    AUXR = 0x40;                    //定时器1为1T模式
    TH1 = TL1 = 0xfb;               //115200 bps(256 - 18432000/32/115200)
    TR1 = 1;
#endif
}

/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{
    P1ASF = 0x00;                   //不设置P1口为模拟口
    ADC_RES = 0;                    //清除结果寄存器
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
    Delay(2);                       //ADC上电并延时
}

/*----------------------------
发送串口数据
----------------------------*/
void SendData(BYTE dat)
{
    while (!TI);                    //等待前一个数据发送完成
    TI = 0;                         //清除发送标志
    SBUF = dat;                     //发送当前数据
}

/*----------------------------
软件延时
----------------------------*/
void Delay(WORD n)
{
    WORD x;

    while (n--)
    {
        x = 5000;
        while (x--);
    }
}

(录入整理 by stcisp.com 2013.05.28)

使用特权

评论回复
333
autopccopy|  楼主 | 2013-6-8 22:52 | 只看该作者
本帖最后由 autopccopy 于 2013-6-8 22:59 编辑

http://www.stcisp.com/stc15f104w_read_id.html

宏晶官方读取STC15F104W单片机唯一ID号并用模拟串口发送显示C例程
原文: http://www.****ducst/datasheet/stc/STC-NEW-SOURCE-CODE/读取STC15F104W程序区ID号并用软件模拟串口输出显示(频率为18.430MHz,波特率为38400).RAR


(相关阅读: 单片机唯一ID有什么用途?STC单片机使用唯一ID保护的方法和思路)http://www.stcisp.com/stc_unique_id_encrypt.html
/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC15F104W 系列 读取程序区ID号并用软件模拟串口输出显示举例------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-755-82905966 -------------------------------------------*/
/* --- Tel: 86-755-82948412 -------------------------------------------*/
/* --- Web: www.**.com --------------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序   */
/* 如果要在**中应用此代码,请在**中注明使用了宏晶科技的资料及程序   */
/*---------------------------------------------------------------------*/

//本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
//假定测试芯片的工作频率为18.432MHz

#include "reg51.h"

//-----------------------------------------
//define baudrate const
//BAUD=256 - FOSC/3/BAUDRATE/M (1T:M=1; 12T:M=12)
//NOTE: (FOSC/3/BAUDRATE) 必须大于98(建议大于 110)

//#define BAUD 0xF400                  // 1200bps @ 11.0592MHz
//#define BAUD 0xFA00                  // 2400bps @ 11.0592MHz
//#define BAUD 0xFD00                  // 4800bps @ 11.0592MHz
//#define BAUD 0xFE80                  // 9600bps @ 11.0592MHz
//#define BAUD 0xFF40                  //19200bps @ 11.0592MHz
//#define BAUD 0xFFA0                  //38400bps @ 11.0592MHz
//#define BAUD 0xEC00                  // 1200bps @ 18.432MHz
//#define BAUD 0xF600                  // 2400bps @ 18.432MHz
//#define BAUD 0xFB00                  // 4800bps @ 18.432MHz
//#define BAUD 0xFD80                  // 9600bps @ 18.432MHz
//#define BAUD 0xFEC0                  //19200bps @ 18.432MHz

#define BAUD 0xFF60                  //38400bps @ 18.432MHz

//#define BAUD 0xE800                  // 1200bps @ 22.1184MHz
//#define BAUD 0xF400                  // 2400bps @ 22.1184MHz
//#define BAUD 0xFA00                  // 4800bps @ 22.1184MHz
//#define BAUD 0xFD00                  // 9600bps @ 22.1184MHz
//#define BAUD 0xFE80                  //19200bps @ 22.1184MHz
//#define BAUD 0xFF40                  //38400bps @ 22.1184MHz
//#define BAUD 0xFF80                  //57600bps @ 22.1184MHz

#define ID_ADDR_RAM 0x71                //STC104W系列ID号的存放在RAM区的地址
#define ID_ADDR_ROM 0x0ff9              //STC104W系列ID号的存放在ROM区的地址

sfr AUXR=0x8E;
sbit RXB=P3^0;                          //定义串口 TX/RX 引脚
sbit TXB=P3^1;

typedef bit BOOL;
typedef unsigned char BYTE;
typedef unsigned int WORD;

BYTE TBUF,RBUF;
BYTE TDAT,RDAT;
BYTE TCNT,RCNT;
BYTE TBIT,RBIT;
BOOL TING,RING;
BOOL TEND,REND;

void UART_INIT();
void UART_SEND(BYTE dat);

BYTE t, r;
BYTE buf[16];

void main()
{
    BYTE idata *iptr;
    BYTE code *cptr;
    BYTE i;
   
    TMOD=0x00;                        //定时器0在16位自动重装模式
    AUXR=0x80;                        //定时器0在1T模式
    TL0=BAUD;
    TH0=BAUD>>8;                      //初始化定时器0并设定重装值
    TR0=1;                            //定时器0开始运行
    ET0=1;                            //使能定时器0中断
    PT0=1;                            //提高定时器0的优先级
    EA=1;                             //打开中断开关

    UART_INIT();

    iptr=ID_ADDR_RAM;                 //从RAM区读取ID号
    for (i=0; i<7; i++)               //读7个字节
    {
        UART_SEND(*iptr++);           //发送ID到串口
    }
   

    cptr=ID_ADDR_ROM;                 //从程序区读取ID号
    for (i=0; i<7; i++)               //读7个字节
    {
        UART_SEND(*cptr++);           //发送ID到串口
    }

    while (1);                        //程序终止
}

//-----------------------------------------
//Timer interrupt routine for UART

void tm0() interrupt 1 using 1
{
    if (RING)
    {
        if (--RCNT == 0)
        {
            RCNT=3;                   //重置发送波特率计数器
            if (--RBIT == 0)
            {
                RBUF=RDAT;            //保存数据到RBUF
                RING=0;               //停止接收
                REND=1;               //设置接收完成标志
            }
            else
            {
                RDAT >>= 1;
                if (RXB) RDAT |= 0x80; //移位RX数据到RX缓冲
            }
        }
    }
    else if (!RXB)
    {
        RING=1;                       //设置开始接收标志
        RCNT=4;                       //初始化接收波特率计计数器
        RBIT=9;                       //初始化接收位数(8数据位+1停止位)
    }

    if (--TCNT == 0)
    {
        TCNT=3;                       //重置发送波特率计数器
        if (TING)                     //判断是否发送
        {
            if (TBIT == 0)
            {
                TXB=0;                //发送开始位
                TDAT=TBUF;            //从TBUF加载数据到TDAT
                TBIT=9;               //初始化发送位数(8数据位+1停止位)
            }
            else
            {
                TDAT >>= 1;           //移位数据到CY
                if (--TBIT == 0)
                {
                    TXB=1;
                    TING=0;           //停止发送
                    TEND=1;           //设置发送完成标志
                }
                else
                {
                    TXB=CY;           //写CY到TX脚
                }
            }
        }
    }
}

//-----------------------------------------
//初始化UART模块变量
void UART_INIT()
{
    TING=0;
    RING=0;
    TEND=1;
    REND=0;
    TCNT=0;
    RCNT=0;
}

//-----------------------------------------
//发送串口数据
void UART_SEND(BYTE dat)
{
    while (!TEND);
    TEND=0;
    TBUF=dat;
    TING=1;
}

(录入整理 by stcisp.com 2013.05.22-2013.05.23)  

使用特权

评论回复
334
autopccopy|  楼主 | 2013-6-8 22:56 | 只看该作者
STC单片机唯一ID保护的例子及思路
(摘自STC-ISP V6.XX【重要说明】部分)
STC单片机唯一ID保护的例子及思路

关于ID号在大批量生产中的应用方法(较多客户的用法)(转载)



先烧一个程序进去(选择下次下载用户程序时不擦除用户EEPROM区),读程序区的ID号(STC15系列是程序区的最后7个字
节),经用户自己的复杂的加密算法对程序区的ID号加密运算后生成一个新的数---用户自加密ID号,写入STC15系列用户
的EEPROM区的EEPROM。再烧一个最终出厂的程序进去(选择下次下载用户程序时将用户EEPROM区一并擦除),在用户程序
区多处读程序区的ID号和用户自加密ID号比较(经用户自己的复杂的解密算法解密后),如不对应,则6个月后随机异常,
或200次开机后随机异常。最终出厂的程序不含加密算法。

另外,在程序区的多个地方判断用户自己的程序是否被修改,如被修改,则6个月后随机异常,或200次开机后随机异常,
将不用的用户程序区用所谓的有效程序全部填满。

《应用笔记》
单片机加密保护的几种方式:

1、法律保护
由完善的法律加强对盗版的打击。在单片机程序里添加自己的版权、**标记等,作为法庭上的证据(当然要加密保存,并反跟踪,程序运行中要校验是否被修改,如是则作相应的处理)。

2、技术保护。
其实理论上所有的单片机加密都会被**,只是成本的问题(含时间成本、金钱成本等)。只要做到解密的成本足够大,让**者觉得无利可图即算成功!
通常是加密的容易而**难。现代芯片的加密主要有工艺上缩小线宽、将保密位深埋、读写协议保密、读取敏感区域时自动重启等等方法,让**者不能取得内部BIN执行代码。
假如一个系统的成本为:开发+测试+投产只需5万元,而**得到BIN文件却要10万元,这时哪谁还去做**的傻事??

而且如果开发者使用了关联单片机唯一ID的保护方式,哪怕**者千辛万苦取得了BIN文件还不能直接使用,就可以大大增加了系统的保密性。
加密者使用唯一ID的加密就像PC软件使用USB加密狗加密方式和银行网银的证书加密方式,都是通过唯一的认证工具,让系统识别合法用户。
BIN文件需要反汇编来修改,即使在PC如此先进的跟踪环境下,**PC软件的USB加密狗的办法都很困难,更况且是在单片机的调试环境?!

加密者可使用多重巧妙的加密(包括动态加密、代码CRC32校验、动态陷阱和随机报错等等),破坏反汇编器的跟踪,这时需要**者人工进行层层跟踪,这个可是个浩大的工程,
人力金钱成本和时间成本也是很大的,往往比重新开发还高,得不偿失啊。这绝不是学校的例题一样:将“判断指令JNZ改为JZ”这么简单!
至于网上有人说利用单片机外部器件(例如:DS18B20)的唯一ID用来加密,却忘了**者可以使用另一小单片机模拟这个唯一ID,这样的加密方法是非常脆弱的。
一定要使用象STC单片机的内部唯一ID加密才是上策!

有人说,STC单片机早期的唯一ID存在于RAM中的7个字节,而不是光刻在硅晶片上的唯一ID,容易被破坏:只要在程序前做一个转跳去修改该RAM的ID区域为原ID可以**。
或者直接跳过该ID的判断来解密。哈哈,听上去不错,但实际上加密者可以在启动后其复制到变量中使用,以及在程序中有技巧地重重判断程序本身是否被修改了。若发
现被修改则进入保护陷阱!

现在,新的STC15F系列单片机还在增加了一种在程序FLASH最后7个字节的新唯一ID!这个是不可改写的,可增加保密程度,数据更安全了。
所以好好利用单片机内部的唯一ID,是加密的利器,对保护投资者、开发者的合法权益就具有很大意义了。

3、不断优化完善系统,升级固件和产品,赢得客户。

使用特权

评论回复
335
autopccopy|  楼主 | 2013-6-10 20:21 | 只看该作者
本帖最后由 autopccopy 于 2013-6-10 20:26 编辑

STC-ISP V6.52 请测试:


http://www.****ducst/STCISP/stc-isp-15xx-v6.52.exe

STC-ISP Ver6.52 (2013-6-9) 有客户反馈有问题,但我们未发现,等待进一步反馈中,建议先试用
  1. 修正界面上的一些显示问题
  2. 增加STC15F408AD/STC15L408AD/IAP15F413AD/IAP15L413AD系列
  3. 修正脱机下载程序对STC12C2052AD/STC12C5410AD/STC12C5628AD系列的不兼容问题
  4. 2013-6-9开始,从总部发出来的STC15系列的芯片,
     必须使用stc-isp-15xx-v6.52.exe以上版本烧录,单片机底层的固件已升级到V7.1.3版本,
     ISP下载要求更严谨了


正在检测目标单片机 ...
  单片机型号: STC15W104SW-A 工程样片
  固件版本号: 7.1T
当前芯片的硬件选项为:
  . 内部振荡器的频率: 20.016MHz
  . 掉电唤醒定时器的频率: 36.850KHz
  . P3.2和P3.3与下次下载无关
  . 上电复位时增加额外的复位延时
  . 复位引脚用作普通I/O口
  . 检测到低压时复位
  . 低压检测门槛电压 : 2.74 V
  . 低压时不能进行EEPROM操作
  . 上电复位时,硬件不启动内部看门狗
  . 上电自动启动内部看门狗时的预分频数为 : 256
  . 空闲状态时看门狗定时器停止计数
  . 启动看门狗后,软件可以修改分频数,但不能关闭看门狗
  . 下次下载用户程序时,不擦除用户EEPROM区
  . 下次下载用户程序时,没有相关的端口控制485
  . TXD与RXD为相互独立的IO
  . 芯片复位后,TXD脚为弱上拉双向口
  . 芯片复位后,P1.0输出低电平
  . 单片机型号: STC15W104SW-A 工程样片
开始调节频率 ...   [0.734"]
调节后的频率: 31.027MHz (-6.481%)
正在重新握手 ... 成功   [0.328"]
当前的波特率: 115200
正在擦除目标区域 ... 完成 !  [0.109"]
正在下载用户代码 ... 完成 !  [0.453"]
正在设置硬件选项 ... 完成 !  [0.016"]
更新后的硬件选项为:
  . 内部振荡器的频率: 31.027MHz
  . P3.2和P3.3与下次下载无关
  . 上电复位时增加额外的复位延时
  . 复位引脚用作普通I/O口
  . 检测到低压时复位
  . 低压检测门槛电压 : 2.94 V
  . 低压时不能进行EEPROM操作
  . 上电复位时,硬件不启动内部看门狗
  . 上电自动启动内部看门狗时的预分频数为 : 256
  . 空闲状态时看门狗定时器停止计数
  . 启动看门狗后,软件可以修改分频数,但不能关闭看门狗
  . 下次下载用户程序时,不擦除用户EEPROM区
  . 下次下载用户程序时,没有相关的端口控制485
  . TXD与RXD为相互独立的IO
  . 芯片复位后,TXD脚为弱上拉双向口
  . 芯片复位后,P1.0输出低电平
  . 芯片出厂序列号 : 000E0001001261
  . 单片机型号: STC15W104SW-A 工程样片
  操作成功 !


(40251)


使用特权

评论回复
336
autopccopy|  楼主 | 2013-6-19 18:54 | 只看该作者
本帖最后由 autopccopy 于 2013-6-19 19:10 编辑

经过近一年的时间,STC15F2K60S2系列中文器件手册(PDF, DATASHEET) V13.06.19 今天更新了!

修正补充内容后,体积由以前的15M减为10M,页数为961页,内容比较翔实。
定期下载更新手中的数据表是个好习惯哦。

数据表下载地址: http://www.****ducst/datasheet/stc/STC-AD-PDF/STC15F2K60S2.pdf


(注意:如要用高版本的PDF阅读器打开,例如FOXIT READER要V5.0以上,否则会提示“输入密码”而不能打开。有些低版本的PDF软件会提示“无效格式”。
  推荐使用“ SUMATRAPDF阅读器”压缩后只有2M,速度很快的,而且是开源软件)


(40752)

stc15f2k60s2-datasheet-face130619.jpg (98.19 KB )

stc15f2k60s2-datasheet-face130619.jpg

STC15F2K60S2-130619.part3.rar

3 MB

STC15F2K60S2-130619.part2.rar

3.18 MB

STC15F2K60S2-130619.part1.rar

3.18 MB

推荐PDF浏览器:SumatraPDF-V232.rar

2.08 MB

使用特权

评论回复
337
autopccopy|  楼主 | 2013-6-19 20:40 | 只看该作者
用户自己做简易型脱机下载器U7-S1原理图.pdf

http://www.****ducst/STCISP/用户自己做简易型脱机下载器U7-S1原理图.PDF

STC-USER-TOOL-U7-S1-SCH.jpg (123.5 KB )

STC-USER-TOOL-U7-S1-SCH.jpg

用户自己做简易型脱机下载器U7-S1原理图.pdf

46.32 KB

使用特权

评论回复
338
autopccopy|  楼主 | 2013-6-25 01:07 | 只看该作者
STC15F2K60S2 系列数据表又更新了!

http://www.****ducst/datasheet/stc/STC-AD-PDF/STC15F2K60S2.pdf

(41034)

stc15f_datasheet130624b.jpg (62.4 KB )

stc15f_datasheet130624b.jpg

stc15f_datasheet130624.jpg (104.54 KB )

stc15f_datasheet130624.jpg

使用特权

评论回复
339
ghost_z| | 2013-6-26 15:27 | 只看该作者
工作电压不够宽,能1.8~5V就好了

使用特权

评论回复
340
autopccopy|  楼主 | 2013-6-27 19:32 | 只看该作者
ghost_z 发表于 2013-6-26 15:27
工作电压不够宽,能1.8~5V就好了

太宽了吧,3.3-5V 以后应该有的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则