电子琴设计(微机原理课程设计).doc

上传人:b****1 文档编号:166514 上传时间:2022-10-04 格式:DOC 页数:20 大小:2.91MB
下载 相关 举报
电子琴设计(微机原理课程设计).doc_第1页
第1页 / 共20页
电子琴设计(微机原理课程设计).doc_第2页
第2页 / 共20页
电子琴设计(微机原理课程设计).doc_第3页
第3页 / 共20页
电子琴设计(微机原理课程设计).doc_第4页
第4页 / 共20页
电子琴设计(微机原理课程设计).doc_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

电子琴设计(微机原理课程设计).doc

《电子琴设计(微机原理课程设计).doc》由会员分享,可在线阅读,更多相关《电子琴设计(微机原理课程设计).doc(20页珍藏版)》请在冰豆网上搜索。

电子琴设计(微机原理课程设计).doc

微机原理课程设计

电子琴设计

指导老师:

贺勇

组员:

郑素凌(组长)201284250112

谢刚201284250131

陈力达201284250128

李伟201284250126

分工:

李伟:

编写源程序

谢刚:

调试程序及资料汇总

陈力达:

查找资料及制作文档

郑素凌:

制作流程图、绘制原理图

摘要:

8255介绍

8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其各口功能可由软件选择,使用灵活,通用性强。

8255可作为单片机与多种外设连接时的中间接口电路。

8253介绍

intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)

一、设计内容

编写一实现电子琴的程序,并实现若干扩展功能。

基本功能:

用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;

扩展功能:

1、在程序中可预设多首曲目,按一键可以进入预设子菜单,对要播放的曲目进行选择,并实现播放该曲目。

2、程序运行时有友好的用户介面。

3.当弹奏不同音阶时,双色点阵LED显示器显示不同的图案

二、元件与仪器

1.计时器8253

2.并行控制器8255A

3.实验台

三、设计原理、思路及流程图

1、设计原理

(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。

给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。

对于音乐,每个音阶都有确定的频率。

各音阶标称频率值:

(2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:

发"1"频率为261。

1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/32=0.12ms.定时时间可以由8253配合8255来实现。

按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。

本程序中设置默认长度为60个正弦波。

(3)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

(4)点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。

当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。

车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。

(5)实验仪上设有一个共阳极8×8点阵的红黄两色LED显示器,其点阵结构如图所示。

该点阵对外引出24条线,其中8条行线,8条红色列线,8条黄色列线。

若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。

例如欲显示汉字“年”,采用逐列循环发光。

首先由“年”的点阵轮廓,确定点阵代码(如图所示)根据“年”的点阵代码,确定逐列循环发光的顺序如下:

①行代码输出44H;红色列代码输01H;第一列2个红色LED发光。

②行代码输出54H;红色列代码输02H;第二列3个红色LED发光。

③行代码输出54H;红色列代码输04H;第三列3个红色LED发光。

④行代码输出7FH;红色列代码输08H;第四列7个红色LED发光。

⑤行代码输出54H;红色列代码输10H;第五列3个红色LED发光。

⑥行代码输出DCH;红色列代码输20H;第六列5个红色LED发光。

⑦行代码输出44H;红色列代码输40H;第七列2个红色LED发光。

⑧行代码输出24H;红色列代码输80H;第八列2个红色LED发光。

2、电路连接图如下:

(1)8253和8255连接如下

(2).实验仪上的点阵LED及驱动电路的行代码、红色列代码、黄色列代码各用一片74LS273锁存。

行代码输出的数据通过行驱动器7407加至点阵的8条行线上,红和黄列代码的输出数据通过驱动器DS75452反相后分别加至红和黄的列线上。

行锁存器片选信号为CS1,红色列锁存器片选信号为CS2,黄色列锁存器片选信号为CS3。

分别接上298h,2a0h,2a8h.

3.设计思路

在本次课程设计中,根据复杂程序设计思想——模块化程序设计,分析和确定程序总体设计目标:

电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。

程序设计的思路按以下顺序进行:

1.分析与确定程序总体设计目标

2.将总体目标划分为若干模块

3.定义每个模块的具体任务,明确它与其他模块间的通信方式

4.编写源程序,进行调试,包括:

简单电子琴主程序

结合实验指导书的两程序,将其分为若干个子程序,实现简单的播放和显示音阶的功能。

发音子程序

本子程序实现放音功能。

首先从键盘读出键码,判断,如果键码不是1-8(9除外)即仍然处于音阶输入准备状态,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。

播放60次后,然后判断是否有按键,如果有就进入死循环,直到下次按键为止。

放歌子程序

本子程序实现播放预置在程序中的歌曲,并加上一个选择子程序段,可通过选择进入不同曲目,进而实现播放不同的歌曲,播放时直接调用放音子程序

Led显示子程序

本程序实现从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

显示广告版子程序

本子程序实现在广告板上在输入不同音阶时有我们自行设计的图案显示。

输入不同图案相关的代码,然后调用图案显示判断程序段。

对其进行判断,然后进入图案显示代码,最终显示不同的图案。

源程序整体

程序开始,显示提示信息,接着调用发音子程序,实现发音和显示。

接着对9键进行判断、当9按下时,调用放音子程序。

然后iujinru选择,选择喜欢的歌曲并进行播放。

当检测到esc时,退出。

当每一个都检测不到时,退回到调用发音子程序,继续发音显示。

从而实现有扩展功能的电子琴。

5.模块连接,形成完整的程序

6.编写程序文档

4.流程图

以下用主程序与子程序配合流程图其进行说明。

(1)主程序流程图

开始

调用发音子程序

使用键盘输入

是否1到8键

放音子程序

N

Y

退出

是esc键

是否9键

N

Y

调用广告版子程序

Led子程序

Y

(2)发音子程序流程图

(3)led显示子程序

(4)显示广告板子程序

(5)放音子程序

开始

调用发音子程序

用键盘输入喜欢歌曲的序号(1-3)

是否1到3键

放音子程序

Y

N

Y

退出

是esc键

是否9键

Y

调用广告版子程序

Led子程序

N

N

四、源程序

STACKSEGMENTPARASTACK'STACK'

DB100DUP(0)

STACKENDS

DATASEGMENT

IOPORT EQU0C400H-0280H

IO8255A EQUIOPORT+288H

IO8255C EQUIOPORT+28AH

IO8255B EQUIOPORT+28BH

IO8253A EQUIOPORT+280H

IO8253B EQUIOPORT+283H

IO0832A EQUIOPORT+290H

PROT EQU0C400H-280H

PROTH EQU PROT+298H

PROTLR EQUPROT+2A0H

PROTLY EQU PROT+2A8H

DATA1DB80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH

DB0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96H

DB80H,66H,4EH,38H,25H,15H,09H,04H

DB00H,04H,09H,15H,25H,38H,4EH,66H ;正弦波数据

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

MESG1DB0DH,0AH,'INPUTANUM(1--8=PLAYPIANO,9=PLAYMUSIC,ESC=EXIT):

',0DH,0AH,'$'

MESG2DB0DH,0AH,'PLEASECHOOSETHEMUSICYOULIKE(1-AAA,2-BBB):

',0DH,0AH,'$'

TIMEDB120,110,100,90,81,72,55,42 ;发不同音时8253的计数器初值

NUMDB?

;NUM为8253计数器初值的序号--

MESSDB'STRIKEANYKEY,RETURNTODOS!

',0AH,0DH,'$'

MIN1DB00H,01H,02H,03H,04H,05H,06H,07H

COUNTDB0

JNUMDB?

;JNUM用来存储输入数字

MUSICDB30H,31H,31H,35H,35H,36H,36H,35H,30H,30H,34H,34H,33H,33H,32H,32H,31H,100DUP(30H);,35H,35H,34H,34H,33H,33H,32H,35H,35H,34H,34H,33H,33H,32H,31H,31H,35H,35H,36H,36H,35H,34H,34H,33H,33H,3;2H,32H,31H,

QMUSICDB?

DOWNDB31H,32H,33H,34H,35H,36H,37H,38H,38H,37H,36H,35H,34H,33H,32H,31H,100DUP(30H)

PPDB?

TTDB?

LMUSICEQU45

BUFF1DB00H,00H,18H,3CH,3CH,18H,00H,00H

BUFF2DB00H,1EH,0AH,46H,62H,50H,78H,00H

BUFF3DB00H,06H,06H,60H,60H,06H

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

当前位置:首页 > 考试认证 > 财会金融考试

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

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