《片机扩展模块设计.ppt》由会员分享,可在线阅读,更多相关《片机扩展模块设计.ppt(63页珍藏版)》请在三一办公上搜索。
1、单元9 扩展模块,回顾,1,数据通信有哪些方式?2,8051单片机串行通信通过哪些管脚完成?3,8051单片机串行通信有几种工作方式?4,波特率的定义是什么?8051单片机设置波特率的步骤?5,Max232芯片作用是什么?,本单元任务,任务1 扩展程序存储器 任务2 扩展数据存储器 任务3 扩展I/O,任务描述:,任务分析:,客户要求程序存储的容量不能少于8KB,以便项目今后能够程序升级,并能进行功能扩充,8051单片机片内程序存储器的存储容量只有4KB,不能满足客户需求,因此必须进行存储扩展,8051单片机有8位数据线,16位地址线,因此可以通过外部扩展的方法来增大程序存储器容量,任务1 扩
2、展程序存储器,1.半导体存储器基本知识,只读存储器ROM:ROM(Read Only Memory)是只读存储器。ROM中所存储的信息是固定的、非易失性的,不会因为停电而消失。在正常工作状态下,ROM中的信息只能读不能写,即不能修改ROM的内容,数据读出后原数据不变。ROM通常用来存储控制程序和控制常量 掩模ROM PROM EPROM(EEPROM)Flash Memory,随机存取存储器RAM RAM(Random Access Memory)是随机存取存储器。正常工作时信息既可读出又可写入。数据读出后原数据不变,新数据写入后,原数据自然消失,并被新数据代替。因此,RAM存储器可以用来存储
3、实时数据、中间数据、最终结果或作为程序的堆栈区使用。但是,RAM是易失性存储器,掉电后其数据随即消失。RAM通常可分为静态RAM和动态RAM两大类,其差别主要在于基本存储电路存储信息的方式不同。静态RAM依靠触发器来存储二进制信息,存储容量较小。动态RAM依靠存储电容来存储二进制信息,存储容量大,2.单片机存储器扩展的实现,P0口线用作数据线/低8位地址线 P0口线具有地址线/数据线双重复用功能,以ALE为锁存控制信号,选择高电平或下降沿选通的锁存器作为地址锁存器(通常使用的锁存器是74LS373或74LS273),确保低8位地址信息在消失前被送入锁存器暂存起来,从而实现了对地址和数据的分离,
4、P2口线用作高8位地址线P2口线用于进行高8位地址线的扩展。由于只具有地址线扩展的功能,P2口线可直接与存储器芯片的地址线相连,无需锁存。P2与P0提供的16根地址线实现了51单片机系统64KB的寻址范围,控制信号(1)ALE是锁存信号,用于进行P0口地址线和数据线的隔离。(2)是程序存储器读选通控制信号。(3)是程序存储器访问控制信号。当它为低电平时,对程序存储器的访问仅限于外部存储器;为高电平时,对程序存储器的访问从单片机的内部存储器开始延至外部存储器。(4)、是外部数据存储器的读/写选通控制信号,3.片选方式及地址映像,片选方式研究多个芯片扩展时的连线,从而保证对存储芯片访问的惟一性。地
5、址映像则研究各存储器芯片在整个存储空间中所占据的地址范围,从而为存储器的使用提供依据,片选方式 存储器编址是扩展存储器的重点。所谓存储器编址,就是使用系统提供的地址线,通过适当的连接,最终达到一个编址唯一地对应存储器中一个存储单元的目的。通常的单片机系统都会扩展多片存储器芯片,因此存储器编址应从两个方面进行考虑:(1)存储芯片的选择,即片选。用来解决与芯片的片选端连接问题;(2)芯片内部存储单元的选择,用来解决与芯片的地址线连接问题。,芯片的选择有两种方式:线选和译码(1)线选方式:直接以系统的高地址作为存储芯片的片选信号,为此只需把用到的地址线与存储器的片选端直接连接即可。同时最多只能有一个
6、存储器芯片被选中,此时,与被选中芯片相连的地址线有效,其他用于线选的地址线均无效,(2)译码方式:使用译码器对系统的高位地址进行译码,以译码输出作为存储芯片的片选信号。这是一种最常用的片选方式,能有效利用存储空间,适用于大容量多芯片存储器的扩展,当扩展的同类存储器芯片的存储容量相同时,译码方式可产生连续的地址映像,充分利用存储空间。具体做法是:(1)若用于地址线扩展的P2口线是,则从起与译码器输入选择端依照高低次序进行连接。(2)多个芯片的片选端依次与相邻的译码输出端相连。,下面以扩展多片存储容量为2KB的存储器芯片为例进行说明。则每片存储器的地址线数量为11条(A10A0),即P0经锁存器后
7、为地址低8位(A7A0),P2口的用于地址扩展(A10A8),译码电路则从P2.3起始,若采用74LS138作为译码器,电路如下,地址映像对存储器芯片进行地址映像,是对存储器进行访问的前提。现在以扩展2KB存储容量的芯片进行说明。如图9-3所示,设4片存储芯片的片选端分别与Y0、Y1、Y2、Y3相连,则扩展4片存储器芯片时,P2、P0口各引脚连线对应关系如下,其中、用于片内地址的选择,范围从000 0000 0000B到111 1111 1111B。用于芯片的选择,由于4#芯片的片选端与Y3相连,为011B时,用于选中4#芯片。这里设P2.7和P2.6为全0,则4#芯片的地址范围是1800H1
8、FFFH。同样地,3#芯片的地址范围是1000H17FFH,2#芯片的地址范围是0800H0FFFH,1#芯片的地址范围是000H07FFH。这4片芯片的地址是完全连续。,4.地址锁存器及EPROM,EEPROM芯片介绍,地址锁存器 由于51单片机的P0口是数据和地址总线分时复用的,因此在进行单片机的程序存储器外部扩展时,就必须应用地址锁存器将P0口送出的低8位地址信号从地址/数据总线中分离出来。程序存储器扩展时,地址锁存信号为ALE,地址锁存器可使用带有三态缓冲输出的8D74LS373,也可以使用带清除端的8D74LS273等,74LS373作为地址锁存器使用时,它们的锁存控制端G可直接与单
9、片机的锁存控制信号ALE相连,以便在ALE的下降沿信号到来时进行地址锁存;当应用74LS273作为地址锁存器时,由于该芯片要求CLK端上沿锁存,因此单片机输出的ALE控制信号必须经过一个反相器后才能连接到74LS273的CLK端,常用程序存储器EPROM、EEPROM简介紫外线擦除电可编程只读存储器EPROM,以前常用作51系列单片机的外部程序存储器,常见的型号有:2764(8K8),27128(16K8),27256(32K8),27512(64K8)等。现在这种存储器基本已被淘汰,代替它们的是型号中间带C的CMOS电可擦除程序存储器:27C64,27C128,27C256,27C512,电
10、擦除可编程只读存储器EEPROM是常用的另一种单片机外扩程序存储器。其主要特点有(1)对硬件电路没有特殊的要求,操作十分简便。由于EEPROM片内设有编程所需的高电压脉冲产生电路,因而无需外加编程电源和编程脉冲即可完成写入工作;(2)采用+5V电擦除的EEPROM后,通常不需要设置单独的擦除操作,在对芯片进行编程同时完成自动擦除工作;(3)不仅可用于外扩程序存储器也可用于外扩数据存储器。常用的EEPROM有2816,2817A,2864,28C04,28C16,28C17,28C64等【课堂思考】请分别查找芯片27C128、2817A、28C64的引脚及其功能,1.引脚功能 2.逻辑连线 3.
11、地址映像,任务实施(扩展1片27C64),引脚功能:27C64是一种8K8位的电可擦除只读存储器,其工作电压是+5.0V,存取时间为120ns,容量为64K位,动作电流20mA,采用单独的芯片允许和输出允许控制。常用的27C64为28管脚PID(双列直插)封装,逻辑连线(1)8051的引脚P0.7P0.0直接与27C64的数据线D7D0相连,完成数据线扩展。(2)8051的引脚P0.7P0.0经过锁存器与27C64的地址线A7A0相连,P2.4P2.0直接与27C64的地址线A12A8相连,完成地址线扩展。(3)8051的程序存储器访问控制 与27C64的输出允许端相连完成控制线的扩展。(4)
12、8051的引脚P2.5经非门与27C64片选端相连,进行芯片选择控制。(5)8051的端接地,对程序的访问完全在片外进行,地址映像 P2.7、P2.6与寻址无关,均设为“1”。P2.5经非门与片选端相连,当它为“1”时,可使片选段有效。因此,此片27C64的地址范围是0E000H0F000H【课堂思考】若扩展三片27C64,地址范围从0A000H开始,应如何实现?,【Task9-1】扩展1片27C64,程序装在27C64,运行点亮LED流水灯。(1)电路设计:单片机EA脚接地,通过74LS373扩展1片27C64。流水灯安装在P1口上。,(2)程序设计void main()while(1)P1
13、=led_lighti+;delay();if(i=8)i=0;void delay()unsigned char t1,t2;for(t1=0;t1200;t1+)for(t2=0;t2200;t2+);,任务描述:,任务分析:,客户同时还要求数据存储的容量不能少于2KB,以方便项目今后能满足扩充要求。,当一个项目涉及到大量的数据时,就可能会超过单片机片内数据存储器的存储容量(8051单片机数据存储容量实际只有128B),然而由于其16位地址线,最大可寻址64KB字节,因此仍可以通过外部扩展的方法来增大数据存储器容量,任务2扩展数据存储器,1.RAM扩展原理,扩展RAM和扩展ROM类似,由P
14、2口提供高8位地址,P0口分时地作为低8位地址线和8位双向数据总线。片外RAM的读 和写 由8051的 和 信号控制,所以,虽然与ROM的地址重叠,但不会发生混乱,2.常见的数据存储器,目前,常用的数据存储器SRAM芯片有6116、6264、62256等,,AiA0:地址输入线,i=10/12/13/14(6116/6264/62128/62256)。D7D0:三态双向数据线。:片选信号输入线,低电平有效。:读选通信号输入线,低电平有效。:写选通信号输入线,低电平有效。:6264的片选信号输入线,高电平有效,可用于掉电保护。表示该管脚不用。,1.逻辑连线2.地址映像,任务实施(扩展1片6116
15、),逻辑连线 数据线扩展。8051的引脚P0.7P0.0直接与6116的数据线D7D0相连。地址线扩展。8051的引脚P0.7P0.0经过锁存器与6116的地址线A7A0相连,P2.4P2.0直接与6116的地址线A12A8相连。8051读访问控制端 与6116的输出允许端 相连;写访问控制端 与6116写选通信号端 相连;P2.3与片选信号 相连完成控制线的扩展。芯片选择。外部数据存储器扩展时的数据线扩展、地址线扩展、芯片选择方法与程序存储器扩展时的方法完全相同,地址映像 P2.7P2.4与寻址无关,均设为“1”,P2.3为0选中芯片,因此,此片6116的地址范围是0F000H0F700H,
16、【Task9-2】扩展1片27C512、1片6264。程序全部装在27C512,通过向6264存储器地址1000h、1001h写入点亮LED编码,再读取1000h、1001h编码点亮LED灯。(1)电路设计:单片机EA脚接地,通过74LS373扩展1片27C512、1片6264。LED灯安装在P1口上。,(2)程序设计#defineLED10 x1000#defineLED20 x1001unsigned char led_light=0 x55,0 xaa;/点亮LED编码unsigned char i;void main()XBYTELED1=led_light0;/写入外部RAM地址10
17、00h、10002hdelay1();/写入延时 XBYTELED2=led_light1;delay1();while(1)i=XBYTELED1;P1=i;delay();i=XBYTELED2;P1=i;delay();,任务描述:,任务分析:,客户提出项目今后可能需要接更多的外部设备,因此需要预留更多的IO口,才能满足项目的扩展需求。,8051单片机有4个IO,共32位IO,然而其LED模块,显示模块,按键模块等电路已经占用了不少IO,要满足今后的扩展需要,唯一的办法就是扩展IO,即让单片机能使用的IO口超过本身自有的32位,任务3扩展I/O,1.扩展IO基础知识,由于MCS-51单片
18、机的外部数据存储器RAM和I/O是统一编址的,因此,用户可以把外部64KB的数据存储器RAM空间的一部分作为扩展外部I/O的地址空间。这样,单片机就可以像访问外部RAM一样访问外部接口芯片,对其进行读写操作,2.8255A可编程并行IO电路,8255A的结构及功能,(1)3个8位的I/O接口:A口、B口、C口A口具有一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。可编程为8位输入/输出或双向寄存器。B口具有一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。可编程为8位输入或输出寄存器,但不能双向输入/输出。C口具有一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。C口可分作
19、两个4位口使用。它除了作为输入/输出口外,还可作为A口、B口选通方式工作时的状态控制信号。,(2)读/写控制逻辑读/写控制逻辑的功能用于管理所有的数据、控制字或状态字的传送。它接收来自CPU的地址信号及一些控制信号来控制各个口的工作状态,这些控制信号有:(片选信号)低电平有效。允许8255A与CPU交换信息。(读信号)低电平有效。允许CPU从8255A端口读取数据或外设状态信息。(写信号)低电平有效。允许CPU将数据、控制字写入8255A中(复位)高电平有效。有效时,控制寄存器全部清0,所有端口置成输入方式,(端口选择信号)它们与、信号相配合用来选择端口及内部控制寄存器,并控制信息传送的方向,
20、(3)A组和B组控制电路这是两组根据CPU命令控制8255A工作方式的电路。每组控制电路从读、写控制逻辑接收各种命令,从内部数据总线接收控制字(指令),并发出适当的命令到相应的端口。A组控制电路控制A口及C口的高4位。B组控制电路控制B口及C口的低4位。,(4)数据总线缓冲器这是一个双向三态的8位缓冲器,用于和系统的数据总线直接相连,以实现CPU和8255A间传送信息,8255A的工作方式选择,(1)方式0(基本输入/输出方式)这种工作方式不需要任何选通信号。A口、B口及C口的高4位和低4位都可以设定为输入或输出。作为输出口时,输出的数据被锁存;作为输入口时,输入数据不锁存。(2)方式1(选通
21、输入/输出方式)这种工作方式下,A、B、C3个口分为两组:A组包括A口和C口的高4位,A口可由编程设定为输入口或输出口,C口的高4位用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低4位,B口同样可由编程设定为输入口或输出口,C口的低4位用来作为输入/输出操作的控制和同步信号。A口和B口的输入数据或输出数据都被锁存。(3)方式2(双向总线方式)在这种工作方式下,A口为8位双向总线口,C口的PC3PC7用来作为输入/输出的同步控制信号。在这种情况下,B口和PC0PC2只能编程为方式0或方式1工作,8255A的控制字,例9-1:将B8H(10111000B)写入控制寄存器后,则8255
22、A设置A口为方式1输入,B口为方式0输出,C口高4位为方式1输入,C口低4位为方式0输出。例9-2:将0BH(00001011B)写入控制寄存器后,则8255A的PC5置1,8255A与MCS-51单片机的连接电路如图9-13所示。图中:8255A的片选信号 及端口地址选择线A1、A0分别由8051的P0.7、P0.1、P0.0经74LS373锁存后提供;8255A的、分别接8051的、;8255A的D0D7接8051的P0.7P0.7。该电路中8255A的A口、B口、C口以及控制口的地址分别为FF7CH、FF7DH、FF7EH和FF7FH,任务实施(扩展1片8255A),【Task9-3】扩
23、展1片8255A。按键和LED灯安装在8255A中,通过读入B口按键状态,输出点亮A口相连的LED灯的过程。(1)电路设计:扩展1片8255A。LED灯安装在PA口上,按键安装在PB口中。,(2)程序设计#define PORTA0 x7CFF/A口 注意:8255A的A1、A0与单片机的P2.1、P2.0相连#define PORTB0 x7DFF/B口#define PORTC0 x7EFF/C口#define CADDR0 x7FFF/控制字地址unsigned char i;void main()XBYTECADDR=0 x82;/设置8255A工作方式0,A、C口输出,B口输入whi
24、le(1)i=XBYTEPORTB;/读入B口XBYTEPORTA=i;/输出到A口,小结,8051单片机内部只有4K程序存储器、128B可用的数据存储器,对16位地址总线的51系列单片机,其寻址空间为216=65535,即64K字节,地址从0000H0FFFFFH,因此8051单片机程序存储器和数据存储器均可扩展为64KB。8051单片机共有32位I/O,当采用外部程序存储器或数据存储器时,由于地址总线的应用,致使单片机可用I/O减少到14个左右,因此单片机外围要连接的设备较多时,势必会出现I/O口不够用的情况,因而在实际应用中,也需要对单片机的I/O口作一定的扩展。I/O扩展常选用8255A或8155芯片,作业,技能拓展一选择题技能拓展二设计题,谢谢!,