单片机C语言编程(系统扩展IC)8

第8章 单片机系统扩展 第8章 单片机系统扩展 目 录 8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接口技术 本章主要介绍了MCS-51单片机系统扩展的方法。通过扩展并行三总线来进行并行总线接口扩展;通过UART或I/O口模拟几种串行通信的特点来进行串行总线接口扩展。 8.1 扩展并行三总线 主要内容 8.1.1 片外三总线结构 8.1.2 MCS-51系统扩展的实现 8.1.3 总线驱动 8.1.1 片外三总线结构 通常,微机的CPU外部都有单独的并行地址总线、数据总线、控制总线。 MCS-51单片机由于引脚的限制,数据总线和地址总线是复用的。 地址需要锁存:为了能把复用的数据总线和地址总线分离出来以便同外部的芯片正确的连接,需要在单片机的外部增加地址锁存器,从而构成与一般CPU相类似的三总线结构,如图8-1所示。 74HC573简介 74HC573是有输出三态门的电平允许8位锁存器。引脚信号如下: OE:输出允许端,为0时芯片有效。 LE:锁存控制端,高电平时,锁存器的数据输出端Q的状态,与数据输入端D相同,即锁存器是透明的;当LE端从高电平返回到低电平时(下降沿后),输入端的数据就被锁存在锁存器中,数据输入端D的变化不再影响Q端。 一、地址总线 地址总线(Address Bus,AB)用于传送单片机送出的地址信号,以便进行存储器单元和I/O端口的选择。 地址总线是单向的,只能由单片机向外发送信息。 地址总线的数目决定了可直接访问的存储单元的数目。 二、数据总线 数据总线(Data Bus,DB)用于单片机与存储器或I/O端口之间的数据传送。 一般数据总线的位数与CPU的字长一致,MCS-51单片机的数据总线是8位的。 数据总线是双向的,可以进行两个方向的数据传送。 三、控制总线 控制总线(Control Bus,CB)是单片机发出的以控制片外ROM、RAM和I/O口读/写操作的一组控制线。 8.1.2 MCS-51系统扩展的实现 一、以P0口作低8位地址及8位数据的复用总线 复用,即一段时间内作两种或两种以上用途。 在这里指P0口在每个CPU周期的前半个周期输出低8位地址,由地址锁存器锁存,然后由地址锁存器代替P0口输出低8位地址。后半个周期进行8位数据的输入输出。 二、以P2口作为高8位的地址总线 P0口的低8位地址加上P2的高8位地址就可以形成16位的地址总线,达到64KB的寻址能力。 实际应用中,往往不需要扩展那么多地址,扩展多少用多少口线,剩余的口线仍可作一般I/O口来使用。 三、控制信号线 ALE:地址锁存信号,用以实现对低8位地址的锁存。 PSEN:片外程序存储器读选通信号。 EA:程序存储器选择信号。为低电平时,访问外部程序存储器;为高电平时,访问内部程序存储器。 WR:片外数据存储器写选通信号。 RD:片外数据存储器读选通信号。 8.1.3 总线驱动 总线驱动的原因:在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、A/D接口、显示接口等,但总线接口的负载能力有限,因此常常需要通过连接总线驱动器进行总线驱动。 总线驱动器的作用:对于单片机的I/O口只相当于增加了一个TTL负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。 在对TTL负载驱动时,只需考虑驱动电流的大小。 在对MOS负载驱动时,MOS负载的输入电流很小,更多地要考虑对分布电容的电流驱动。 总线驱动器的选择: 系统总线中地址总线是单向的,因此驱动器可以选用单向的,如74LS244,还带有三态控制,能实现总线缓冲和隔离。 数据总线是双向的,其驱动器也要选用双向的,如74LS245。74LS245也是三态的,有一个方向控制端DIR。DIR=1时输出(An→Bn),DIR=0时输入(An←Bn)。 8.2 扩展简单并行输入/输出口 89C52有P0~P3四组I/O口,但是在某些特定的场合,可能会出现I/O口不够用的情况。这

访问外部扩展C语言编程,单片机C语言编程(系统扩展IC)8.ppt相关推荐

  1. 微控制器编程技术c语言,1.单片机C语言编程技术分析.pptx

    单片机C语言编程;掌握利用C语言进行单片机程序设计的方法掌握单片机的C程序开发工具Keil 的使用方法掌握单片机仿真软件proteus的使用方法了解单片机常用外部接口元件和接口电路了解单片机系统的集成 ...

  2. 通用编程c语言,STC单片机C语言通用万能编程.docx

    <8051单片机C语言编程模板> TOC \o "1-5" \h \z \o "Current Document" 毫秒级CPU延时函数 4 \o ...

  3. 单片机+c语言+运算符,单片机C语言编程常用的运算符介绍

    在单片机C语言编程中,通常用到30个运算符,如表1,其中算术运算符13个,关系运算符6个,逻辑运算符3个,位操作符7个,指针运算符1个. 在C语言中,运算符具有优先级和结合性. 算术运算符优先级规定为 ...

  4. 51单片机串行口程序c语言编程,单片机C语言编程串行口通讯.ppt

    单片机C语言编程串行口通讯 第7章 MCS-51单片机串行口 第7章 MCS-51单片机串行口 目 录 7.1 串行通信基本知识 7.2 串行口结构及控制 7.3 串行口工作方式 7.4 串行口应用举 ...

  5. 单片机定时器c语言程序,单片机C语言编程定时器的几种表达方式

    单片机C语言编程中,定时器的初值对于初学者真的是比较不好计算,因此我总结了以下几种方法. 第1种方法: #define FOSC 11059200L //晶振的频率 #define TIMS (655 ...

  6. 单片机c51语言变量,单片机c语言教程:C51变量

    上课所提到变量就是一种在程序执行过程中其值能不断变化的量.要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间.定义一个变量的格式如下: ...

  7. 南师大632c语言程序设计,单片机c语言学习心得632.docx

    可编辑文档 PAGE 页码页码/NUMPAGES 总页数总页数 单片机c语言学习心得 (一) 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧..不过有些朋友可能只听说他叫单片机,他的全称是什 ...

  8. 单片机c语言除法,单片机C语言知识点全攻略

    单片机C语言知识点全攻略 为了让有需要的朋友进一步了解单片机C语言知识,下面的文章将为大家讲解单片机C语言的知识内容,欢迎学习! C51运算符和表达式 运算符,双目运算符和三目运算符.单目就是指需要有 ...

  9. c51查表法 c语言表达式,单片机c语言教程第六章--C51运算符和表达式

    上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧.这个语句就是 typedef,这是个很好用的语句,但我却不常用它,通常我定义变量的数据类型时都是使 用标准的关键字,这样别人能很方便的 ...

最新文章

  1. 英文版Windows XP操作系统的中文支持设置
  2. STL——vector
  3. 转:性能测试中的性能测试指标与用户体验分析
  4. Redis缓存与数据库双写一致性
  5. BSP application view instance lifetime analysis
  6. java清屏_【图片】请问java编写中如何做到清屏啊。。。_java吧_百度贴吧
  7. 如何下载java JDK文档
  8. 如何成功激活win10专业版
  9. CWP控制面板登录异常
  10. 学习C语言需要学oracle,什么是C语言? 为什么要学习C语言?
  11. OverTheWire——Bandit
  12. python array 行向量 列向量
  13. 缩略图方式下, 资源管理器,不能显示文件名
  14. 全程干货!拍乐云受邀LiveVideoStackCon,首席科学家分享拥塞控制最佳实践
  15. 安徽省全省计算机水平考试成绩查询时间,2021年安徽省计算机等级考试分数公布时间|成绩查询入口...
  16. 推荐12个开放式免费收录网站的分类目录
  17. 写在2017展望与回顾
  18. 透视变换 单应性矩阵怎么求 matlab,单应性(homography)变换的推导
  19. 使用HTML实现带背景音乐的网页
  20. 【Layui】var form = layui.form的意思 监听提交事件

热门文章

  1. [转]SQL SERVER – Find Most Expensive Queries Using DMV
  2. Tushare的安装
  3. 在Quick-cocos2dx中使用云风pbc解析Protocol Buffers,支持win、mac、ios、android
  4. Guava RateLimiter限流源码解析和实例应用
  5. Groovy初体验:构建高性能JVM应用
  6. jquery中对小数进行取整
  7. js源生惯性滚动与回弹(备用)
  8. 手势识别之平移、缩放、长按、旋转、滑动
  9. 项目发布: error CS0103: 当前上下文中不存在名称“*****”
  10. POJ 1002题 解题报告