第2章51单片机基础51单片机已成为单片机领域一个广义的名词。自从Inte1公司20世纪80年代初推出MCS-51系列单片机以后,世界上许多著名的半导体厂商也相继生产与该系列兼容的单片机,使产品型号不断增加、品种不断丰富、功能不断加强。从系统结构上看,所有的51系列单片机都是以Inte1公司最早的典型产品8051为核心,增加了一定的功能部件后构成的。单片机的编程语言一般采用汇编语言或者是C语言,采用C语言的比较多,51单片机的C语言也称为C51。C51是在标准C语言的基础的扩展。本章主要对51单片机的硬件结构以及软件编程语言C51进行讨论,为后面单片机的使用打下基础。2.1认识单片机在通用微机中央处理器基础上,将输入/输出(I/O)接口电路、时钟电路以及一定容量的存储器等部件集成在同一芯片上,再加上必要的外围器件,如晶体振荡器,就构成了一个较为完整的计算机硬件系统。由于这类计算机系统的基本部件均集成在同一芯片内,因此被称为单片微控制器(Single-Chip-MicroController,单片机)或微控制单元(MicroControllerUnit,MCU)。通俗的讲:单片机就是一块集成芯片,但这块集成芯片具有一定特殊的功能,而它的功能的实现要靠我们使用者自已来编程完成。编程的目的是控制这块芯片的各个引脚在不同的时间输出不同的电平,进而控制与单片机各个引脚相连的外围电路的电气状态。编程时可以选择C语言或汇编语言。2.1.1单片机的特点、应用、分类1.单片机的特点(参阅有关资料)单片机芯片作为控制系统的核心部件,除了要具备通用微机CPU的数值计算功能外,还必须具有灵活、强大的控制功能,以便实时监测系统的输入量、控制系统的输出量,实现自动控制。由于单片机主要面向工业控制,工作环境比较恶劣,如高温、强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,因而决定了单片机CPU具有以下特点:(1)低噪声与高可靠性(2)单片机寿命长(3)8位、32位单片机共同发展(4)低噪声与高速度(5)低电压与低功耗(6)ISP与IAP29
29 第2章 51单片机基础 51单片机已成为单片机领域一个广义的名词。自从Intel公司20世纪80年代初推出 MCS51系列单片机以后,世界上许多著名的半导体厂商也相继生产与该系列兼容的单片 机,使产品型号不断增加、品种不断丰富、功能不断加强。从系统结构上看,所有的51系 列单片机都是以Intel公司最早的典型产品8051为核心,增加了一定的功能部件后构成的。 单片机的编程语言一般采用汇编语言或者是C语言,采用C语言的比较多,51单片机的C语言 也称为C51。C51是在标准C语言的基础的扩展。 本章主要对51单片机的硬件结构以及软件编程语言C51进行讨论,为后面单片机的使用 打下基础。 2.1 认识单片机 在通用微机中央处理器基础上,将输入/输出(I/O)接口电路、时钟电路以及一定容量 的存储器等部件集成在同一芯片上,再加上必要的外围器件,如晶体振荡器,就构成了一 个较为完整的计算机硬件系统。由于这类计算机系统的基本部件均集成在同一芯片内,因 此被称为单片微控制器(Single-Chip-Micro Controller,单片机)或微控制单元 (MicroController Unit,MCU)。 通俗的讲:单片机就是一块集成芯片,但这块集成芯片具有一定特殊的功能,而它的 功能的实现要靠我们使用者自己来编程完成。编程的目的是控制这块芯片的各个引脚在不 同的时间输出不同的电平,进而控制与单片机各个引脚相连的外围电路的电气状态。编程 时可以选择C语言或汇编语言。 2.1.1 单片机的特点、应用、分类 1.单片机的特点(参阅有关资料) 单片机芯片作为控制系统的核心部件,除了要具备通用微机CPU的数值计算功能外,还 必须具有灵活、强大的控制功能,以便实时监测系统的输入量、控制系统的输出量,实现 自动控制。由于单片机主要面向工业控制,工作环境比较恶劣,如高温、强电磁干扰,甚 至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,因而决定 了单片机CPU具有以下特点: (1)低噪声与高可靠性 (2)单片机寿命长 (3)8位、32位单片机共同发展 (4)低噪声与高速度 (5)低电压与低功耗 (6)ISP与IAP
ISP(In-SystemProgramming)技术的优势是,不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成为成品,免去了调试时由于频繁地插入/取出芯片对芯片和电路板带来的不便。IAP(In-ApplicationProgramming)技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来对内部存储器编程,可以通过现有的Internet或其他通信方式很方便地实现远程升级和维护。2.单片机的应用(参阅有关资料)单片机的出现是近代计算机发展史上的一个重要里程碑,单片机的诞生标志着计算机正式形成了通用微型计算机和嵌入式计算机系统两大分支。与体积大、成本高的通用计算机相比,单片机的单芯片的微小体积和极低的成本,使其可广泛地地嵌入到玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通信设备中,成为现代电子系统中最重要的智能化工具。单片机应用的主要领域有:(1)在智能仪表中的应用(2)在机电一体化中的应用(3)在实时控制中的应用(4)在军工领域的应用(5)在分布式多机系统中的应用(6)在民用电子产品中的应用2.1.2常用的单片机产品目前生产单片机的厂商主要有Intel公司、Motorola公司、Philips公司、Atmel公司、WinBond公司、Microchip公司、AMD公司、Zilog公司等,产品型号规格众多,性能各具特色。1.MCS系列及兼容单片机(参阅有关资料)2.PIC系列单片机3.MSP430系列单片机4.M68HC08系列单片机5.ARM处理器6.DSP处理器2.1.3单片机与CPU、ARM、嵌入式系统的关系随着计算机技术与超大规模集成电路技术的发展,就计算机整体而言,形成了三大主流:巨型机、微型机、单片机,并按各自的技术规律飞速发展。1.单片机与CPU的关系30
30 ISP(In-System Programming)技术的优势是,不需要编程器就可以进行单片机的实验 和开发,单片机芯片可以直接焊接到电路板上,调试结束即成为成品,免去了调试时由于 频繁地插入/取出芯片对芯片和电路板带来的不便。IAP(In-Application Programming)技 术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对 另一个存储体重新编程,之后将程序从一个存储体转向另一个。ISP的实现一般需要很少的 外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的 RS232口,通过专门设计的固件程序来对内部存储器编程,可以通过现有的Internet或其他 通信方式很方便地实现远程升级和维护。 2.单片机的应用(参阅有关资料) 单片机的出现是近代计算机发展史上的一个重要里程碑,单片机的诞生标志着计算机 正式形成了通用微型计算机和嵌入式计算机系统两大分支。与体积大、成本高的通用计算 机相比,单片机的单芯片的微小体积和极低的成本,使其可广泛地地嵌入到玩具、家用电 器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统 、舰船、个人信息终端及通信设备中,成为现代电子系统中最重要的智能化工具。单片机 应用的主要领域有: (1)在智能仪表中的应用 (2)在机电一体化中的应用 (3)在实时控制中的应用 (4)在军工领域的应用 (5)在分布式多机系统中的应用 (6)在民用电子产品中的应用 2.1.2 常用的单片机产品 目前生产单片机的厂商主要有Intel公司、Motorola公司、Philips公司、Atmel公司、 WinBond公司、Microchip公司、AMD公司、Zilog公司等,产品型号规格众多,性能各具特 色。 1.MCS系列及兼容单片机(参阅有关资料) 2.PIC系列单片机 3.MSP430系列单片机 4.M68HC08系列单片机 5.ARM处理器 6.DSP处理器 2.1.3 单片机与 、 、嵌入式系统的关系 CPU ARM 随着计算机技术与超大规模集成电路技术的发展,就计算机整体而言,形成了三大主 流:巨型机、微型机、单片机,并按各自的技术规律飞速发展。 1.单片机与CPU的关系
很多人对单片机与CPU之间的区别不清楚,把单片机与CPU混为一谈,其实它们之间是由本质的区别的。微处理器是指计算机系统核心部件(CPU),从这个意义上讲,它只是计算机的一个部件,而并不是一台完整的计算机。单片机表面上看起来与CPU一样,是一片大规模集成电路芯片,但是在单片机内部集成了CPU、存储器、I/O口、总线系统等,它是把计算机的主要零部件以集成电路的工艺,集成在一块芯片上,用一片芯片实现了一台基本的计算机系统。单片机是计算机,而CPU是计算机中的一个部件。2.单片机与ARM的关系当前,以各种ARM芯片为核心构成的嵌入式系统非常流行,那么ARM与单片机之间有什么区别呢?ARM有多层含义,首先,ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,它设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。它具有性能高、成本低和能耗省等特点,适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM将技术授权给世界上许多著名的半导体、软件和OEM厂商,其中包括Intel、IBM、LG半导体、NEC、SONY、Philips和美国国家半导体这样的大公司。软件系统的合伙人则包括微软、升阳和MRI等一系列知名公司。每个厂商得到的都是一套独一无二的的ARM相关技术及服务,ARM公司既不生产芯片也不销售芯片,只出售芯片技术授权。因此,ARM即可认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。当前市面上流行的各种ARM7、ARM9内核的控制器其实也是一种单片机,只不过这种单片机是32位的,它的处理速度很快,在以ARM处理器为内核的控制器中,集成了更多的硬件资源。所以,通常把这种器件称为超级单片机。这种单片机的运算速度很快,资源丰富,使得它可以像普通PC一样,能够运行操作系统,只不过这类操作系统是嵌入式的操作系统。ARM控制器+嵌入式操作系统,就构成了当前比较热门的嵌入式系统,一旦在控制器上加载了操作系统,其系统的性能和开发模式等都会发生质的飞跃,这与传统的单片机模式有看本质的不同。但是,单从硬件构成的角度去看,ARM其实就是“跑的快一点”的单片机。3.单片机与嵌入式系统的关系近年来,随着计算机应用体系的不同,将计算机分成嵌入式应用和非嵌入式通用型计算机。巨型机和典型微型计算机属子非嵌入式通用型计算机,而工控机、专用CPU、单片机等则属于嵌入式应用型计算机。后者面向实时测控应用系统,一般以这类计算机为内核,嵌入到实际的应用系统中,构成完整的并实现某种特定功能要求的应用系统,故称之为嵌入式计算机应用系统,简称嵌入式系统(EmbeddedSystem)。嵌入式系统是个泛的概念。所有用于实时测控的计算机应用系统,均可纳入嵌入式系统范畴。(1)嵌入式系统的构成嵌入式系统是一个完整具有实现某种特定功能的计算机应用系统,因此它应用包含系31
31 很多人对单片机与CPU之间的区别不清楚,把单片机与CPU混为一谈,其实它们之间是 由本质的区别的。 微处理器是指计算机系统核心部件(CPU),从这个意义上讲,它只是计算机的一个部 件,而并不是一台完整的计算机。 单片机表面上看起来与CPU一样,是一片大规模集成电路芯片,但是在单片机内部集成 了CPU、存储器、I/O口、总线系统等,它是把计算机的主要零部件以集成电路的工艺,集 成在一块芯片上,用一片芯片实现了一台基本的计算机系统。 单片机是计算机,而CPU是计算机中的一个部件。 2.单片机与ARM的关系 当前,以各种ARM芯片为核心构成的嵌入式系统非常流行,那么ARM与单片机之间有什 么区别呢? ARM有多层含义,首先,ARM(Advanced RISC Machines)是微处理器行业的一家知名企 业,它设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。它具有性能 高、成本低和能耗省等特点,适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP 和移动式应用等。ARM将技术授权给世界上许多著名的半导体、软件和OEM厂商,其中包括 Intel、IBM、LG半导体、NEC、SONY、Philips和美国国家半导体这样的大公司。软件系统 的合伙人则包括微软、升阳和MRI等一系列知名公司。每个厂商得到的都是一套独一无二的 的ARM相关技术及服务,ARM公司既不生产芯片也不销售芯片,只出售芯片技术授权。 因此,ARM即可认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以 认为是一种技术的名字。 当前市面上流行的各种ARM7、ARM9内核的控制器其实也是一种单片机,只不过这种单 片机是32位的,它的处理速度很快,在以ARM处理器为内核的控制器中,集成了更多的硬件 资源。所以,通常把这种器件称为超级单片机。 这种单片机的运算速度很快,资源丰富,使得它可以像普通PC一样,能够运行操作系 统,只不过这类操作系统是嵌入式的操作系统。ARM控制器+嵌入式操作系统,就构成了当 前比较热门的嵌入式系统,一旦在控制器上加载了操作系统,其系统的性能和开发模式等 都会发生质的飞跃,这与传统的单片机模式有着本质的不同。 但是,单从硬件构成的角度去看,ARM其实就是“跑的快一点”的单片机。 3.单片机与嵌入式系统的关系 近年来,随着计算机应用体系的不同,将计算机分成嵌入式应用和非嵌入式通用型计 算机。巨型机和典型微型计算机属于非嵌入式通用型计算机,而工控机、专用CPU、单片机 等则属于嵌入式应用型计算机。后者面向实时测控应用系统,一般以这类计算机为内核, 嵌入到实际的应用系统中,构成完整的并实现某种特定功能要求的应用系统,故称之为嵌 入式计算机应用系统,简称嵌入式系统(Embedded System)。 嵌入式系统是个广泛的概念。所有用于实时测控的计算机应用系统,均可纳入嵌入式 系统范畴。 (1)嵌入式系统的构成 嵌入式系统是一个完整具有实现某种特定功能的计算机应用系统,因此它应用包含系
统的全部硬件的组成结构与应用软件。如图2一1所示组成嵌入式系统应用的示意图,其中计算机是整个系统的指挥、管理、测控、处理的核心,嵌入在整个系统中。1计算机内核网络工控机功能连接常规器件单片机外围扩展CPU设备人机专用外围设备嵌入式系统对话TT测控对象图2-1嵌入式应用系统嵌入式系统的硬件主要由以下几部分组成:嵌入式系统的计算机内核、常规外围设备、专用外围设备、人机对话、网络连接。不同的嵌入式应用系统其硬件配置也各不相司,有简单的、复杂的、很复杂的。显然,以单片机为内核的应用系统是最典型的嵌入式应用系统。一个完整的嵌入式应用系统,除了针对确定的应用对象而配置的硬件组成系统外,还必须配置相应的软件系统。两者相辅相成,才能使应用系统正确、有效而可靠的工作。一个嵌入式应用系统,它必须配备相应的软件系统。主要包括:嵌入式系统软件、应用软件。(2)单片机是嵌入式系统中应用最典型、最广泛的内核单片机作为最典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。近年来各种类型的工控机,各种以通用微处理器构成的计算机主板模块,以通用微处理器为核心,片内扩展一些外围功能电路单元构成的嵌入式微处理器,甚至单片形态的PC等,都实现了嵌入式应用,成为嵌入式系统的庞大家族。随着单片机技术的发展,功能的不断增强及其应用广泛性,目前应用于嵌入式系统的计算机内核绝大部分是单片机。所以说,单片机是当前构成嵌入式应用系统中最典型的主流机型。学好单片机基本理论及其技术,是开发、设计各类嵌入式应用系统的基础。2.1.4单片机应用系统开发的软硬件环境1.单片机应用系统开发的硬件环境在设计一单片机应用系统的时,需要一定的硬件开发环境,不同的设计者需要的环境不同。(1)开发环境基本组成一个典型的单片机应用系统开发环境如图2-2所示,单片机应用系统开发环境中的硬件由PC、单片机仿真器、用户目标系统、编程器和数条连接电缆组成。单片机应用系统PC(用户目标系统)编程器目标系统CPUEPROM开通信仿真器EEPOM电缆仿真头CPLFlash EEPROM电CPU32
32 统的全部硬件的组成结构与应用软件。如图2-1所示组成嵌入式系统应用的示意图,其中计 算机是整个系统的指挥、管理、测控、处理的核心,嵌入在整个系统中。 图2-1 嵌入式应用系统 嵌入式系统的硬件主要由以下几部分组成:嵌入式系统的计算机内核、常规外围设 备、专用外围设备、人机对话、网络连接。不同的嵌入式应用系统其硬件配置也各不相 同,有简单的、复杂的、很复杂的。显然,以单片机为内核的应用系统是最典型的嵌入式 应用系统。 一个完整的嵌入式应用系统,除了针对确定的应用对象而配置的硬件组成系统外,还 必须配置相应的软件系统。两者相辅相成,才能使应用系统正确、有效而可靠的工作。一 个嵌入式应用系统,它必须配备相应的软件系统。主要包括:嵌入式系统软件、应用软 件。 (2)单片机是嵌入式系统中应用最典型、最广泛的内核 单片机作为最典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。近年来, 各种类型的工控机,各种以通用微处理器构成的计算机主板模块,以通用微处理器为核 心,片内扩展一些外围功能电路单元构成的嵌入式微处理器,甚至单片形态的PC等,都实 现了嵌入式应用,成为嵌入式系统的庞大家族。 随着单片机技术的发展,功能的不断增强及其应用广泛性,目前应用于嵌入式系统的 计算机内核绝大部分是单片机。所以说,单片机是当前构成嵌入式应用系统中最典型的主 流机型。学好单片机基本理论及其技术,是开发、设计各类嵌入式应用系统的基础。 2.1.4 单片机应用系统开发的软硬件环境 1.单片机应用系统开发的硬件环境 在设计一单片机应用系统的时,需要一定的硬件开发环境,不同的设计者需要的环境 不同。 (1)开发环境基本组成 一个典型的单片机应用系统开发环境如图2-2所示,单片机应用系统开发环境中的硬件 由PC、单片机仿真器、用户目标系统、编程器和数条连接电缆组成。 PC 通信 电缆 仿真器 仿真 电缆 单片机应用系统 (用户目标系统) 仿真头 CPU 目标系统 CPU 编程器 EPROM EEPOM Flash EEPROM CPU
图2-2单片机典型开发环境组成示意图软件由PC上的单片机集成开发环境软件和编程器软件构成,前者为单片机仿真器随机软件,后者为编程器随机软件。单片机仿真器又称单片机开发系统。单片机仿真器的工作步骤是:取下用户目标系统的单片机芯片(目标系统CPU),把仿真器上的CPU仿真头插入用户目标系统CPU相应的位置,从而将仿真器中的CPU和ROM借给了目标系统。PC通过仿真器和目标系统建立起一种透明的联系,程序员可以观察到程序的运行(实际上程序在仿真器中运行)和CPU内部的全部资源情况。也就是说,在开发环境中,用户目标系统的程序存储器是闲置的。我们调试的是仿真器中的程序,仿真器中的程序运行完全受仿真器的监控程序控制。仿真器的监控程序相当于PC的操作系统,该监控程序与PC上运行的集成开发环境相配合,使得我们可以修改和调试程序,并能观察程序的运行情况。程序调试完成后,将编程器通过通信电缆连接到PC上,将调试好的程序通过编程器写入单片机芯片(即写入单片机内部的程序存储器),从用户目标系统上拨掉仿真头CPU,即完成了单片机的仿真调试。然后换上写入程序的单片机芯片(目标系统CPU),得到单片机应用系统的运行态,义称脱机运行。由于仿真器的功能差别很大,脱机运行有时和仿真运行并不完全一致,还需要返回仿真过程调试。上述过程有时可能要重复多次。单片机仿真器在开发环境中出借CPU和程序存储器到用户目标系统,调试完成后,通过编程器把程序固化到程序存储器,插入目标系统,同时插入目标系统CPU,即可得到单片机应用系统的运行态。编程器的功能是把调试好的目标代码写入单片机的片内(外)程序存储器中,把写好后的芯片插到用户目标板上进行脱机(脱离仿真器)运行,如未达到用户要求,则要重新返回仿真阶段查找软件或硬件的原因。这个过程可能要重复多遍。(2)单片机的在线编程通常进行单片机开发时,编程器是必不可少的。仿真、调试完的程序,需要借助编程器烧到单片机内部或外接的程序存储器中。普通编程器的价格从几百元到几千元人民币不等,对于一般的单片机爱好者来说,这是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,比较麻烦。随着单片机技术的发展,出现了可以在线编程的单片机。目前有两种实现在线编程的方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序对内部存储器编程。ISP和IAP为单片机的实验和开发带来了很大的方便和灵活性,也为广大单片机爱好者带来了福音。利用ISP和IAP,不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即为成品,甚至可以远程在线升级或改变单片机中的程序。33
33 图2-2 单片机典型开发环境组成示意图 软件由PC上的单片机集成开发环境软件和编程器软件构成,前者为单片机仿真器随机 软件,后者为编程器随机软件。 单片机仿真器又称单片机开发系统。单片机仿真器的工作步骤是:取下用户目标系统 的单片机芯片(目标系统CPU),把仿真器上的CPU仿真头插入用户目标系统CPU相应的位置 ,从而将仿真器中的CPU和ROM借给了目标系统。PC通过仿真器和目标系统建立起一种透明 的联系,程序员可以观察到程序的运行(实际上程序在仿真器中运行)和CPU内部的全部资 源情况。也就是说,在开发环境中,用户目标系统的程序存储器是闲置的。我们调试的是 仿真器中的程序,仿真器中的程序运行完全受仿真器的监控程序控制。仿真器的监控程序 相当于PC的操作系统,该监控程序与PC上运行的集成开发环境相配合,使得我们可以修改 和调试程序,并能观察程序的运行情况。 程序调试完成后,将编程器通过通信电缆连接到PC上,将调试好的程序通过编程器写 入单片机芯片(即写入单片机内部的程序存储器),从用户目标系统上拔掉仿真头CPU,即 完成了单片机的仿真调试。然后换上写入程序的单片机芯片(目标系统CPU),得到单片机 应用系统的运行态,又称脱机运行。由于仿真器的功能差别很大,脱机运行有时和仿真运 行并不完全一致,还需要返回仿真过程调试。上述过程有时可能要重复多次。 单片机仿真器在开发环境中出借CPU和程序存储器到用户目标系统,调试完成后,通过 编程器把程序固化到程序存储器,插入目标系统,同时插入目标系统CPU,即可得到单片机 应用系统的运行态。 编程器的功能是把调试好的目标代码写入单片机的片内(外)程序存储器中,把写好 后的芯片插到用户目标板上进行脱机(脱离仿真器)运行,如未达到用户要求,则要重新 返回仿真阶段查找软件或硬件的原因。这个过程可能要重复多遍。 (2)单片机的在线编程 通常进行单片机开发时,编程器是必不可少的。仿真、调试完的程序,需要借助编程 器烧到单片机内部或外接的程序存储器中。普通编程器的价格从几百元到几千元人民币不 等,对于一般的单片机爱好者来说,这是一笔不小的开支。另外,在开发过程中,程序每 改动一次就要拔下电路板上的芯片编程后再插上,比较麻烦。 随着单片机技术的发展,出现了可以在线编程的单片机。目前有两种实现在线编程的 方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般通过单片机专用的串行编程接口 对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存 储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一 个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵 活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序对内部存 储器编程。 ISP和IAP为单片机的实验和开发带来了很大的方便和灵活性,也为广大单片机爱好者 带来了福音。利用ISP和IAP,不需要编程器就可以进行单片机的实验和开发,单片机芯片 可以直接焊接到电路板上,调试结束即为成品,甚至可以远程在线升级或改变单片机中的 程序