在微处理器系统中,所有的存储器(或I/O接口)都以地址来相互区分,根据访问存储器(或访问I/O接口)指令中的地址信息,其地址译码电路产生相应的地址选中信号,以选中所需的存储器(或I/O接口)。以存储器的接口为例,对于一般的8位微处理器,其存储器的地址线为16条(A0~A15),寻址范围为64K,但在一个实际系统中不一定扩展64K存贮器,而且所扩展的存贮器也不是一片容量为64K的存储器,因而整个系统通常要求扩展几片存贮器电路。每种存储器芯片都根据其容量需要一定的地址信号,如2K存储器所需的地址信号为A0~A10,8K存储器所需的地址信号为A0~A12。因此系统在连接存储器时除了向存贮器芯片提供必须的地址信号外,还应提供片选信号,使其中的一个芯片在片选信号有效时工作。地址译码电路就是提供片选信号的电路。例如一个系统需要连接2片2K存贮器,因此系统必须向存储器提供A10~A0的地址信号,以选中 2K存贮器中的某一个单元。为了区别这两个存储器芯片中那一个被选中,应另加片选信号,此信号由译码电路产生。
I/O接口所需的地址译码电路的原理与存储器相似,不同的是,通常I/O接口只需一个地址,或几个地址,而不象存储器一个芯片就占用较多的地址。因此对于I/O接口的译码电路,必须根据该设备占用的地址的数量来具体考虑。
地址译码通常采用全译码电路、部分译码电路、线选电路等不同的方式。
在系统中,存储器或I/O接口需使用部分地址信号,这些信号通常为地址信号中的低位地址信号,全译码电路将其余所有的高位地址信号经译码后作片选信号。在全译码电路的系统中,所有地址信号不是送入存储器或I/O接口芯片,就是送入了译码电路。译码电路的输出,即选中信号将与唯一的存储器或I/O接口的地址对应。如某个八位微处理器采用了I/O接口单独编址的方式,其选择存储器的地址线为16条(A0~A15),选择I/O接口的地址线为8条(A0~A7),则采用全译码电路时,选择存储器的地址译码电路必须包含A0~A15的地址信号中被存储器芯片所用的地址之外的所有地址信号,而选择I/O接口的地址译码电路必须包含A0~A7的地址信号中被I/O接口所用的地址之外的所有地址信号。图1为常用的译码电路74LS138、74LS13。根据存储器的容量,存储器所需的地址信号不同,因而在采用不同存储器时全译码电路的输入地址信号不同,图2为采用8K存储器的全译码电路,送入译码电路的地址信号为A13~A15。其地址分配表如表1所示。从地址分配表中可以看出,采用全译码方法时各存贮器芯片之间的地址是连续的,而且能最有效地利用 64K存贮空间。
(a) 74LS138 (b) 74LS139
图1 译码器的逻辑符号
图2 全译码电路扩展8K的存储器
表1 扩展8K存储器的地址分配
当系统需扩展的存储器或I/O接口的数量较少时,可采用部分译码电路。与全译码电路不同的是部分译码电路将存储器或I/O接口所用的低位地址线外的高位地址线中的部分地址信号作为译码电路的输入信号。采用这种方法的优点是减少了译码电路的输入信号,但译码的输出与地址不是一一对应的关系。由于未参加译码的地址信号可以有不同的编码,因而译码的输出可选中不同的地址。图3为采用2K存储器的部分译码电路,存储器所用的地址为A0~A10,如用全译码电路,输入到译码器的信号为A11~A15,而在图3中仅用了A11~A13,A14、A15未参加译码。这样A15、A14实际上可以存在4种情况,即00、01、10、11,以第一个芯片为例,当我们将A15、A14理解为00时,可在指令中以地址0000H~07FFH选中该芯片,但如果在指令中分别用了地址4000H~47FFH、8000H~87FFH、C000H~C7FFH选中的仍是该芯片,即一个单元可用几个地址来访问。[page]
图3 部分译码电路
当系统需扩展的存储器或I/O接口的数量较少时,还可采用线选电路。以存储器的扩展为例,如系统扩展的为8K的存储器芯片,则地址信号A0~A12为存储器所使用,在全译码电路中,用地址信号A12~A15作为地址译码,而在如图4所示的线选电路中,这些信号将直接作为片选信号使用。很明显,能使用的地址线只有3条,因而最多只允许连接3片8K的存贮器,共24K的存储器容量。使用这种方法不能充分利用64K的存贮空间,常用于较小的系统。
图4 线选法译码电路
表2为利用线选的方法扩展3片存储器时地址的分配情况,从表中可以看出,尽管这种方法比较简单,但其使用的地址是不连续的,而且在使用时必须防止两条地址线同时为低电平,否则将使系统同时选中两个存储器芯片而无法正常工作。
表 2 线选电路存储器的地址分配
芯片
|
A15
|
A14
|
A13
|
地 址
|
U3
|
1
|
1
|
0
|
C000H ~ DFFFH
|
U4
|
1
|
0
|
1
|
A000H ~ BFFFH
|
U5
|
0
|
1
|
1
|
6000H ~ 7FFFH
|
关键字:单片机 地址译码
引用地址:
单片机地址译码电路
推荐阅读最新更新时间:2024-03-16 13:55
单片机提高C语言代码效率的方法
代码效率包括两个方面内容:代码的大小和代码执行速度。如果代码精简和执行速度快,我们就说这个代码效率高。一般情况下,代码精简了速度也相应提上来了。单片机的ROM和RAM的空间都很有限,当您编程时遇到单片机的ROM和RAM的不够用的时候,或者您的程序要求较高的执行速度时,我们就得面对解决代码效率问题了。如何提高代码效率?现笔者以一个LED闪烁的程序为例与您探讨。 #i nclude reg52.h //包含头文件 sbit led=P2^0;//定义位变量led,使其关联单片机管脚P2.0 void Delayms(unsigned int t);//定义延时函数 int main(void)//主函数(C语言程序入口函数) {
[单片机]
AVR单片机高压解锁器的制作设计
概述: 利用常用的AVR单片机ATmega16制作的高压解锁器,可以解开所有芯片锁死的情况(除非芯片损坏、烧毁)。制作作品经实验验证,解开了山东大学物理学院AVR单片机实验室所有近40片锁死的单片机以及许多同学锁死的单片机。制作方法简单,保证你一小时之内做完。 所需元件极少(如电路图所示):仅一只三极管、一片7805,三支电阻、一只LED、三个小电容,一片可用的单片机,一个12V电源。 程序与电路连接可方便的移植到其它型号单片机上(凡支持高压编程的,都可以)。 希望能对初学单片机的同学有所帮助,特别是我们学校暑假参加电子设计比赛的同学。 制作背景(常见芯片锁死情况与高压解锁介绍): AVR单片机是我们学校同学经常使用的
[单片机]
基于FRAM技术的MSP430微控制器能量采集
对于很多人来说,第一次接触能量采集可能是在早期使用太阳能便携式计算器的时候,虽然如今这种类型的计算器已不再是主流,但是它所使用的技术和理念仍然应用于我们的日常生活中。目前,我们在许多的应用中都能看到能量采集的身影,例如传感器节点、风力涡轮机和室内供能应用等。不过,即使对于这项技术的讨论较之前已经有了很大的发展,当涉及到能量采集时,开发人员仍然面临着与数十年前一样的挑战。 为了在不带来负面影响的情况下产生出所需的能量,通常需要一块物理尺寸很大的太阳能板和一套巨大的热能采集装置,或者是通过设备发出不同频率范围的振动来获得能量,而一切都是由所使用的系统决定。因此,在很多情况下,这个系统的成本甚至会超过取代传统电源所带来的优势
[单片机]
利用MCU 设计离线锂电池充电器
高效、低成本及可靠的电池充电器设计可用各种方法来实现,但采用8 位闪速MCU 不仅能缩短设计时间、降低成本及提供安全可靠的产品,而且还能使设计人员以最少的工作量来进行现场升级。考虑到电池安全充电的成本、设计效率及重要性,基于MCU 的解决方案可为设计者们提供诸多优势。通过选择带适当外围与闪存的8 位MCU,工程师们能充分利用其优势来设计一种离线锂电池充电器。带2KB 闪存及适当外围以提供一种廉价解决方案的飞利浦 80C51 型MCU 就是这样一个例子。集成化闪存还能提供高效及方便地调试应用代码并进行现场软件升级(如果需要)的能力。由于设计界不仅熟悉而且广泛接受8 位MCU,故软硬件开发可快速进行。由众多厂商提供的各种功能强大且并不昂
[单片机]
使用AVR单片机配置FPGA
Altera公司的ACEX、FLEX等系列的FPGA芯片应用广泛,但其FPGA基于SRAM结构,决定电路逻辑功能的编程数据存储于SRAM中。 由于SRAM的易失性,每次上电时必须重新把编程数据装载到SRAM中,这一过程就是FPGA的配置过程。FPGA的配置分为主动式和被动式。在主动模式下,FPGA上电后主动将配置数据从专用的EPROM(如EPC1,EPC2等)加载到SRAM中。被动模式下,FPGA为从属器件,由相应的控制电路或微处理器控制配置过程,包括通过下载电缆由计算机控制配置和单片机模拟配置时序配置。其中,专用的EPROM价格高,可编程次数少,而计算机配置在现场应用中又很不现实,因此本文提出一种基于AVR单片机的被动配置方式
[单片机]
STM32微控制器的可靠串口通信技术研究
引言 STM32F107微控制器是意法半导体推出的高性能32位以CortexM3为内核的面向工业控制的处理器。该处理器内部通过一个多层的AHB总线构架相连,其内部集成了丰富的外设,如USART、SPI、ADC等等。另外,STM32F107处理器还提供多达80个通用I/O接口,如此丰富的资源使STM32系列微控制器能够很理想地用于工业控制。本文设计出一种基于STM32F107的可靠串口通信设计方案,可以完成STM32F107处理器和PC机以及其他串口之间的可靠通信 。 1 串口通信的实现 1.1 硬件设计 STM32F107处理器的通用同步异步通信单元(USART)提供 5个独立的异步串行接口,并且都能工作在中断和DMA模式
[单片机]
51单片机如何进行模块化编程
本文主要是关于51单片机的相关介绍,并着重对51单片机的原理及其模块化编程进行了详尽的阐述。 51单片机 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。 功能 ·8位CPU·4kbytes程序存储器(ROM)
[单片机]
专家谈单片机职业发展规划
从一名普通的工程师一路打拼至盛扬半导体有限公司技术副总,并以“技术幕僚”作为终极职业目标,本文主人公王胜和对技术性职业道路的坚持折射出怎样的一种人生智慧?凭借十四年单片机规划、应用及研发经验,助力盛扬在单片机市场脱颖而出,其中蕴含着什么竞争之道?在紧张工作之余从容锻炼身体,年过五十依然显得年轻潇洒,究竟有什么平衡诀窍?本期精英访谈,我们将走近王胜和,听他娓娓讲述深耕技术,同样可以走出一条“鱼与熊掌”兼得的职业发展之路。 您如何看待本土单片机厂商的发展趋势?台湾单片机厂商在中国大陆的生存现状如何? 中国大陆和台湾单片机厂商的发展过程十分相似,都要经历一个从为先进国家做代工到自主研发的过程,但发展的快慢程度有
[单片机]