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

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

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

综合设计示例详解II_02

下一节:结束语

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

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

我们也分析一下

首先我们通过题目的这个给出的条件或者它的要求

我们可以看出来它是一个单路数据采集

所以它没有必要来设定通道地址

当然也就没有必要送地址锁存信号

因为ADC0809的输入为最大模拟量值的时候

它的输出的数字信号是FFH

为什么呢?

因为0809是个8位的AD转换器

那么相应的它的最小模拟量

输入最小模拟量值的时候 也就是它是0V的时候

那么输出的数字量就是0

因此 那么输入到最大值的百分之九十

它对应的数字量是多少呢?

就很容易的对应得出来了

那么也就是说我们要对读进来的AD转换器

输出的这个数字量我们读进来之后我们要去看一下

它到底是不是达到了230

也就是说16H 如果没有达到

那么就ok了 如果达到了那么就要报警

就是这么个意思

扬声器发出0.5秒的

500Hz和0.5秒的1KHz交替变换的声音

也就是来两种不同的频率

这两种不同的频率肯定要来自于

8253的两个通道

这个没有问题

而且是交替变化 连续变化的波形

我们在之前的例子我们讲过

要想控制这个扬声器通常我们用

方波信号或者正弦波信号

所以在这里我们用8253来控制的话

肯定就是连续的方波信号

所以这两个通道一定工作在方式3

但是产生的频率不一样

一个是500Hz 一个是1KHz

那么怎么样控制它们交替响呢?

用另外一个通道

产生这个周期为0.5秒的连续方波信号作为

对刚才前面两个通道的这种选通控制

因此分析到现在就是说我们要用一片8253的话

这个8253的内部的三个计数器通道

都要用到了

一个是产生500Hz的连续方波

一个是产生1KHz的连续方波

另外一个是产生0.5秒的连续方波

因此 如果刚才我们假设已经知道

它的输入的这个

时钟频率是50KHz的话

那么这三个通道的计数初值

我们就都可以算出来了

从算出来这个初值里我们可以看出来

三个通道的

这个初值都在我们允许的16位字长

最大值的范围内

所以这个就可以直接来利用了

然后我们自己设计

利用PC0来启动报警

这个就是我们的硬件系统的设计原理示意图

我们在这里不再跟大家解释这个译码电路的设计了

根据前面的介绍呢

大家以及根据我们这个题目给的条件

应该自己能够设计它相应的译码电路

在这里我们主要给大家解释一下这个

接口电路和它外部设备

之间怎么样子来连接的

我们看上面这个ADC0809 刚才我们说它是

通过IN0路来检测水位状态的

我们在这种仿真环境下

我们利用这样一个滑动电阻来模拟水位的高低

然后因为是从IN0进来 所以这个箭头画反了

大家要是从滑动电阻的角度这个箭头也就该这么画

那么这个时候ADDC ADDB和ADDA这三个

通道地址我们就直接接地了

也就是说不再需要了

那么我们主要来看这个

刚才说交替这个频率怎么样控制扬声器

能够来响

扬声器我们通过一个或门来驱动

那么或门的输入是两个与门

我们看与门其中有一个输入端

两个与门都有这么一个输入端连接到8255的PC0端

那么PC0端如果输出0的话

这两个与门就相当于都被关门了

也就是说这个时候与门的输出肯定是0

那么这个扬声器就不亮

就不响

所以我们要让扬声器不响

我们实际上只要在PC0端

输出一个0 这扬声器就肯定不响了

那么如果我们想让扬声器响

我们至少要让PC0端输出1

这个时候两个与门相当于被开门

那么到底是哪个与门

它的波形会输出呢?

因为上面这个与门是连接的OUT0

下面这个与门连接着OUT1

也就是说一个是500Hz 一个是1KHz

到底哪个输出呢?取决于这个OUT2

OUT2端当它输出

低电平的时候

这个与门

上面这个与门肯定被封门

因为它就输出0了

但是它如果输出低电平经过一个非门的话

相当于在下面这个与门的输入端

这个地方也变成1

如果这个时候PC0端输出1

这个非门输出也是1

那么底下这个与门相当于被打开

这个与门的另外一个输入端

也就是OUT1端的波形的状态就通过它输出了

那么这个时候扬声器会按1KHz的频率响

反过来如果OUT0端这个时候输出高电平

那么通过非门就变成0

那么下面这个与门就被封掉

那么上面这个与门就被开门

那么OUT0端输出的这个波形就会

通过或门输出来控制扬声器

那么这个时候扬声器就会按500Hz来响

那么这个OUT2 它的波形是这样

周期是0.5秒

也就是说它会让0.5秒去按500Hz响

0.5秒按1KHz响

这个就是我们实现频率交替

控制的这样一个电路

其余的跟我们前面的就没什么区别了

这里用PC0端除了控制这个扬声器之外

它同时控制这个报警灯

它没有在这里

用硬件来实现它的闪的问题

而只是让它亮

当然你如果要让它闪烁 你可以通过软件来实现

那么这个都是工作在方式3下

所以我们采用软件启动的方式

让GATE0到GATE2全部接+5V

刚才我们已经算了

它的初值都在允许的范围内

所以CLK0到CLK2这三个端都可以统一接上

接到50KHz这样的一个外部时钟电路上

那么在设计完了这个电路

下面要做的工作就是

这两个可编程接口芯片的初始化的工作

这个是8255的初始化

详细的注释都写在后边

我们就不再去详细的解释了

我们主要来 8253的初始化我这里就略掉了

我们来主要看一下控制程序该怎么编

这个是控制程序的流程

通道地址和启动变换这些工作

因为在这里实际上通道地址是不需要

已经都接死了

所以通道地址的锁存信号我们也就可以不用输入

如果一定要出去的话

直接就是让它是0就可以了

就等于把它锁掉

然后就

真正的程序开始实际上从启动变化开始

启动变换按照我们AD转换器的工作

统一的工作流程

一旦启动转换之后下边就要去

判断转换有没有结束

如果没有结束就要继续去判断

如果转换结束了

这个时候去读入水位值

也就是水位的转换的数字量

读入转换值之后

唯一的就是下边这个工作

这个跟我们上一个例子是一样的

也就是说通过要判断一下它的阈值

是不是超过了上限

在上一个示例里头

我们的阈值要判断它是不是大于高位

和低于低位

但是在这里不存在低位的问题

我们只需要去看一下它有没有高于

上限 也就是说达到了

最高位的百分之九十

如果达到了就去报警

如果没达到就不报警

不管是报警还是不报警

反正最后我们要循环完成这个

始终进行水位检测

因为题目告诉你要始终持续的对水位进行检测

这三行语句就是启动转换的过程

这里的F803实际上是控制寄存器的地址

我们在这里用了位控制字的方式

来使得PC1等于0

因为在前面初始化的时候我们已经设置PC1

等于高电平了

也就是说为产生启动信号做好准备了

现在我们再把它置成0

那么由高到低就有一个下降沿的跳变

这个下降沿就作为启动信号了

这几行语句就是

启动了之后我们当然就去判断它是不是转换结束

转换结束我们是通过读取EOC端的状态来判断的

EOC端的状态根据前面的连接图

我们是通过PC7位读进来的

所以这个时候我们只需要保留第七位

也就是与80H

把其他的低七位都给它屏蔽掉

最高位留下来

如果EOC端的状态是低电平的话

那么就表示没有转换结束

如果是高电平 那么这个时候就读转换结果

因为这里我们用了0809

所以它的工作时序我们不再打在这里了

我们之前已经很详细的介绍过了

读转换结果按照

硬件线路设计我们是通过a端口读进来的

所以现在我们设置了F800H 这是a端口的地址

顺便再次提醒一下

这个F800H前面那个0

是给编译器看的 也就是给汇编程序看的

让它知道这个F是数字

读进来水位值以后按照我们的控制流程

下边我们就要去判断它是不是高于最大值的90%

那么刚才我们已经算过

在最大值的90%对应的数字量就是230

所以下边我们跟230进行比较

如果大于230就报警

那么否则如果没有大于 那么就不报警

不报警我们大家看用这样几条语句

F803刚才我们讲过这是控制寄存器的地址

因为它最低两位是11

现在给AL赋值0

赋值0什么意思?实际上就是让PC0端置0

PC0端置0刚才我们已经说过

它就是把底下那个让

控制扬声器的那两个与门全部封死了

这样扬声器肯定不会响

然后无条件转向L

又重新开始继续启动转换

又继续读取水位的值

那么如果是超出报警的话

报警怎么办呢?

报警我们也用了这个

控制字的方式来报警

报警我们就是将PC0置成1

置成1就是将与门都开门了

那么这个具体怎么报警

实际上我们是通过8253的

这个因为我们事先肯定要对它进行初始化

所以一旦初始化之后

这个时候把PC0置成1

8253本身它就连续在不断的输出方波信号

一旦输出PC0置成1

相当于把两个与门都打开了

那么这个时候

它的通道0 通道1和通道2

原来输出的方波信号本来

因为PC0等于0

两个与门都被封掉

你刚才三个通道输出的方波信号都没有出去

也就是说让扬声器都响不起来

你现在PC0一旦变成1

那么相当于把两个与门都打开了

那么你刚才输出的这些方波信号

就交替的通过两个与门

再通过那个或门

控制扬声器响起来了

这个就是我们的核心控制程序

当然因为篇幅的原因我们在这个例子里

我们没有给出大家一个完整的汇编程序的结构

但是我们把核心程序都介绍完了

所以这些完了以后这里唯一漏掉的

就是唯一没有再拿出来的就是8253的初始化

实际上根据前面我们的分析

这个8253的初始化程序

大家是自己非常容易把它编出来的

所以我在这里也建议大家

在我们这个核心程序以及它的核心控制流程

和它的硬件设计都

基本完整的情况下

请大家自己补充

硬件线路里边的那个译码电路的设计

以及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讲 结束语

--结束语

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

也许你还感兴趣的课程:

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