ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:79.82KB ,
资源ID:22946535      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22946535.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx

1、4提供标准 rs232异步通讯口,以连接 IBM-PC 机。5 支持联机与脱机二种工作方式 , 系统扩展有 EPROM ,把所有实验程序都固化在该片 中,脱机工作时 , 只需按一键,即可完成实验程序下载。调用实验程序只须在实验仪键盘输 入实验程序入口地址 , 按 EXEC键即可 , 非常便捷。图 1.1 8086cpu引脚图1.2 8255与 8253结构1 8255是一个 40引脚的双列直插式集成电路芯片 . 它具有三个 8位口, 其中 A 口和 B 口是单纯的数据口, 供数据 I/O使用。而 C 口则既可以作数据口, 又可以作控制口使用,用 于实现 A 口和 B 口的控制功能。2数据传送中

2、 A 口所需的控制信号由 C 口高位部分(PC7PC4提供,因此把 A 口和C 口高位部分合在一起称之为 A 组;同样理由把 B 口和 C 口低位部分(PC3PC0合在一起 称之为 B组。图 1.2 8255引脚图图 1.3 8255内部结构图3 8253是 24脚双列直插式芯片, +5V电源供电。每个芯片内部有 3个独立的 计数器(计数通道 ,每个计数器都有自己的时钟输入 CLK ,计数输出 OUT 和门控信号GATE 。数据总线 D0D7:为三态输出 /输入线。片选信号 CS ,读信号 RD ,写信号 WR ,他们为输 入信号,低电平有效。地址线 A1、 A0,接到系统总线 A1、 A0上

3、。计数器时钟信号 CLK , 作用是在 8253进行定时或计数工作是, 每输入 1个时钟脉冲信号 CLK , 便使计数值减 1。 计数器门控选通信号 GATE , 计数器输出信号 OUT , 作用是计数工作时, 每来 1个时钟脉 冲,计数器减 1,当计数器值减为 0,就在输出线上输出一 OUT 信号,以示定时或计数以到。图 1.4 8253引脚图4 8253/8254内部有 6个模块 :数据总线缓冲器,读 /写逻辑,控制命令寄存器, 计数器 0,计数器 1,计数器 2数据总线缓冲器:3态,双向 8位寄存器和 D0D7相连。读 /写逻辑:由 CPU 发来的读 /写信号和地址信号来选择读出或写入寄

4、存器。控制命令寄存器:接受 CPU 来控制字。计数器:8253有 3个结构完全相同的计数器。其内部由 16为初值寄存器、减 1计数器 和当前计数值锁存器组成。图 1.5 8253内部结构图1.3功能说明1开关控制:8255端口 A 工作在方式 0,且为输入方式,端口 B 、 C 任意。开关接在 8255端口 A 的 PA0PA7,这样就可以通过 8255读取开关量。如下图:图 1.6开关控制图2扬声器控制:(1 8253计数器 2的输出控制扬声器的发声音调(2 8253计数器 2只能工作在方式 3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声 器发声(3扬声器还受控于并行接口

5、(8255A 芯片 (4必须使 8255APB0和 PB1同时为高 电平, 扬声器才能发出预先设定频率的声音; 关闭则是利用 8255APB0和 PB1同时为低电平, 关闭与门,扬声器关闭。图 1.7 扬声器控制图2 设计过程本次设计的模拟电子琴是以 8253控制扬声器, 以 8255接 8个开关 K1-K8作为电子 琴的按键输入。2.1硬件设计采用并口 8255A 接 8个开关 K1 K8,利用 8255A 方式 0,端口 A 输入方式,即 AL = 10010000B ,可以将开关的量输入到 CPU 中,利用 8个开关做电子琴的 8个按键。驱动控制扬声器利用 8253与 8255A 共同执

6、行(如图 2.1 。利用 8255A 的 PB0、 PB 控制 扬声器的开启、关闭。利用定时器 8253驱动发声, CPU 通过对 8253通道 2(端口地址 42H 进行编程, 利用 8253方式 3以不同的脉冲频率产生不同的输出方波, 方波信号通过滤波器、 功率放大器使扬声器发声。图 2.1 硬件电路连接图2.2软件设计利用汇编语言对接口进行编程控制。程序模块主要包括 8255A 、 8253的初始化、开关 量的输入、扬声器的开启、关闭及程序的退出。在使 8253的初值计数与频率相对应有两种 方法,一是利用表的操作,但这种操作不太容易实现,硬件的连接也比较麻烦,易出错;所以我采用的是比较跳

7、转的方式, 比较简单明了,容易理解。程序中的模块关系见程序流程 图。图 2.2 程序流程图2.3系统原理说明1利用 8个逻辑开关做为电子琴的键盘输入,高电平有效,则开关量由 8255A 的端口 A 方式 0,输入方式(控制字 AL =10010000B 送入 CPU 中。此时调用的是 7号系统功能调 用,从标准设备输入单字符置入 AL 寄存器中,调用格式为:MOV AH,07HINT 21H2 CPU 根据不同的开关量,将程序跳转到相应频率对应的 8253的初始化,并给 8253赋上频率对应的初始值, 此时利用的是 8253的通道 2, 方式 3,产生不同频率的方波。 代码 如下:MOV AL

8、,0B6HOUT 43H,ALMOV AX,计数值OUT 42H,ALMOV AL,AH3 要使 8253O U T 发 出 的 方 波 频 率 与 任 务 中 的 频 率 相 同 , 则 要 给 8253设 置 计 数 值 , 计 算 方 法 为 :计 数 值 =输 入 时 钟 频 率 /任 务 要 求 频 率然后 CPU 将 8255A 的 PB0、 PB1置 1,打开 8253的 GATE 和与门(图 2.1 。代码如下: IN AL,61HOR AL,03HOUT 61H,AL82534 产生的方波信号通过滤波器形成正弦信号, 然后通过功率放大器, 将正弦信号放大, 驱动扬声器发声。再

9、然后 CPU 将 8255A 的 PB0、 PB1置 0,关闭扬声器。IN AL,61HAND AL,0FCHOUT 61H,AL再次输入开关量,则循环执行上面过程。5 当输入为 PC 键盘任意键输入时, 则整个程序退出。 此时是调用的 6号和 4CH 号系统 功能调用,系统输入键盘任意键,返回 DOS 。调用格式为:MOV DL,0FFHMOV AH,6MOV AH,4CH3 测试接通电路之后,按下开关键,依次拨动各个开关来控制作为扬声器的 8253发声,发出 静音、 Si 、 La 、 Sol 、 Fa、 Mi 、 Re 、 Do 音调。由于每个开关的音调发音时间有软件延时控制, 所以当开

10、关打开时, 就会连续发出音节 标称频率的声音。整体进行硬件电路图和软件测试, 把所需程序进行输入一切运行良好,可以完成模拟 电子琴,通过开关键实现产生不同音节频率的功能总 结通过这两周的硬件课程设计,我对微机原理及应用这门课有了更深的认识,系统的 掌握了微机原理及接口的应用知识。这次课程设计我做的是用开关模拟电子琴发声。在老师确定题目后,我便去图书馆 查阅了大量的关于开关输入和发声程序设计的书籍,然后确定好自己的方案,对自己的 设计有了一个大概的思路。通过编程,我学会了如何独立的写出程序,提高了自己的分 析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。课程设计 中涉及到许多

11、接口芯片,使我对这些芯片有了更深的认识,对芯片的各种工作方式有了 更深的理解,虽然没有进行硬件的调试,但通过设计,我也学到了很多书本上没有的知 识。在设计当中遇到了很多的问题,但通过查找资料,克服了这些问题,提高了自己在 实际当中解决问题的能力。虽然此次课程设计的过程是艰辛的,但结果还是令我比较欣慰的。在此特别感谢老 师对我的指导。附录代码STACK SEGMENT STACKSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,63HMOV AL,90HOUT DX,AL ; 8255A 初始化INPUT: MOV DX,60HIN AL,DX

12、; 8255A 端口 A 输入INT 21H ;从开关输入信号CMP AL,00000001BJZ K1CMP AL,00000010BJZ K2CMP AL,00000100BJZ K3CMP AL,00001000BJZ K4CMP AL,00010000BJZ K5CMP AL,00100000BJZ K6CMP AL,01000000BJZ K7CMP AL,10000000B ;判断从哪个开关输入并跳 JZ K8 ;转到相应 8253初始化MOV AH,4CH ;键盘任意输入则退出程 INT 21H ;序,返回 DOSK1: MOV AL,0B6HMOV AX,0JMP SINGK2

13、:MOV AX,2420K3:MOV AX,2712K4:MOV AX,3044K5:MOV AX,3419K6:MOV AX,3627K7:MOV AX,4072K8:OUT 43H,AL ; 8253初始化 MOV AX,4572 ;并给 AX 赋JMP SING ;值SING: OUT 42H,ALOUT 42H,AL ;传送计数值到 8253 IN AL,61HOUT 61H,AL ;打开扬声器关闭扬声器JMP INPUT ;跳转到 INPUT CODE ENDSEND START参考文献1 郑坤 . 微型计算机技术实验指导书 .2007.2 戴梅萼,史嘉权 . 微型计算机技术与运用 . 清华大学出版社 2003. 3 王爱英 . 计算机组成与结构 . 北京 . 清华大学出版社 .1995.4 沈美明,温冬蝉 .IBM-PC 汇编语言程序设计 . 北京 . 清华大学出版社 .2003.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1