接口实验报告

实 验 报 告
EXPERIMENT REPORT

学号 2017317210325
专业 计科1703
科目 微机原理与接口技术

信 息 学 院
COLLEGE OF INFORMATIC

1 项目介绍
项目的名称为电子琴益智发音装置,主要通过8253,8255,0808,8086,0832实现。装置直观图如下所示:

项目的设计用途:

  1. 当小孩子或者音乐学习者拨动开关时,会发出不同音调的声音,同时与之相对应的灯就会亮起,并显示相应地简谱。
  2. 为了加深大家学习的印象,加入了示波器,当波动开关的时候,波形情况不一样。
  3. 总线上的数据经过初值设置,并在第二个示波器上显示不同频率的方波。
  4. 输出的频率转换成具体的电压值并转成数字。
    2 芯片介绍

1.总述:8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。

设置8255的控制口地址和PB口输入的功能。

这是设置PB端口的地址并读取PB口开关的状态。
2.总述: 8253芯片是可编程计数器/定时器。这种芯片外形引脚都是兼容性的。8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

按音频的数据设置定时器常数,8253的控制字设置为计数器1,16位二进制,方式三的方波模式。对于时间常数的书写时先写低八位,再写高八位。
3.总述:ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关数组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。
因为0808芯片的特殊性,故不需要单独的编码。
4.总述:DAC0832是8位的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
CALL OUTTONE
MOV DX,208H
MOV AL,00H
OUT DX,AL
CALL DELAY
MOV AL, 00FH
MOV DX, 208H
OUT DX,AL
CALL DELAY
通过送入0832端口不同的数据来显示方波的情况。
各个芯片地址译码:
名称 A7A6A5 A4A3A0 A2A1 地址
8255控制端口 1·11 000 11 E6H
8255的A端口 111 000 00 E0H
8255的B端口 111 000 01 E2H
8255的C端口 111 000 10 E4H
8253控制端口 111 100 11 F6H
8253的计数器 111 100 01 F2H
3 功能实现

在电子琴发音功能中,我们已经将开关状态通过8255的B端口读入。在程序内部,我们对开关状态进行一个判断,然后为不同的状态分配一个不同的数字,在8086的控制下,通过数据总线将这个数字传给8253,用以产生不同的频率,从而发出不同的声音。在连线时,D0~D7接数据总线,A0、A1接总线的A1、A2用于片内地址的选择,CS与译码器Y4 连接,WR、RD通过标号与8086的相应引脚连接。同时示波器接到输出端口进行输出。

在8255的B端口中,接到一个74LS145 八三编码器进行编码并显示数字。

在0832这个芯片下,通过写入不同的ax,送入到芯片中,并通过示波器显示不同的波形。

74LS245是用来触发灯进行发光的芯片,当按下开关的时候,触发对应的灯。

4 总结

  1. 代码问题:由于一开始并没有理解书上的图只顾连线,所以并没有发现代码错误而导致CS片选并没有片选上。于是我们怀疑是线路的问题,多次检查之后并没有问题,冷静分析发现是控制字写错了,而导致的并没有片选上。
  2. 内存地址问题:由于分配内存地址的空间为0x01000, 并没有报错误,但运行的时候却会导致输入的时候出现问题。于是将内存分配的地址空间改为0x10000就可以了。
  3. 示波器问题:由于想要用两个示波器去显示两个波形,但由于输出波需要调用delay以及示波器会出现卡顿的问题,当输入两个波的时候声音的音调延迟较高,仍未解决。
  4. 模拟信号问题:想去找一个将频率映射到模拟信号的器件结果并未找到。
  5. 总结:通过这次实验首先加固了自己对芯片的学习与思考,加固了自己对之前汇编语言的学习,学会了对接口各个功能的理解及会书写控制字;其次通过学习一个之前完全没用过的软件增加自己的学习能力及动手能力;最重要的是在实践过程从立题到后来一个一个功能的实现收获到了一份快乐。
  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

包与接口实验报告 实验 包与接口实验目的】 1. 了解Java 中包(package)、接口(interface)的作用。 2. 掌握包、接口设计方法。 【实验要求】 1. 了解Java 系统包的结构。 2. 掌握创建自定义包的方法。 3. 掌握使用系统接口的技术和创建自定义接口的方法。 【实验步骤】 一.了解并使用Java 的系统包 1. API 包、接口、异常处理的作用 包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统包,其中包含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API 包,所谓API(Application Program Interface)即应用程序接口。API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 包都以“java.”开头,以区别用户创建的包。 常见Java系统包及其作用: 1)语言包(java.lang):提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 2)实用程序包(java.util):提供的支持包括哈希表、堆栈、可变数组、时间和日期等。 输入输出包(java.io):用统一的流模型来实现所有格式的I/O,包括文件系统、网络、输入。 3)网络包(java.net):支持Internet的TCP/IP协议,用于实现Socket编程;提供了与Internet的接口,支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。 4)抽象图形用户接口包(javax.swing):实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得 Java可以移植到不同的平台。 接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值