1、 第第9章章 AT89S51单片机的并行单片机的并行 扩展扩展1 AT89S51AT89S51单片机片内存储器和单片机片内存储器和I/OI/O资源还不能满足需要,需外资源还不能满足需要,需外扩存储器芯片和扩存储器芯片和I/OI/O接口芯片,即单片机的系统扩展。接口芯片,即单片机的系统扩展。系统扩展分为系统扩展分为并行扩展并行扩展和和串行扩展串行扩展,本章介绍应用系统的并,本章介绍应用系统的并行扩展,第行扩展,第1212章介绍串行扩展。章介绍串行扩展。首先介绍首先介绍AT89S51AT89S51片外两个存储器空间地址分配,然后介绍如片外两个存储器空间地址分配,然后介绍如何扩展外部数据存储器和外部
2、程序存储器以及扩展何扩展外部数据存储器和外部程序存储器以及扩展I/OI/O接口芯片接口芯片具体设计。具体设计。29.1 系统并行扩展概述系统并行扩展概述9.1.1 系统并行扩展结构系统并行扩展结构单片机系统并行扩展结构见单片机系统并行扩展结构见图图9-1。图图9-1 单片机系统扩展结构单片机系统扩展结构 由图由图9-1可看出,系统并行扩展主要包括数据存储器扩展可看出,系统并行扩展主要包括数据存储器扩展、程序存储器扩展和、程序存储器扩展和I/O接口扩展。接口扩展。AT89S51采用程序存储采用程序存储器空间和数据存储器空间然分开的器空间和数据存储器空间然分开的哈佛结构哈佛结构,因此形成两个,因此
3、形成两个并行外部存储器空间。在并行外部存储器空间。在AT89S51系统中,系统中,I/O接口与数据接口与数据存储器采用统一编址方式,即接口芯片的每一端口寄存器就存储器采用统一编址方式,即接口芯片的每一端口寄存器就相当于一个相当于一个RAM存储单元。存储单元。由于单片机采用并行总线结构,各扩展部件只要符合总由于单片机采用并行总线结构,各扩展部件只要符合总线规范,就可方便地接入系统。并行扩展是通过总线把线规范,就可方便地接入系统。并行扩展是通过总线把AT89S51单片机与各扩展部件连接起来。因此,要进行并行单片机与各扩展部件连接起来。因此,要进行并行扩展首先要构造系统总线。扩展首先要构造系统总线。
4、系统总线按功能通常分为系统总线按功能通常分为3组组,见,见图图9-1。4(1)地址总线()地址总线(Address Bus,AB):传送传送单片机单向单片机单向发出的地址信号发出的地址信号,以便进行存储单元和,以便进行存储单元和I/O接口芯片中的寄接口芯片中的寄存器单元选择。存器单元选择。(2)数据总线()数据总线(Data Bus,DB):用于单片机与外部存:用于单片机与外部存储器之间或与储器之间或与I/O接口之间双向传送数据。接口之间双向传送数据。(3)控制总线()控制总线(Control Bus,CB):是单片机发出的各:是单片机发出的各种控制信号线。种控制信号线。下面介绍如何构造系统的
5、三总线。下面介绍如何构造系统的三总线。1P0口作为低口作为低8位地址位地址/数据总线数据总线AT89S51受引脚数目限制,受引脚数目限制,P0口既用作低口既用作低8位地址总线位地址总线,又用作数据总线(分时复用),因此需增加,又用作数据总线(分时复用),因此需增加1个个8位地址锁位地址锁存器。存器。AT89S51单片机对外部扩展的存储器单元或单片机对外部扩展的存储器单元或I/O接口寄接口寄存器进行访问时,先发出低存器进行访问时,先发出低8位地址送地址锁存器锁存,锁存位地址送地址锁存器锁存,锁存器输出作为系统的低器输出作为系统的低8位地址(位地址(A7A0)。随后,)。随后,P0口又作口又作为数
6、据总线口(为数据总线口(D7D0),见图),见图9-2。6图图9-2 AT89C51单片机扩展的片外三总线单片机扩展的片外三总线2 2P2P2口的口线作为高位地址口的口线作为高位地址P2P2口的全部口的全部8 8位口线用作系统高位口线用作系统高8 8位地址线,再加上地址位地址线,再加上地址锁存器输出提供的低锁存器输出提供的低8 8位地址,便形成了系统的位地址,便形成了系统的1616位地址总线位地址总线(见图(见图9-29-2),从而使单片机系统的寻址范围达到),从而使单片机系统的寻址范围达到64KB64KB。3 3控制信号线控制信号线除了地址线和数据线外,还要有控制总线。这些信号有除了地址线和
7、数据线外,还要有控制总线。这些信号有的就是的就是单片机引脚的第一功能信号,有的则是单片机引脚的第一功能信号,有的则是P3P3口第二功能口第二功能信号。其中包括:信号。其中包括:8 (1 1)PSENPSEN*信号作为外部扩展的程序存储器的读选通控制信号作为外部扩展的程序存储器的读选通控制信号;信号;(2 2)RDRD*和和WRWR*信号作为外部扩展的数据存储器和信号作为外部扩展的数据存储器和I/OI/O接口接口寄存器的读、写选通控制信号;寄存器的读、写选通控制信号;(3 3)ALEALE信号作为信号作为P0P0口发出的低口发出的低8 8位地址的锁存控制信号。位地址的锁存控制信号。(4 4)EA
8、EA*信号为片内、片外程序存储器访问允许控制端。信号为片内、片外程序存储器访问允许控制端。由上看出,尽管由上看出,尽管AT89S51AT89S51有有4 4个并行个并行I/OI/O口,共口,共3232条口线,条口线,但由于系统扩展的需要,真正给用户作为通用但由于系统扩展的需要,真正给用户作为通用I/OI/O使用,就剩使用,就剩下下P1P1口和口和P3P3口的部分口线了。口的部分口线了。9109.1.2 9.1.2 地址空间分配地址空间分配如何把片外两个如何把片外两个64KB64KB地址空间分配给各个存储器与地址空间分配给各个存储器与I/OI/O接接口芯片,使一个存储单元只对应一个地址,避免单片
9、机对一个口芯片,使一个存储单元只对应一个地址,避免单片机对一个地址单元访问时,发生数据冲突。这就是存储器地址空间的分地址单元访问时,发生数据冲突。这就是存储器地址空间的分配问题。配问题。AT89S51AT89S51发出的地址信号用于选择某存储器单元,在外扩发出的地址信号用于选择某存储器单元,在外扩多片存储器芯片中,要完成这种功能,必须进行多片存储器芯片中,要完成这种功能,必须进行两种选择两种选择:一:一是必须选中该存储器芯片,这称为是必须选中该存储器芯片,这称为“片选片选”,只有被只有被“选中选中”的存储器芯片才能被单片机访问,未被选中的芯片不能被访问的存储器芯片才能被单片机访问,未被选中的芯
10、片不能被访问;二是在;二是在“片选片选”的基础上还同时的基础上还同时“选中选中”芯片的某一单元对芯片的某一单元对其进行读写,这称为其进行读写,这称为“单元选择单元选择”。每个扩展的芯片都有每个扩展的芯片都有“片选片选”引脚,引脚,同时每个芯片也都有多条地址引脚,以便对其同时每个芯片也都有多条地址引脚,以便对其进行单元选择。需要注意的是进行单元选择。需要注意的是,“片选片选”和和“单元选择单元选择”都是都是单片机单片机通过地址线一次发出的地址信号来通过地址线一次发出的地址信号来完成选择的。完成选择的。常用的存储器地址空间分配方法有两种:线性选择法(简称常用的存储器地址空间分配方法有两种:线性选择
11、法(简称线选法)和地址译码法(简称译码法),下面分别介绍。线选法)和地址译码法(简称译码法),下面分别介绍。1线选法线选法直接利用单片机某一高位地址线作为存储器芯片(或直接利用单片机某一高位地址线作为存储器芯片(或I/O接口接口芯片)的芯片)的“片选片选”控制信号。为此,只要用某一高位地址线与控制信号。为此,只要用某一高位地址线与存储器芯片的存储器芯片的“片选片选”端直接连接即可。端直接连接即可。优点:优点:电路简单,不需另外增加地址译码器硬件电路,体电路简单,不需另外增加地址译码器硬件电路,体积小,成本低。积小,成本低。缺点:缺点:可寻址芯片数目受限制。另外,地址空间不连续,可寻址芯片数目受
12、限制。另外,地址空间不连续,存储单元地址不唯一,这会给程序设计带来一些不便。线选法存储单元地址不唯一,这会给程序设计带来一些不便。线选法适用于外扩芯片数目不多的单片机系统的系统扩展。适用于外扩芯片数目不多的单片机系统的系统扩展。2 2译码法译码法使用译码器对使用译码器对AT89S51AT89S51单片机的高位地址进行译码,将译码单片机的高位地址进行译码,将译码器的译码输出作为存储器芯片的片选信号。本法能有效地利用器的译码输出作为存储器芯片的片选信号。本法能有效地利用存储器空间,适于多芯片的存储器扩展。存储器空间,适于多芯片的存储器扩展。12 常见有常见有74LS13874LS138(3-83-
13、8译码器)、译码器)、74LS13974LS139(双(双2-42-4译码器)与译码器)与74LS15474LS154(4-164-16译码器)。下面介绍译码器)。下面介绍74LS13874LS138和和74LS13974LS139译码器译码器芯片。芯片。(1 1)74LS13874LS138是是3-83-8译码器,有译码器,有3 3个数据输入端,经译码后产个数据输入端,经译码后产生生8 8种状态,其引脚见图种状态,其引脚见图9-39-3,真值表见,真值表见表表9-19-1。13图图9-3 74LS138 8引脚图引脚图由表由表9-19-1可见,当译码器输入为某一固定编码时,其可见,当译码器输
14、入为某一固定编码时,其8 8个输出个输出引脚引脚Y0Y0*Y7Y7*中仅有中仅有1 1个引脚输出为低,其余全为高。而输出个引脚输出为低,其余全为高。而输出低电平的引脚恰好作为片选信号。低电平的引脚恰好作为片选信号。(2)74LS139 双双2-4译码器。译码器。两个译码器完全独立,分两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许别有各自的数据输入端、译码状态输出端以及数据输入允许端,其引脚如端,其引脚如图图9-4所示,其中所示,其中1组的真值表见组的真值表见表表9-2。图图9-49-4 74LS139 74LS139引脚图引脚图表表9-29-2 74LS13974L
15、S139真值表真值表以以74LS138为例,介绍如何进行空间地址分配。例如,要扩为例,介绍如何进行空间地址分配。例如,要扩8片片8KB的的RAM 6264,如何通过,如何通过74LS138把把64KB空间分配给空间分配给各个芯片?由各个芯片?由74LS138真值表可知,把真值表可知,把G1接到接到+5V,该,该G2A*、G2B*接地,接地,P2.7P2.7、P2.6P2.6、P2.5P2.5(高(高3位地址线)分别接到位地址线)分别接到74LS138的的C、B、A端,由于对高端,由于对高3位地址译码,这样译码器位地址译码,这样译码器有有8个输出个输出Y0*Y7*,分别接到,分别接到8片片626
16、4的的“片选片选”端,实现端,实现8选选1片选片选。而而低低1313位地址(位地址(P2.4P2.4P2.0P2.0,P0.7P0.7P0.0P0.0)完成对完成对选中的选中的62646264芯片中的各个存储单元的芯片中的各个存储单元的“单元选择单元选择”。这样就把这样就把64KB64KB存储器空间分成存储器空间分成8 8个个8KB8KB空间了。空间了。64KB64KB地址空间的分配见地址空间的分配见图图9-59-5。17 图图9-59-5 64KB空间划分成空间划分成8个个8KB空间空间当当AT89S51单片机发出单片机发出16位地址码时,每次只能选中一片位地址码时,每次只能选中一片芯片以及
17、该芯片的唯一存储单元。芯片以及该芯片的唯一存储单元。采用译码器划分的地址空间块相等,如将地址空间块划分为采用译码器划分的地址空间块相等,如将地址空间块划分为不等的块,可用不等的块,可用FPGA实现非线性译码逻辑来代替译码器。实现非线性译码逻辑来代替译码器。9.1.3 外部地址锁存器外部地址锁存器AT89S51单片机受引脚数的限制,单片机受引脚数的限制,P0口兼用数据线和低口兼用数据线和低8位位地址,为了将它们分离出来,需要在地址,为了将它们分离出来,需要在单片机外部单片机外部增加地址锁存增加地址锁存器器。目前,常用的地址锁存器芯片有。目前,常用的地址锁存器芯片有74LS373、74LS573等
18、。等。19201 1锁存器锁存器74LS37374LS373带有三态门的带有三态门的8D D锁存器,其引脚见锁存器,其引脚见图图9-6,内部结构如,内部结构如图图9-7所示。所示。图图9-6 6 锁存器锁存器74LS373的引脚的引脚图图9-7 7 74LS373的内部结构的内部结构74LS37374LS373引脚说明引脚说明:D7D7D08D08位数据输入线。位数据输入线。Q7Q7Q08Q08位数据输出线。位数据输出线。GG数据输入锁存选通信号。当加到该引脚的信号为高电数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁平时,外部数据选通到内部
19、锁存器,负跳变时,数据锁存到锁存器中。存器中。OEOE*数据输出允许信号,低电平有效。当该信号为低电数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。号为高电平时,输出线为高阻态。74LS37374LS373锁存器功能见锁存器功能见表表9-39-3。21表表9-374LS373功能表功能表22AT89S51单片机与单片机与74LS373锁存器的连接如锁存器的连接如图图9-8所示。所示。图图9-8 AT89S51单片机单片机P0口与口与74LS373的连接的连接2锁
20、存器锁存器74LS573带三态门的带三态门的8D锁存器,功能及内部结构与锁存器,功能及内部结构与74LS373完全完全一样,只是其引脚排列与一样,只是其引脚排列与74LS373不同,不同,图图9-9为为74LS573引引脚图。脚图。由图由图9-9,与,与74LS373相比,相比,74LS573输入输入D端和输出的端和输出的Q端依次排列在芯片两侧端依次排列在芯片两侧,为绘制印制电路板提供较大方便。,为绘制印制电路板提供较大方便。74LS573引脚说明如下。引脚说明如下。23图图9-9 9 锁存器锁存器74LS5 573的引脚的引脚D7D7D08D08位数据输入线。位数据输入线。Q7Q7Q08Q0
21、8位数据输出线。位数据输出线。GG数据输入锁存选通,该引脚与数据输入锁存选通,该引脚与74LS37374LS373的的G G端功能相同。端功能相同。OEOE*数据输出允许,低电平有效。当低电平时,三态门打开数据输出允许,低电平有效。当低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。出线为高阻态。9.2 9.2 外部程序存储器外部程序存储器EPROMEPROM的并行扩展的并行扩展程序存储器具有非易失性,在电源关断后,存储器仍能保程序存储器具有非易失性,在电源关断后,存储器仍能保存程序,在系统上电后,存程
22、序,在系统上电后,CPUCPU可取出这些指令重新执行。可取出这些指令重新执行。25程序存储器采用只读存储器程序存储器采用只读存储器ROMROM(Read Only MemoryRead Only Memory)。)。ROMROM中的信息一旦写入,就不能随意更改,特别是不能在程序中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称为只读存储器。运行过程中写入新的内容,故称为只读存储器。目前许多公司生产的目前许多公司生产的8051内核单片机,在芯片内部大多集内核单片机,在芯片内部大多集成了数量不等的成了数量不等的Flash ROM。例如,美国。例如,美国ATMEL公司生产
23、的公司生产的AT89C2051、AT89S51、AT89S51、89C52、89S52、89C55,片内分别有不同容量的,片内分别有不同容量的Flash ROM,作为片内程序存储器使,作为片内程序存储器使用。选择的单片机在片内用。选择的单片机在片内Flash ROM满足要求的情况下,外部满足要求的情况下,外部程序存储器的扩展工作就可省去。程序存储器的扩展工作就可省去。向向ROM中写入信息称为中写入信息称为ROM编程编程。根据编程方式不同。根据编程方式不同,可分为以下几种。,可分为以下几种。(1)掩膜)掩膜ROM:在制造过程中编程,编程是以掩膜工艺:在制造过程中编程,编程是以掩膜工艺实现的。这种
24、芯片存储结构简单,集成度高,但由于掩膜工实现的。这种芯片存储结构简单,集成度高,但由于掩膜工艺成本较高,因此只适合于大批量生产。艺成本较高,因此只适合于大批量生产。(2)可编程)可编程PROM(可编程只读存储器):(可编程只读存储器):芯片出厂时无芯片出厂时无任何程序信息,用户用编程器写入。但写入一次内容后,就任何程序信息,用户用编程器写入。但写入一次内容后,就不能再修改。不能再修改。(3)EPROM:用电信号编程,紫外线擦除的只读存储器芯用电信号编程,紫外线擦除的只读存储器芯片。在芯片外壳中间有一圆形窗口,通过该窗口照射紫外线片。在芯片外壳中间有一圆形窗口,通过该窗口照射紫外线就可擦除原有的
25、信息。用编程器可将调试完毕的程序写入。就可擦除原有的信息。用编程器可将调试完毕的程序写入。27(4)E2PROM(EEPROM):):用电信号编程与擦除的用电信号编程与擦除的ROM芯片。对芯片。对E2PROM的读写操作与的读写操作与RAM存储器几乎没差别,只存储器几乎没差别,只是写入速度慢一些,但断电后仍能保存信息。是写入速度慢一些,但断电后仍能保存信息。(5)Flash ROM又称闪烁存储器(简称闪存):是在又称闪烁存储器(简称闪存):是在EPROM、E2PROM基础上发展起来的一种电擦除型只读存基础上发展起来的一种电擦除型只读存储器,可快速在线修改存储单元中的数据,改写次数可达储器,可快速
26、在线修改存储单元中的数据,改写次数可达1万次,其读写速度很快,存取时间可达万次,其读写速度很快,存取时间可达70ns,成本却比普通,成本却比普通E2PROM低得多,大有取代低得多,大有取代E2PROM之势。之势。289.2.1 常用的常用的EPROM芯片芯片扩展并行接口程序存储器,使用较多的是扩展并行接口程序存储器,使用较多的是27系列产品系列产品。例如,例如,2764(8KB)、)、27128(16KB)、)、27256(32KB)、27512(64KB),型号名称),型号名称“27”后面的数字表示其位的后面的数字表示其位的存储容量。如果换算成字节容量,只需将该数字除以存储容量。如果换算成字
27、节容量,只需将该数字除以8即可即可。例如,。例如,“27128”中的中的“27”后面的数字为后面的数字为“128”,1288=16KB。随着大规模集成电路技术的发展,大容量存储器芯片产随着大规模集成电路技术的发展,大容量存储器芯片产量剧增,售价不断下降。小容量芯片的生产已停止。所以,量剧增,售价不断下降。小容量芯片的生产已停止。所以,在扩展程序存储器设计时,应尽量采用大容量芯片。在扩展程序存储器设计时,应尽量采用大容量芯片。291常用的常用的EPROM芯片的引脚芯片的引脚27系列系列EPROM芯片引脚见图芯片引脚见图9-10,各引脚功能如下。,各引脚功能如下。A0A15地址线引脚。它的数目由芯
28、片的存储容量决地址线引脚。它的数目由芯片的存储容量决定,用于进行单元选择。定,用于进行单元选择。D7D0数据线引脚。数据线引脚。CE*片选控制端。片选控制端。OE*输出允许控制端。输出允许控制端。PGM*编程时,编程脉冲的输入端。编程时,编程脉冲的输入端。Vpp编程时,编程电压(编程时,编程电压(+12V或或+25V)输入端。)输入端。VCC+5V,芯片的工作电压。,芯片的工作电压。GND数字地。数字地。NC无用端。无用端。3132图图9-10 常用常用EPROM芯片引脚图芯片引脚图2EPROM芯片的工作方式芯片的工作方式一般有一般有5种工作方式,由种工作方式,由CE*、OE*、PGM各信号状
29、态组合各信号状态组合确定。确定。5种工作方式见表种工作方式见表9-4。(1)读出方式)读出方式。片选控制线。片选控制线 CE*和和OE*为低,为低,Vpp为为+5V,就可将,就可将EPROM中的指定地址单元的内容从数据引脚中的指定地址单元的内容从数据引脚D7D0上读出。上读出。(2)未选中方式。)未选中方式。CE*此时为高,数据输出为高阻悬浮状此时为高,数据输出为高阻悬浮状态,不占用数据总线。态,不占用数据总线。EPROM处于低功耗的维持状态。处于低功耗的维持状态。(3)编程方式。)编程方式。在在Vpp端加上规定高压,端加上规定高压,CE*和和OE*端加上合端加上合适电平(不同芯片要求不同),
30、就能将数据写入到指定的地址适电平(不同芯片要求不同),就能将数据写入到指定的地址33表表9-4EPROMEPROM的的5种工作方式种工作方式单元。此时,编程地址和编程数据分别由单片机的单元。此时,编程地址和编程数据分别由单片机的A15A0和和D7D0提供。提供。(4)编程校验方式)编程校验方式。在。在Vpp端保持相应的编程电压(高压),端保持相应的编程电压(高压),再按读出方式操作,读出编程固化好的内容,以校验写入内容再按读出方式操作,读出编程固化好的内容,以校验写入内容是否正确。是否正确。(5)编程禁止方式。)编程禁止方式。编程禁止方式输出呈高阻状态,不写入编程禁止方式输出呈高阻状态,不写入
31、程序。程序。9.2.2 AT89S51扩展扩展EPROM的接口设计的接口设计1访问程序存储器的控制信号访问程序存储器的控制信号AT89S51访问片外程序存储器时,控制信号有以下访问片外程序存储器时,控制信号有以下3个。个。35(1)ALE用于低用于低8位地址锁存控制。位地址锁存控制。(2)PSEN*片外程序存储器片外程序存储器“读选通读选通”控制信号。它接外控制信号。它接外扩扩EPROM的的OE*脚。脚。(3)EA*片内、片外程序存储器访问的控制信号。片内、片外程序存储器访问的控制信号。EA*=1时时,在单片机发出地址小于片内程序存储器最大地址时,访问片,在单片机发出地址小于片内程序存储器最大
32、地址时,访问片内程序存储器;当内程序存储器;当EA*=0时,只访问片外程序存储器。时,只访问片外程序存储器。如果指令是从片外如果指令是从片外EPROM中读取的,除了中读取的,除了ALE用于低用于低8位位地址锁存信号之外,控制信号还有地址锁存信号之外,控制信号还有PSEN*,PSEN*接外扩接外扩EPROM的的OE*脚。此外,还要用脚。此外,还要用P0口分时作低口分时作低8位地址总线和位地址总线和数据总线,数据总线,P2口用作高口用作高8位地址线。位地址线。由于目前各种单片机片内都集成不同容量由于目前各种单片机片内都集成不同容量Flash ROM,扩展,扩展外部程序存储器的工作可省略。但是作为外
33、部程序存储器的并外部程序存储器的工作可省略。但是作为外部程序存储器的并行扩展基本方法,读者还是需要了解。行扩展基本方法,读者还是需要了解。1AT89S51单片机与单片单片机与单片EPROM的硬件接口电路的硬件接口电路由于外扩的由于外扩的EPROM在正常使用中只读不写,故在正常使用中只读不写,故EPROM芯片芯片没有写入控制引脚,只有读出控制引脚没有写入控制引脚,只有读出控制引脚PSEN*,该脚与,该脚与AT89S51的相连,地址线、数据线分别与的相连,地址线、数据线分别与AT89S51地址线、数地址线、数据线相连,可采用线选法或译码法对片选端进行控制。据线相连,可采用线选法或译码法对片选端进行
34、控制。37 下面仅介绍下面仅介绍27128芯片与芯片与AT89S51单片机的接口。至于更大单片机的接口。至于更大容量的容量的27256、27512与单片机连接,差别只是与与单片机连接,差别只是与AT89S51连连接的地址线数目不同。接的地址线数目不同。图图9-11为为AT89S51外扩外扩16KB的的EPROM 27128的电路,与的电路,与地址无关的电路部分未画出。由于只扩展一片地址无关的电路部分未画出。由于只扩展一片EPROM,片选,片选端端CE*可直接接地,也可接到某一高位地址线上(可直接接地,也可接到某一高位地址线上(A15或或A14)进行线选控制。当然也可采用译码器法,进行线选控制。
35、当然也可采用译码器法,CE*接到某一地址译接到某一地址译码器的输出端。码器的输出端。3839图图9-11 AT89S51单片机与单片机与27128的接口电路的接口电路2扩展多片扩展多片EPROM的接口电路的接口电路扩展多片扩展多片EPROM除片选端需区分外,其他均与单片扩展电除片选端需区分外,其他均与单片扩展电路相同。路相同。图图9-12为单片机扩展为单片机扩展4片片27128(共(共64KB)程序存储)程序存储器。片选控制信号器。片选控制信号CE*由译码器产生。由译码器产生。4片片27128各自所占的地各自所占的地址空间,读者自己分析。址空间,读者自己分析。9.2.4 片内片内Flash存储
36、器的编程存储器的编程如何把已调试完毕的程序代码写入单片机片内如何把已调试完毕的程序代码写入单片机片内Flash存储器存储器,即如何对,即如何对AT89S51的的Flash存储器编程。存储器编程。1.片内片内Flash存储器的基本特性存储器的基本特性AT89S51单片机片内单片机片内4KB Flash存储器基本性能:存储器基本性能:40图图9-12 AT89S51单片机与单片机与4片片27128 EPROM128 EPROM的接口电路的接口电路(1)可循环写入)可循环写入/擦除擦除1 000次;次;(2)存储器数据保存时间为)存储器数据保存时间为10年;年;(3)具有)具有3级加密保护。级加密保
37、护。单片机芯片出厂时,单片机芯片出厂时,Flash存储器为存储器为全空白状态(各单元均全空白状态(各单元均为为0 xff),),可直接进行编程。若可直接进行编程。若Flash不全为空白状态(单元中不全为空白状态(单元中有不是有不是0 xff的),应首先将芯片擦除(即各单元均为的),应首先将芯片擦除(即各单元均为0 xff)后)后,方可向其写入调试通过的程序代码。,方可向其写入调试通过的程序代码。AT89S51片内片内Flash存储器有存储器有3个可编程加密位,定义了个可编程加密位,定义了3个个加密级别,用户只要对加密级别,用户只要对3个加密位:个加密位:LB1、LB2、LB3进行编程进行编程即
38、可实现即可实现3个不同级别的加密。经上述加密处理,使解密个不同级别的加密。经上述加密处理,使解密42难度加大,但还是可以解密。现在还有一种非恢复性加密(难度加大,但还是可以解密。现在还有一种非恢复性加密(OTP加密)方法,就是将加密)方法,就是将AT89S51的第的第31脚(脚(EA*脚)烧断或某脚)烧断或某些数据线烧断,经上述处理后芯片仍正常工作,但不再具有读取些数据线烧断,经上述处理后芯片仍正常工作,但不再具有读取、擦除、重复烧写等功能。这是一种较强的加密手段。国内某些、擦除、重复烧写等功能。这是一种较强的加密手段。国内某些厂家生产的编程器直接具有此功能(例如厂家生产的编程器直接具有此功能
39、(例如RF-1800编程器)。编程器)。如何将调试好程序写入到片内如何将调试好程序写入到片内Flash中,即中,即AT89S51片内片内Flash存储器编程问题。存储器编程问题。AT89S51片内片内Flash存储器有低电压编存储器有低电压编程(程(Vpp=5V)和高电压编程()和高电压编程(Vpp=12V)两类芯片。低电压编)两类芯片。低电压编程可用于在线编程,高电压编程与一般常用的程可用于在线编程,高电压编程与一般常用的EPROM编程器兼编程器兼容。在容。在AT89S51芯片的封装面上都标有低电压编程还是高电压芯片的封装面上都标有低电压编程还是高电压编程的标识。编程的标识。43 AT89S
40、51程序代码(程序代码(.hex目标文件)在目标文件)在PC中与在线仿真器中与在线仿真器以及用户目标板一起调试通过后,必须写入到以及用户目标板一起调试通过后,必须写入到AT89S51片内的片内的闪烁存储器中。闪烁存储器中。2.Flash存储器的编程存储器的编程 目前常用编程方法主要两种:使用通用编程器编程;另一是目前常用编程方法主要两种:使用通用编程器编程;另一是使用下载型编程器编程。使用下载型编程器编程。(1)通用编程器编程)通用编程器编程 下载程序时,编程器只是将下载程序时,编程器只是将AT89S51看作看作1个待写入程序的个待写入程序的外部程序存储器芯片。外部程序存储器芯片。PC中程序代
41、码通过串口或中程序代码通过串口或USB口与口与PC连接,并有相应服务程序。在编程器与连接,并有相应服务程序。在编程器与PC连接好后,运行连接好后,运行44服务程序,在服务程序中先选择所要编程的单片机型号,再调服务程序,在服务程序中先选择所要编程的单片机型号,再调入程序代码文件,就将调试通过的程序代码烧录到片内入程序代码文件,就将调试通过的程序代码烧录到片内Flash中。用户只需在市场上购买现编程器即可完成上述工作。以常中。用户只需在市场上购买现编程器即可完成上述工作。以常见烧录见烧录Atmel公司的单片机芯片的公司的单片机芯片的A51编程器为例,介绍编程编程器为例,介绍编程器基本功能。器基本功
42、能。AT89S51程序代码(程序代码(.hex目标文件)在目标文件)在PC中与在线仿真器中与在线仿真器以及用户目标板一起调试通过后,必须写入到以及用户目标板一起调试通过后,必须写入到AT89S51片内的片内的闪烁存储器中。闪烁存储器中。2.Flash存储器的编程存储器的编程 目前常用编程方法主要两种:使用通用编程器编程;另一是目前常用编程方法主要两种:使用通用编程器编程;另一是使用下载型编程器编程。使用下载型编程器编程。(1)通用编程器编程)通用编程器编程 下载程序时,编程器只是将下载程序时,编程器只是将AT89S51看作看作1个待写入程序的个待写入程序的外部程序存储器芯片。外部程序存储器芯片
43、。PC中程序代码通过串口或中程序代码通过串口或USB口与口与PC连连接,并有相应服务程序。在编程器与接,并有相应服务程序。在编程器与PC连接好后,运行服务程连接好后,运行服务程序,在服务程序中先选择所要编程的单片机型号,再调入程序代序,在服务程序中先选择所要编程的单片机型号,再调入程序代码文件,就将调试通过的程序代码烧录到片内码文件,就将调试通过的程序代码烧录到片内Flash中。用户只中。用户只需在市场上购买现编程器即可完成上述工作。以常见烧录需在市场上购买现编程器即可完成上述工作。以常见烧录Atmel公司的单片机芯片的公司的单片机芯片的A51编程器为例,介绍编程器基本功能。编程器为例,介绍编
44、程器基本功能。(a)支持烧录的芯片型号)支持烧录的芯片型号 A51编程器可烧录编程器可烧录Atmel公司系列单片机芯片,性能稳定,公司系列单片机芯片,性能稳定,烧录速度快。可烧录的芯片型号有:烧录速度快。可烧录的芯片型号有:Atmel(40 PIN)89C51、89C52、89C55、89S51、89S52、87F51(OTP)、)、89LV52;Atmel(20 PIN)89C1051、89C2051、89C4051;华邦华邦8051芯片芯片 W78E51、W78E52。(b)A51编程器特性编程器特性 编程器通过串口与编程器通过串口与PC机通讯,芯片型号自动判别,编程过机通讯,芯片型号自动
45、判别,编程过程中的擦除、烧写、校验等操作完全由编程器上的监控芯片程中的擦除、烧写、校验等操作完全由编程器上的监控芯片89C51控制,不受控制,不受PC机影响,烧写速度很快且与机影响,烧写速度很快且与PC机档次无机档次无关,烧写成功率高。关,烧写成功率高。47 编程器与编程器与PC机采用机采用57600高速波特率进行串行数据传送高速波特率进行串行数据传送,烧烧写速度很快,稳定,编程速度可与一般并行编程器相媲美,经写速度很快,稳定,编程速度可与一般并行编程器相媲美,经测试,烧写一片测试,烧写一片4K字节的字节的Flash ROM的的AT89C51仅需要仅需要9.5S,而读取和校验仅需要,而读取和校
46、验仅需要3.5S。A51编程器供电部分是采用编程器供电部分是采用USB线直接与线直接与PC机相连,使用机相连,使用USB端口端口5V电源,并加入电源,并加入USB接口保护电路,即自恢复保险丝接口保护电路,即自恢复保险丝,不怕操作短路。,不怕操作短路。软件界面友好,全中文操作,提供加密功能。软件界面友好,全中文操作,提供加密功能。功能完善,具有编程、读取、校验、空检查、擦除、加密等功能完善,具有编程、读取、校验、空检查、擦除、加密等系列功能系列功能;A51编程器外形见编程器外形见图图9-13,采用,采用40脚和脚和20脚锁紧插座,可烧脚锁紧插座,可烧写写40脚和脚和20脚单片机芯片。所有器件全部
47、以第脚单片机芯片。所有器件全部以第1脚对齐。可自动脚对齐。可自动搜索并识别插座上的器件型号。采用优质的万用锁紧插座,克服搜索并识别插座上的器件型号。采用优质的万用锁紧插座,克服接触不良等问题。接触不良等问题。内部有自升压电路,产生精确的内部有自升压电路,产生精确的12V编程电压;改进烧写深度编程电压;改进烧写深度确保每一单片机芯片反复烧写达确保每一单片机芯片反复烧写达1000次以上,内部数据至少保次以上,内部数据至少保存存10年。年。4950图图9-13 A51编程器的外形编程器的外形(c)A51编程器的使用编程器的使用 安装软件,把相关软件拷贝到硬盘中。安装软件,把相关软件拷贝到硬盘中。使用
48、串口通讯电缆见使用串口通讯电缆见图图9-14(a),),将将PC机与编程器的串口机与编程器的串口通讯插座连接好;使用通讯插座连接好;使用USB电缆见电缆见图图9-14(b),),把把PC机机USB口与编程器口与编程器USB口连好,口连好,51 (a)串口通讯电缆)串口通讯电缆 (b)USB电源线电源线图图9-14 编程器与编程器与PC机连接电缆机连接电缆编程器直接使用编程器直接使用PC机机USB口提供的电源。此时编程器上口提供的电源。此时编程器上LED灯亮,表明电源接通。灯亮,表明电源接通。运行软件启动后,会自动检测硬件及连接,状态框中显示运行软件启动后,会自动检测硬件及连接,状态框中显示“就
49、绪就绪”,表示编程器连接及设置均正常,否则应检查硬件连接,表示编程器连接及设置均正常,否则应检查硬件连接及其端口设置。把单片机芯片正确地插在编程器相应插座上,及其端口设置。把单片机芯片正确地插在编程器相应插座上,芯片缺口要朝把手方向。然后就可进行编程操作了,芯片编程芯片缺口要朝把手方向。然后就可进行编程操作了,芯片编程操作界面见操作界面见图图9-15。52图图9-15 编程操作界面编程操作界面编程按以下步骤进行:编程按以下步骤进行:程序运行,先选择器件(点击下选框选择);程序运行,先选择器件(点击下选框选择);用用“打开文件打开文件”,选择打开要写入的,选择打开要写入的.hex文件和文件和.B
50、IN文件;文件;用用“保存文件保存文件”,可以保存读出来的文件;,可以保存读出来的文件;用用“擦除器件擦除器件”,擦除芯片;,擦除芯片;用用“写器件写器件”对芯片编程;对芯片编程;用用“读器件读器件”读取芯片中的程序,加密的读不出来;读取芯片中的程序,加密的读不出来;用用“校验数据校验数据”检查编程正确与否;检查编程正确与否;用用“自动完成自动完成”自动执行以上各步骤;自动执行以上各步骤;用用“加密加密”选择加密的级别;选择加密的级别;(2)ISP编程编程AT89S5x系列支持对片内系列支持对片内Flash存储器存储器在线编程(在线编程(ISP)。)。即即在电路板上的被编程的空白器件可直接写入