用译码器如何扩展法在8031单片机外部扩展三片intel6264芯片组成一个存储器扩展系统

【图文】单片机系统扩展技术_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机系统扩展技术
&&单片机系统扩展技术
大小:808.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢51单片机—单片机扩展外部RAM—6264—08
今天这个是是以前做过的,没做成,扩展ROM的时候失败了~~
不过今天主要的就是扩展外部的RAM,这个相对比较简单点,不想外部的ROM还要设置太多的编译器~~
单片机扩展外部RAM
一、扩展总线
1)数据总线宽度为8位,由P0口提供;
2)地址总线宽度为16位,可寻址范围2的16次,也就是64K。低8位A7~A0由P0口经地址锁存器提供,高8位A15~A8由P2口提供。由于P0口是数据、地址分时复用,所以P0口输出的低8位必须用地址锁存器进行锁存;
3)控制总线由RD、WR、PSEN、ALE和EA等信号组成,用于读/写控制、片外RAM选通、地址锁存控制和片内、片外RAM选择。
地址锁存器一般选用带三态输出缓冲输出的8D锁存器74LS373。
2、片外RAM的操作时序
进行RAM的扩展,其扩展方法较为简单容易,这是由单片机的优良扩展性能解决的。单片机的地址总线为16位,扩展的片外RAM的做大容量为64KB,地址为0000H~FFFFH。
1)由于51单片机采用不同的控制信号指令,尽管RAM和ROM地址是重叠的,也不会发送混乱。
<font COLOR="#FC单片机对片内和片外ROM的访问使用相同的指令,两者的选择是由硬件实现的(就是不用咱们关心的,还有他们的存储也是硬件自动实现的,你只要连接好引线就哦了~~~剩下的就是写点指令控制控制了)
3)芯片选择现在多采用线选法,地址译码法用的渐少。ROM和RAM共享数据总线和地址总线。
二、RAM的扩展原理
外部RAM的扩展是由P2口提供高8位地址,P0口分时地址作为第八位地址线和8位双向数据线
外部RAM的读时序为(这个是不用关心的,只要能看懂就哦了~~你只要写出你想要的语句来,由于单片机P0口有A/D功能,所以只要连接好硬件,还有就是知道我之前在计算机语言栏目里写过的那篇文章(貌似是~C51的运算量)里面的那些绝对地址的访问啊~还有存储器类型~~)
外部RAM的读时序为:
这里稍微说说吧:
51单片机的CPU在访问片外RAM的一个机器周期中,信号ALE出现两次(正脉冲),RAM选通信号也两次有效,这说明在一个机器周期内,CPU两次访问片外RAM,也即在一个机器周期内可以处理两个字节的指令代码,所以在51单片机指令系统中有很多单周期双字节指令。
三、RAM的扩展方法
1、数据存储器
2、数据存储器扩展电路
可以贴出程序来喽~~
程序也就那么一点~~
将就着看吧~~
RAM_6264.c(本来想用那个指针访问的~~~~试了半天~~不对啊~~无语了~~)
//------------------------------------------------------------------------------
//这个程序主要是用来验证扩展RAM的~~
//扩展RAM主要的就是连接好电路~~具体的时序不用操心~~
//这里边主要用到了我的写的计算机语言那一篇文章的内容~~
#include"reg52.h"
#include"absacc.h"&&&&&&&&//C51运行库中的预定义宏,来对51单片机的code、data、pdata和xdata空间进行绝对寻址
//------------------------------------------------------------------------------
typedef&unsigned int&
xdata uint x1 _at_
0x0000;&&&&&&//使用c51扩展关键字
_at_ 来实现绝对地址的访问,注意:使用它定义的变量一定要是全局变量~~
&&&&&&&&&&&&//一开始我都给忘记了~~擦~~&
//------------------------------------------------------------------------------
void main()
&uchar x2;
&x1=0x5566;&&&&&&&&&//给片外存储器的0x0000赋值0x5566
&XBYTE[0x;&&&&&&&//XBYTE[0x0010]访问片外RAM的0010字节单元,并给它赋初值
&x2=XBYTE[0x0010];&&&&&&&//将XBYTE[0x0010]单元的字节(注意定义的是uchar型~~)赋给x1
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。【图文】第三节 外部存储器的扩展(2)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第三节 外部存储器的扩展(2)
大小:1.60MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢单片机的系统扩展
查看: 614|
摘要: 如果单片机片内的资源不能满足应用需求,就需要外扩存储器和I/O功能部件。例如片内只有4KB的程序存储器,8031片内无程序存储器,当采用而程序超过4KB或采用8031时,就需对程序存储器进行扩展, ...
&&& 如果片内的资源不能满足应用需求,就需要外扩存储器和I/O功能部件。例如片内只有4KB的程序存储器,8031片内无程序存储器,当采用而程序超过4KB或采用8031时,就需对程序存储器进行扩展,最多可至64KB。另外,MCS-51系列单片机的片内数据存储器仅有128字节,对某些应用程序可能不够,也需对内部数据存储器进行外部扩展,最大至64KB。
一、三总线的基本结构
图1 单片机的三总线结构
1.数据总线
2.地址总线
3.控制总线 二、单片机扩展存储器的基本结构
常用的存储器芯片如等。如图2、3。
&& 图2 27C64芯片 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&& 图3 6264芯片
MCS-51系列单片机系统的扩展主要包括存储器的扩展和I/O口的扩展,图4为AT89S52单片机扩展后的结构框图。扩展能力为:
(1)&片外程序存储器可扩展至64KB。
(2)&片外数据存储器和I/O端口可扩展至64KB。
图4 扩展后的单片机结构框图三、地址锁存器
MCS-51单片机系统中,经常采用74LS373作为地址锁存器使用。74LS373是一种带输出三态门的8D锁存器,其外形如图5,芯片引脚见图6。
图5 74LS373芯片 &&&&&&&&&&&&&&&&&&&&&&&&&& 图6 74LS373引脚 四、总线驱动器
单片机总线端口的驱动能力是有限的,一般只能驱动几个LSTTL负载或十几个MOS电路负载,若需要挂接多个负载,因此常常需要进行总线驱动。单向驱动器74LS244是一种常用的总线驱动器。其外形如图7,引脚如图8所示。
图7 74LS244芯片 &&&&&&&&&&&&&&&&&&&&&&&&&&& 图8 74LS244引脚
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:单片机接口扩展
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
单片机接口扩展
单片机接口扩展 教学目标介绍单片机程序存储器的扩展方法介绍单片机数据存储器的扩展方法 介绍单片机I/O口的扩展方法 学习要求熟悉单片机片外三总线结构和扩展能力掌握单片机接口扩展EPROM,RAM,I/O口方法掌握地址译码及片选方法了解单片机总线驱动能力和扩展方法 通常情况下,采用C51的最小应用系统最能发挥单片机体积小,成本低的优点.但在很多情况下,构成一个工业测控系统时,考虑到传感器接口,伺服控制接口以及人机对话接口等的需要,最小应用系统常常不能满足要求,因此,必须在片外扩展相应的外围芯片,这就是单片机接口扩展.它包括程序存储器(ROM)扩展,数据存储器(RAM)扩展,I/O口扩展,定时/计数器扩展,中断单片机接口扩展以及其它特殊功能扩展等.7.1 MCS-51系列单片机的外部扩展性能 7.1.1 MCS-51系列单片机的片外总线结构为了满足单片机接口扩展要求,MCS-51系列单片机的片外引脚可以构成图7-1所示的三总线结构,即地址总线(AB),数据总线(DB)和控制总线(CB).所有的外部芯片都是通过这三组总线进行扩展.图7-1 单片机的片外三总线结构
高8位地址低8位地址 16位地址总线__ 8位数据总线控制总线_P2口ALE
8051P0口RDEA WRPSEN
地址锁存器1.地址总线(AB)地址总线宽度为16位,因此可寻址范围为216=64KB.地址总线由P0口提供低8位地址A7~A0,由P2口提供高8位地址A15~A8. 2.数据总线(DB)数据总线由P0口提供,其宽度为8位.3.控制总线(CB)控制总线包括片外单片机接口扩展用线和片外信号对单片机的控制线., :用于片外数据存储器(RAM)的读写控制.当执行片外数据存储器操作指令MOVX时,这两个信号自动生效.:用于片外程序存储器(EPROM)的读数控制.ALE:用于锁存P0口输出的低8位地址的控制线.通常,ALE在P0口输出地址期间用其下降沿控制锁存器锁存地址数据.:用于选择片内或片外程序存储器.当 =0时,只访问片外程序存储器,而不管片内有无程序存储器.因此,在扩展并使用外部程序存储器时,必须将 接地.
7.1.2 MCS-51系列单片机的单片机接口扩展能力 根据地址总线宽度,MCS-51系列单片机在片外可扩展的存储器最大容量为64KB,地址范围为0000H~FFFFH.1.片外数据存储器与程序存储器的地址范围一样为64KB,地址也可重复,它们由单片机不同的指令和控制信号区分:读片外程序存储器的指令为MOVC,读写片外数据存储器的指令为MOVX;读片外程序存储器的控制信号为 ,读写片外数据存储器的控制信号为 和 .2.片外数据存储器与片内数据存储器的地址可重复,但操作指令不同.对片内数据存储器读写的指令为MOV,对片外数据存储器读写的指令为MOVX.3.为配置外围设备而需要扩展的I/O接口,如A/D,D/A等,与片外数据存储器统一编址, 7.1.3 MCS-51系列单片机的总线驱动能力及扩展方法 一,总线的驱动能力 MCS-51系列单片机作为数据总线和低8位地址总线的P0口可驱动8个LSTTL电路,而P1,P2,P3只能驱动4个LSTTL电路.当应用系统规模过大时,可能造成负载过重,致使驱动能力不够,系统不能可靠地工作.二,总线的扩展概述在设计计算机应用系统硬件电路时,首先要估计总线的负载情况,以确定是否需要对总线的驱动能力进行扩展.地址总线和控制总线为单向的,可采用单向三态线驱动器(如74LS244)进行驱动能力的扩展.数据总线为双向的,必须采用双向三态线驱动器(如74LS245)进行驱动能力的扩展. 7.2 MCS-51系列单片机存储器扩展 7.2.1程序储存器扩展 一,_ 储存器扩展概述外部程序存储器芯片与单片机可按如下方式连接:1.地址线的连接外部程序存储器低8位地址线A0~A7与P0口的口线P0.0~P0.7对应相连;外部程序存储器高8位地址线A8~A15与P2口的口线P2.0~P2.7对应相连.2.数据线的连接 外部程序存储器8位数据线D0~D7与P0口的口线P0.0~P0.7对应相连.3.控制线的连接(片外程序存储器取指信号)和 (程序存储器输出允许信号)相连;ALE(地址锁存允许信号)和 (地址锁存器锁存信号)相连; (片内/片外程序存储器选择信号),当选用时,应接地;单片机的相关地址线经过地址译码和程序存储器的片选信号 相连.由上面论述可以得到外部扩展程序存储器的一般连接方法,见图7-2所示.图7-2 单片机的外部程序存储器一般连接方法 地址锁存器P2.7P2.0ALE8031P0.7~P0.0EA PSENA15 A8A7外部程序 A0存储器D7~D0OE二,程序储存器EPROM的扩展 1.使用单片EPROM的扩展电路图7-3为8031单片机外接一片EPROM 27256的扩展电路.图7-3 8031单片机扩展一片27256的电路 27256的 端是输出使能端,与8031的 端相连,当 有效时,把27256中的指令送上P0口线.由于只扩展一片EPROM,27256的片选端 可直接接地.27256的编程电压端VPP接电源. 当用户熟悉了其它EPROM芯片后,很容易改成其它容量EPROM的单片扩展电路:扩展27128时,去掉P2.7引出线,将27128的27脚接V扩展2764时,去掉P2.6,P2.5引出线,并将2764的27脚接Vcc,26脚不接;扩展2732时,去掉P2.6,P2.5和P2.4引出线;扩展2716时,去掉P2.6,P2.5,P2.4和P2.3引出线,并将2764的Vpp接Vcc即可.3.使用多片EPROM的扩展电路在扩展多片EPROM时,所有芯片的片选端都必须按照地址线进行选择.芯片的片选是在保证对EPROM片内存储空间寻址条件下,使用剩余的地址线进行的,分为线选法和译码法.现以扩展多片2764 EPROM为例来说明这两种片选法:2764的片内地址为8K,因此片内寻址需占用A12~A0的13根地址线,尚剩余3根地址线A13,A14,A15,采用线选法时,剩余的三根地址线每根可接一个芯片的片选信号,则只能扩展3片2764,见图7-4(a)所示;采用译码法时,剩余三根地址线经过3-8译码得到8根片选信号,可扩展8片2764,见图7-4(b)所示.图7-4(a) 线选法扩展三片2764的电路
图7-4(b) 译码法扩展三片2764的电路 目前,随着大容量EPROM的出现,像图7-4(b)这种多片地址译码的方法已不太常用,它完全可以用两片27256代替.对于扩展两片27256 EPROM的电路如图7-5所示,它是带反相器的线选法:用一根地址线,使它不经反相器和经反向器后分别连接到两个EPROM的片选.图7-5 两片27256的扩展电路 三,作为程序储存器EEPROM的扩展电擦除可编程只读存储器EEPROM(Electrically Erasable PROM)具有能在应用系统中进行在线改写,并可在断电情况下保存数据而不需保护电源等优点,在智能仪表,控制装置,分布式监控系统子站以及开发装置中得到了广泛的应用.图7-6为8031单片机的EEPROM 28C16的扩展电路,图中使用了控制线 , , .图中 线是 由 和相"与"后提供,无论 有效还是 有效都能使28C16的输出允许端有效,这种联接方法是把EEPROM既作为程序存储器,也作为数据存储器用;28C16的 与8031的 相连,单片机可以向28C16写指令数据或数据,表格;28C16的 与8031的P2.7进行线选,当系统中有其它程序存储器或数据存储器时,要统一考虑地址选择.7.2.2数据储存器扩展 一, 数据储存器扩展概述外部数据存储器芯片与单片机可按如下方式连接:1.地址线的连接外部程序存储器低8位地址线A0~A7与P0口的口线P0.0~P0.7对应相连;外部程序存储器高8位地址线A8~A15与P2口的口线P2.0~P2.7对应相连.2.数据线的连接外部程序存储器8位数据线D0~D7与P0口的口线P0.0~P0.7对应相连.3.控制线的连接(单片机片外数据读信号)和 (数据存储器读信号)相连;ALE(单片机地址锁存允许信号)和G(地址锁存器锁存信号)相连;(单片机片外数据写信号)和 (数据存储器写信号)相连;单片机的相关地址线经过线译码或地址译码和数据存储器的片选信号 相连.由上面论述可以得到外部扩展数据存储器的一般连接方法,见图7-6所示. 图7-6 单片机的外部数据存储器一般连接方法 地址锁存器P2.7P2.0ALE8031P0.7~P0.0EA WR RDA15 CE A8A7A0 外部数据存储器D7~D.0WE RD
访问外部数据区可只采用低8位地址线寻址,这时可寻址空间为256B,采用下面读,写指令来访问此数据存储区:MOVX A,@Ri (i=0,1)MOVX @Ri,A (i=0,1)由于8位寻址指令所占字节少,指令执行速度快,故在数据量不大的情况下,应尽可能采用这种8位寻址指令.在单片机系统中通常选用8155外围芯片,其内部的256B就可以作为外部扩展RAM使用.也可以采用16位地址线寻址外部数据区,这时可寻址空间为64KB,采用下面8位寻址指令来读,写此数据存储区:MOVX A,@DPTRMOVX @DPTR,A当外部RAM容量较大(大于256B)时,采用此寻址方法.二,数据储存器静态RAM的扩展由于单片机是面向测,控为主的,实际所需要的数据存储器的扩展容量不会很大,所以在扩展时为了电路的简单,一般使用静态RAM,如.图7-7为扩展单片6116时的电路.前面讲过,扩展单片程序存储器时,片选端直接接地即可,因为系统中不会再有其它程序存储器芯片.但扩展单片数据存储器时,其片选端能否直接接地则还要考虑应用系统中有无I/O口及外围设备扩展,如果有,则要统一进行片选选择.图7-7 6116的扩展电路 三,作为数据储存器EEPROM的扩展EEPROM兼有程序存储器与数据存储器的特点,故在单片机应用系统中既可作为程序存储器,又可作为数据存储器.作为程序存储器,其操作主要是程序运行操作,必须严格按照程序存储器的地址总线,数据总线,控制总线的联接方式.而将EEPROM作为数据存储器时,与单片机的接口较灵活,既可直接将EEPROM作为片外数据存储器扩展,也可以作为一般外围设备电路扩展,而不影响数据的存取.图7-8为并行EEPROM的数据存储器扩展电路.图中2816A可按照典型的数据存储器扩展电路联接方式,如2814A(1)芯片.也可以作为外设电路,通过扩I/O口8255连接,如2816A(2).可以看出,作为数据存储器时其电路连接较为灵活.2816A(2)工作时,要使8255进入工作状态(P2.7使8255有效),2816A所需的地址采用通过8255用MOVX指令送入.图7-8 28C16作为数据存储器的扩展电路 7.3 MCS-51系列单片机I/O口扩展 MCS-51单片机共有四个8位并行I/O口,但这些I/O口并不能完全提供给用户使用.只有对于片内有ROM/EPROM/FLASH-RAM单片机C51,在不使用外部扩展时,才允许这四个I/O口作为用户I/O口使用.然而对于大多数使用8031以及使用C51需外部扩展时,MCS-51单片机可提供给用户使用的I/O只有P1口和部分P3口线.因此,在大部分的MCS-51单片机应用系统设计中都不可避免地要进行I/O口的扩展.扩展I/O口可以通过MCS-51单片机的数据总线进行,也可以利用移位寄存器通过MCS-51单片机的串行口进行. 7.3.1通过数据总线扩展 通过数据总线扩展I/O口,是采用外部数据存储器映射方式进行输入,输出的,与外部数据存储器的扩展在方法上是基本相同的.从功能上看,通过数据总线扩展的I/O口有两种基本类型:简单I/O口扩展和可编程I/O口的扩展.一,采用简单并行I/O接口芯片扩展P0口是数据总线口,通过P0口扩展I/O口时,P0口只能分时使用,故输出时,接口电路应具有锁存功能,如采用8D锁存器74LS273,74LS373,74LS377组成输出口;输入时,接口电路应能三态缓冲,如采用8位三态缓冲器74LS244组成输入口.1.用三态门扩展8位输入并行口图7-9是用74LS244通过P0口扩展的8位并行输入接口.74LS244由两组4位三态缓冲器组成,分别由选通端和控制.当它们为低电平时,这两组缓冲器被选通,数据从输入端A送到输出端Y. 和 同时由P2.7和相或后控制,由此可知74LS244的地址为7FFFH,其数据的输入使用以下几条指令即可:MOVX DPTR,#7FFFH ;数据指针指向74LS244口地址MOVX A,@DPTR ;读入数据图7-9 简单I/O口的扩展电路 2.用锁存器扩展简单的8位输出口图7-9是用74LS273通过P0口扩展的8位并行输出接口.74LS273是带三态门控的锁存器,CLR为数据清零端,其为低电平时有效,故此处应接高电平.CLK为锁存时钟端,由P2.7和相或后控制,当同时为低电平时,将P0口的数据锁存到74LS273.因此74LS273的地址为7FFFH,和输入口地址相同,但由于它们分别由和信号控制,仍然不会发生冲突.其数据的输出使用以下几条指令即可:MOVX DPTR,#7FFFH;数据指针指向 74LS273口地址MOVX A,#输出数据要通过累加器传送MOVX @DPTR,A ;P0口通过74LS273输出数据当要扩展多个简单的8位输入口和输出口,多个74LS244的选通端和和多个74LS273的锁存时钟CLK,应采用类似前面所讲述的多片EPROM扩展时的片选方法.但要注意8031的I/O口驱动能力,在实际应用时,要根据负载的大小适当增设驱动电路.二,采用可编程并行I/O接口芯片扩展在单片机接口中,常使用一些结构复杂的接口芯片,以完成各种复杂的操作.这类芯片一般具有多种功能,在使用前,必须由CPU对其编程,以确定其工作方式,之后才能使芯片按设定的方式进行操作,这就是可编程接口.下面将通过使用8255扩展并行I/O口重点说明这个问题.1. 8255的初始化使用8255时,首先要由CPU对8255写入控制命令字,有两种控制命令字:一个是方式选择控制字,另一个是C口按位置位/复位控制字,8255的各种工作方式都要由控制命令字来设定,这个设置过程称为"初始化".(1)方式选择控制字(D7=1)D0~D2三位用来对B组的端口进行工作方式设定.D2设置B口的工作方式,D2=1为方式1;D2=0为方式0.D1位设定B口的输入或输出,D1=1为输入;D1=0为输出.D0位设定C口的低半部,D0=1为输入,D0=0为输出.D3~D6四位用来对A组的端口进行设定.D6D5组合起来设定A口工作方式,D6D5=00,为方式0;D6D5=01为方式1;D6D5=10和11都为方式2.D4位用来设定A口的输入或输出.D3位用来设定C口上半部的输入或输出,D3=1为输入,D3=0为输出.(2)_ C口按位置/复位控制字(D7=0)因为C口共有8个二进制位,要确定对其中某一位进行操作,就要在控制字中指定该位的编号.图中用了D3D2D1三位的编码与C口的某一位相对应,对指定位进行的操作则由D0确定,如D0=1时,将指定位置"1".D0=0则将指定位置"0".2. 的接口方法MCS-51单片机与8255的接口逻辑简单,其接口电路如图7-10所示.图中,8255的片选信号及口地址选择线A0,A1分别由8031的P0.7和P0.0,P0.1经地址锁存后提供.故8255的A,B,C口及控制口地址分别为FF7CH,FF7DH,FF7EH,FF7FH.8255的复位端与8031的复位端相连,都接到8031的复位电路上._图7-10 接口电路7.3.2通过串行口扩展 一,用并入串出移位寄存器扩展并行输入口图7-11是利用两片74LS165扩展2个8位并行输入口的电路.74LS165是8位并行输入串行输出移位寄存器,单片机的RXD(P3.0)作为串行数据输入端与74LS165的串行输出端Q7相连;单片机的TXD(P3.1)为移位脉冲输出端,与所有的74LS164芯片的移位脉冲输入端CLK相连;用1根I/O线(P1.0)与74LS165的移位/置位端相连,来控制其移位与置位.当 为低电平时,并行数据置入74LS165的寄存器;当 为高电平时,开始串行移位.当扩展多个8位输入口时,相邻两芯片的首尾(串行输出端Q7与串行输入端SER)相连.串行接收时,由RI引起中断或对RI查询来决定何时接受下一个字符(在采用查询方式时,也需预先关闭中断). 单片机扩展中断的简便方法(zz)
MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍两种简单的扩展方法:& 一、采用硬件请求和软件查询的方法:这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下:&&&&&&&&&
& Void zhongduan (void) interrupt 0 using 3 //中断函数{ EX0=0;//关中断If(P0_0=1) { *****}//中断查询If(P0_1=1) { *****}//中断查询If(P0_2=1) { *****}//中断查询EX0=1;开中断}
& 二、用定时器/计数器作外部中断单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“1—0”的负跳变时,计数器加一,当加一计数器溢出时,就向CPU发出中断,利用这个特性来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用定时器/计数器作为单片机外部中断了。注意这种方法的中断服务的入口地址应在000BH或001BH。 &
图7-11 利用串行口扩展并行输入口 下面程序为利用图7-11读入16位数据并存入8031的片内RAM30H和31H两个端单元中:MOV R0,#30H ;建立指针MOV R7,#02H ;字节计数初值CLR P1.0 ;=0,并置入数据SETB P1.0 ;=1,允许串行移位LOOP:MOV SCON,#10H ;置串行口方式0,REN=1,RI=0NB RI,$ ;等待一帧数据接受完MOV A,SBUF ;读接受数据MOV @R0,A ;存入RAM缓冲区INC R0 ;调整指针DJNZ R7,LOOP ;数据未接受完,继续CLR RI ;清接收标志二,采用串入并出移位寄存器扩展并行输出口图7-12是利用两片74LS164扩展2个2位输出口的接口电路. 74LS164是8位串入并出移位寄存器,单片机的RXD(P3.0)为串行输出与74LS164数据输入端(1,2)相连;TXD(P3.1)为移位脉冲输出,与74LS164的时钟脉冲输出端(8)相连;由P1.0口线控制74LS164的清除端(9).当 为低电平时,清除74LS165中的数据;当 为高电平时,开始串行移位.当扩展多个8位输入口时,相邻两芯片的首尾(串行输出端Q7与串行输入端A,B)相连.图7-12 利用串行口扩展并行输出口 下面程序为利用图7-12扩展一个16位并行输出口,将8031的片内RAM30H和31H两个单元中的数据通过两片74LS164输出:MOV R0,#30H ;建立指针MOV R7,#02H ;字节计数初值SETB P1.0 ;=1,清零端无效LOOP:MOV SCON,#10H ;置串行口方式0,REN=1,RI=0MOV A,@R0 ;取RAM缓冲区内容MOV SBUF,A ;发送JNB RI,$ ;等待一帧数据发送完INC R0 ;调整指针DJNZ R7,LOOP ;数据未发送完,继续CLR TI ;清发送标志应当指出,再两次发送过程中,两片74LS164的16位输出端是连续变化的.每个移位脉冲使数据自Q0向Q7方向移动一位,待两个字节全部发送完毕时,输出稳定下来.小 结 在很多情况下,构成一个单片机应用系统时,考虑到传感器接口,伺服控制接口以及人机对话接口等的需要,必须在片外扩展相应的外围芯片,这就是单片机接口扩展.它包括程序存储器(ROM)扩展,数据存储器(RAM)扩展,I/O口扩展等.MCS-51单片机片外引脚可以构成三总线结构,即地址总线(AB),数据总线(DB)和控制总线(CB),所有的外部芯片都是通过这三组总线进行扩展.由于P0口分时用作数据总线和地址总线的低8位,因此必须采用地址锁存器将P0口输出的低8位地址进行锁存.根据地址总线宽度,在片外可扩展的程序存储器和数据存储器最大容量都为64KB,地址范围为0000H~FFFFH.扩展的程序存储器和数据存储器的地址范围虽然相同,但可通过不同的指令和控制信号加以区别.读片外程序存储器采用MOVC指令和 取指信号 ;读和写片外数据存储器采用MOVX指令和 ,片外数据读,写信号.扩展的I/O口与片外数据存储器采用统一编址,这样做的优点是不必为扩展的I/O另外提供地址线,减少单片机的引脚数.但当应用系统需要扩展较多的I/O口时,要占去大量的数据存储器的地址.当片外扩展单一芯片(存储器和I/O芯片)时,该芯片的片选信号可以直接接地;当扩展多片程序存储器或多片数据存储器(包括I/O口芯片)时,所有芯片的片选端都必须按照地址线进行选择,常用线选法或地址译码法.片外扩展的程序存储器常用EPROM和EEPROM,片外扩展的数据存储器常用静态RAM和EEPROM.扩展I/O口常用数据总线进行,在串行口不作它用时,还可以用串行口外接并入串出移位寄存器和串入并出移位寄存器,扩展并行输入口和并行输出口.用数据总线扩展并行I/O时,可采用简单的8位三态缓冲器和8位三态锁存器扩展并行输入口和输出口,也可以采用可编程I/O芯片扩展并行I/O口.思考题与习题七 1.MCS-51单片机与外部扩展的存储器相接时,为何低8位地址信号需通过地址锁存器,而高8位不需经过地址锁存器 2.在MCS-51扩展系统中,程序存储器和数据存储器共有16位地址和8位数据线,为什么两个存储空间不会发生冲突 3.利用74LS138设计一个译码电路,分别选中8片6116,且列出各芯片所占的地址空间范围.4.程序存储器的扩展和数据存储器的扩展有何异同 试在8031芯片外采用2732作ROM,6116作RAM,扩展具有12KB ROM和6KB RAM的存储系统.5.8255芯片内部有哪几个主要部分 各部分的功能如何 6.用构成一个EPROM2732的编程器接口,该系统含2K字节的EPROM外部程序存储器和两片6116共4K字节的数据存储器.用8255作为EPROM2732的编程器接口,8255的A,B,C口均设置为方式0输出,A口作为编程数据输出口,B口为编程器的低8位地址输出口,PC0~PC3为高4位地址输出口,PC7为编程信号输出端.试设计该编程器的硬件电路和编程写出子程序.7.试利用8031的串行口设计一个接口电路和相应的软件,用于读取8位开关信号,并用8个LED显示对应开关的状态. 单片机扩展中断的简便方法(zz)
MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍两种简单的扩展方法:& 一、采用硬件请求和软件查询的方法:这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下:&&&&&&&&&
& Void zhongduan (void) interrupt 0 using 3 //中断函数{ EX0=0;//关中断If(P0_0=1) { *****}//中断查询If(P0_1=1) { *****}//中断查询If(P0_2=1) { *****}//中断查询EX0=1;开中断}
& 二、用定时器/计数器作外部中断单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“1—0”的负跳变时,计数器加一,当加一计数器溢出时,就向CPU发出中断,利用这个特性来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用定时器/计数器作为单片机外部中断了。注意这种方法的中断服务的入口地址应在000BH或001BH。&&
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网
, All Rights Reserved}

我要回帖

更多关于 译码器实现扩展 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信