通常进行单片机的实验或开发时,编程器是必不可少的。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。普通的编程器价格从几百元到几千元不等,对于一般的单片机爱好者来说还是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,也比较麻烦。
随着单片机技术的发展,出现了可以在线编程的单片机。这种在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。
ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。
ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。例如:ATMEL公司的单片机AT89S8252就提供了一个SPI串行接口对内部程序存储器编程(ISP),而SST公司的单片机SST89C54内部包含两块独立的存储区,通过预先编程在其中一块存储区中的程序就可以通过串行口与计算机相连,使用PC上专用的用户界面程序直接下载程序代码到单片机的另一块存储区中。
ISP和IAP为单片机的实验和开发带来了很大的方便和灵活性,也为广大单片机爱好者带来了福音。利用ISP和IAP,不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,甚至可以远程在线升级或改变单片机中的程序。511测试网站的单片机自学、开发套件就是采用具有IAP功能的SST公司的单片机SST89C54来进行开发的。