51单片机总线方式1

上传人:桔**** 文档编号:457747349 上传时间:2023-08-28 格式:DOC 页数:27 大小:942KB
返回 下载 相关 举报
51单片机总线方式1_第1页
第1页 / 共27页
51单片机总线方式1_第2页
第2页 / 共27页
51单片机总线方式1_第3页
第3页 / 共27页
51单片机总线方式1_第4页
第4页 / 共27页
51单片机总线方式1_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《51单片机总线方式1》由会员分享,可在线阅读,更多相关《51单片机总线方式1(27页珍藏版)》请在金锄头文库上搜索。

1、单片机总线设计法全攻略1、目前广大工程师在设计单片机系统时的两种方案之我见针对 51 单片机,工程师们在设计系统时,从宏观上讲无非就是两种方案: 总线式设计方案和非总线式设计方案。所谓总线式设计方案就是利用 51 单片机 的读写外部 RAM 功能,将要设计的外部设备(比如说键盘、液晶等)统统挂到 单片机总线上,使其统一按类似读写外部 RAM 功能的指令方法进行操作;而所 谓非总线式设计方案, 则是不利用单片机的读写外部 RAM 功能,而直接利用 I/O 口读写方式进行外部设备的读写,比如说 LED 灯、液晶等,因为液晶有两种读 写方式,总线方式和模拟 I/O 方式(贵刊也有文章介绍过) ,而这

2、里读写液晶的 模拟 I/O 方式就是这里我要说的非总线式设计方案。那么这两种方案到底哪一种好呢?说这句话可能有点外行,我自己也这样 认为,但是为了更好的让初学者了解其中的道理, 我还是班门弄斧简单阐述一下: 首先要说明,我的这种阐述是建立在有读写外部 RAM 功能的单片机的基础之上 的。我个人认为,两种方案各有利弊: 对于总线式设计方案来说,优点就是能够充分发挥单片机的总线读写功 能,系统一旦设计完成,易于日后的升级和扩展。缺点是灵活性差,硬件连接比 较固定; 同时由于单片机读写总线时必定要产生一定的总线时间延迟, 这样对于 低速的单片机来说, 如果设计的系统非常庞大的话, 那就需要设计人员考

3、虑一下 实时性要求了, 但是根据我个人多年来的开发经验来说, 只要设计得当, 一般问 题不大,但还是将此问题摆出来,让大家商榷。对于非总线式设计方案来说, 最大的优点就是灵活性强, 这种方案可以根 据设计者的爱好自由选择单片机端口进行外围设备的设计 (当然是要在符合设计 原则的前提下),缺点是升级需要重新设计电路图。2、总线法设计单片机系统的原理和方法2.1 总线法设计原理简介总线式设计方案对于很多的初学者来说是比较困难的, 因为对于这种方法 来说,牵扯到单片机和外围设备时序逻辑的分配、地址空间的分配、总线驱动能 力等等的问题,一旦设计不好,系统便无法启动,或者说部分模块无法工作。确 实,总线

4、式设计方案存在一定的难度,我想这大概也就是很多初学者甚至包括很 多单片机设计工程师们也更趋向于利用非总线式设计方案来进行单片机系统设 计的原因吧(仅为个人观点,如有不对,还望切磋)。所以在这一节接下来的内 容中我将会带领大家踏入单片机总线式设计方案的大门,让你领略一下在这块设 计领域的无限精彩。首先我们先来看看51单片机读写外部RAM的时序图,如图1、2所示: 图1为51单片机读外部RAM的时序图。图1 51单片机读外部RAM的时序图注意在这里我们只需要关心 ALE、RD、PORTO、PORT2四个信号的时序, 而不必关心PSEN信号,因为这个信号是用来控制读写外部程序存储器的,跟我 们的讨论

5、不相关,有兴趣的可以自行研究,下同。下面我就跟大家一起讨论一下 这四路信号是如何共同使用的。有过设计经验的人都很清楚,ALE信号就是我们常说的地址锁存信号,那 么它为什么要锁信号呢?锁谁的信号呢?又是如何锁的呢?第一、二个问题很简单,因为51单片机的P0 口是地址/数据复用的8位端口,在读写外部RAM时, P0 口上会顺序接连出现你要读写的地址信号和读到或要写的数据,如果当地址 信号出现时不将此8位地址锁住,那么它将会迅速消失,便无法利用此地址进行 外部存储器的地址选择;而针对第三个问题,信号时如何锁的,稍微有点麻烦, 因为灵活性很大。大家请仔细看图 1 的 ALE 和 PORT0 两个信号,

6、 tLHLL ALE 的有效脉冲宽度tAVLL+tLLAX 一为P0 口地址信号的有效时间长度我们先暂且研究一下这两个信号便可解答上面的问题,注意到P0 口地址的有效时间长度为 tAVLL +tLLAX 两个时间长度的和,那么我们到底在哪个时间段来锁 存地址信号呢?通过时序图我们可以发现,显然必须在 ALE 的有效脉冲宽度内 来截取这个P0 口的地址信号,那么有人会问多出tLLAX这个时间段干什么用,在 这个时间段内P0 口其实也在继续保持有效的低 8位地址,请继续往下看便可理 解。好了,既然这样,我们要锁存此时的P0 口地址信号很显然就要在 ALE的有 效脉冲宽度内来动手脚了,大家一看,哈,

7、这简单,这要在 ALE 信号为高电平 的时候,直接利用373芯片获取P0 口地址信号不就完了嘛!不错,是的,目前 大家都是这么做的。 那么我现在问你, 方法唯一吗?我这么一提醒, 大家可能又 会想,奥,对了,在 ALE 信号的两个边沿也可以啊!那么你又错了,我说还有 一个方法就是在 ALE 信号的下降沿可以,上升沿是不行的啊!为什么啊?你看 看图1的时序,P0 口地址的有效起始时间tAVLL的左边沿在ALE信号的有效脉冲 上升沿后面呢,这显然不行吧!当然我们经常用的方法还是利用74IS373这类高电平传输的芯片。 这里告诉了大家两种方法, 只是想提醒大家有时候方法是非常 灵活的,后面我会就这两

8、种锁存地址的方法分别以实例的形式体现在大家面前。好了,地址我们锁存完了,既然 P0 口是地址和数据复用端口,那我们再来 研究一下后面的数据又是怎么传输的。 为了更好的让大家同时了解外部存储器的 读和写的原理,这部分我打算结合图 2 介绍一下数据的写入。图 2为 51 单片机写外部 RAM 的时序图。图2 51单片机写外部RAM的时序图同样在这里我们只需要关心 ALE、WR、PORTO、PORT2四个信号的时序。 请看下面几个时间量: 紅皿一一ALE信号跳为低到WR信号开始变低的时间段twLWHWR信号有效宽度tQVWXpo 口数据有效开始到WR信号开始有效twHQX WR信号有效结束到P0 口

9、数据有效结束通过上面我们可以看出,也就是说在ALE信号跳为低电平以后,延迟tLLWL这 么长的时间后,WR低电平信号会紧跟着出现,注意这个信号是单片机自动产生 的,很多读者总是以为要设置什么寄存器之类的东西,容易出现迷惑,只要我们在程序里一调用MOVX或者在C语言里读写XDATA (外部)的地址,WR或者 RD便会自动出现了。于是乎这时候我们便可以写入我们需要传输的数据了。问 题由来了,我们在什么时候把数据写入到外部 RAM或者说外部设备呢?这里请 大家注意,我们发现P0 口数据有效的总时间段为tWLWH +tQVWX +tWHQX,显然要长 于WR信号有效宽度tWLWH,并且将其包含在之内,

10、所以在这里,根据这个时序原 理,我们可以利用WR的下降沿时刻、低电平阶段或是上升沿时刻进行数据的写 入,但是我们最常用的是在 WR的低电平时期和WR上升沿时刻将有效数据写入, 而利用WR的低电平时期写入数据又是最为普遍,因为好多公司生产的带外部总 线读写功能的芯片都是要求在 WR的低电平时期写数据,跟上面一样,我们在这 里讨论这个,主要是给大家提供一种思路,在自己进行地址分配或时序逻辑设计 时也许用得上。在下面的实例中,这两种方法我都会做介绍,请大家仔细体会。 2.2两种地址锁存法介绍上面我已经提到,在进行地址锁存时有两种锁存方案: 高电平地址锁存法和 下降沿地址锁存法,注意我这里所说的这两种

11、方法名称是针对单片机的ALE端信号而言。下面我将结合具体的电路给大家做一下详细介绍(为节省画图空间, 考虑到单片机复位电路和晶振电路不是本文所讨论的话题,故省略):2.2.1高电平地址锁存法本小节介绍的高电平地址锁存法是单片机开发工程师使用最为广泛的一种方法。在这种方法中选用373或者573芯片,以573为例,其真值表如表1所示:表1 74HC573真值表OE LEDQL H H HL H L LL L XQoH X X Z由上述真值表我们不难看出,这个片子的特点是:在输出控制端0E有效(低 电平)的前提下,当锁存端 LE为高电平时,输出端 Q随着输入端D变化,而 当LE为低电平时,输出端Q保

12、持上一次的输入端数据,这样的逻辑正好符合我 们在第一节分析的有关单片机 ALE端信号的变化情况,即ALE端为高电平时, 单片机P0 口的低8位地址信号输出到573的输入端,而输出端跟随变化,一旦 ALE变为低电平,573便不再跟随单片机的P0 口地址,因为这时候(应该是过 一会)P0 口马上就要输出8位“数据”了,这样便完成了单片机低 8位地址的 锁存。0 12111pppppp3 4 sIX lx 1o 1 2 3 4 6 7 OOOQOQQO ppp 39DO238DI337D21北D3535D4634D5733D6S32D79ALE H吴坐122 A9-23 A1074HC5732 Al

13、l25 A1226 A1J27 A山28 A15101115WR1(5iwT?QIS19RND TXD INTOINTITO TLWR RDX2AT89C52P20P21P22P23P2-IP25P26P27EAHPSENXISALEovcc30 ALEB0VCCmQOB2QiE3Q2D4Q3B5Q4B6Q5D7Q(5LEQ7OEGNDVCC20 ?19 AOIS AlM A3站A4U A5 JT丽12 A7 W图3高电平地址锁存法222下降沿地址锁存法本小节给大家介绍另一种方法一一下降沿地址锁存法。这种方法在我们的实际设计中并不是很常见,但是我仍然给大家做一个简单的介绍,目的是让大家开 拓思

14、路,了解问题的实质。在这种方法中选用374或者574芯片,以374为例,其真值表如表1所示:表2 74HC374真值表OE CLKDQLTH HLTL LL L XQoH X X Z由上述真值表我们不难看出,这个片子的特点是:在输出控制端0E有效(低 电平)的前提下,当锁存端LE输入上升沿信号时,输入端D的信号才能送到输 出端Q,而当LE为非上升沿时,输出端Q保持上一次的输入端数据,这样的逻辑正好符合我们在第一节分析的有关单片机 ALE端信号的变化情况,即ALE端 为高电平时,单片机P0 口的低8位地址信号输出到374的输入端,但是输出端 不跟随输入端变化,一旦ALE信号变为低电平,这样便瞬间产生了一个下降沿, 但是374需要的是一个上升沿信号才能将数据从输入端打进输出端,为此,必须在ALE与CLK端进行一下反相。这样在单片机这次整个的读写数据的过程中,374的输出端,也就是锁存的单片机的低 8位地址就不再变化了,因为,ALE端 信号在一次读写过程中是始终保持低电平的, 不会再次产生下降沿,也就不会再 次更新374的输出端。这样也同样完成了单片机低 8位地址的锁存。101T56815PIOPOOPllP01P12P02P13P03P14P04PHP05P16PO6P17P07RXDP20TXDP21INTOP22INTIP23TO

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号