怎样在程序中控制ALE?

怎样在程序中控制ALE?,第1张

ALE是自动运行的,这个不用你在程序里去管。

“顺问一下单片机往锁存器输出的地址数据有什么分别,不都是二进制数吗”

虽然都是进制数据,但是意义不一样,而且位置不一样,作为地址时,是作用于芯片做大的地址端的,作为数据时,是作用在数据端的,这里有个时序的问题,就像同一个男教师,对儿子和对学生来说,意义不一样,面对不同的人,在不同的时间,这个男人的角色就不一样。

这个涉及到数电知识,你是大一,估计没学到数电,等你学了,你就明白了。

我简单的讲一下,要想深入了解,你要看数电课本。

51单片机与别的单片机不一样,他的数据端口和地址端碧唯口的低8位是同一个端口,都是P0口,那么,如何区分P0此时是数据还是地址?方法就是引入一个锁存器。

比如说,我向地址 是 0xEE55的地址里写入一个数据 “0xAA"

步骤过程是这个样子的:

1 ALE控制锁存器,允许锁存器跟踪

2 P2和P0口联合输出地址0xEE55,其中P2输出0xEE,P0输出0x55

3 ALE电平翻转,禁止锁存器跟踪,即此时,锁存器的输出端不在发生任何变化,所以,纯慧竖芯片地址不变,依旧是“0xEE55"

4 P0口输出数据 "0xAA",此时,芯片的数据端就出现"0xAA",

经过以上步骤,0xAA就被存入到地址0xEE55里去了。

以上过程是单片机自动进行的,不用程序特意干扰,如果执行:

unsigned char xdata *p = (unsigned char xdata *)0xEE55

*p = 0xAA

单片机自动进行以上4步骤的过程,ALE,P0,P2口都自动变化。

锁存器一般是指单片机外边的,是外接的芯片。

从这个电路看,P0控制数码管的段、P2控制数码管的位。

P0、P2是单片机内部的特殊功能寄存器,能够保存数据。

也许有人称呼它们是“片内团弯纳锁存器”?

这个电路,在程序控制下,能够正常的动态显示;

但是从电子技术的理论来说,闹孝这个电路是塌没不合理的,在LED不发光的时候,耗电很大,甚至远远大于LED发光时的电流。

------------------------

楼主补充的程序,和这幅电路图,是不配套的。

------------------------

锁存 和 输出,是使用片内的P0和P2;

但是,P0~P3,不叫锁存器,叫做输出接口,是“特殊功能寄存器”中的四个。

------------------------

按照楼主补充的程序,需要外接两块芯片73LS373,它们才是锁存器。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11990375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存