首页 论坛 技巧&分享 STC单片机一键下载(软件实现)

正在查看 15 帖子:1-15 (共 18 个帖子)
  • 参与人数:10 |  回复贴数:17 |  围观次数:1,815 
  • 0零妖1
    0零妖1 瓜农
    1. 玩过51单片机的朋友大多数都是使用STC这个品牌的。普通STC51单片机下载一个程序,必须实现一次复位才行,比如常用的是冷启动(单片机断电,然后再上电)。
    2. 经过零妖本人多年摸索,通过熟读手册,发现了一个简单的办法实现一键下载,主要是利用单片机内部的一个寄存器,可以控制单片机复位到ISP烧写模式。这个寄存器在STC15W系列里面叫作 IAP_CONTR 。
    3. 实现这个功能需要两个部分进行配合,一个是单片机的串口1要打开接收中断,二是STC-ISP这个软件要进行一个小小的设置。
    4. 一键下载的原理是:STC-ISP在准备下载程序之前,通过电脑上的串口发送一个命令到单片机的串口1(比如0XFA,这个数据可以自定义);单片机串口接收完成一个数据后会进入接收中断,那么在接收中断里,我们进行一次判断,如果是0XFA,则执行  IAP_CONTR = 0x60;  执行完毕后单片机就会复位到ISP烧写模式,此时电脑上运行的STC-ISP会检测到单片机进入了ISP模式,就会进行自动下载了。
    5. 二楼更新图片和参考代码。

     

     

     

    0零妖1
    0零妖1 瓜农

    STC-ISP的设置示意图

    0零妖1
    0零妖1 瓜农
    /*******中断程序,最短程序 示范 UART1******************************************/
    void INT_Uart1(void) interrupt 4
    {
    	if(RI)//清空读中断标志位
    	{
    		RI = 0;
    		SBUF = SBUF;//把接收到的数据直接发送出去
    		if(SBUF == 0XFA)//收到 0XFA ,单片机复位到烧写区
    			IAP_CONTR = 0x60;
    	}
    	if(TI)//清空发送中断标志位
    	{
    		TI = 0;
    		busy1 = 0;
    	}
    }
    // 描述: 串口初始化程序.
    void Init_Uart1(void)
    {
    	SCON = 0x50;//
    	AUXR |= 0x40;//定时器1,1T
    	AUXR &= 0xFE;
    	TMOD &= 0x0F;	
    	TL1 = 0xF3;		//
    	TH1 = 0XFC;//波特率设置		9600 30MHZ
    	ET1 = 0;
    	TR1 = 1;
    	ES = 1;//允许COM1串行口中断
    	//PS = 1;//COM1最高优先级中断		
    }
    开心最重要
    开心最重要 吃瓜群众

    终于明白例程里这几行的意思了!

    0零妖1
    0零妖1 瓜农

    [quote quote=2412]终于明白例程里这几行的意思了![/quote]嘿嘿,多逛逛瓜棚,日后会更有收货!😃

    回到原点
    回到原点 吃瓜群众

    涨知识了

    陈斌伟
    陈斌伟 吃瓜群众

    那请问如何在单片机还没有任何程序的状态下实现代码一键下载,不用冷启动呢?  所以我认为这个还只能称得上“伪一键下载”吧

    志明
    志明 吃瓜群众

    不通用~但是对于这个单片机下载倒是节约不少事~😂

    openwrt
    openwrt 吃瓜群众

    相当巧妙~~

    回到原点
    回到原点 吃瓜群众

    刚才特地去我画的89C52RC的板子上试了试。窝草。真的可以下载啊!   🤔

    0零妖1
    0零妖1 瓜农

    [quote quote=2467]那请问如何在单片机还没有任何程序的状态下实现代码一键下载,不用冷启动呢? 所以我认为这个还只能称得上“伪一键下载”吧[/quote]我觉得这个属于“伪”,但是对于这种片子,好像也是比较省事的办法。

    0零妖1
    0零妖1 瓜农

    [quote quote=2485]刚才特地去我画的89C52RC的板子上试了试。窝草。真的可以下载啊! 🤔[/quote]要小心谨慎啊,有些型号的单片机内部没有这个寄存器,就不会成功了,最好看一下手册。

    lailai
    lailai 吃瓜群众

    涨知识了

    杰杰
    杰杰 吃瓜群众

    哇,精妙啊。。。。。stc12c5a60s2能做吗😀

    杰杰
    杰杰 吃瓜群众

    有一个问题是,,,,,每份程序都是要这样子。。。。。。加一个串口中断,。。。。

正在查看 15 帖子:1-15 (共 18 个帖子)

抱歉,回复话题必需登录。