单片机原理及接口技术(C51编程)09课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机原理及接口技术(C51编程)09课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术 C51 编程 09 课件
- 资源描述:
-
1、第9章单片机系统的并行 扩展单片机原理及接口技术(C51编程)(第2版)目 录CONTENTS9.1 系统并行扩展技术9.2 外部数据存储器RAM的并行扩展9.3 片内Flash存储器的编程9.4 E2PROM的并行扩展9.5 AT89S51扩展并行I/O芯片82C55的设计9.6 利用74LSTTL电路扩展并行I/O口9.7 用AT89S51单片机的串行口扩展并行输入/输出口9.1.1 系统并行扩展结构单片机系统并行扩展结构见图9-1。图9-1 单片机系统扩展结构9.1.1 系统并行扩展结构 由图9-1可看出,系统并行扩展主要包括数据存储器扩展、程序存储器扩展和I/O接口的扩展。由于目前AT
2、89S5x系列单片机片内都集成了不同容量的串行下载可编程的Flash存储器与一定数量的RAM,如表9-1所示,如果片内存储器资源能够满足系统设计需求,扩展存储器的工作可以省去。9.1.1 系统并行扩展结构AT89S51单片机采用程序存储器空间和数据存储器空间截然分开的哈佛结构,因此形成了两个并行的外部存储器空间。在AT89S51系统中,I/O端口与数据存储器采用统一编址方式,即I/O接口芯片的每一个端口寄存器就相当于一个RAM存储单元。由于AT89S51单片机采用并行总线结构,扩展的各种外围接口器件只要符合总线规范,就可方便地接入系统。并行扩展是通过系统总线把AT89S51单片机与各扩展器件连
3、接起来。因此,要并行扩展首先要构造系统总线。9.1.1 系统并行扩展结构系统总线按功能通常分为3组,见图9-1。地址总线(Address Bus,AB):传送单片机单向发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器单元选择。01OPTION02OPTION03OPTION数据总线(Data Bus,DB):用于单片机与外部存储器之间或与I/O接口之间双向传送数据。控制总线(Control Bus,CB):是单片机发出的各种控制信号线。下面介绍如何构造系统的三总线。9.1.1 系统并行扩展结构1P0口作为低8位地址/数据总线AT89S51受引脚数目限制,P0口既用作低8位地址总线,又
4、用作数据总线(分时复用),因此需增加1个8位地址锁存器。AT89S51单片机对外部扩展的存储器单元或I/O接口寄存器进行访问时,先发出低8位地址送地址锁存器锁存,锁存器输出作为系统的低8位地址(A7A0)。随后,P0口又作为数据总线口(D7D0),见图9-2。9.1.1 系统并行扩展结构1P0口作为低8位地址/数据总线图9-2 AT89C51单片机扩展的片外三总线9.1.1 系统并行扩展结构2P2口的口线作为高位地址P2口的全部8位口线用作系统高8位地址线,再加上地址锁存器输出提供的低8位地址,便形成了系统的16位地址总线(见图9-2),从而使单片机系统的寻址范围达到64KB。9.1.1 系统
5、并行扩展结构3控制信号线除了地址线和数据线外,还要有控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是P3口第二功能信号。其中包括:PSEN*信号作为外部扩展的程序存储器的读选通控制信号;01OPTION02OPTIONRD*和WR*信号作为外部扩展的数据存储器和I/O接口寄存器的读、写选通控制信号;9.1.1 系统并行扩展结构3控制信号线03OPTION04OPTIONALE信号作为P0口发出的低8位地址的锁存控制信号。EA*信号为片内、片外程序存储器访问允许控制端。由上看出,尽管AT89S51有4个并行I/O口,共32条口线,但由于系统扩展的需要,真正给用户作为通用I/O使用,就
6、剩下P1口和P3口的部分口线了。9.1.2 地址空间分配如何把片外两个64KB地址空间分配给各个存储器与I/O接口芯片,使一个存储单元只对应一个地址,避免单片机对一个地址单元访问时,发生数据冲突。这就是存储器地址空间的分配问题。AT89S51发出的地址信号用于选择某存储器单元,在外扩多片存储器芯片中,要完成这种功能。9.1.2 地址空间分配必须进行两种选择:n 一是必须选中该存储器芯片,这称为“片选”,只有被“选中”的存储器芯片才能被单片机访问,未被选中的芯片不能被访问;n 二是在“片选”的基础上还同时“选中”芯片的某一单元对其进行读写,这称为“单元选择”。每个扩展的芯片都有“片选”引脚,同时
7、每个芯片也都有多条地址引脚,以便对其进行单元选择。9.1.2 地址空间分配需要注意的是,“片选”和“单元选择”都是单片机通过地址线一次发出的地址信号来完成选择的。常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法)。9.1.2 地址空间分配1线选法直接利用单片机某一高位地址线作为存储器芯片(或I/O接口芯片)的“片选”控制信号。为此,只要用某一高位地址线与存储器芯片的“片选”端直接连接即可。优点:电路简单,不需另外增加地址译码器硬件电路,体积小,成本低。缺点:可寻址芯片数目受限制。另外,地址空间不连续,存储单元地址不唯一,这会给程序设计带来一些不便。线选法适用
8、于外扩芯片数目不多的单片机系统的系统扩展。9.1.2 地址空间分配 2译码法使用译码器对AT89S51单片机的高位地址进行译码,将译码器的译码输出作为存储器芯片的片选信号。本法能有效地利用存储器空间,适于多芯片的存储器扩展。常见有74LS138(3-8译码器)、74LS139(双2-4译码器)与74LS154(4-16译码器)。下面介绍74LS138和74LS139译码器芯片。9.1.2 地址空间分配 2译码法(1)74LS138是3-8译码器,有3个数据输入端,经译码后产生8种状态,其引脚见图9-3,真值表见表9-2。图9-3 74LS138引脚图9.1.2 地址空间分配 2译码法由表9-2
9、可见,当译码器输入为某一固定编码时,其8个输出引脚Y0*Y7*中仅有1个引脚输出为低,其余全为高。而输出低电平的引脚恰好作为片选信号。9.1.2 地址空间分配 2译码法(2)74LS139 双2-4译码器。两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端,其引脚如图9-4所示,其中1组的真值表见表9-3。图9-4 74LS139引脚图9.1.2 地址空间分配 2译码法表9-3 74LS139真值表9.1.2 地址空间分配 2译码法以74LS138为例,介绍如何进行空间地址分配。例如,要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分配给各个芯片
10、?由74LS138真值表可知,把G1接到+5V,该G2A*、G2B*接地,P2.7、P2.6、P2.5(高3位地址线)分别接到74LS138的C、B、A端,由于对高3位地址译码,这样译码器有8个输出Y0*Y7*,分别接到8片6264的“片选”端,实现8选1片选。而低13位地址(P2.4P2.0,P0.7P0.0)完成对选中的6264芯片中的各个存储单元的“单元选择”。这样就把64KB存储器空间分成8个8KB空间了。64KB地址空间的分配见图9-5。9.1.2 地址空间分配 2译码法图9-5 64KB空间划分成8个8KB空间9.1.2 地址空间分配 2译码法当AT89S51单片机发出16位地址码
11、时,每次只能选中一片芯片以及该芯片的唯一存储单元。采用译码器划分的地址空间块相等,如将地址空间块划分为不等的块,可用FPGA实现非线性译码逻辑来代替译码器。9.1.3 外部地址锁存器AT89S51单片机受引脚数的限制,P0口兼用数据线和低8位地址,为了将它们分离出来,需要在单片机外部增加地址锁存器。目前,常用的地址锁存器芯片有74LS373、74LS573等。9.1.3 外部地址锁存器1锁存器74LS373带有三态门的8D锁存器,其引脚见图9-6,内部结构如图9-7所示。图9-6 锁存器74LS373的引脚图9-7 74LS373的内部结构 9.1.3 外部地址锁存器1锁存器74LS37374
12、LS373引脚说明:u D7D08位数据输入线。u Q7Q08位数据输出线。u G数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。u OE*数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。9.1.3 外部地址锁存器1锁存器74LS37374LS373锁存器功能见表9-4。表9-474LS373功能表 9.1.3 外部地址锁存器1锁存器74LS373图9-8 AT89S51单片机P0口与74LS373的连接AT89S51单片机与74LS373锁存器的连接如图
13、9-8所示。9.1.3 外部地址锁存器2锁存器74LS573带三态门的8D锁存器,功能及内部结构与74LS373完全一样,只是其引脚排列与74LS373不同,图9-9为74LS573引脚图。由图9-9,与74LS373相比,74LS573输入D端和输出的Q端依次排列在芯片两侧,为绘制印制电路板提供较大方便。74LS573引脚说明如下。图9-9 锁存器74LS573的引脚 9.1.3 外部地址锁存器2锁存器74LS573D7D08位数据输入线。Q7Q08位数据输出线。G数据输入锁存选通,该引脚与74LS373的G端功能相同。OE*数据输出允许,低电平有效。当低电平时,三态门打开,锁存器中数据输出
14、到数据输出线。当该信号为高电平时,输出线为高阻态。9.1.3 外部地址锁存器2锁存器74LS573图9-12 AT89S51单片机与4片27128 EPROM的接口电路目 录CONTENTS9.1 系统并行扩展技术9.2 外部数据存储器RAM的并行扩展9.3 片内Flash存储器的编程9.4 E2PROM的并行扩展9.5 AT89S51扩展并行I/O芯片82C55的设计9.6 利用74LSTTL电路扩展并行I/O口9.7 用AT89S51单片机的串行口扩展并行输入/输出口9.2 外部数据存储器RAM的并行扩展AT89S51片内有128B RAM,如不能满足需要,须扩展外部数据存储器。在单片机系
15、统中,外扩的数据存储器都采用静态数据存储器SRAM。AT89S51对外部数据存储器访问,由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。片外数据存储器RAM的读和写由AT89S51的 RD*(P3.7)和WR*(P3.6)信号控制,而片外程序存储器EPROM的输出端允许(OE*)由AT89S51单片机的读选通信号PSEN*控制。尽管与EPROM地址空间范围都相同,但由于是两个不同空间,控制信号不同,故不会发生数据冲突。9.2.1 常用的静态RAM(SRAM)芯片单片机系统中常用RAM典型芯片有6116(2KB)、6264(8KB)、62128(16KB)、62256(32K
16、B)。都单一+5V电源供电,双列直插,6116为24引脚,6264、62128、62256为28引脚。RAM芯片引脚见图9-10。9.2.1 常用的静态RAM(SRAM)芯片各引脚功能如下。n A0A14地址输入线。n D0D7双向三态数据线。n CE*片选信号输入线,低电平有效。对于6264芯片,当 24脚(CS)为高电平且为低电平时才选中该片。n OE*读选通信号输入线,低电平有效。n WE*写允许信号输入线,低电平有效。n VCC工作电源+5V。n GND地9.2.1 常用的静态RAM(SRAM)芯片图9-10 常用RAM引脚9.2.1 常用的静态RAM(SRAM)芯片RAM存储器有读出
17、、写入、维持3种工作方式,见表9-5。9.2.2 并行扩展RAM的扩展接口访问外扩数据存储器,要由P2口提供高8位地址,P0口提供低8位地址和8位双向数据总线。AT89S51对片外RAM的读和写由AT89S51的RD*和WR*信号控制,片选端CE*由地址译码器译码输出控制。因此,接口设计主要解决地址。9.2.3 读写片外RAM的操作时序1读片外RAM的时序AT89S51单片机若外扩一片RAM,应将其引脚与RAM芯片的引脚连接,引脚与芯片引脚连接。ALE信号的作用是锁存低8位地址。AT89S51单片机读片外RAM的时序如图9-11所示。9.2.3 读写片外RAM的操作时序1读片外RAM的时序图9
18、-11 AT89S51单片机读片外RAM的操作时序图 9.2.3 读写片外RAM的操作时序1读片外RAM的时序在第一个机器周期的S1状态,ALE信号由低变高(见处),读RAM周期开始。在S2状态,CPU把低8位地址送到P0口总线上,把高8位地址送上P2口。ALE的下降沿(见处),把低8位地址信息锁存到外部锁存器74LS373内。而高8位地址信息一直锁存在P2口锁存器中(见处)。在S3状态,P0口总线变成高阻悬浮状态。在S4状态,执行读指令后使信号变为有效(见处),信号使被寻址的片外RAM过片刻后把数据送上P0口总线(见处),当回到高电平后(见处),P0总线变为悬浮状态(见处)。至此,读片外RA
19、M周期结束。9.2.3 读写片外RAM的操作时序2写片外RAM操作时序当AT89S51单片机执行向片外RAM写指令后,单片机的信号为低电平有效,此信号使RAM的端被选通。写片外RAM的操作时序如图9-12所示。开始的过程与读过程类似,但写的过程是单片机主动把数据送上P0口总线,故在时序上,单片机先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线(见处)。此间,P0总线上不会出现高阻悬浮现象。在S4状态,写控制信号有效(见处),选通片外RAM,稍过片刻,P0口上的数据就写到RAM内了,然后写控制信号变为无效(见处)。9.2.3 读写片外RAM的操作时序2写片外RAM操作时序图9-1
20、2 AT89S51单片机写片外RAM的操作时序图9.2.4 并行扩展数据存储器的设计访问外扩展的数据存储器,要由P2口提供高8位地址,P0口提供低8位地址和8位双向数据总线。AT89S51单片机对片外RAM的读和写由AT89S51的(P3.7)和(P3.6)信号控制,片选端由地址译码器的译码输出控制。因此,进行接口设计时,主要解决地址分配、数据线和控制信号线的连接。如果读/写速度要求较高,还要考虑单片机与RAM的读/写速度匹配问题。图9-13所示为用线选法扩展外部数据存储器的电路。数据存储器选用6264,该芯片地址线为A0A12,故AT89S51单片机剩余地址线为3条。用线选法可扩展3片626
21、4,3片6264的存储器空间如表9-6所示。9.2.4 并行扩展数据存储器的设计图9-13 线选法扩展外部数据存储器电路图9.2.4 并行扩展数据存储器的设计用译码法扩展外部数据存储器的接口电路如图9-14所示。图中数据存储器选用62128,该芯片地址线为A0A13,这样,AT89S51剩余地址线为两条,采用2-4译码器可扩展4片62128。各62128芯片的地址范围如表9-7所示。9.2.4 并行扩展数据存储器的设计图9-14 译码法扩展外部数据存储器电路图9.2.4 并行扩展数据存储器的设计表9-7各62128芯片的地址空间分配【例9-1】编写程序将片外数据存储器中的0 x50000 x5
22、0FF的256个单元全部清“0”。参考程序:xdata unsigned char databuf256 _at_0 x5000;void main(void)unsigned char i;for(i=0;i256;i+)databufi=0 9.2.5 单片机外扩数据存储器RAM6264的案例设计 单片机外部扩展1片外部数据存储器RAM6264。原理电路如图9-15所示。单片机先向RAM6264的0 x0000地址写入64字节的数据164,写入的数据同时送到P1口通过8个LED显示出来。然后再将这些数据反向复制到0 x0080地址开始处,复制操作时,数据也通过P1口的8个LED显示出来。9
23、.2.5 单片机外扩数据存储器RAM6264的案例设计上述两个操作执行完成后,发光二极管D1被点亮。表示数据第1次的写入起始地址0 x0000的64个字节,以及将这64个字节数据反向复制到起始地址0 x0080的读写已经完成。如要查看RAM6264中的内容,可在D1点亮后,单击“暂停”按钮,然后单击调试(Debug)菜单,在下拉菜单中选择“Memory Contents”,即可看到图9-16所示的窗口中显示的RAM6264中的数据。可看到单元地址0 x00000 x003f中的内容为0 x000 x3f。而从起始地址0 x0080开始的64个单元中的数据为0 x3f 0 x00,可见完成了反向
24、复制。9.2.5 单片机外扩数据存储器RAM6264的案例设计图9-15 单片机外部扩展1片外部数据存储器RAM6264 9.2.5 单片机外扩数据存储器RAM6264的案例设计图9-16 RAM6264第1次写入的数据与反向复制的数据 9.2.5 单片机外扩数据存储器RAM6264的案例设计9.2.5 单片机外扩数据存储器RAM6264的案例设计9.2.5 单片机外扩数据存储器RAM6264的案例设计程序说明:主程序中的共有两个for循环,第1个for循环,完成将数据164写入起始地址0 x0000的64个字节,第2个for循环,完成将这64个字节数据641反向复制到起始地址0 x0080开
25、始的64个单元中。目 录CONTENTS9.1 系统并行扩展技术9.2 外部数据存储器RAM的并行扩展9.3 片内Flash存储器的编程9.4 E2PROM的并行扩展9.5 AT89S51扩展并行I/O芯片82C55的设计9.6 利用74LSTTL电路扩展并行I/O口9.7 用AT89S51单片机的串行口扩展并行输入/输出口9.3 片内Flash存储器的编程程序存储器具有非易失性,在电源关断后,存储器仍能保存程序,在系统上电后,CPU可取出这些指令重新执行。程序存储器中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称为只读存储器(ROM)。美国ATMEL公司生产的A
展开阅读全文