当前课程知识点:微机原理与接口技术 >  第14周 系统综合设计示例详解 >  第55讲 I/O接口系统综合设计示例详解I >  综合设计示例详解I_01

返回《微机原理与接口技术》慕课在线视频课程列表

综合设计示例详解I_01在线视频

综合设计示例详解I_01

下一节:综合设计示例详解I_02

返回《微机原理与接口技术》慕课在线视频列表

综合设计示例详解I_01课程教案、知识点、字幕

大家好

到现在为止我们已经

介绍完了我们这门课程

需要大家了解的所有的内容

也就是说我们的课程学习实际上

到这一会已经可以结束了

但是为了帮助大家能够对我们输入输出技术

以及输入输出接口系统它的一些

设计上能够有一些更深入的理解

我们在这一周里我们用一些示例

来帮助大家进一步的理解

这个I/O控制系统它的设计方法

这一周我们一共有三讲

其中两讲是我们一些输入输出数字接口

和模拟接口它的一些综合设计的

一些示例的详解

最后一讲是我们整个这门课程的结束语

也就是帮助大家把整个课程

所应该涉及的内容

或者应该希望大家理解的内容

我们做一个总结

好 现在我们在这一讲里头

我们先来给大家介绍两个示例

第一个例子是这样

假设某一片可编程定时计数器8253

它的端口地址范围是FFE8H到FFEBH

并且外部电路

能够给这个芯片提供的这个时钟频率是2MHz

那么这个题目的意思从这样一句话的描述里

我们可以看出来

这片8253的端口地址是

完整的四个端口地址

也就是说它的地址范围正好是4

那么现在 而且是全部的16位地址

所以如果要设计这个芯片和系统的连接的话

肯定采用的是全地址译码的方式

另外 外部时钟能够

外部时钟电路提供的时钟频率是2MHz

那么题目要求什么呢?

首先要求设计这个芯片和系统要实现它的连接

也就是说我们要完成它的硬件线路的设计

并且编写程序实现在OUT1端产生

周期为1秒的连续方波

这个要求里头我们可以看出来

它在8253这样一个

接口芯片里头本来应该有三个通道

但是它现在从这个题目的要求上

我们可以看出来它实际上只需要一个通道

也就是要求在通道1

它的输出端产生1秒的连续方波

因为8253我们知道它是一个非通道型的接口

所以它

对它的应用

一旦这个硬件线路设计完成

就只需要编写相应的初始化程序

也就是说把初始化程序编写完启动之后

这个芯片它就可以自己工作了

然后用它来控制外部设备

而不再需要通过它进行信息传输

因为它没有这个能力

好 我们现在看这样的一个题目要求

我们来分析一下

首先外部时钟频率是2MHz

这个8253的端口地址是这么样一个地址范围

从这个地址范围里

我们按照之前我们讲过的办法

直接把它用二进制码来写出来

那么最低这两位就是它的片内地址

我们现在题目要求从通道1输出一个

1秒钟的连续方波信号

那么这个通道1的片内地址是多少?

就是01 对吧?

最高这一位是A15

好 根据这样子的每一位的状态

我们能够设计出

相应的译码电路

也就是说能够实现这个芯片和系统的连接

这一点我们不在这里再详细讲了

因为有关这部分的内容

我们已经学习的非常多了

等下我们就直接把答案呈现给大家就可以了

另外的一个问题

也是我们这一个示例

看上去很简单

但是之前我们一直没有涉及过的一个问题

就是这个

题目要求在8253OUT1端

输出周期为1秒的连续方波

从这个要求上我们能够看出来

这个通道1一定工作在方式3下

因为只有方式3能够具备

输出连续方波信号这样的一个能力

但是外部时钟频率是2MHz

输出的连续方波要求是周期为1秒

那么也就是频率是1Hz

那么现在就是说我们需要通过通道1

把2MHz频率

降为1Hz的频率

我们回忆一下8253这个可编程定时计数器

因为它是一个减法计数器

我们说减法计数器就是说

事先我们一定要给它设定一个计数初值

然后每过一个CLK周期它那个初值减1

是这样一个过程

那么这个初值的设定它的原则是什么呢?

就是 第一要看它的外部时钟电路提供的条件

也就是它的频率是多少

现在是2MHz

第二 要看它的需求

就是它的OUT端要输出什么样频率的波形

现在我们需求是1Hz的连续方波

条件是2MHz的输入脉冲

那么现在我们的初值就很容易就计算出来了

如果按周期这样算下来的话

是这么样一个计数初值

这个计数初值我们看一下有多大

个 十 百 千 万 十万 百万 两百万

这个计数初值算下来这么大

那么我们现在回忆一下我们之前讲

8253的时候我们曾经讲过

8253它内部有三个独立的计数器

或者说独立的计数通道

它的每一个通道里头都包含了两个寄存器

一个是十六位的初值寄存器

一个是十六位的计数寄存器

那么不管是哪一个寄存器 它都是十六位的

它就意味着它能够存放的计数初值最大

只能是十六位字长

考虑到我们8253的三个计数通道

都是减法计数器

所以我们说它的最大计数初值是65536

也就是说10000H

那么能够看到的那个是0000H

也就是0

因为0减1就是FFFF

这一点我们在前面都已经介绍过了

那么不管怎么样

它就是说最大初值是六万多

至少数量级是这样

但是现在

按照这个题目的要求我们需要能够

需要的计数初值是两百万

那显然这一个计数器是放不下的

也就是说利用这个

通道1这样一个计数器没有办法实现

将2MHz的频率降为1Hz的频率

所以这个时候我们怎么解决这个问题呢?

我们需要借助另外一个

通道或者另外一个计数器

实现一个两级分频

这个两级分频怎么实现呢?

我们就是需要通过一个级联的方式

也就是说比如我们把2MHz的这个外部时钟频率

接入到我们里边

通道0也就是CLK0端

然后使得OUT0端输出一个

频率稍微低一点的

连续方波

这个低一点低到什么程度呢?

你可以去设置 比如我们低到1KHz

那么也就是说通道0可以实现

我们用通道0来实现将2MHz的频率

降成1KHz的频率

这个没有问题

对吧 因为这样的话它的初值很容易得出来

是2000

那么如果我们这个时候把

OUT0端输出的这个1KHz的频率来作为

CLK1的输入信号

也就是作为通道1的时钟脉冲的话

那么我们通道1的输出

也就是OUT1端就很容易能够实现

输出1Hz的方波信号了

这就是所谓的两级分频

两级分频的核心意思

就是将一个高频要直接转换成低频

因为我们实现不了

这个计数器达不到这样子的一个要求

所以我们先把一个高频

变成一个中间的频率

然后把这个中间的频率再变成更低的频率

这样子就叫两级

那么如果你是更高频率变成更低频率

甚至两级都达不到呢?

那就要三级

所以这种多级分频在整个

信号处理系统里头还是经常会用到的

因此我们可以选择将外部时钟信号接入

通道0的CLK0端

然后在OUT0端输出

一个低一点的频率

并且把它送到CLK1

那么现在显然

我们要让OUT0端的输出波形作为

一个CLK信号

显然OUT0端应该输出一个连续的波形

当然你输出一个

工作在方式2下输出一个

不对称的连续方波也可以

但是更好的来讲应该输出一个连续的对称方波

所以我们应该让通道0也工作在方式3下

那么OUT0端输出连续方波

它的工作频率设置为多少比较合适呢?

我们有一个原则

现在我们这里给出大家说设置成1KHz

实际上这个1KHz是不绝对的

它的原则到底是1K还是2K

原则就是

这两个通道 也就是说两级分频的两个分频器

它的通道的计数初值算下来它们的乘积

要等于我们刚才

计算出来的原始的两百万就可以了

这个什么意思我们可以继续来说一下

比如我们现在

CLK0是2MHz 对吧?

然后它的输出的OUT0端变成1KHz的话

那么这个通道0它的计数初值是多少呢?

或者说计数器0它的初值是多少呢?

从2MHz变成1KHz大家很容易得出来它是2000

那么如果我们现在把这个OUT0作为

计数器1的CLK信号 也就是说

把它作为CLK1的信号的话

也就是说CLK1就变成了1KHz了

那么OUT1端要求输出1Hz

好了 那么我们

计数器1或者通道1它的输出

它的计数初值是多少呢?

也就很容易得出来是1000

那么现在这个1000乘以2000是不是正好等于两百万

也就是说这两级分频下来以后每一级通道

它的初值

可以是2000 可以是1000 可以是500

但是两级通道它们的初值的乘积

要一定要等于原始算出来的这个两百万

这样的一个值就可以了

好了分析到这里呢

我们现在这个硬连线路的设计就很容易了

就可以直接给出这样子的一个结果

这就是我们整个

芯片和系统的连接

以及芯片本身它的这个

在外部这样子的一个连接的模式

就是这样的一个线路

还是那句话

这个图不是真实的原理图

它是原理示意图

因为我们在这里没有给出具体的管脚编号

硬连电路设计完了

我们下边无非就是软件的程序设计了

对于这个8253芯片来讲

它的程序就是它的初始化程序

因此我们下边就直接来给出这个8253的

初始化编程

刚才我们已经分析它的两个通道

都是要输出连续方波信号

所以它们都工作在方式3

因此我们就很容易来得出来它的

这个初始化程序了

这边是通道0它的初始化的程序

通道0这里的FFEBH

是整个控制寄存器的端口地址

因为它的最低两位是11

那么现在这个

通道0它的控制字为什么是36H呢?

我们可以很容易得出来

因为最高两位00表示现在是计数器0

然后刚才我们算出来的初值是2000

对于通道0来讲

所以次高两位是11

然后它们都工作在方式3

所以我们选011

最低两位我们按二进制计数

所以最低位就是0

因此 这个初始化程序我们就不再讲了

这是通道0的 这就是通道1的初始化编程

第一个例子我们就介绍到这里

从这个例子我们主要想给大家传达一个信息

就是8253这个计数器

可编程定时计数器芯片

它的内部有三个独立的计数器

每一个计数器可以独立的工作连接到

控制一个外部设备

它们也可以通过这样级联的方式

来实现一个两级甚至三级的分频

实现一个将更高频率

降成更低频率这样的一个工作

好 下边我们来看第二个示例

微机原理与接口技术课程列表:

第1周 微型计算机基础概论

-第1讲 关于本课程

--关于本课程

-第2讲 微型计算机系统

--微机系统_01

--微机系统_02

-第3讲 微型计算机一般工作过程

--微机的一般工作过程_01

--微机的一般工作过程_02

-第4讲 数制与编码

--常用计数制及其转换

--计算机中的编码

-第5讲 计算机中数的表示与运算

--数的表示

--符号数的表示

--数的表示与运算

-第6讲 基本逻辑运算与逻辑电路

--基本逻辑运算与逻辑门

--常用逻辑运算及电路

-第7讲 本周小结

--本周小结

-第1周 微型计算机基础概论--第一周单元测验

第2周 8088微处理器

-第8讲 8088微处理器

--8088 CPU_01

--8088 CPU_02

-第9讲 8088 CPU主要引线及机构

--8088 CPU主要引线

--8088 CPU内部结构

--8088 CPU内部寄存器

-第2周 8088微处理器--第二周单元测验

第3周 实模式存储器寻址与总线

-第10讲 实模式存储器寻址

--实模式存储器寻址_01

--实模式存储器寻址_02

--实模式存储器寻址_03

-第11讲 8088系统总线

--8088系统总线

-第12讲 微处理器小结

--微处理器小结

-单元测验--作业

第4周 数据传送指令

-第13讲 指令概述

--指令概述

-第14讲 寻址方式

--寻址方式

-第15讲 通用数据传送指令

--通用数据传送指令_01

--通用数据传送指令_02

--通用数据传送指令_03

-第16讲 地址传送指令

--地址传送指令

-第17讲 输入输出指令

--输入输出指令

-第4周 数据传送指令--第四周单元测验

第5周 算术运算、逻辑运算与移位操作指令

-第18讲 算术运算指令

--加法运算指令

--减法指令

--乘除运算指令

-第19讲 逻辑运算指令

--逻辑运算指令_01

--逻辑运算指令_02

-第20讲 移位操作指令

--移位操作指令

-第5周 算术运算、逻辑运算与移位操作指令--第五周单元测验

第6周 串操作指令

-第21讲 关于串操作指令的说明

--串操作指令说明

-第22讲 串传送与串比较

--串传送与串比较

-第23讲 串扫描指令

--串扫描指令

-第24讲 串装入与串存储指令

--串装入与串存储指令

-第六周单元测验--作业

第7周 程序与处理器控制

-第25讲 程序控制指令说明

--程序控制类指令说明

-第26讲 转移类指令

--无条件转移指令

--条件转移指令

-第27讲 循环控制指令

--循环控制指令

-第28讲 过程调用指令

--过程调用指令

-第29讲 中断指令

--中断指令

-第30讲 处理器控制指令

--处理器控制指令

-第31讲 指令系统小结

--指令系统小结

-第7周 程序与处理器控制--第七周单元测验

-第7周 程序与处理器控制--第七周作业

第8周 汇编语言程序设计

-第32讲 汇编语言源程序

-- 汇编语言源程序_01

-- 汇编语言源程序_02

-第33讲 伪指令

--数据定义伪指令

--符号与段定义伪指令

--汇编语言源程序结构例

--其它伪指令

-第34讲 系统功能调用

--系统功能调用_01

--系统功能调用_02

-第35讲 汇编语言程序设计示例详解

--程序设计示例1

--汇编语言程序设计示例_02

-第36讲 汇编语言程序设计小结

--汇编语言程序设计小结

-第8周 汇编语言程序设计--第八周单元测验

-第8周 汇编语言程序设计--第八周作业

第9周 半导体存储器

-第37讲 半导体存储器概述

--半导体存储器概述

-第38讲 内存单元编址

--存储单元编址

-第39讲 随机存取存储器RAM

-- RAM_01

--RAM_02

-第40讲 只读存储器ROM

--ROM_01

--ROM_02

-第九周单元测验--作业

第10周 半导体存储器扩展技术

-第41讲 半导体存储器扩展

--半导体存储器扩展_1

--存储器扩展_2

--半导体存储器扩展_3

-第42讲 半导体存储器小结

--半导体存储器小结

-第十周单元测验--作业

-第十周作业--作业

第11周 输入输出与中断技术

-第43讲 基本I/O接口

--I/O系统概述_01

--I/O系统概述_02

-第44讲 简单接口芯片

--简单接口芯片

-第45讲 基本输入输出方法

--基本I/O方法

-第46讲 简单I/O控制系统设计

--简单I/O控制系统设计1

--简单I/O控制系统设计2

-第47讲 中断技术

--中断技术1

--中断技术2

-第48讲 输入输出与中断技术小结

--本周小结

-第十一周单元测验--作业

第12周 可编程并行数字接口

-第49讲 可编程定时计数器

--可编程定时计数器8253_01

--可编程定时计数器8253_02

--可编程定时计数器8253_03

-第50讲 可编程并行接口

--可编程并接口8255_01

--可编程并行接口8255_02

--可编程并行接口8255_03

-第51讲 可编程接口小结

--本周小结_01

--本周小结_02

-第十二周单元测验

第13周 模拟量的输入输出

-第52讲 模拟量的输入输出

--模拟量的输入输出

-第53讲 D/A转换器

--D/A转换器_01

--D/A转换器_02

-第54讲 A/D转换器

-- A/D转换器_01

--A/D转换器_02

-第十三周单元测验--作业

第14周 系统综合设计示例详解

-第55讲 I/O接口系统综合设计示例详解I

--综合设计示例详解I_01

--综合设计示例详解I_02

-第56讲 综合设计示例详解II

--综合设计示例详解II_01

--综合设计示例详解II_02

-第57讲 结束语

--结束语

综合设计示例详解I_01笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。