STC单片机免下电加载程序方法

2019-04-14 18:12发布

 /*应用说明: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
哈哈哈,我也是个菜鸟,朋友们可别说我懒啊.^_^