历史上的今天
今天是:2025年03月07日(星期五)
2018年03月07日 | STC单片机免断电下载程序的更简单的方法
2018-03-07 来源:eefocus
看到网上有一些STC单片机免断电下载程序的例子。但是都是要用串口中断来完成。以下是一个程序片断
拿来说明
在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序
TMOD|=0x20;
SCON=0x50;
TH1=0xfd; //12T时钟9600bps
TL1=0xfd;
TR1=1;
ES=1;
EA=1;
AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps
void UART(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; //执行自动下载的命令
}
}
}
上一篇:通信程序的通用写法
下一篇:C语言在应用程序设计上的优点
史海拾趣
|
为什么宁愿加一个三极管倒相,也不愿把光耦和电阻的位置调换一下? [ 本帖最后由 dukedz 于 2009-12-13 21:55 编辑 ]… 查看全部问答> |
|
花费一个月时间 首创 ICD2.5 丢固件的彻底的解决方法!祝贺下,呵呵。 花费一个月时间 首创 ICD2.5 丢固件的彻底的解决方法!祝贺下,呵呵。 ICD2.5 是开发PIC系列单片机的有力工具,但是本身存在着致命的弱点就是容易丢失固件。经分析原因如下: 1 因为要适时适应不同的型号MCU仿真和烧写,那必须用电脑 ...… 查看全部问答> |
|
六 无创血压测量特性的检验和评估方法 1. 概述 无创血压测量功能是监护仪最基本的监测参数之一,也是反映监护仪性能特征的关键参数,目前大多数监护仪上所采用的无创血压方法都是基于振荡法的,虽然这个方法存在某些局限性,但 ...… 查看全部问答> |
|
我用的是480*800的屏,现在想让触摸屏的(0,0)点的位置变成(800,0)点,纵坐标不变,只是横坐标反过来,请教怎么修改驱动~~~~急盼~~~谢谢大家了 ~~贴上驱动代码 /*++ THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF AN ...… 查看全部问答> |
|
国内知名通讯网络设备制造商(上海研究所)招聘研发工程师,请在寻找机会的朋友关注 招聘类别: 1、协议软件工程师 2、嵌入式软件工程师 岗位描述: 致力于3G网络设备研发,产品应用于WCDMA和CDMA2000以及2G网络。 岗位要求: 精通C/C++ 熟悉TCP/IP协议簇 有意从事底层软件研发的工作,TEAM WORK。 本科(两年工作经验), ...… 查看全部问答> |
|
按照大功率igbt驱动保护电路能够完成的功能来分类,可以将大功率igbt驱动保护电路分为以下三种类型:单一功能型、多功能型、全功能型。2.1 单一功能型 单一功能型的大功率igbt驱动保护电路一般是由光耦和功率缓冲器构成,如hcpl-3150 等,如图1 ...… 查看全部问答> |
|
_delay_cycles() 这个延时函数的作用是什么?? ()中的数字不同 会带来什么样的影响?? P1OUT ^= BIT0 这个 反转 P1.0 电平 的作用是什么? While() {。 ...… 查看全部问答> |




