初学51单片机几个困惑知识点解惑

来源:互联网 发布:spss20 mac 安装教程 编辑:程序博客网 时间:2024/06/16 02:12
二  单片机程序存储器和数据存储器的扩展
现在大多介绍单片机的书上将这块的内容简单带过,介绍扩展存储器时叙述的引脚功能和操作时序理解起来很是费事,让我等苦逼初学者蛋疼不已,在翻阅了数本介绍单片机以及浏览众多网友总结的资料基础上算是差不多给整明白了。

第一、程序存储器的扩展,包括EPROM和EEPROM、flash能都作为扩展的程序存储器。它们的时序和接线都差不多,贴几个图吧

可以看出,在扩展存储器时都需要一个锁存器,为毛呢,因为单片机的P0口是低地址线和数据线复用的,低地址和数据分时经P0给出,下面就扩展时所涉及的几个引脚逐一叙述下,首先,P0口是低8位地址和数据线的复用,故需要一个锁存器将先出现的低地址锁存起来,而后在给出数据,因此单片机的P0口接的是锁存器得数据输入端,那么锁存器的输出端也自然接的是存储器的低8位地址了,同时P0口还得接上扩展存储器的数据端;P2口上单片机给出的高8位地址,一般来说扩展时只是按需扩展存储器,所扩展的片外存储器容量不一定就是极限64K,往往就是那么点大,够用就行,所以高8位地址不全与扩展存储器的地址线相连,有时候存在几根线做片选;ALE引脚是用于控制把P0口的输出低8位地址锁存起来的控制信号,单片机在给出ALE端从高电平到低电平的一个跳变时,就会将P0的低地址锁存,所以ALE要接在锁存器的锁存使能端;PSEN(低电平有效)引脚叫做程序存储器允许输出控制端,在单片机从片外程序存储器取指令的时候被置有效,故采用让这个引脚接扩展程序存储器的OE输出使能端,下面来看下单片机对于访问外部程序存储器的时序要求:

稍作分析:一个指令周期往往包括取值、取数、执行等等,由于51单片机采用哈佛结构,指令存储器和数据存储器分开,故取指和取数是并行的,故单片机的指令周期往往只有一个机器周期,这是题外话......在上面的一个机器周期内,要取指时,ALE起初是高电平,此时高地位地址已经在P2和P0上给出,接在P0上的锁存器的输出与P0一致,而后,单片机将ALE置低,这个跳变使锁存器锁存,输出将不随P0口的输入而变化,然后PSEN被置低,要求扩展存储器在P0上给出要取得指令,然后再PSEN上升沿来时将P0上的指令取走。紧接着,单片机通过分析该指令,可能会在片内的数据存储器中把操作数取到,并执行,与此同时,取值操作也在继续进行中........接线见图9-9;
对于其他的EEPROM和Flash来说唯一不同的就是后者能读能写,故要把单片机的RD和WR端接上存储器的OE输出允许端和WE端,见另外两个图。
对于数据存储器的扩展而言,基本与程序存储器扩展一样,不同的是单片机不必再给出PSEN端,只通过RD和WR端控制片外数据存储器得读写

写完后才发现这部分真心没什么内容~~~各位不小心看到的看官们 凑合着看看吧~~