6.2.3 在线编程
在线编程方式(ISP)又称下载线编程,是在软件仿真的基础上,利用SPI总线接口把微型计算机上调试生成的可执行代码通过在线编程装置直接写入单片机芯片。单片机在线编程的组态见图6-3。

图6-3 单片机在线编程的组态
在线编程方式适用于具有ISP功能的AT89S类型单片机,如AT89S51/52等。ISP的出现使单片机的程序调试变得十分方便,节省了软件仿真方式中频繁操作编程器所耗费的时间。在线编程装置有多种类型,其中并行通信下载线是一种简单易用的在线编程装置。并行通信下载线的一端是25引脚的DB型插口,用来连接微型计算机的并行打印口;另一端为ISP6线(单列)或ISP10线(双列)插头的下载电缆,用来连接目标电路板上的单片机芯片。一种带单列插头的并行通信下载线见图6-4。
下载线内部用74HC244芯片作为并行打印口(微型计算机作主机)与单片机芯片(作从机)之间信号传输的线驱动器。单片机的P1.5口作为MOSI(主机输出从机输入)信号线,P1.6口作为MISO(主机输入从机输出)信号线,P1.7口作为SCK(时钟)脉冲信号线,RST引脚作为RST(复位)信号线,目标电路板的VCC和GND提供下载线的工作电源。AT89S型单片机的ISP功能通过这6条口线来完成(只在编程时被借用,程序下载完成后这6条口线被释放,恢复在电路中的原来用途)。(https://www.daowen.com)
并行通信下载线需要配合微型计算机相应地在线编程软件使用。常用的在线编程软件是双龙公司推出的免费软件SL-ISP。该软件支持AT89S系列单片机,能够把编译器生成的HEX或EEP文件直接写入单片机,并且有多种编程速度可供选择,使用很方便。若要修改单片机的程序代码,只需在微机上启动软件的下载功能即可。与传统的编程器写芯片的方法相比,在线编程方法不需要使用价格相对较高的编程器,仅需简单的下载电路即可实现快速编程。目前,在线编程方法已被广泛采用,但要求事先在目标电路板制备一个由上述6条线组成的下载线接头,接头可由单列或双列插针组成,用来与下载线配接,自制的带下载线接头的写芯片装置(见图6-5),除了具备ISP6线和ISP10线两种插头之外,主要由一个40引脚的活动IC座、晶振电路、复位电路和LED指示灯组成,制作容易,对于在线写单片机芯片既价廉又实用。

图6-4 带单列插头的并行通信下载线
上述几种开发方式各具特色,到底采用哪一种,取决于经济条件、芯片性质和实践经验的积累。对于普通的开发任务,采用软件仿真方式或在线编程方式一般来说都能顺利完成,所需的开发工具和设备较简便;而面对一些综合性较强的开发任务,特别是处理一些较难解决的问题或者故障较为隐蔽时,借助在线仿真开发工具,会更有助于问题的发现、解决和提高效率。

图6-5 带下载线接头的写芯片装置