[产品供应] STC将推出15系列单片机(14.08.10收到最新STC15W4K32S4样片)

[复制链接]
129092|489
McuPlayer 发表于 2012-7-30 10:30 | 显示全部楼层
STC的优势在于渠道
如果做一个小产品,去一趟华强或者赛格,买电阻电容的时候,顺便把单片机买了
这样的单片机估计也只有STC了
这也是为何STC已经没有价格优势了,却仍然有非常大的市场,的原因之一
damiaa 发表于 2012-8-7 11:20 | 显示全部楼层
是的。还有就是很多人用熟悉了51单片机。顺手。
damiaa 发表于 2012-8-7 11:21 | 显示全部楼层
顺手就写出一段代码,但调试也麻烦,只能串口看,要搞个SWD就好了。
 楼主| autopccopy 发表于 2012-8-16 13:36 | 显示全部楼层
(27568) STCisp出了V6.19了,仍是绿色版,支持STC各系列单片机了! :) http://www.****ducst/datasheet/ ... -isp-15xx-v6.19.exe (大小:568K)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
lixupengarm 发表于 2012-8-31 16:02 | 显示全部楼层
有内部晶振挺方便支持
 楼主| autopccopy 发表于 2012-10-15 13:39 | 显示全部楼层
(30371) http://www.****ducst/datasheet/stc/STC-ISP-V6.00/stc-isp-15xx-v6.20.exe

STC-ISP.EXE Ver6.20 (2012-10-12)
1. 脱机下载板支持全系列芯片的脱机下载和在线直通下载.
2. 增加将IAP15F2K61S2型号的芯片制作成脱机下载母片的功能.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
McuPlayer 发表于 2012-10-16 08:56 | 显示全部楼层
继续关注中
 楼主| autopccopy 发表于 2012-10-20 10:19 | 显示全部楼层
本帖最后由 autopccopy 于 2012-10-20 10:20 编辑

(30716)


STC-ISP V6.20 脱机下载使用方法(NEW)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
McuPlayer 发表于 2012-10-20 16:16 | 显示全部楼层
难得auto兄一直维护此帖,特加裤子一条
jony5 发表于 2012-10-21 10:58 | 显示全部楼层
从VB升级到VC,支持国产,持续升级。。
 楼主| autopccopy 发表于 2012-10-29 00:12 | 显示全部楼层
本帖最后由 autopccopy 于 2012-10-31 18:19 编辑

(31202)
www.**.com近日不能访问,后备的www.MCU-Memory.com可以!STC-ISP更新到Ver6.21了。同时可切换双语(中文、英语):运行后对任务栏图标按鼠标右键,用左键选“中文”或“ENGLISH”即可)。大小:584K,如被360杀毒判为[Malware.QVM06.Gen]恶意软件,则是误判MD5校验码为:7E3799EE27DC25B1EDF68AFE3AC60E5B,请放心使用!)

更新历史:Ver6.21 (2012-10-26)
  1. 对脱机下载控制界面进行调整,并进行详细说明.
  2. 在STC104E系列的范例程序中,增加软件模拟串口的范例代码.

STC-ISP V6.21支持下,脱机下载芯片可以进行直通联机下载和脱机下载:

脱机下载方式说明:
脱机下载是指脱离电脑主机进行下载的一种方法. 一般是使用下载控制芯片(又称脱机下载
母片)进行控制. 目前我们所支持的脱机下载母片型号为IAP15F2K61S2和IAP15L2K61S2. 对于脱
机下载母片,硬件选项上要求必须是使用外部的22.1184MHz晶振,不能使用内部RC振荡器. 脱机
下载母片内部可存的脱机代码最大为42KB,超出的部分则需要存储到外部,此时就需要外挂Flash,
外挂Flash的连接方式参考下图若脱机代码小于42KB,则可省去外挂Flash.

脱机下载母片的制作方法:
1. 将准备好的IAP15F2K61S2或者IAP15L2K61S2连接到电脑的串口上,先不要上电
2. 选择相应的芯片型号和硬件选项 (若无特殊硬件选项设置,此步可省略)
3. 进入到此设置页面, 点击最上面的两个按钮中的一个(型号需与您准备好的型号相同)
4. 给目标芯片上电
5. 烧录过程中若出现,"设置时钟,需要重新上电"的对话框时,请先点击确定按钮后再给目标芯片上电
6. 直到烧录完成,脱机下载母片制作完成了!

使用脱机下载母片控制进行在线下载的使用方法:
1. 首先,连接方式参考上面的"使用脱机下载母片控制进行联机下载方式的连线图"
2. 选择目标芯片的型号
3. 设置硬件选项
4. 打开需要下载的文件
5. 进入次页面,勾选上"使用脱机下载母片控制进行在线下载"选项
6. 点击主界面左下方的"下载\编程"按钮,即可开始下载

使用脱机下载母片控制进行脱机下载的使用方法:
1. 首先将脱机下载母片连接到电脑的串口上,并直接上电
2. 选择目标芯片的型号
3. 设置硬件选项
4. 打开需要下载的文件
5. 进入次页面,勾选上"使用脱机下载母片控制进行脱机下载"选项
6. 点击主界面左下方的"下载\编程"按钮,即可将脱机代码下载到脱机下载母片中
7. 下载完成后,便可将脱机下载母片与电脑断开
8. 然后,参考上面的"使用脱机下载母片控制进行脱机下载方式的连线图"
的连接方式连接脱机下载母片与目标芯片
9. 按下脱机下载母片上P3.6口上的按键即可对目标芯片进行编程

其它注意事项:
1、脱机下载芯片可以进行直通联机下载和脱机下载,连接方式如下图所示
2、如果目标MCU的电源脚不需要由监控CPU进行控制,则在下载过程中需要手动给目标CPU上下电
3、如果目标MCU的电源脚需要由监控CPU进行自动控制,则可以使用监控CPU的P2.6脚来控制一个8550的
PNP三极管来实现低导通的电源控制动作
4、监控CPU内部可存放脱机代码的大小为42K字节,超出的部分则需要存放到外挂的串行Flash中,
外挂的串行Flash与监控CPU的连接方式如下图所示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| autopccopy 发表于 2012-10-31 13:49 | 显示全部楼层
本帖最后由 autopccopy 于 2012-10-31 18:13 编辑

(31368)

STC-ISP Ver6.21 (2012-10-26) ,增加的STC104E系列软件模拟串口的范例代码:
(注:STCISPV6.21的STC15F104E系列软件模拟串口的范例代码C与ASM位置有误,请对调)

/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC15Fxx 系列 软件模拟串口举例----------------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-755-82905966 -------------------------------------------*/
/* --- Tel: 86-755-82948412 -------------------------------------------*/
/* --- Web: www.**.com or www.MCU-Memory.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) must be greater then 98, (RECOMMEND GREATER THEN 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
sfr AUXR = 0x8E;
sbit RXB = P3^0;                        //define UART TX/RX port
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();
BYTE t, r;
BYTE buf[16];
void main()
{
    TMOD = 0x00;                        //timer0 in 16-bit auto reload mode
    AUXR = 0x80;                        //timer0 working at 1T mode
    TL0 = BAUD;
    TH0 = BAUD>>8;                      //initial timer0 and set reload value
    TR0 = 1;                            //tiemr0 start running
    ET0 = 1;                            //enable timer0 interrupt
    PT0 = 1;                            //improve timer0 interrupt priority
    EA = 1;                             //open global interrupt switch
    UART_INIT();
    while (1)
    {                                   //user's function
        if (REND)
        {
            REND = 0;
            buf[r++ & 0x0f] = RBUF;
        }
        if (TEND)
        {
            if (t != r)
            {
                TEND = 0;
                TBUF = buf[t++ & 0x0f];
                TING = 1;
            }
        }
    }
}
//-----------------------------------------
//Timer interrupt routine for UART
void tm0() interrupt 1 using 1
{
    if (RING)
    {
        if (--RCNT == 0)
        {
            RCNT = 3;                   //reset send baudrate counter
            if (--RBIT == 0)
            {
                RBUF = RDAT;            //save the data to RBUF
                RING = 0;               //stop receive
                REND = 1;               //set receive completed flag
            }
            else
            {
                RDAT >>= 1;
                if (RXB) RDAT |= 0x80; //shift RX data to RX buffer
            }
        }
    }
    else if (!RXB)
    {
        RING = 1;                       //set start receive flag
        RCNT = 4;                       //initial receive baudrate counter
        RBIT = 9;                       //initial receive bit number (8 data bits + 1 stop bit)
    }
    if (--TCNT == 0)
    {
        TCNT = 3;                       //reset send baudrate counter
        if (TING)                       //judge whether sending
        {
            if (TBIT == 0)
            {
                TXB = 0;                //send start bit
                TDAT = TBUF;            //load data from TBUF to TDAT
                TBIT = 9;               //initial send bit number (8 data bits + 1 stop bit)
            }
            else
            {
                TDAT >>= 1;             //shift data to CY
                if (--TBIT == 0)
                {
                    TXB = 1;
                    TING = 0;           //stop send
                    TEND = 1;           //set send completed flag
                }
                else
                {
                    TXB = CY;           //write CY to TX port
                }
            }
        }
    }
}
//-----------------------------------------
//initial UART module variable
void UART_INIT()
{
    TING = 0;
    RING = 0;
    TEND = 1;
    REND = 0;
    TCNT = 0;
    RCNT = 0;
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
huidun 发表于 2012-10-31 17:38 | 显示全部楼层
不错的芯片 很给力
mcz12356 发表于 2012-11-3 18:20 | 显示全部楼层
McuPlayer 发表于 2012-11-5 08:34 | 显示全部楼层
楼主,我同事也设计了一个STC自动下载线
用PL2303做的,自动冷启动
squallner 发表于 2012-11-7 13:30 | 显示全部楼层
新型号量产了吗?
fxh94058 发表于 2012-11-7 13:54 | 显示全部楼层
zhhbncwu 发表于 2012-11-8 12:45 | 显示全部楼层
期待能用用看看效果
william228 发表于 2012-11-8 18:11 | 显示全部楼层
什么时候市场上有??
 楼主| autopccopy 发表于 2012-11-8 18:47 | 显示全部楼层
本帖最后由 autopccopy 于 2012-11-8 18:52 编辑

https://bbs.21ic.com/icview-362531-1-1.html

我前面介绍的自动下载线都是摒除外置单片机监视串口或自己监视串口的办法,而是巧妙地利用了串口第7脚的特性,使用三极管控制STC单片机自动冷启动的:


:lol

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部