1.总线概述

计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。

计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据,控制总线用于传送控制信号, 地址总线则用于选择存储单元或外设

2.单片机的三总线结构

51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 2的16次方) 。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的对象,完成与各对象之间的信息传递。

数据总线

51单片机的数据总线为P0口,P0口为双向数据通道,CPU从P0 口送出和读回数据。

地址总线

51系列单片机的地址总线为16位。

为了节约芯片引脚,采用P0口复用方式,除了作为数据总线外,在ALE信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出8位数据。

高8位地址则通过P2口送出。

控制总线

51系列单片机的控制总线包括读控制信号P3.7和写控制信号P3.6等,二者分别作为总线模式下数据读和数据写的使能信号。

3.单片机总线时序分析

51单片机总线时序如图2所示:

从图2中可以看出,完成一次总线(读写) 操作周期为T,P0口分时复用,在T 期间,P0口送出低8位地址,在ALE的下降沿完成数据锁存,送出低8位地址信号。在T1期间,P0口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。

需要注意的是,在控制信号(读、写信号) 有效期间,P2口送出高8位地址,配合数据锁存器输出的低8位地址,实现16位地址总线,即64kB范围的内的寻址。

由于CPU不可能同时执行读和写操作,所以读、写信号不可能同时有效。

4.常见单片机编址电路

简单地址扩展

51单片机的P2口可以直接作为高8位地址总线使用,在一些简单系统电路中,常使用P2口直接编址驱动。

下面以使用数据缓冲器74LS273驱动数码显示为例,分析P2口编址驱动的静态数码显示电路的设计。

一位LED数码显示单元电路如图3所示:

WR与A8(P2.0) 相或提供74LS273的时钟信号,当执行“MOVX @DPTR,A”指令时,地址信息由DPTR寄存器确定,会出现有效的写信号WR,只有当地址A8为满足“0”时,写信号才可以作为74LS273的时钟信号输入,完成数据锁存。

P2口为A8~A15的8位地址线,很容易扩展到8只LED数码管,WR信号分别与A8~A15按或关系连接,每位地址线均为低电平有效,即可实现8个有效地址。

该方案电路简单,但有效地址数太少,不适用于复杂系统设计。

低8位地址锁存

通常的设计电路是使用8D锁存器74LS373实现地址锁存,74HC573与之逻辑功能相同,只是引脚布局不一样,使用74HC573布线更容易。

74LS373真值表如图4所示:

在输出允许OE为L、控制使能LE为H时,输出为跟随状态;OE为L、LE为L时,输出为保持状态。

地址锁存电路如图5所示。OE接地,LE接单片机的ALE脚将产生满足时序的低8位地址信号。

执行以下三条指令会得到如图6所示的时序图。

  • MOV DPTR,# 0FF55H; 低8位地址为55H

  • MOV A,# 0AAH; 待发送数据0AAH→A(55H取反)

  • MOVX,@DPTR,A; A中的0AAH送地址为0FF55H的对象中会

从图6中可以看出,P0口先送55H,在ALE下降沿实现地址锁存,随后送出数据0AAH,在WR有效(低电平)期间锁存器输出低8位地址55H,P0口送出数据0AAH。

带译码器的复杂地址接口电路

理论上高8位地址线可以产生256个有效地址,如何实现地址“扩展”呢? 地址扩展准确描述是地址译码,例如3根地址线可以译码成8个地址,4根译码成16个有效地址。这里选择3-8译码器实现地址译码,电路图以及对应的编址如表1所示。

5.单片机总线编址电路实例

总线扩展接口的单片机系统,包括外部32k RAM扩展、LCD1602接口、输入输出口。

D0~D7接数据总线P0口,地址线A0~A14接单片机地址总线低15位,单片机地址线A15接RAM片选信号,低电平有效,这样RAM地址分配从0000H到7FFFH,与74138译码地址不冲突。

LCD1602接口电路如图9所示:

RS、RW分别接A12、A13,使能信号编址为Y7,这样LCD的四个驱动地址(数据读写和命令读写)为0CFFFH到0FFFFH(无关位为1)或者8700H到0B700H(无关位为0)。

有些时候单片机引脚不够用,还要进行扩展,输入口扩展电路如图10所示:

利用74HC573(74LS373)的高阻态功能,将其输出Q0~Q7接P0口,在满足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH或8000H。

输出口扩展电路如图11所示:

利用74LS273数据锁存功能,在满足总线地址写操作中,可以把单片机累加器里的数据写入273锁存输出,地址为0F8FFH或8000H。由于所用控制总线不同,可以和输入共用地址。

6.结束语

总线扩展是设计单片机控制电路必须掌握的技术,大量的特殊功能IC都支持总线接口, 如ADC0809、TLC7528、DDS器件AD9851 等。

总线接口的要点就是在严格的控制时序下,总线被分时复用,以实现复杂系统设计。

本文系网络转载,版权归原作者所有。

简单讲解单片机数据、地址、控制总线结构相关推荐

  1. 单片机的单个IO口可以发送数据吗_5分钟了解单片机数据、地址、控制总线结构...

    一.总线概述 计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) ...

  2. 5分钟了解单片机数据、地址、控制总线结构

    一.总线概述 计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) ...

  3. 简单的单片机链接贝壳物联实时上传数据

    简单的单片机链接贝壳物联实时上传数据 想要实现单片机和贝壳物联云平台的简单的数据上传其实非常简单, 代码如最后一个模块所示 准备 硬件 1.ESP8266芯片(ESP8266-01或ESP8266-0 ...

  4. 【单片机俱乐部】基于单片机的路灯控制设计【实物视频讲解】

    项目编号:mcuclub-456 设计简介: 项目名:基于单片机的路灯控制设计 单片机:STC89C52 功能简介: 下位机: 单片机:STC89C52 功能:(3个路灯,3个 光敏电阻.3个人体热释 ...

  5. java 奇偶数据排序算法,简单讲解奇偶排序算法及在Java数组中的实现

    简单讲解奇偶排序算法及在Java数组中的实现 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组 [6 2 4 1 5 9] ...

  6. 基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频)

    基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0031 ...

  7. 一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系

    一文讲解单片机.ARM.MCU.DSP.FPGA.嵌入式错综复杂的关系 首先,"嵌入式"这是个概念,准确的定义没有,各个书上都有各自的定义.但是主要思想是一样的,就是相比较PC机这 ...

  8. 简单介绍单片机、电脑处理器原理

    全文原创,转载请标明出处 如果您发现我写错了.不明白我写的内容或者能提出建设性意见,那么恳请您在评论区发表高见 本文的定位只是让具备基本电学.数制知识的读者明白裸机工作的大致流程,并不针对某款特定的芯 ...

  9. Linux基础入门,简单讲解

    Linux基础入门,简单讲解 涵盖内容:计算机组成与Linux操作系统概论 任务要求:大概了解计算机的主要组成部件,明白计算机磁盘分区方式,常用的计算单元换算以及LINUX是什么.有什么特点即可. 文 ...

最新文章

  1. python基于水色图像的水质评价_基于Python和遥感图像的膨胀与腐蚀操作
  2. 古希腊三大数学书(二)
  3. const int是什么类型_C++的const语义
  4. 模板:回文自动机(PAM)
  5. 从点到线:逻辑回归到条件随机场
  6. 教你如何一篇博客读懂设计模式之—--原型模式
  7. mvc html.dropdownlist,ASP.NET MVC4中使用Html.DropDownListFor的方法示例
  8. 开源机器学习工具SQLFlow
  9. [转]CMS Content Management System(内容管理系统) 提供商
  10. harbor1.4.0高可用部署
  11. java 性能优化分析工具_【java】JVM性能调优监控工具、可视化在线内存分析工具...
  12. 运用类似于沙盘模拟的方式熟悉业务
  13. excel转换linux时间戳,在Excel中转换时间戳(timeStamp)
  14. App自动绑定的五大应用场景
  15. 前端个人博客案例模仿
  16. Little_Women8.txt
  17. 今天向大家推荐一款国产良心工具包 -- Hutool,让你的java变得更甜
  18. HTML5 canvas 实现小时钟
  19. 云虚拟主机连接mysql_云虚拟主机数据库使用
  20. C++设计模式之二(设计模式六大原则)

热门文章

  1. PhoneGap介绍
  2. 智能问答系统构思(持续更新)
  3. ?php exit('dedecms');?,包罗万象的织梦CMS的图片处理类库
  4. 利用python爬取网页图片
  5. 用 JS空格分隔手机号码 334格式
  6. Python进度条库tqdm详解
  7. python listbox控件_Python GUI编程(Tkinter)10、Listbox控件
  8. 11.SCCB接口时序的实现
  9. 挑逗 Java 程序员的那些 Scala 绝技
  10. 产品研发管理体系和敏捷体系_敏捷产品管理和产品组合平台介绍