51单片机ALE引脚的作用 - 锁存地址和输出时钟信号并不冲突

51单片机的ALE引脚既能输出时钟信号,又能作为地址总线的锁存引脚,这2个功能是如何协调的呢?会不会冲突呢?

ALE引脚作用

51单片机的ALE引脚是地址锁存控制引脚,其包含2个功能:

  1. 以1/6晶振频率的固定频率输出脉冲信号,可作为外部时钟或外部定时脉冲使用,比如可用于驱动ADC0809的CLOCK脚,为ADC0809提供时钟信号;

  2. 输出锁存信号,用于控制把P0端口输出的低8位地址送入锁存器锁存,以实现低位地址和数据的分时传送。

两种功能是否冲突

那么就有一个疑问,这2个功能是如何同时实现的呢?既然ALE引脚一直输出脉冲信号,那么不会影响到锁存功能吗?

为了弄清楚ALE的信号输出,这里使用示波器对信号进行观察。示波器分别连接了ALE引脚、WR引脚(P3.6)、RD引脚(P3.7),以及用于高8位地址总线的P2.0引脚。在程序中,通过读取地址为0xFFF8的xdata数据,使得单片机控制ALE引脚输出锁存信号。

单片机读取地址为0xFFF8的外部存储器数据时,波形如下图所示:


黄色 - ALE引脚;浅蓝色 - P2.0引脚;紫色 - WR引脚(P3.6);深蓝 - RD引脚(P3.7)

从图中可以看出,在没有读取外部存储器数据时,黄色的波形(ALE引脚)持续输出脉冲信号,对应的是ALE引脚输出脉冲信号的功能。

但是到了图片的中部,可以看到黄色波形有一段持续的低电平,并且浅蓝色的信号(地址总线P2.0引脚)转为低电平,RD引脚的信号也转变为了低电平。这个阶段就是单片机读取"地址为0xFFF8的外部存储器数据"的时刻。在这个时刻,单片机不再输出持续的脉冲信号,而是配合地址总线将地址锁存到锁存器,并结合WR或RD引脚,使外部存储器读取锁存器的地址信号,然后实现对外部存储器的读写操作。当对外部存储器的读写操作结束后,ALE将继续输出持续的脉冲信号。

所以ALE输出时钟信号的功能并不会影响其作为锁存引脚的功能。锁存功能用在单片机使用外部的数据和地址总线读取外部存储器的时候。在读取外部存储器数据的时候,还需要使用单片机的RD或WR引脚控制外部存储器,以实现对存储器的读写操作。从波形图中能够看到,当对存储器进行读写操作的时候,会相应的将WR和RD引脚拉低,也就是在WR或RD引脚拉低的时候,锁存器上的地址才是有效的。而从波形图上可以看到在WR或RD拉低的那段时间ALE引脚保持了一段低电平,以防止锁存器上的地址发送变化。也就是在单片机对外部存储器进行读写的这段时间,ALE引脚只用于锁存功能。

在其它时间ALE才作为时钟引脚一直输出时钟信号,虽然会改变锁存器锁存的地址,但因为并没有对外部存储器进行读写操作,所以锁存器发生任何变化也无所谓。

总结

通过上面的观察和分析,可以知道ALE引脚的功能是分时复用的。在需要对外部存储器进行读写操作的时候,ALE脚配合地址总线、RD和WR脚,实现对地址的锁存操作;而在其它时间ALE输出时钟信号。因此ALE输出时钟信号的功能与锁存地址的功能并不冲突。

相关推荐
LightningJie7 分钟前
STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?
stm32·单片机·实时音视频
金子总会发光的1231 小时前
HTTP相关返回值异常原因分析,第二部分
嵌入式硬件·物联网·http·硬件工程
YuCaiH2 小时前
【STM32】LED闪烁 & LED流水灯 & 蜂鸣器
笔记·stm32·单片机·嵌入式硬件
路过羊圈的狼2 小时前
STM32CUBEMX安富莱STM32-V6开发板使用FMC驱动SDRAM芯片MT48LC4M32B2TG
stm32·单片机·嵌入式硬件
嵌入式-JY老师2 小时前
电子信息-毕业设计题目(技术热点)
嵌入式硬件·硬件架构·硬件工程·课程设计·智能硬件
搬砖的小码农_Sky3 小时前
单片机如何入门?
单片机·嵌入式硬件
Q23553688723 小时前
60V恒流IC SL8443B内置功率MOS 支持2.5A电流 降压LED恒流驱动芯片
单片机·嵌入式硬件
暮雪倾风4 小时前
【STM32-HAL库】TEMT6000光照强度传感器(STM32F407ZGT6)(附带工程下载链接)
stm32·单片机·嵌入式硬件
三菱-Liu4 小时前
三菱FX5U CPU实时监视功能GX LogViewer Version
驱动开发·嵌入式硬件·硬件工程·制造