C51单片机————总线与系统扩展
C51单片机————总线与系统扩展
1.引文
前面说过单片机的特点是体积小,功能全,系统结构紧凑、对于小型的需求可以满足要求。那么稍大一点嵌入式系统呢?那么有可能你的数据存储器、程序存储器还有IO口都可能不够用!那怎么办呢?我们就需要进行系统扩展了。
基本知识与回顾
我们都知道的是CPU大都通过三总线(数据、地址、控制)与外界进行信息交换的。
- 数据总线:传输指令码和数据,外围的芯片都需要它来进行信息交流。
- 地址总线:传输的是地址信息(数据传到哪儿的信息)
2.扩展
单片机系统总线信号
- P0口是地址(A0~A7) / 数据复用线(D0~D7),经锁存器提供低8位地址,锁存信号是由CPU的ALE引脚提供的;
- P2口提供高8位地址 A8 ~ A15。
- 控制信号:RD、WR、ALE、PSEN 分别是读、写、地址锁存信号和程序存储器的控制信号
总线控制信号 | |||
RD | WR | ALE | PSEN |
读 | 写 | 地址锁存信号 | 程序存储器的控制信号 |
存储容量计算
存储容量计算 | ||||
地址线根数 | 8 | 10 | 12 | n |
存储单元个数 | 256 | 1024 | 4096 |
2n2n
{2^{n}} |
存储单元个数 |
2828
{2^{8}} |
210210
{2^{10}} |
212212
{2^{12}} |
2n2n
{2^{n}} |
MOVX的使用:
聊聊MOVX ,之前说过MOVX是外部存储器和A之间的数据流动。
读时序
写时序
MOVX A,@DPTR
1. 首先我们应该认识到这是一个读命令(与8086的IN差不多),怎么读呢?
2. 我们将这个指令分为两个时间段。
3. 时间段一:将地址要读的地址发出去(地址放在DPTR中),发送ALE信号到74LS373锁存器,将P0的低八位地址锁存起来,P2信号是输出状态
4. 时间段二:P2继续输出高位地址,锁存器输出低8位地址,WR信号下降沿让数据存储器出数据、P0获取数据赋予A。
MOVX A,@DPTR | ||||
名称 | 时间段一 | 时间段二 | ||
P0 | Address 低八位 | DATA | ||
P2 | Address 高八位 | Address 高八位 | ||
ALE | 高电平锁存Address低八位 | — | ||
锁存器 | ALE锁存Address低八位 | Address 低八位 | ||
RD | — | 下降沿读取数据 |
MOVX @DPTR,A
1. 首先我们应该认识到这是一个读命令(与8086的OUT差不多),怎么写呢?
2. 我们将这个指令分为两个时间段。
3. 时间段一:将地址要读的地址发出去(地址放在DPTR中),发送ALE信号到74LS373锁存器,将P0的低八位地址锁存起来,P2信号是输出状态
4. 时间段二:P2继续输出高位地址,锁存器输出低8位地址,RD信号下降沿让数据存储器出数据、P0发送数据写入存储器。
MOVX @DPTR,A | ||||
名称 | 时间段一 | 时间段二 | ||
P0 | Address 低八位 | DATA | ||
P2 | Address 高八位 | Address 高八位 | ||
ALE | 高电平锁存Address低八位 | — | ||
锁存器 | ALE锁存Address低八位 | Address 低八位 | ||
WR | — | 下降沿写入数据 |
MOVC的使用:
聊聊MOVX ,之前(单片机指令系统那篇文章)说过MOVC是程序存储器向A的数据流动,且是变址寻址(只能读)。
MOVX A,@A+DPTR
1. 首先我们应该认识到这是一个读命令(与8086的IN差不多),怎么读呢?
2. 我们将这个指令分为两个时间段。
3. 时间段一:将地址要读的地址发出去(地址放在DPTR和A中),发送ALE信号到74LS373锁存器,将P0的低八位地址锁存起来,P2信号是输出状态
4. 时间段二:P2继续输出高位地址,锁存器输出低8位地址,PSEN信号让程序存储器出数据、P0获取数据赋予A。
MOVX A,@DPTR | ||||
名称 | 时间段一 | 时间段二 | ||
P0 | Address 低八位 | DATA | ||
P2 | Address 高八位 | Address 高八位 | ||
ALE | 高电平锁存Address低八位 | — | ||
锁存器 | ALE锁存Address低八位 | Address 低八位 | ||
PSEN | — | 发控制读取数据 |
如有错误!请多多包含,方便的话留个言!我好马上修改。
C51单片机————总线与系统扩展相关推荐
- 访问外部扩展C语言编程,单片机C语言编程(系统扩展IC)8.ppt
单片机C语言编程(系统扩展IC)8 第8章 单片机系统扩展 第8章 单片机系统扩展 目 录 8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接 ...
- 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】
C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...
- C51单片机培训开发班
伴随着社会经济发展,产业转型,中国已经从"中国制造"转向"中国创造",科技技术是此次产业升 级的最大动力.观察下就可以发现目前单片机.ARM为代表的嵌入式芯片已 ...
- 【复习资料】单片机与嵌入式系统原理及应用
嵌入式系统的概念 第一种定义:嵌入式系统是以应用为中心.计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 第二种定义:把基于处理器(通用处理器和嵌 ...
- C51单片机之keil编程入门(一)
C51单片机之keil编程入门(一) 编程需结合原理图来理解 附上单片机原理图:http://file.elecfans.com/web1/M00/56/5B/pIYBAFs9rlmAcK6tABHJ ...
- C51单片机与PCF8591模块的交互:C语言源码解析
目录 1. PCF8591模块简介 2. C51单片机与PCF8591的连接 3. C51单片机与PCF8591的C语言源码解析 4. 用法示例 5. 总结 6. 参考文献 在微控制器的世界中,C51 ...
- 基于c51单片机的毕业设计——智能温度控制
本设计采用AT89C51单片机为控制芯片,硬件上用dsb18202做温度采集(有需要也可以采用dht11温湿度模块)直流电机作为降温风扇,用户可通过按键来控制转速的大小,用继电器来控制电阻丝提高温度. ...
- c51单片机c语言程序,C51单片机的C语言程序设计.ppt
<C51单片机的C语言程序设计.ppt>由会员分享,可在线阅读,更多相关<C51单片机的C语言程序设计.ppt(44页珍藏版)>请在人人文库网上搜索. 1.2020/8/7,1 ...
- MCS-51单片机实验开发系统实验箱,QY-JXSY33
MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢:汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功 ...
最新文章
- ubuntu 安装mysql5.6
- 12-----指令系统介绍
- java 设计模式 示例_Java中的访问者设计模式–示例教程
- linux /proc 详解
- linux特殊权限之访问权限
- 解决df -h卡死问题
- Linux备份策略研究
- 如何产生1-100之间的100个不重复的随机数
- webstorm jquery语法提示_WebStorm快速入门指南,开发者必备!
- 拓端tecdat|R语言Poisson回归的拟合优度检验
- C# 2.0泛型编程基础(1)
- vue 编写H5项目使用BScroll “better-scroll“;两边都滚动,并且联系
- 学生HTML个人网页作业作品下载 个人主页博客网页设计制作 大学生个人网站作业模板 简单个人网页制作
- 万字讲述如何通过Doris构建数据中台
- 本周之后Win11 变成beta通道只能更新22000.176而没办法更新Dev的解决办法 your PC does not meet the hardware system
- unexpected char: '\' @ line 3, column 133. s\react-native-gestu
- 计算思维实践之路(一)
- .net 服务器推送信息,.net websocket服务端开发,实现消息推送功能
- NY8B062D 九齐单片机之ADC(采样值不准的解决办法)
- anaconda创建虚拟环境_win_linux anaconda虚拟环境设定