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输出时钟信号的功能与锁存地址的功能并不冲突。

相关推荐
xiangw@GZ1 小时前
CapSense底层逻辑:硬件设计规范
单片机·嵌入式硬件·设计规范
Nice__J1 小时前
Mcu架构以及原理——3.存储器架构
单片机·嵌入式硬件·架构
weiyvyy1 小时前
嵌入式硬件接口的定义与作用
单片机·嵌入式硬件·信息与通信·信息化系统
senijusene1 小时前
依赖51 单片机的 Modbus 协议温度采集与外设控制系统的实现
c语言·单片机·嵌入式硬件·51单片机·keil
JSMSEMI111 小时前
JSM1040T 1Mbps高速具有总线唤醒功能的CAN总线收发器
单片机·嵌入式硬件
jianqiang.xue1 小时前
ESP32-S3 运行 Linux 全指南:从 RISC-V 模拟器移植到 8 秒快速启动
linux·stm32·单片机·mongodb·risc-v·esp32s3
busideyang2 小时前
STC8H单片机delay_ms函数闪烁不准?原因是参数溢出!
c语言·单片机·嵌入式硬件·嵌入式
Hello_Embed2 小时前
LVGL 入门(十五):接口优化
前端·笔记·stm32·单片机·嵌入式
是翔仔呐3 小时前
第10章 模拟量采集基础:外置ADC/DAC芯片驱动(PCF8591/ADC0832)
c语言·开发语言·单片机·嵌入式硬件·51单片机
somi73 小时前
ARM-04-蜂鸣器
arm开发·单片机·嵌入式硬件