您现在的位置: 主页 > MCU > 单片机技术应用 > STC单片机免断电下载程序的更简单的方法 -
本文所属标签:
为本文创立个标签吧:

STC单片机免断电下载程序的更简单的方法 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
看到网上有一些STC单片机免断电下载程序的例子。但是都是要用串口中断来完成。以下是一个程序片断 拿来说明 在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序 TMOD|=0x20; S

看到网上有一些STC单片机免断电下载程序的例子。但是都是要用串口中断来完成。以下是一个程序片断

本文引用地址: http://www.21ic.com/app/mcu/201806/761031.htm

拿来说明

在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序

TMOD|=0x20;

SCON=0x50;

TH1=0xfd; //12T时钟9600bps

TL1=0xfd;

TR1=1;

ES=1;

EA=1;

AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps

voidUART(void) interrupt 4

{

uchar cdd;

if(RI)

{

RI=0;

cdd=SBUF;

if(cdd==0xaa)

{

ISP_CONTR=0x60;//软复位,从ISP监控区启动

}

else if(cdd==0x55)

{

ISP_CONTR=0x20; //软复位,从用户程序区启动

}

else

{

senddata(cdd);

}

}

else

{

TI=0;

}

}

另外还要在stc下载软件中进行自定义下载设置才能完成面是一个操作视频

http://v.youku.com/v_show/id_XMTk2MTE5MTgw.html

从上面可以看出比较麻烦,那么有没有一种更为简单的方法呢,从上面的视频得知只要对0xe7这个地址赋予0x60就可以完成下载程序的功能了,那么我就想,stc下载软件用的是串口,用串口就必然用要发送数据到单片机,而单片机接收引脚是P3^0,那么我们只要检测这个引脚有没有电平的变化,如果有变化那么就对0xe7这个地址赋予0x60,就会完成自动下载的命令了,有了思路就开始验证。经过调试结果成功,说明本人只是对STC89C52RC做过测试,其它芯片能否可行请自行测试,以下为完整的程序,在stc下载软件中不需要做任何的设置,就像平常下载程序一样就行。

/*** STC单片机免断电下载程序的另一种更简单的方法*******************************************************************

**程序功能:STC单片机免断电下载程序

**芯片型号:STC89C52RC

**晶振频率:11.0592M

**编写日期:2010年11月23日

**编写人员:wang QQ:349259818 Email:hongfadg@163.com

**备注说明:

*******************************************************************/

//以下为所需的头文件

//#include

//#include

//#include

//#include

#include

//定义关键字方便使用

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

sfr iap=0xe7; //定义下载命令

sbit p30=P3^0; //串口接收引脚

/* 主函数

*******************************************************************

**函数原型:main()

**函数功能:

**输入参数:无

**输出参数:无

**备注说明:完成程序的主要功能

*******************************************************************/

main()

{

while(1) //主循环

{

if(!p30) //判断串口是不是有数据

{

iap=0x60; //执行自动下载的命令

}

}

}




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > STC单片机免断电下载程序的更简单的方法 -
 

"STC单片机免断电下载程序的更简单的方法 -"的相关文章

网站地图

围观()