标题: STC免断电下载 [打印本页]

作者: 84533243    时间: 2014-8-20 16:51
标题: STC免断电下载
/**************************************************
文件名:STC免断电下载  
功能:实现免断电下载单片机程序
原理:SWBS位为1时复位从ISP区开始,如果SWRST为1时产生软件复位!正是这两个特性结合在一起就可以实现不断电下载!
在上位机和单片机握手的时候会给P3.0口定时的输出低电平!
此时单片机的P3.0口就会检测到低电平就会实现从ISP区开始的复位如果单片机从ISP区开始复位的话就会重新下载程序!
**************************************************/
#include<reg52.h>
#define uchar unsigned char
sfr ISP_contro=0xE7;
sbit wela=P2^7;
sbit dula=P2^6;
char num;
void display();
sbit key=P3^0;
void delay(char xms);

uchar code table[]=
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
};
void main()
{       
        TMOD=0X01;
        TH0=0X3C;
        TL0=0XB0;
        ET0=1;
        EA=1;
        EX1=1;
        TR0=1;
       
        while(1)
        {
                display();
                if(key==0)
                ISP_contro=0xe0;       
        }
}

void delay(char xms)               
{
    char i,j;
        for(i=0;i<xms;i++)
        {
                for(j=0;j<110;j++)
                {;}
        };
}

void display()
{
        dula=1;
        P0=table[num/10];
        dula=0;

        P0=0x00;

        wela=1;
        P0=0xfe;
        wela=0;

        delay(10);

        wela=1;
        P0=0xfd;
        wela=0;

        P0=0x00;

        dula=1;
        P0=table[num%10];
        dula=0;

        delay(10);
}
void time ()interrupt 1 using 1
{
        uchar i;
        TH0=0X3C;
        TL0=0XB0;
        i++;
        if(i>=20)
        {
                i=0;
                num++;
                if(num>99)
                num=0;
               
        }
}



作者: jiege    时间: 2014-8-20 17:04
硬件上面需要进行什么操作吗

作者: liaolinhui    时间: 2014-8-20 18:41
问题是你这段程序怎么烧进单片机,还不是要断电下载,先断电下载你这个程序,然后在免断电下载吗?那这个免断电也没啥用了
作者: 84533243    时间: 2014-8-27 10:34
刚开始需要断电下载到单片机,然后你再下载别的程序之后就会制动下载了
作者: liaolinhui    时间: 2014-8-27 22:59
那么下完第二个程序不会把这个程序覆盖掉吗覆盖之后下第三个程序还是不能免断电下载啊
作者: 84533243    时间: 2014-8-29 15:30
liaolinhui 发表于 2014-8-27 22:59
那么下完第二个程序不会把这个程序覆盖掉吗覆盖之后下第三个程序还是不能免断电下载啊

是的,,,,,,,,,,,
作者: liaolinhui    时间: 2014-8-29 23:54
84533243 发表于 2014-8-29 15:30
是的,,,,,,,,,,,

那这个程序就相当于《国产凌凌漆》里面的达文西发明的不用电的手电筒。但是要用另一把手电筒去照,你这个程序可以免断电下载,但是要先断电下载你这个程序。
作者: 84533243    时间: 2014-8-30 00:02
是,        可以用电路控制的,像普中板一样的电路,加一个继电器
作者: heam    时间: 2014-9-15 11:12
谢谢分享
作者: 51hei电控2112312    时间: 2014-12-21 04:55
很好,正需要




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1