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

上传人:b****7 文档编号:22946535 上传时间:2023-02-06 格式:DOCX 页数:14 大小:79.82KB
下载 相关 举报
微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx_第1页
第1页 / 共14页
微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx_第2页
第2页 / 共14页
微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx_第3页
第3页 / 共14页
微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx_第4页
第4页 / 共14页
微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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

《微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术 汇编语言单片机设计简易电子琴Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

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

4提供标准rs232异步通讯口,以连接IBM-PC机。

5支持联机与脱机二种工作方式,系统扩展有EPROM,把所有实验程序都固化在该片中,脱机工作时,只需按一键,即可完成实验程序下载。

调用实验程序只须在实验仪键盘输入实验程序入口地址,按[EXEC]键即可,

非常便捷。

图1.18086cpu引脚图

1.28255与8253结构

18255是一个40引脚的双列直插式集成电路芯片.它具有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。

而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。

2数据传送中A口所需的控制信号由C口高位部分(PC7~PC4提供,因此把A口和

C口高位部分合在一起称之为A组;

同样理由把B口和C口低位部分(PC3~PC0合在一起称之为B

组。

图1.28255引脚图

图1.38255内部结构图

38253是24脚双列直插式芯片,+5V电源供电。

每个芯片内部有3个独立的计数器(计数通道,每个计数器都有自己的时钟输入CLK,计数输出OUT和门控信号

GATE。

数据总线D0~D7:

为三态输出/输入线。

片选信号CS,读信号RD,写信号WR,他们为输入信号,低电平有效。

地址线A1、A0,接到系统总线A1、A0上。

计数器时钟信号CLK,作用是在8253进行定时或计数工作是,每输入1个时钟脉冲信号CLK,便使计数值减1。

计数器门控选通信号GATE,计数器输出信号OUT,作用是计数工作时,每来1个时钟脉冲,计数器减1,当计数器值减为0,就在输出线上输出一OUT信号,以示定时或计数

以到。

图1.48253引脚图

48253/8254内部有6个模块:

数据总线缓冲器,读/写逻辑,控制命令寄存器,计数器0,计数器1,计数器2

数据总线缓冲器:

3态,双向8位寄存器和D0~D7相连。

读/写逻辑:

由CPU发来的读/写信号和地址信号来选择读出或写入寄存器。

控制命令寄存器:

接受CPU来控制字。

计数器:

8253有3个结构完全相同的计数器。

其内部由16为初值寄存器、减1计数器和当前计数值锁存器组成。

图1.58253内部结构图

1.3功能说明

1开关控制:

8255端口A工作在方式0,且为输入方式,端口B、C任意。

开关接在8255端口A的PA0~PA7,这样就可以通过8255读取开关量。

如下图:

图1.6开关控制图

2扬声器控制:

(18253计数器2的输出控制扬声器的发声音调(28253计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声(3扬声器还受控于并行接口(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共同执行(如图2.1。

利用8255A的PB0、PB控制扬声器的开启、关闭。

利用定时器8253驱动发声,CPU通过对8253通道2(端口地址42H进行编程,利用8253方式3以不同的脉冲频率产生不同的输出方波,方波信号通过滤波器、功率放大器使扬声器发声。

图2.1硬件电路连接图

2.2软件设计

利用汇编语言对接口进行编程控制。

程序模块主要包括8255A、8253的初始化、开关量的输入、扬声器的开启、关闭及程序的退出。

在使8253的初值计数与频率相对应有两种方法,一是利用表的操作,但这种操作不太容易实现,硬件的连接也比较麻烦,易出错;

以我采用的是比较跳转的方式,比较简单明了,容易理解。

程序中的模块关系见程序流程图。

图2.2程序流程图

2.3系统原理说明

1利用8个逻辑开关做为电子琴的键盘输入,高电平有效,则开关量由8255A的端口A方式0,输入方式(控制字AL=10010000B送入CPU中。

此时调用的是7号系统功能调用,从标准设备输入单字符置入AL寄存器中,调用格式为:

MOVAH,07H

INT21H

2CPU根据不同的开关量,将程序跳转到相应频率对应的8253的初始化,并给8253赋上频率对应的初始值,此时利用的是8253的通道2,方式3,产生不同频率的方波。

代码如下:

MOVAL,0B6H

OUT43H,AL

MOVAX,计数值

OUT42H,AL

MOVAL,AH

3要使8253OUT发出的方波频率与任务中的频率相同,则要给8253设置计数值,计算方法为:

计数值=输入时钟频率/任务要求频率

然后CPU将8255A的PB0、PB1置1,打开8253的GATE和与门(图2.1。

代码如下:

INAL,61H

ORAL,03H

OUT61H,AL8253

4产生的方波信号通过滤波器形成正弦信号,然后通过功率放大器,将正弦信号放大,驱动扬声器发声。

再然后CPU将8255A的PB0、PB1置0,关闭扬声器。

INAL,61H

ANDAL,0FCH

OUT61H,AL

再次输入开关量,则循环执行上面过程。

5当输入为PC键盘任意键输入时,则整个程序退出。

此时是调用的6号和4CH号系统功能调用,系统输入键盘任意键,返回DOS。

调用格式为:

MOVDL,0FFH

MOVAH,6

MOVAH,4CH

3测试

接通电路之后,按下开关键,依次拨动各个开关来控制作为扬声器的8253发声,发出静音、Si、La、Sol、Fa、Mi、Re、Do音调。

由于每个开关的音调发音时间有软件延时控制,所以当开关打开时,就会连续发出音节标称频率的声音。

整体进行硬件电路图和软件测试,把所需程序进行输入一切运行良好,可以完成模拟电子琴,通过开关键实现产生不同音节频率的功能

总结

通过这两周的硬件课程设计,我对微机原理及应用这门课有了更深的认识,系统的掌握了微机原理及接口的应用知识。

这次课程设计我做的是用开关模拟电子琴发声。

在老师确定题目后,我便去图书馆查阅了大量的关于开关输入和发声程序设计的书籍,然后确定好自己的方案,对自己的设计有了一个大概的思路。

通过编程,我学会了如何独立的写出程序,提高了自己的分析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。

课程设计中涉及到许多接口芯片,使我对这些芯片有了更深的认识,对芯片的各种工作方式有了更深的理解,虽然没有进行硬件的调试,但通过设计,我也学到了很多书本上没有的知识。

在设计当中遇到了很多的问题,但通过查找资料,克服了这些问题,提高了自己在实际当中解决问题的能力。

虽然此次课程设计的过程是艰辛的,但结果还是令我比较欣慰的。

在此特别感谢老师对我的指导。

附录代码

STACKSEGMENTSTACK

STACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,63H

MOVAL,90H

OUTDX,AL;

8255A初始化

INPUT:

MOVDX,60H

INAL,DX;

8255A端口A输入

INT21H;

从开关输入信号

CMPAL,00000001B

JZK1

CMPAL,00000010B

JZK2

CMPAL,00000100B

JZK3

CMPAL,00001000B

JZK4

CMPAL,00010000B

JZK5

CMPAL,00100000B

JZK6

CMPAL,01000000B

JZK7

CMPAL,10000000B;

判断从哪个开关输入并跳JZK8;

转到相应8253初始化

MOVAH,4CH;

键盘任意输入则退出程INT21H;

序,返回DOS

K1:

MOVAL,0B6H

MOVAX,0

JMPSING

K2:

MOVAX,2420

K3:

MOVAX,2712

K4:

MOVAX,3044

K5:

MOVAX,3419

K6:

MOVAX,3627

K7:

MOVAX,4072

K8:

OUT43H,AL;

8253初始化MOVAX,4572;

并给AX赋

JMPSING;

SING:

OUT42H,AL

OUT42H,AL;

传送计数值到8253INAL,61H

OUT61H,AL;

打开扬声器

关闭扬声器

JMPINPUT;

跳转到INPUTCODEENDS

ENDSTART

参考文献

[1]郑坤.微型计算机技术实验指导书.2007.

[2]戴梅萼,史嘉权.微型计算机技术与运用.清华大学出版社2003.[3]王爱英.计算机组成与结构.北京.清华大学出版社.1995.

[4]沈美明,温冬蝉.IBM-PC汇编语言程序设计.北京.清华大学出版社.2003.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

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

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