/*---------------------------- UART 中断服务程序 -----------------------------*/ void Uart() interrupt 4 { if (RI) { RI = 0;//清除RI位 if(SBUF==0xaa) //下载方便使用 IAP_CONTR=0x60; if(SBUF =='O') //判断是否接收到结束符 { Cout = 0; Re = 1; Switch1 = 0; } else { Re=0; Buff[Cout++]=SBUF; } } if (TI) { TI = 0; //清除TI位 busy = 0; //清忙标志 } }
主要是在串口中添加一段代码,前提必须打开了串口中断
目前只试过15单片机,感觉51应该也可以使用这种模式下载程序 (修改:51也可以用)
if(SBUF==0xaa) //下载方便使用 IAP_CONTR=0x60; 、
加上这句代码
全局变量上也应定义
sfr IAP_CONTR = 0x60;
(一般都已经定义了,你在定义会报错)
sfr简介:
sfr特殊功能寄存器 sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。
下图为下载软件的配置,红框部分为重点。