微机原理课程设计—电子琴的设计

合集下载

电子琴的微机原理设计方案

电子琴的微机原理设计方案

电子琴的微机原理设计方案第一章方案论证1.1 设计规模和总体框架1.1.1系统的基本功能弹奏:用键盘输入对应的七个音阶,用户每按一个键盘琴键就弹奏相应的音符,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:演奏:电子琴设有8个按键,其中7个作为音符输入,另外一个作为模式转换按键,实现用户存放的自动播放歌曲。

按下键盘上某一个指定的建后自动弹奏预存琴谱功能;要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。

如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。

前面的发音停止,转到后按的键的发音程序。

发出后按的键的音调。

1.1.2系统的主要功能模块控制模块:选择AT89S52单片机来控制整个系统,其中P2口作为输入口,P1口为信号输出口,P1.0连接音响驱动电路。

用户编程模块:由键盘矩阵、LED显示管、扬声器这几个部分组成存储器模块:8088有1MB存储空间,系统提供用户使用的空间为00000H-0FFFFH,用于存放、调试实验程序。

键盘输入模块:用来操作者对机器的控制操作,在P2口连接有8个按键开关加8个拉电阻,它们一端接5伏电源,一端接地。

只要有一个按键被按下,并被单片机扫描到,则会播放发出音符。

(LED显示管显示当前按键,扬声器发出对应音符。

)输出驱动模块:利用AT89S52单片机的P0端口的P0.0-P0.7连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源;声音的播放模块,它接到P1.0口上,当有按键按下时,它通过AT89S52中心控制芯片的识别后发出相应的音符。

1.1.3系统的组成框图根据系统的功能要求,我们可以得到系统的组成框图:图1系统框图1.2操作流程 1.2.1如何使用系统安装及配置说明 系统运行环境WINDOWS XP PROTEUS 7.1 SP2 Keil uv3 2.12系统安装及配置安装Protues 和keil uVsision3。

微机课程设计电子琴PC电子琴

微机课程设计电子琴PC电子琴

微机课程设计电子琴PC电子琴一.设计的目的与意义 (2)二.设计的内容与要求 (2)三.系统的硬件设计 (3)3.1所用芯片的功能介绍 (3)3.2系统原理与硬件电路 (5)四.系统的软件设计 (6)4.1软件操纵流程 (6)4.2程序清单 (7)五.系统调试与运行 (16)六.设计收成 (16)七.要紧参考文献 (17)一.设计的目的与意义本课程设计要紧是通过汇编语言用软件编程的方法实现简单的PC仿真电子琴。

通过在«微机原理与接口技术»课程上所学的汇编知识和相关芯片知识,来完成本课程设计。

学习和把握运算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锤炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和明白得,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

二. 设计内容与要求设计一个利用DAC0832的输出数字声音的接口电路〔可参考实验台原理图〕,DAC0832的输出接至有源音箱,编程实现如下功能:1、按键发声:〔1〕当从键盘上敲击Q ~ U键时,音箱发出1 ~ 7的高音阶;〔2〕当从键盘上敲击A ~ J键时,音箱发出1 ~ 7的中音阶;〔3〕当从键盘上敲击Z ~ M键时,音箱发出1 ~ 7的低音阶;〔4〕按ESC键,程序终止。

2、屏幕上方显示课程设计题目、使用方法、作者姓名、单位及版权等信息3、屏幕下方显示钢琴键盘形状,当按动不同音阶的键时,相应的乐键要出现被按下的形状。

三. 系统的硬件设计3.1所用芯片的功能介绍1.DAC0832芯片介绍DAC0832是由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成,采纳二次缓冲方式,如此能够在输出的同时,输入下一个数据,以提高转换速度。

更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。

其内部逻辑结构如下图。

微机简易电子琴课程设计

微机简易电子琴课程设计

微机简易电子琴课程设计一、课程目标知识目标:1. 学生能理解电子琴的基本原理,掌握其结构与功能;2. 学生能掌握微机与电子琴连接的简易方法;3. 学生能了解并运用基本的音乐理论知识,如音符、音阶、和弦等。

技能目标:1. 学生能通过编程软件控制电子琴演奏简单曲目;2. 学生能运用所学的电子琴知识,创作出自己的音乐作品;3. 学生能提高动手实践能力,通过组装、调试电子琴,培养解决问题的能力。

情感态度价值观目标:1. 学生培养对音乐和电子制作的兴趣,提高创新意识和动手能力;2. 学生通过团队协作,培养沟通、分享、合作的良好品质;3. 学生在学习过程中,体会科技与艺术的结合,提升对美的鉴赏能力。

课程性质:本课程为实践性较强的综合课程,结合信息技术和音乐艺术,让学生在动手实践中学习电子琴知识。

学生特点:六年级学生具有一定的信息技术基础,好奇心强,喜欢动手操作,同时具备一定的音乐素养。

教学要求:教师应关注学生的个体差异,以学生为主体,引导他们主动探究、合作学习,注重培养学生的动手能力、创新意识和审美情趣。

通过课程目标的实现,使学生达到预期的学习成果,为后续学习打下坚实基础。

二、教学内容1. 电子琴基础知识:介绍电子琴的原理、结构与功能,包括键盘、音源、音色、音量控制等组成部分。

- 教材章节:第二章“电子琴的原理与结构”- 内容列举:电子琴的原理、键盘布局、音色种类、音量控制方法等。

2. 微机与电子琴连接:讲解如何使用编程软件(如Scratch)与电子琴进行连接,实现简易控制。

- 教材章节:第三章“微机与电子琴的连接方法”- 内容列举:编程软件的安装与使用、电子琴与计算机的连接方式、基本指令编写。

3. 音乐理论知识:学习基本的音乐理论知识,如音符、音阶、和弦等,为创作和演奏打下基础。

- 教材章节:第四章“音乐理论基础”- 内容列举:音符、音名、音阶、和弦的识别与运用。

4. 电子琴演奏与创作:通过实践,学会演奏简单曲目,并尝试创作自己的音乐作品。

微机原理课程设计 电子琴

微机原理课程设计 电子琴

微机原理课程设计报告院系:襄樊学院物理与电子工程学院班级:电子信息科学与技术0611班指导老师: 张静姓名:杜勇 06111028邓丰 06111025雷雄06111026目录一、课题名称及设计组成员 (3)二、课题内容及要求 (3)三、方案、系统组成框图和工作原理说明 (3)1、方案 (4)2、系统组成框图 (4)3、工作原理 (5)四、程序功能描述及程序流程 (5)2、程序功能描述 (5)3、程序流程图 (5)五、程序源代码及注释 (6)六、DOS/BIOS功能调用,文件列表清单 (16)七、电路的连接及调试 (17)1、电路连接 (17)2、调试步骤 (17)八、调试中出现的问题、原因及排除方法 (18)九、收获和体会 (20)十、参考文献 (20)一、课题名称及设计组成员二、课题内容及要求1、计算机钢琴基本功能:I、利用键盘按键“q、w、e、r、t、y、u”实现音调的重低音输入,利用键盘按键“a、s、d、f、g、h、j”实现音调的低音输入,利用键盘按键“z、x、c、v、b、n、m”实现音调的中音输入,利用键盘按键“1、2、3、4、5、6、7”实现音调的重低音输入。

II、实现菜单选择以及处理各种功能键的多种中级功能。

2、音乐播放系统控制实现功能:①制作一个菜单,使用菜单条选择功能,让用户选择演奏的乐曲。

②用定时器方式演奏画皮之主题曲《画心》实现音乐演奏。

③提示使用ESC键或者ENTER键可以退出当前过程或返回DOS。

④实现控制变量可以控制不同的效果以及要求,如播放速度,间隔等。

⑤界面美观,程序结构化程度高,模块结构合理。

⑥设计出相应的音乐取码软件。

3、实验环境16位的汇编语言程序设计有几种工作环境,本实验以及所有程序都是通过MASM5.0编译的,MASM5.0一个汇编语言的编译、连接、调试及运行的集成环境。

支持标号的快速定位,编译速度快。

三、方案、系统组成框图和工作原理说明1、方案基于PC计算机的时钟晶振为1.1931816MHz,利用电脑里面的蜂鸣器发出声音。

微机原理课设 电子琴8253 8255

微机原理课设  电子琴8253 8255

一、内容摘要设计一个电子琴。

利用数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调。

二、课程设计的目的和意义1、进一步掌握定时器编程和应用。

2、了解微机利用定时器产生音乐的基本方法。

三、课程设计的要点和内容1、根据音阶频率表,利用定时器可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。

2、对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:本次课设要求设计一个电子琴,作为一个乐器,其最基本的功能就是能够发出一个音阶的所有声音,即:do,re,mi,fa,so,la,xi,dou,8个音符,不同的声音的本质就是不同频率的波,每个音符都对应着固定的频率;而声音的长短即是波的个数。

所以得出的一条思路是:用汇编语言来产生一系列频率不同的方波信号,找到各个音符的频率,然后用汇编语言产生同频信号,并将该信号输入到扬声器,如果驱动功率不够则可以加放大电路。

四、硬件电路设计1、单元电路设计:硬件结构应结合软件方案一并考虑,做到软件、硬件功能相匹配。

在DJ-598K 三合一单片机微机试验仪平台上,硬件设计参考方案如下:2、电路工作原理:2.1可编程8253计数器(1)在计算机的引用中,常常要对外设的某些信号进行计数,希望计算机既能控制技术的过程,还有能读取计数的结果,进而作为控制或管理的决策依据。

如果被计数的信号有了准确的固定的周期,就形成了定时器。

(2)图为8253的内部组成和引脚。

如图所示,与外部的连接线主要分布在右侧的三个部分,即:三个计数器。

其中CLK为计数通道的输入脉冲信号,对于8253来说的频率范围是0—2MHz。

GATE为门控信号,用来启动或禁止计数工作,高电平有效,不同的工作方式,作用也不同。

Out为输出信号,用来输出波形,不同的工作方式,不同的工作方式,输出的波形也不同;而与CPU的的内部接线主要分布在左侧的三个部分。

微机原理及应用课程设计(电子琴)

微机原理及应用课程设计(电子琴)

目录:一、课程设计的目的与要求1.设计目的2.设计要求3.主要技术指标二、课程设计课题的分析三、课程设计的结果1.实验代码2.实验现象3.实验说明四、课程设计心得与体会五、参考文献主要实验内容计算机电子琴仿真一、课程设计的目的与要求1、设计目的本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。

本课程设计的目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。

2、设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:1)掌握汇编语言程序设计的基本方法。

2)进一步理解各种接口电路的应用。

例如8255并行接口,8253定时器等。

3)掌握利用PC机扬声器发出不同频率声音的方法。

3、主要技术指标编写程序1)在程序运行时使PC即成为一架可弹奏的电子琴。

当按下小写字母a-g时,依次发出低八度1,2,3,4,5,6,7这7个音调,当按下数字键1-7时,依次发出C调的1,2,3,4,5,6,7这7个音,而当按下大写字母A-G时,依次发出高八度1,2,3,4,5,6,7这7个音调。

按下CTRL+C或者回车则退出电子琴状态。

2)在程序运行时使PC自动按要求提示演奏乐曲。

二、课程设计课题的分析1、主要步骤及其内容的分析:先根据乐谱对应的频率编写相应的频率表,然后根据1,9,10号功能键的调用实现界面的显示;由于在计算机内部8254,8255已经连接好(在下面会介绍连接示意图)。

要求是实现8个音符的发音,但是在我们所做的课设中不但实现了8个音符的发音而且还根据乐谱编写了天空之城的曲子和big bigworld的曲子;更运用循环结构设计了音符的低,中,高音的不同发音。

在开始编写的程序中,当执行一个曲子的时候并不可以中断只能等待其结束,后来在查阅资料后更改原来的程序后;当在执行一个曲子的时候,当你按下任意的按键就可以终止曲子,返回开始的界面。

微机原理——简易电子琴

微机原理——简易电子琴

课程名称:微型计算机原理与接口技术设计题目:模拟简易电子琴一、题目分析题目:模拟简易电子琴1.由于题目要求该程序有多个功能,而且是分工合作,所以采用菜单选择形式实现多功能实现在一个程序里,再用不同的子函数实现不同的功能,用主函数在不同的输入指令下调用不同的子程序来实现不同的功能。

2.为了使计算机无需音响输出设备就可以发声,我们利用ROM BIOS中的BEEP子程序,它能根据BL中给出的时间计数值控制8254定时器,产生持续声音。

通过对BEEP的修改可以使其产生任一频率的声音。

用汇编语言编写的程序GENSOUND,能使PC机发出指定频率和指定延迟时间的声音,它是一个很好的通用发声程序。

组成乐曲的每个音符的频率值和持续时间是乐曲发声程序所必须的两组数据,知道了音调及频率的关系后,就可以按照乐曲的乐谱将每个音符的频率和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音,本程序通过调用GENSOUND程序演奏乐曲。

二、总体设计1.把所有变量写进data中,完成data和stack的定义;2.利用宏的定义设计功能菜单,在程序中为了能够循环起来,运用比较(cmp)和跳转(jz)使菜单循环起来;3.写一个在模拟钢琴中,已经有的音乐,我们以粉刷匠这首儿歌为例,把它插在其中实现原有音乐的播放;4.根据PC机的键盘数字八度音程的钢琴程序,整理,能发出6,7,1,2,3,4,5,6,7,i,十个音调三、实验环境,在其中运用,子程序的调用和宏定义;5.运用录音的功能把在上一个用键盘实现按键功能的音乐录下来,在写一个播放音乐的子程序,调用录音子程序,实现回放功能;三、实验环境1.用editplus去编写汇编语言;2.用masm去编译,再用link去连接,然后在dos运行exe文件。

四、制作步骤1.编写步骤,我们采用不同子程序整合为一个总程序的办法逐步实现2. 运行步骤,按1键演奏乐曲,按2键可以演奏歌曲,在输入音键的同时输出相应音符并在屏幕上显示出来,按3键演奏刚刚在步骤2中用户演奏的乐曲,按0键自行推出程序,。

微机原理及应用电子琴课程设计

微机原理及应用电子琴课程设计

微机原理及应用电子琴课程设计第一篇:微机原理及应用电子琴课程设计科技学院微机原理及应用课程设计设计名称:设计模拟电子琴模拟指导老师:指导老师:-----设计者姓名:-----专业班级:自动化学号:----------设计时间:2012.6摘要:本文通过 8255 和 8253 来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。

输入部分:主要是由8255 和 8 个常开型开关来完成。

发音部分:CUP 通过对定时器 8253 的通道 2 进行编程,使其 I/O 寄存器接收一个控制声音频率的 16 位计数值,端口 61H 的最低位控制通道 2 门控的开断,以产生特殊的音响。

本文用到的是8253 的方式3——方波发生器。

关键词:关键词:8253 定时器;8255;电子琴1.引言引言:8253 芯片是常用的可编程计数器,在微机中有着极其重要的作用。

常用于事件计数器,单稳态触发器,分频器,方波发生器,硬件触发的单脉冲发生器等。

计数器/定时器8253 包括3 个独立的16 位计数器通道,而每个计数器都有 6 种工作方式,可以按二进制或十进制(BCD 码)进行计数。

本文用到的是 8253 的方式 3——方波发生器来实现了简易电子琴的设计。

2.1 8253 简介8253 为可编程定时/计数器,一片 8253 上有 3 个独立的 16 位计数器通道,可以作为定时器或计数器使用,每个计数器都可设定为按照二进制或BCD 码进行计数,计数速率可达2MHZ,每个计数器有6 种工作方式,可编程设置和改变。

如下图为 8253 的内部结构图。

在图中可以清楚地看到,8253 主要是由数据总线缓冲存储器,读写控制电路,控制字寄存器和 3 个通道 4 部分所组成。

8253 内部结构【1】(如图1 所示)及外部引脚【1】(如图2所示)图 1:8253 内部结构图图 2:8253 引脚图8253 的控制字和编程【1】如图 3 所示图 3:8253 控制字 2.8253 的工作方式 3——方波发生器【1】方式 3 的波形如图 4 所示,它的特点是:(1)输出为周期性的方波。

微机原理课程设计-电子琴

微机原理课程设计-电子琴

项目四电子琴的制作一、设计目的通过该设计,掌握8253定时计数的基本原理和应用,掌握8255并行接口芯片的使用,掌握普通键盘的设计,并掌握相应的程序设计和电路设计的技能。

是对8253定时计数章节理论学习的总结和补充,为后续的硬件课程的学习打下基础。

二、设计内容利用KB-C扩展板提供的18个按钮开关,作为电子琴的按键,能够演奏简单的音乐,按键能实现“1-多,2-来,3-米…”,且单个音发音的长短由按键所按下的时间决定,即:某按钮按下时开始发声,松开时结束发音。

按钮与8255A 的连接见原理部分。

其中8255A负责检测按键,8253负责产生各种频率的声音。

三、基本原理在KB-C板上,端口A负责发按键扫描信息,端口C的低3位,即PC0、PC1、PC2,负责接收扫描结果,如下图所示,先定时通过端口A(PA0,PA1,PA2,PA3,PA4,PA5)扫描各按钮,即先PA0=0,其它为1发信号,然后PA1=0,其它为1…,端口发出1个信号后,即读端口C,如果PC0,PC1,PC2全为高电平,说明无按钮按下,如果PC0为低电平(PC1,PC2肯定为高电平),且此时,端口扫描的情况是:PA0=1,PA1=0,PA2=1,…则说明SW1被按下。

发出各种不同的声音的原理见实验指导书中的音乐发生器实验。

下表为2个八度的音阶表:四、设计步骤1.电路设计:根据设计内容,通过分析,设计出相应的电路图。

2、控制字设计:根据要求,设计出各自8255的控制字和8253控制字。

3、程序设计:根据要求,设计程序流程图,并设计相应的程序。

4、验证:在实验室具体测试和验证。

实验七音乐发生器接口实验一、实验类型设计性实验(选做)。

二、实验目的和任务通过音乐发生器实验,学习如何利用8253定时/计数器进行声音控制电路的设计原理与方法。

三、预习要求预习第7章8253。

四、实验原理1.音乐发生器驱动模块电路原理如图 2.1.12所示。

模块包含喇叭SPK,LM386A ,74LS08,以及74LS245和LED 等。

微机原理课程设计电子琴

微机原理课程设计电子琴
微机原理课程设计电子琴
一、教学内容ቤተ መጻሕፍቲ ባይዱ
本节课为微机原理课程的实践环节,选取《微机原理与应用》教材第七章“微机接口技术”及第十章“微机在仪器仪表中的应用”为理论依据,设计了一堂以“电子琴”制作为主体的课程。教学内容主要包括:1.微机与电子琴硬件接口原理,特别是I/O接口地址译码及编程;2.利用基本微机接口实现电子琴音调的控制,包括键盘扫描、音调发生器的使用;3.电子琴软件编程,通过编写简单的BIOS调用或DOS中断实现音色的播放与控制;4.熟悉并掌握电子琴的制作流程,包括电路设计、程序编写、调试与优化等。通过本节课的学习,学生将能理论与实践相结合,深入理解微机接口技术,增强动手能力与创新能力。
5、教学内容
本节课将是对电子琴项目的一个总结和应用拓展,教学内容如下:1.电子琴功能的创新设计,鼓励学生思考如何添加新的功能,如录音、播放、节奏伴奏等;2.介绍微机与其他外设的通信接口,如USB、蓝牙等,为电子琴的远程控制或数据传输打下基础;3.电子琴的电源管理设计,讲解如何为电子琴设计稳定的电源供应系统;4.实践电子琴的组装和外壳设计,提升学生的工业设计和实际动手能力;5.组织学生进行课堂展示和答辩,培养他们的表达能力和公众演讲技巧。通过本节内容的实践,学生将能够综合运用所学知识,发挥创造力,完成一个具有实用性和创新性的电子琴项目,并在此过程中提升自身的工程实践能力和团队合作精神。
2、教学内容
本节课进一步深化微机原理的应用,以“电子琴”项目为载体,教学内容具体包括:1.电子琴键盘布局设计与实现,让学生了解如何通过微机接口读取键盘输入;2.音阶生成算法介绍,探讨如何通过编程产生不同音调;3.利用微机定时器/计数器产生稳定的时钟信号,保证音色的准确性与连贯性;4.简单的乐曲编程与演奏,指导学生如何将音符组合成乐曲并进行演奏;5.电子琴功能的扩展,如增加音量控制、音色选择等,提高电子琴的交互性和趣味性。

电子琴微机课程设计

电子琴微机课程设计

电子琴微机课程设计一、课程目标知识目标:1. 学生能理解电子琴的基本结构和演奏原理;2. 学生能掌握电子琴常用的微机操作技巧,如音色选择、节奏设定等;3. 学生能熟悉并运用电子琴演奏中的基本音乐理论知识,如音阶、和弦等。

技能目标:1. 学生能熟练操作电子琴,进行简单的独奏和伴奏;2. 学生能运用微机功能创作简单的音乐作品;3. 学生能在团队协作中,与他人共同完成一首电子琴演奏作品。

情感态度价值观目标:1. 培养学生对电子琴音乐的兴趣和爱好,激发他们的学习热情;2. 培养学生具有合作精神,尊重他人,共同进步的团队意识;3. 培养学生具有创新意识,敢于尝试,勇于表现的音乐素养。

课程性质:本课程以实践操作为主,注重培养学生的动手能力和创新能力,结合音乐理论知识,提高学生的音乐素养。

学生特点:本课程面向具有一定音乐基础的小学高年级学生,他们对新鲜事物充满好奇,善于模仿,具有较好的学习积极性。

教学要求:教师应注重个体差异,因材施教,鼓励学生积极参与实践,注重课程内容的实用性和趣味性,提高学生的学习兴趣。

通过课程学习,使学生在掌握电子琴演奏技巧的同时,培养良好的情感态度和价值观。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 电子琴基础知识:介绍电子琴的结构、演奏原理、音色种类和功能操作。

- 教材章节:第一章 电子琴概述- 内容:电子琴的起源、发展;电子琴各部分功能及操作方法。

2. 基本音乐理论知识:学习音阶、和弦、节奏等基本音乐概念。

- 教材章节:第二章 音乐理论基础- 内容:大、小调音阶;三和弦、七和弦;常见节奏型及拍号。

3. 电子琴演奏技巧:学习电子琴演奏中的基本指法和演奏技巧。

- 教材章节:第三章 电子琴演奏技巧- 内容:指法练习;音色、节奏选择与切换;简单独奏曲练习。

4. 实践与创作:运用所学知识进行实际操作,创作简单的音乐作品。

- 教材章节:第四章 实践与创作- 内容:编配简单的伴奏;创作短小的音乐作品;团队协作完成演奏作品。

微机原理与汇编语言课设——电子琴

微机原理与汇编语言课设——电子琴

微机原理与汇编语言课设——电子琴一、引言电子琴是一种常见的电子乐器,其原理主要是利用微控制器和音频芯片来实现音乐的产生和演奏。

本文将介绍微机原理与汇编语言课设中关于电子琴的设计和实现。

二、设计目标本次课设的设计目标是实现一个简单的电子琴,具备以下功能:1. 发出不同音高的音符;2. 支持多种音效,如音量调节、音色切换等;3. 支持多音同时演奏。

三、硬件设计1. 微控制器选择本次设计选用了ATmega328P微控制器作为主控芯片。

它具有丰富的外设资源,适合用于音频处理和控制。

2. 音频芯片选择为了实现音乐的产生,我们选择了一个音频芯片,例如YM2612。

它能够根据输入的音符和音效参数产生相应的音频信号。

3. 键盘电路设计电子琴的键盘通常采用矩阵键盘的设计,通过扫描键盘的状态来检测按键的触发。

我们可以使用行列扫描法来实现键盘的检测。

4. 音频输出电路设计为了将产生的音频信号输出到扬声器上,我们需要设计一个音频输出电路。

一般来说,可以使用功放电路来放大音频信号,然后通过扬声器播放出来。

四、软件设计1. 系统初始化在系统初始化阶段,我们需要对微控制器进行初始化设置,包括时钟配置、引脚配置等。

2. 键盘扫描通过行列扫描法,我们可以检测到按下的键盘按键。

一旦检测到按键按下,我们需要进行相应的处理,例如发出对应的音符。

3. 音符发声根据键盘扫描的结果,我们可以确定需要发出的音符。

通过音频芯片,我们可以将相应的音符转换为音频信号,并输出到音频输出电路。

4. 音效处理除了发出不同音高的音符外,我们还可以通过调节音量、切换音色等方式实现多种音效。

这些音效参数可以通过按键或旋钮来控制。

5. 多音演奏电子琴通常支持多音同时演奏的功能。

为了实现这一功能,我们可以通过多线程或中断的方式来处理多个音符的发声。

五、实验结果经过设计和实现,我们成功地完成了一个简单的电子琴。

它能够发出不同音高的音符,并支持多种音效。

通过按键和旋钮的操作,我们可以控制音量、音色等参数。

微机原理课程设计报告电子琴

微机原理课程设计报告电子琴

摘要本次专业课程设计作为前阶段学习知识的一个检验,培养了我们的动手能力以及独立思考设计的能力,也是大学培养的一个重要实践步骤。

设计初期,我们通过网络,图书馆等资源查找到利用单片机设计制作电子琴的相关信息,对不同的方案进行细致的分析比较。

并且按照题意与实际情况进行改进,使之符合要求。

尔后利用恒科HK-51仿真开发系统编译软件对设计程序进行调试,最终确定了成熟的方案。

然后按照电路图进行实物焊接,最终做出一个简单的电子琴。

制作过程中发现的一些问题通过共同的分析研究得到的解决,此次课程设计巩固了前期的理论知识,增强了动手实践能力。

程序主要是由定时子程序、发光二极管显示子程序和中断服务程序组成。

包括对8253、8255等可编程器件的编程。

关键词:8255;8253;中断;脉冲信号目录1 概述 (1)1.1 设计目的 (1)1.2 8255和8253的工作原理 (1)2 电子琴设计原理及流程图................... 错误!未定义书签。

2.1 设计原理.............................. 错误!未定义书签。

2.2 流程图................................ 错误!未定义书签。

3 设计思路................................. 错误!未定义书签。

4 源代码................................... 错误!未定义书签。

5调试情况及其分析 (15)6 课程设计总结............................. 错误!未定义书签。

参考文献 (29)1 概述1.1 设计目的(1)了解交通灯管理的基本工作原理;(2)熟悉8255A并行接口的各种工作方式和应用;(3)熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法;1.2 8255和8253的工作原理1.2.1 8255A的工作原理⑴8255A的内部结构①数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。

微机原理课程设计-简易电子琴设计

微机原理课程设计-简易电子琴设计

简易电子琴设计一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。

通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。

为以后学生结合专业从事微机应用设计奠定基础。

二、设计的原始资料及依据(1)查阅定时器8254,可编程8255及音节的频率范围等资料。

(2)通过改变键盘输入来改变8254输出频率,实现扬声器发音。

三、设计的主要内容及要求内容:利用微机原理试验箱,设计简易电子琴。

要求:(1)可以弹出7个音阶。

(2)弹奏简短音乐。

四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。

2.学生应撰写的内容为:目录、正文、参考文献等。

课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.说明书(论文)手写或打印均可。

手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。

4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。

五、设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。

在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。

六、时间进度安排;七、主要参考资料(文献)。

1、《微机原理与应用》大连理工大学出版社2、《微机原理与接口技术》北京航空航天大学出版社3、《微型计算机原理与汇编语言》电子工业出版社4、《8088/8086汇编语言程序设计》中央广播电视大学出版社沈阳工程学院微机原理及应用课程设计成绩评定表系(部):自动控制系班级:自本051 学生姓名:陈阳摘要微机原理课程设计——设计简易电子琴本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。

电子琴微机原理课程设计

电子琴微机原理课程设计

电子琴微机原理课程设计一、课程目标知识目标:1. 学生能理解电子琴的基本工作原理,掌握微机在电子琴中的应用;2. 学生能描述电子琴的音色生成、音阶控制和演奏功能等相关的微机技术;3. 学生掌握电子琴编程的基本知识,能够运用所学知识进行简单的程序编写。

技能目标:1. 学生通过动手实践,能够操作电子琴与微机的连接,进行基础的音乐编程;2. 学生能运用电子琴微机原理,解决实际演奏中遇到的技术问题;3. 学生具备团队协作能力,能够与同学合作完成电子琴音乐作品的创作。

情感态度价值观目标:1. 学生培养对音乐科技的兴趣,激发创新精神,提高审美情趣;2. 学生通过学习电子琴微机原理,增强对现代科技的认识,培养科学素养;3. 学生在学习过程中,养成积极探究、主动思考的学习习惯,形成严谨、务实的科学态度。

课程性质:本课程为音乐与信息技术的跨学科课程,旨在让学生在掌握电子琴演奏技巧的基础上,深入了解微机原理,提高学生的创新能力和实践能力。

学生特点:学生处于具备一定电子琴演奏基础和信息技术知识的年级,对新鲜事物充满好奇,动手能力强,喜欢探索和挑战。

教学要求:教师需结合学生特点,采用理论与实践相结合的教学方法,引导学生主动参与,注重培养学生的实际操作能力和团队协作能力。

通过课程学习,使学生能够将所学知识应用于实际演奏和创作中,达到预期的学习成果。

二、教学内容1. 电子琴结构与工作原理:介绍电子琴的硬件组成、键盘原理、音源发生器、音色设置等基础知识,使学生了解电子琴的基本构造及其工作原理。

相关教材章节:第一章 电子琴概述2. 微机在电子琴中的应用:讲解微机在电子琴中的功能,如音色控制、演奏功能、音乐编程等,使学生明白微机在电子琴演奏中的重要作用。

相关教材章节:第二章 微机在电子琴中的应用3. 电子琴编程基础:教授电子琴编程的基本方法,包括编程语言、程序结构、常用编程技巧等,培养学生实际操作和创作能力。

相关教材章节:第三章 电子琴编程基础4. 实践操作与作品创作:安排学生进行电子琴与微机的连接、音乐编程实践,以及团队合作创作电子琴音乐作品,巩固所学知识,提高学生的实践能力和团队协作能力。

微机原理课程设计—电子琴的设计

微机原理课程设计—电子琴的设计

课程设计任务书学生姓名:刘沛专业班级: 电气0901指导教师:张锐工作单位:自动化学院题目:计算机电子琴软件软件设计初始条件:1.用于调试程序的IBM兼容PC机一台;2。

安装DOS/WIN98操作系统或运行于DOS/ WIN98兼容方式;3。

EDIT 等文本编辑器输入80x86汇编程序,MASM 5。

0编译及链接程序。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹奏功或演奏。

其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。

2.说明书撰写格式应符合《课程设计说明书统一书写格式》。

时间安排:1。

程序框图设计,3天2。

编程,4天3。

调试,3天4.编写设计报告,4天指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)1 设计任务和思路 (1)1.1设计任务 (1)1.2设计思路 (1)2更件部分工作原理 (2)2。

1 8255工作原理 (2)2.2 8253工作原理 (2)3程序流程图 (4)3.1主程序流程图 (4)3。

2演奏子程序流程 (5)3.3音乐播放子程序流程 (6)3.4弹奏子程序流程图 (6)3.5发音子程序流程图 (7)4各部分功能实现说明 (7)4。

1 发音部分功能实现 (7)4。

2 变调功能的实现 (8)4.3 弹奏功能的实现 (8)4.4演奏功能的实现 (9)4.4。

1歌曲选择功能实现 (9)4.4。

2 音乐播放功能实现 (9)5 程序运行结果 (10)结束语 (12)参考文献 (13)附录程序清单 (14)成绩评定表 (19)摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

利用汇编语言能够直接访问与硬件相关的存储器或I/O端口,从而最大限度地发挥硬件的功能.本文主要介绍了利用汇编语言设计一个运行于计算机的电子琴软件,软件能够实现弹奏,演奏的功能,当按下弹奏键时,实现弹奏功能,发出音符对应频率的声音,按下演奏键时,实现演奏功能,播放预存的音乐,按下指定的音调选择按键后,选择低音,中音或高音,则分别用低音,中音或高音进行弹奏或演奏。

微机原理与接口技术课程设计报告——电子琴

微机原理与接口技术课程设计报告——电子琴

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

功能:1.在程序中可预设多首曲目,按不同的敏感键可播放不同的曲目2.弹奏:用户每按一个键盘琴键就弹奏相应的音符;3. 当弹奏不同音阶时,双色点阵LED显示器显示不同的图案二、元件与仪器1.计时器82532.并行控制器8255A3.实验台TDN-MD三、设计原理、思路及流程图1.电子琴的设计原理及思路1.用试验箱上的晶振输出一个高频的信号,接入8253,用软件给8253和敏感键区进行初始化,敏感键控制不同的频率,并送此分频数给8253,从8253输出相应的音频后,接一个非门,再接入硬件扬声器,扬声器接受到不同频率的波后发出不同的声音。

2.用敏感键触发中断服务子程序来判断是给出了哪一个频率。

3.用ESC按键来控制是自动演奏曲目1并亮红灯,其他7个键分别控制da,ri,mi,fa,sa,la,si并亮绿灯。

4.其中用一个延时程序,使得发一个音有一定的延时时间。

5.有个停止程序,使得晶振不能使得扬声器发声。

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

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

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

各音阶标称频率值和8253的计数初值:不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为647HZ,周期为1/647=1.55ms,由于实验箱中的晶振可产生一个为1.8432MHZ的频率。

1.625MHZ/647HZ=2511,即分频数。

转化为十六进制的数为:9CFH,再经过频率处理,除以25H得到8253的计数初值:43H。

其他的初值的计算同理。

2.电子琴的硬件框图和硬件连接图图 1 硬件框图图 2 电路连接图3.电子琴的流程图设计四、源程序1.主程序:A 2000MOV AL,86HOUT 63H,ALMOV AX,3000MOV [00A8],AXMOV AX,0000MOV[00AA],AX//表示ESC键的中断向量地址,自动播放音乐MOV AX,3100MOV [00AC],AXMOV AX,0000MOV [00AE],AX//表示`键的中断向量地址,发音1MOV AX,3200MOV [00B0],AXMOV AX,0000MOV [00B2],AX//表示-键的中断向量地址,发音2MOV AX,3300MOV [00B4],AXMOV AX,0000MOV [00B6],AX//表示\键的中断向量地址,发音3MOV AX,3400MOV [00B8],AXMOV AX,0000MOV [00BA],AX//表示;键的中断向量地址,发音4MOV AX,3500MOV [00BC],AXMOV AX,0000MOV [00BE],AX//表示,键的中断向量地址,发音5MOV AX,3600MOV [00C0],AXMOV AX,0000MOV [00C2],AX//表示。

电子琴微机课程设计

电子琴微机课程设计

电子琴微机课程设计一、教学目标本课程旨在让学生了解和掌握电子琴微机的基本原理和操作技巧。

通过本课程的学习,学生将能够:1.知识目标:理解电子琴的工作原理,掌握电子琴的基本结构和功能,了解电子琴音乐制作的基本流程。

2.技能目标:学会使用电子琴,掌握基本的演奏技巧,能够演奏简单的乐曲;学会使用电子琴相关的计算机软件,进行音乐创作和编辑。

3.情感态度价值观目标:培养学生对音乐的热爱和鉴赏能力,提高学生的人文素养,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.电子琴的基本原理:介绍电子琴的工作原理,电子琴的构造和功能,让学生了解电子琴内部电子元件的作用和相互之间的关系。

2.电子琴的演奏技巧:教授电子琴的基本演奏技巧,包括指法、节奏、音色等,让学生能够熟练地演奏简单的乐曲。

3.电子琴音乐制作:介绍电子琴相关的计算机软件,教授音乐创作和编辑的基本方法,让学生能够独立地进行音乐创作。

4.乐曲欣赏和分析:通过欣赏和分析经典电子琴乐曲,提高学生对音乐的鉴赏能力,培养学生的音乐素养。

三、教学方法为了实现本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过教师的讲解,让学生掌握电子琴的基本原理和演奏技巧。

2.讨论法:通过学生之间的讨论,促进学生对音乐的理解和思考。

3.案例分析法:通过分析经典乐曲,让学生了解和掌握音乐创作的技巧。

4.实验法:通过学生的实际操作,培养学生的动手能力和实践能力。

四、教学资源为了保证本课程的顺利进行,我们将准备以下教学资源:1.教材:选用适合学生水平的电子琴教材,为学生提供系统的学习材料。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:准备相关的音乐视频、音频等资料,为学生提供生动的学习体验。

4.实验设备:准备电子琴和相关设备,让学生能够进行实际的操作和练习。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

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

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

目录一、前言 (1)1.1汇编语言简介 (1)1.1.1概述 (1)1.1.2汇编语言的特点 (1)二、课程设计的目的和意义 (2)2.1设计目的 (2)2.2设计意义 (2)2.3设计所需设备 (2)三、课程设计的容和要求 (3)3.1设计容 (3)3.2设计要求 (3)四、课程设计的相关技术 (4)4.1.可编程定时器/计数器8253 (4)4.1.1 8253的主要特性 (4)4.1.2 8253的部结构 (4)4.1.3.8253的控制字和初始化编程 (5)4.2.可编程并行输入/输出接口芯片8255A (6)4.2.1 8255的主要特性 (6)4.2.2.8255SA的部结构 (7)4.2.3.8255A的引脚信号 (8)4.2.4. 8255A的控制字 (10)4.3.电路连接 (11)4.4.工作原理 (12)五、课程设计过程 (13)5.1 电子琴设计思路 (13)5.2程序流程图设计 (14)5.3软件各模块容 (14)5.3.1.开启扬声器 (14)5.3.2.关闭扬声器 (15)5.3.3.演奏单音符 (15)5.3.4.控制演奏时间 (16)5.4程序清单及详细注释 (16)六、课程设计结果 (19)七、课程设计小结 (20)八、参考文献 (21)一、前言1.1汇编语言简介1.1.1概述汇编语言是面向机器的程序设计语言。

在汇编语合中,用助记符代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。

这样用符号代替机器语言的二进制码,就把机器语音变成了汇编语言。

于是汇编语言亦称为符号语言。

使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。

汇编语言把汇编程序翻译成机器语言的过程称为汇编。

1.1.2汇编语言的特点1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书学生姓名:刘沛专业班级:电气0901指导教师:张锐工作单位:自动化学院题目: 计算机电子琴软件软件设计初始条件:1.用于调试程序的IBM兼容PC机一台;2.安装DOS/WIN98操作系统或运行于DOS/ WIN98兼容方式;3. EDIT 等文本编辑器输入80x86汇编程序,MASM 5.0编译及链接程序。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹奏功或演奏。

其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。

2.说明书撰写格式应符合《课程设计说明书统一书写格式》。

时间安排:1.程序框图设计,3天2.编程,4天3.调试,3天4.编写设计报告,4天指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)1 设计任务和思路 (1)1.1设计任务 (1)1.2设计思路 (1)2更件部分工作原理 (2)2.1 8255工作原理 (2)2.2 8253工作原理 (2)3程序流程图 (4)3.1主程序流程图 (4)3.2演奏子程序流程 (5)3.3音乐播放子程序流程 (6)3.4弹奏子程序流程图 (6)3.5发音子程序流程图 (7)4各部分功能实现说明 (7)4.1 发音部分功能实现 (7)4.2 变调功能的实现 (8)4.3 弹奏功能的实现 (8)4.4演奏功能的实现 (9)4.4.1歌曲选择功能实现 (9)4.4.2 音乐播放功能实现 (9)5 程序运行结果 (10)结束语 (12)参考文献 (13)附录程序清单 (14)成绩评定表 (19)摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

利用汇编语言能够直接访问与硬件相关的存储器或I/O端口,从而最大限度地发挥硬件的功能。

本文主要介绍了利用汇编语言设计一个运行于计算机的电子琴软件,软件能够实现弹奏,演奏的功能,当按下弹奏键时,实现弹奏功能,发出音符对应频率的声音,按下演奏键时,实现演奏功能,播放预存的音乐,按下指定的音调选择按键后,选择低音,中音或高音,则分别用低音,中音或高音进行弹奏或演奏。

首先介绍了PC机内扬声器的控制电路,接着介绍了相关接口芯片8255和8253的内部结构和工作原理,接着讲述了各部分功能的具体实现方法。

关键词:汇编语言,8255,8253,扬声器计算机电子琴软件设计1 设计任务和思路1.1设计任务使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹奏功能或演奏功能。

其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。

软件预想功能为:按数字1-8为弹奏功能;按字母p为演奏功能;按d选择低音,按z选择中意,按g选择高音。

1.2设计思路电子琴的设计实际上就是要设计一个程序,能够通过该程序控制PC机内扬声器的发声规律,按下相应的按键后,扬声器能发出指定频率的声音。

PC机内的扬声器是通过并行接口芯片8255和定时芯片8253来控制发音的,其电路连接方式如下图所示。

图1 PC机内扬声器控制电路由图可知,扬声器是由8253通道2产生的方波信号和8255的PB1 相与后驱动发声的,且通道2的门信号由8255的PB0提供,要想让扬声器发声,PB0和PB1必须同时为高电平,因此,可以通过对8255的PB0和PB1的设置来控制扬声器的开通和关断,而其发音频率可以通过对8253通道2的计数初值的设置来控制。

所设计程序的任务就是要通过对按键的判断来设置8255的PB0和PB1输出电平的高低,以及8253通道2计数初值的设置。

计数初值N=时钟频率/音阶频率.各音阶的频率如下表所示。

2硬件部分工作原理2.1 8255工作原理8255的内部结构图如图2所示,它有3个数据端口,分为两组,A 组由A 口和C 口高四位组成,B 组由B 口和C 口低四位组成。

其方式控制字如图3所示。

图2 8255内部结构图PC 机内8255的A 口,B 口,C 口和控制口的端口地址分别为:60H,61H,62H,63H 。

2.2 8253工作原理8253芯片中有3个计数通道,称为通道0,1,2,它们与外部电路相连的信号图3 8255方式控制字 方式控制字的特征位 D 0D 7 D 6 D 5 D 4 D 3 D 2 D 1 1A 组工作方式0 0——方式00 1——方式11 ⨯——方式2 B 组 工作方式 0——方式0 1——方式1 A 口 输入/输出 1——输入 0——输出 PC 7~PC 4 输入/输出 1——输入 0——输出 B 口 输入/输出 1——输入 0——输出 PC 3~PC 0 输入/输出 1——输入 0——输出线有3根:CLK,GATE,OUT,CLK是脉冲输入端,GATE是门控信号,OUT是输出信号,计数器工作在减1状态。

其内部结构图和方式控制字格式如图4,图5所示。

其中当计数器工作在方式3时,输出信号为方波信号。

图4 8253内部结构图图5 8253控制字格式PC机内8253的通道0,通道1,通道2,控制口的端口地址分别为:40H,41H,42,43H。

因为扬声器是由通道2来控制的,故应选择通道2,工作方式选为方式3,输出的信号则为方波信号。

3程序流程图3.1主程序流程图主程序的流程图如下图所示:图6 主程序流程图3.2演奏子程序流程图当按键为p为时,调用音乐播放子程序,音乐播放子程序的流程图如下图所示。

图7 音乐播放子程序流程图3.3 音乐播放子程序流程图演奏时,通过判断按键为1或2来调用音乐播放子程序1或2,音乐播放子程序流程图如图8所示。

图8 音乐播放子程序流程图3.4弹奏子程序流程图当按键为1-8时,调用演奏子程序,演奏子程序的流程图如下图所示:图9 演奏子程序流程图3.5 发音子程序流程图在弹奏和演奏时都需调用发音子程序,发音子程序的作用是控制扬声器的发音,其流程图如下:图10 发音子程序流程图4 各部分功能实现说明4.1 发音部分功能实现由更件的连接形式可知,扬声器的开断是由8255的PB0和PB1以及8253通道2同时控制的,PB0和PB1同时为高电平时,扬声器开,有一个为低电平时,扬声器关断,又知8255 B口地址为61H,8253通道2地址为42H,控制口地址为43H。

具体程序编写如下。

8253初始化程序段:mov al,10110110b ;选择8253的通道2,并设置为工作方式3out 43h,almov ax,bxout 42h,al ;将计数初值的低8位写入计数通道mov al,ahout 42h,al ;将计数初值的高8位写入计数通道开扬声器程序段:in al,61h ;读入B口数据or al,03h ;将PB0 和PB1置1out 61h,al ;将设置好的数据送回B口关扬声器程序段:in al,61h ;读入B口数据and al,0fch ;将PB0 和PB1置0out 61h,a ;将设置好的数据送回B口扬声器发音的频率是由8253产生方波的频率决定的,而方波频率又是由通道的计数初值来决定的,因此可以通过改变通道的计数初值来实现变调功能。

计数初值N=时钟频率/音阶频率,时钟频率为1.19318MHZ=1234DCH,可以将相应音调对应的时钟频率存入内存单元,当选择相应的音调时,计算计数初值时,采用对应的时钟频率值,具体程序如下。

cmp al,'d' ;为d则选择低音jne j1mov num2,50jmp choicej1:cmp al,'z' ;为z则选择中音jne j2mov num2,12hjmp choicej2:cmp al,'g' ;为g则选择高音jne loop0mov num2,06h其中,num1和num2中存放的是时钟频率值,num1中固定为34DCH,选择低音时,num2值设为50,中音时设为12H,高音时设为06H。

计算计数初值程序如下:mov ax,num1mov dx,num2div 音符频率通过这样的设置,即可实现电子琴的变调功能。

4.3 弹奏功能的实现当按键为数字1-8时,选择弹奏功能,通过对按键的判断,求得其偏移地址,然后通过查表得其相应频率值,再由上述计算计数初值的方法求得计数初值,然后将计数初值送人8253的通道2,最后调用发音子程序即实现弹奏功能。

具体程序段如下:sub al,31h ;求偏移量shl al,1mov bl,al ;保存偏移量mov bh,0mov ax,num1 ;计算计数初值mov dx,num2div word ptr[tab+bx]mov bx,ax ;保存计数初值4.3.1 歌曲选择功能实现当按键为p时,选择演奏功能,播放预存的音乐,由于预存了两首歌曲,因此需进行选择,按下p后,显示输入提示信息,按1或2选择对应的歌曲,然后调用相应的音乐播放子程序,播放完后显示输入提示信息,按q退出,按c继续。

具体程序实现如下:loop2: mov dx,offset mesg1 ;显示输入提示信息mov ah,09hint 21hmov ah,07h ;从键盘读入一个字符int 21hcmp al,'q' ;为q则退出je choicecmp al,'1' ;为1则选择歌曲1jne next1call music1jmp loop3next1:cmp al,'2' ;为2则选择歌曲2jne loop2 ;不为q,1,2则重新选择call music2loop3:mov dx,offset mesg2 ;播放完后显示输入提示信息mov ah,09hint 21hmov ah,7 ;从键盘读入一个字符int 21hcmp al,'q' ;为q则返回je choicecmp al,'c' ;为c则继续播放je loop2jmp loop34.3.2 音乐播放功能实现选择歌曲后,调用对应的音乐播放子程序,音乐播放需用到循环结构,首先将计数器清零,接着计数器自增1,求得偏移量,然后通过查表的到相应的频率,再计算计数初值,将计数初值送人8253计数通道,调用发音子程序,若计数器的值大于歌曲长度,则返回。

具体程序段如下。

mov cl,0 ;将计数器清零ad:inc cl ;计数器值自增1cmp cl,31 ;计数器值若大于歌曲长度,则返回je returnmov al,clsub al,1 ;求偏移量shl al,1mov bl,al ;保存偏移量mov bh,0mov ax,num1 ;计算计数初值mov dx,num2div word ptr[song2+bx]mov bx,axcall speaker ;调用发音子程序jmp ad5 程序运行结果运行程序后,显示如下界面,等待输入字符。

相关文档
最新文档