电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

stc单片机支持串口isp程序下载VIP免费

stc单片机支持串口isp程序下载_第1页
1/7
stc单片机支持串口isp程序下载_第2页
2/7
stc单片机支持串口isp程序下载_第3页
3/7
stc 单片机支持串口isp 程序下载,不必使用专用下载器,仅使用串口就能下载程序。但每次下载程序都要断电再上电,比较麻烦。 下面介绍一种不需断电就能下载程序的方法,在程序调试时比较方便。 基本原理: stc 单片机有专用的复位寄存器,通过对该寄存器写入不同的数值可以实现单片机热启动复位。 寄存器功能如下图所示: 由上图可以看出只要满足某个条件,向 ISP_CONTR 写入0x60, 就可以实现从ISP 监控区软启动启动 某个条件设置为:当串口接收到0xaa 数据时,单片机执行ISP_CONTR=0x60; 指令,从ISP监控区软启动启动。 演示程序如下: //*************************STC12C5410AD 软启动演示************************** // //收到0xaa,从 ISP 监控区软启动,利用该特性,可以实现stc 单片机不断电下载 //收到0x55,从用户程序区启动 //2010年 3月 13日 21:58:49 //************************************************************************* #include uint c; //*************** 函数定义 ****************** void delay1ms(unsigned int j); void senddata(uchar dc); //*************** 主程序 ******************** void main(void) { ///****************** TMOD|=0x20; SCON=0x50; TH1=0xfd; //12T 时钟9600bps TL1=0xfd; TR1=1; ES=1; EA=1; AUXR=AUXR|0x40; //定时器1使用1T 时钟 9600*12=115200bps ///****************** delay1ms(30000); for(c=0;c<256;c++) { senddata(c); delay1ms(200); } while(1) { } } //***************************发送数据************************** void senddata(uchar dc) { SBUF=dc; while(!TI); //当 TI=0时,发送未结束,循环等待 TI=0; //当 TI=1时,发送结束,用软件将TI 清零 } 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; } } //*************************延时 n*1ms******************** void delay1ms(unsigned int j) { unsigned int i; for(;j>0;j--) { for(i=0;i<124;i++) {;} } } 在调试程序中加入串口初始化代码,串口中...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

stc单片机支持串口isp程序下载

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部