/*应用说明:STC单片机具有在线加载升级程序程序功能,
但每次加载均需要冷复位(完全下电),在调试程序时仍有些不便。
我的学习板电源按钮就是因为两千多次反复的加载调试程序,现在已经
有接触不良问题了^_^,为此研究了STC晶片手册关于ISP/IAP功能应用写成
*/
//flow light and beep
#include
#include
#define Self_Define_ISP_Download_Command 0x22
unsigned char a,b,k,j;
sbit beep=P2^3;
void delay10ms()
{
for(a=100;a>0;a--)
for(b=225;b>0;b--);
}
void Init_Com(void)
{
TMOD = 0x20;
SM0=0;
SM1=1;
REN=1;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
EA=1;
ES=1;
}
void main()
{
Init_Com();
k=0xfe;
while(1)
{
delay10ms();delay10ms();
beep=0;
delay10ms();delay10ms();
beep=1;
j=_crol_(k,1);
k=j;
P1=j;
}
}
void UART_Interrupt_Receive(void) interrupt 4
{
unsigned char k=0;
unsigned int a,b;
if(RI==1)
{
RI=0;
k=SBUF;
if(k==Self_Define_ISP_Download_Command)
{
for(a=1000;a>0;a--)
for(b=100;b>0;b--); //延时约1S
IAP_CONTR = 0x60;
}
}
else
{
TI=0;
}
}
其实程序的运行就是一句话:IAP_CONTR = 0x60;关键是如何在串口的发送模块去触发它。
先下图设置STC_ISP软件,然后第一次加载仍然按以往下电再上电的方法加载,第二次,第三次就可以直接
按发送,就可以直接下载了,无须下电了.好处:对某程序反复调试过程中,爱好者就不需要修改一次,下电——上电再加载这样频繁的上下电了.注意:自定义下载命令就是你在程序设置的串口接收命令!即Self_Define_ISP_Download_Command
哈哈哈,我也是个菜鸟,朋友们可别说我懒啊.^_^ 其实程序的运行就是一句话:IAP_CONTR = 0x60;关键是如何在串口的发送模块去触发它。
先下图设置STC_ISP软件,然后第一次加载仍然按以往下电再上电的方法加载,第二次,第三次就可以直接
按发送,就可以直接下载了,无须下电了.好处:对某程序反复调试过程中,爱好者就不需要修改一次,下电——上电再加载这样频繁的上下电了.注意:自定义下载命令就是你在程序设置的串口接收命令!即Self_Define_ISP_Download_Command
哈哈哈,我也是个菜鸟,朋友们可别说我懒啊.^_^