当前位置:文档之家› 微机原理 音乐播放程序设计

微机原理 音乐播放程序设计

微机原理 音乐播放程序设计
微机原理 音乐播放程序设计

实验报告

( 2016 / 2017 学年第二学期)

课程名称微机原理与接口技术

实验名称音乐播放程序设计

实验时间2017 年 6 月13 日

学院电子信息学院

指导教师严华

学生姓名学号

学院(系) 电子信息学院专业光电信息科学与工程

1、实验目的

通过编写程序控制8253和8255A芯片,实现一个简单的音乐播放程序。

2、实验原理

我们在这次课设选择了音乐程序设计,音乐程序设计可以实现至少两首歌的可选择播放。对于歌曲的播放我们采用的是计数器/定时器8253芯片,而对于选择哪首歌播放则是利用可编程并行接口8255A芯片来实现的。

基于8253定时计数接口芯片的工作原理,本次课设实现了音乐演奏系统程序设计。当运行程序时,扬声器便发出优美的音乐。首先要解决发声并发出相应音符声音的问题,由8253计数器0在初始化时用来产生一定频率的方波来使扬声器发声,再根据不同音符对应的频率写入计数初值发出相应的音符声。对8255芯片PA0和PA1口的置0和1来控制扬声器的开关。其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。

3、实验内容

A.实验环境搭建

B. 编程

由于选取的乐曲音符音调幅度较大,故利用表格,算出其初值计数初值= 1193180 (8253输入频率)/ 音符频率

以下为程序代码

#include

#include

#define INIT_T2 0xb6

#define PORT_T2 0x42

#define CTRL_T 0x43

#define PORT_PB 0x61

#define DDO 4554

#define DRUI 4058

#define DMI 3616

#define DFA 3419

#define DSO 3044

#define DLA 2712

#define DXI 2415

#define DO 2281

#define RUI 2033

#define MI 1811

#define FA 1709

#define SO 1522

#define LA 1356

#define XI 1208

#define GDO 1140

#define GRUI 1015

#define GMI 905

#define GFA 854

#define GSO 761

#define GLA 678

#define GXI 604

void sing(unsigned int frq,unsigned int ms) {

unsigned char value;

union

{

unsigned int divisor;

unsigned char d[2];

}tone;

if (frq!=0)

{

tone.divisor=frq;

outportb(CTRL_T,INIT_T2);

outportb(PORT_T2,tone.d[0]);

outportb(PORT_T2,tone.d[1]);

value=inportb(PORT_PB);

outportb(PORT_PB,(value|0x03));

}

delay(ms);

outportb(PORT_PB,(value|0xfc));

}

void main()

{

sing(DSO,400);

sing(DLA,400);

sing(DO,400);

sing(RUI,400);

sing(MI,600);

sing(RUI,200);

sing(RUI,400);

sing(DO,400);

sing(DLA,1600);

sing(0,1600);

sing(DSO,400);

sing(DLA,400);

sing(DO,400);

sing(RUI,400);

sing(MI,400);

sing(SO,800);

sing(RUI,2000);

sing(0,2000);

sing(RUI,800);

sing(DSO,400);

sing(RUI,400);

sing(RUI,400);

sing(MI,400);

sing(RUI,400);

sing(DO,1600);

sing(0,2000);

sing(RUI,400);

sing(RUI,400);

sing(RUI,400);

sing(DSO,400);

sing(DLA,400);

sing(0,2000); sing(FA,800); sing(FA,400); sing(MI,400); sing(RUI,400); sing(DO,400); sing(RUI,2000); sing(0,2000); sing(RUI,400); sing(RUI,400); sing(RUI,400); sing(RUI,400); sing(DSO,400); sing(DLA,400); sing(DO,400); sing(DLA,2000); sing(0,2000); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(LA,2000); sing(0,2000); sing(LA,400); sing(LA,400); sing(LA,400); sing(GDO,400); sing(LA,400); sing(LA,400); sing(SO,2000); sing(0,2000); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(LA,400); sing(GDO,400); sing(LA,2000); sing(0,800);

sing(SO,400); sing(LA,400); sing(GRUI,400); sing(GMI,2800); sing(GRUI,3200); sing(0,1600); sing(SO,400); sing(LA,400); sing(GDO,400); sing(GRUI,400); sing(GMI,600); sing(GRUI,200); sing(GRUI,400); sing(GDO,400); sing(LA,3200); sing(SO,400); sing(LA,400); sing(GDO,400); sing(GRUI,400); sing(GMI,600); sing(GSO,600); sing(GRUI,3600); sing(0,400);

sing(GRUI,400);

sing(GRUI,400);

sing(GRUI,400);

sing(GMI,400);

sing(GRUI,400);

sing(GDO,3200);

sing(0,400);

sing(GRUI,400);

sing(GRUI,400);

sing(GRUI,400);

sing(SO,400);

sing(LA,400);

sing(GDO,400);

sing(LA,3600);

sing(0,1600);

sing(LA,3200);

sing(0,400);

sing(GFA,400);

sing(GFA,400);

sing(GFA,400);

sing(GMI,400);

sing(GRUI,400);

sing(GDO,400);

sing(GMI,400);

sing(GRUI,1600);

sing(0,1600);

sing(0,400);

sing(GFA,400);

sing(GFA,400);

sing(GLA,400);

sing(GSO,400);

sing(GFA,400);

sing(GMI,400);

sing(GRUI,2000);

sing(0,2000);

sing(GRUI,400);

sing(GRUI,400);

sing(SO,400);

sing(GRUI,400);

sing(GRUI,400);

sing(GMI,400);

sing(GRUI,400);

sing(GDO,1600);

sing(0,2000);

sing(GRUI,400);

sing(GRUI,400);

sing(GRUI,400);

sing(SO,400);

sing(LA,400);

sing(GDO,400);

sing(LA,3600); }

运行结果如下

4、实验中遇到的问题

一开始程序中的#define DDO 4554语句为#define 1DO 4554,程序运行时显示编译出错,我意识到1DO有可能不符合宏名定义要求,通过查阅有关资料后发现,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线,随后修改了程序。

5、总结体会

通过本实验的学习,我对8253和8255A芯片有了进一步的认识和理解,并能编写程序控制这两种芯片,实现简单的音乐播放程序。在这次实验中,发现了拥有扎实基础功的重要性,以及在实验过程中发现了自己的不足之处,深刻理解了实践与理论相结合的重要性。

附件(乐曲简谱)

乐曲硬件演奏电路设计

湖南人文科技学院 课程设计报告 课程名称:VHDL语言与EDA课程设计 设计题目:乐曲硬件演奏电路设计 系别:通信与控制工程系 专业:电子信息工程 班级:08电信二班 学生姓名: 王世伟朱彩虹 学号:08409249 08409231 起止日期:2011年06月13日~20年06月26日 指导教师:姚毅成继中

教研室主任:侯海良

摘要 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数化库单元LPM 器件。通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。 本课设在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,并定制LPM-ROM存储音乐数据,以“两只老虎”乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。 关键词:FPGA;EDA;VHDL;音乐

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案一 (1) 1.2方案二 (1) 1.3综合对比 (1) 2 乐曲演奏电路原理 (2) 2.1 音乐演奏电路原理 (2) 2.2 音符频率的获得 (2) 2.3 乐曲节奏的控制 (3) 2.4 乐谱发生器 (3) 2.5 乐曲演奏电路原理框图 (3) 3音乐硬件演奏电路的设计实现 (4) 3.1 地址发生器模块 (4) 3.1.1 地址发生器的VHDL设计 (4) 3.2 分频预置数模块 (6) 3.2.1 分频预置数模块的VHDL设计 (6) 3.3 数控分频模块 (8) 3.3.1 数控分频模块的VHDL设计 (8) 3.4 music模块 (10) 3.4.1 音符数据文件 (10) 3.5.2 LPM-ROM定制 (12) 3.6 顶层文件 (14) 4 时序仿真及下载调试过程 (16) 4.1 时序仿真图 (16) 4.2 引脚锁定以及下载 (17) 4.3调试过程及结果 (17) 5扩大乐曲硬件演奏电路的通用性 (18) 5.1 完善分频预置数模块的功能 (18) 设计总结与心得体会 (21) 参考文献 (22)

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

音乐演奏程序设计

音乐演奏 1 总体要求与分析 1.1设计要求 本文主要编写一段音乐程序,该程序可以进行如下操作:按大写字母“A”,奏一首歌曲;按大写字母“B”;奏另一首歌曲,曲目自选,可重复操作。按Q 退出程序。 1.2设计思路分析 在IBM-PC/XT机中都带有8253-5定时/计数器,IBM-PC/AT中带有8254定时/计数器,这两种芯片功能十分类似。本文通过对8253-5定时/计数器芯片的操作实现音乐演奏。该声音接口通过汇编语言对8253-5的端口直接进行操作,可以不必要过多的使用BIOS的调用和DOS的调用。 计数器芯片有3个通道,各自具有专用功能。通道0时系统的始终节拍计时器,通道1专用于产生动态RAM的定时刷新信号,通道2用来控制计算机的扬声器的声音频率。该音乐演奏主要用到通道2的功能,使通道2工作在“方波发生器”方式,产生相应频率的音调送至喇叭驱动电路,使喇叭发出不同音调的声音。使用8255A的PB0控制通道2的计数,PB1控制通道2的输出对扬声器产生控制的时间。 人机交互包括屏幕显示提示语以及人工输入相应参数,主要应用到BIOS的10H号中断调用以及DOS的21H号中断调用。BIOS的10H号中断调用用于显示器驱动,设置显示模式和光标位置;DOS的21H号中断调用用于单字符输入以及多字符输出显示。 音乐演奏实现的一个主要步骤是乐谱编程。通过相应的频率表将乐谱中对应的音符转化为计数器的计数初值,节奏通过延时程序转化为对喇叭发音时间的控制,从而实现音符和节拍的数字化。

2 方案设计 音乐的实现主要是对乐谱中的单音符按照一定的音符频率表转化为计数器的计数频率以及喇叭发声的控制时间,通过计数产生相应的控制动作。由此可以有两种方案比较和选择。 2.1 方案一 通过编程使用软件来实现计数和喇叭发声的时间设置,控制8255A并行I/O 接口驱动喇叭发声。CPU每执行一条指令需要耗费一定的时间,这样可以通过循环的方式设置好循环次数,实现软件计数,然后输出相应的高低电平,驱动喇叭发出对应频率和节拍的声音。 利用软件编程方式实现该功能的优点是可以减少硬件开支,便于调试和问题的查找。缺点是CPU开支太大,利用率不高,而且时间不够精准。 2.2 方案二 利用硬件实现频率计数和延时时间的控制,利用8253-5定时/计数器芯片和8255A并行I/O接口芯片。使8253的一个通道工作在“方波发生器”模式,实现对频率的计数;利用8255A的PB3端口实现发声时间的计数控制。这样可以精确的控制时间,减少CPU的开支。 该方案的优点是控制精度提高,同时也减少CPU的开支。缺点是硬件开销比较多。 2.3 方案选择 本文要实现的功能所需要的硬件电路并不是太复杂,一般的IBM-PC/XT/AT 机家族都带有相应的硬件电路。在提高精度与简易程度的比较下,决定采用方案二,这样可以大大提高时间控制精度,同时减少软件程序的复杂度。

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

微机原理子程序设计

实验三子程序设计 1、实验目的: (1)熟悉汇编语言的编辑、汇编、连接、运行的全过程。 (2)了解汇编语言的程序结构、学习调用过程实现输入输出及用INCLUDE 命令包含文件的方法。 (3)子程序设计 2.实验步骤: (1)用编辑软件记事本或EDIT 编辑一个扩展文件名为ASM的汇编语言源程序。 (2)用汇编程序TASM 汇编上述的汇编语言源程序,形成目标代码文件。 (扩展名为OBJ) (3)用连接程序TLINK连接目标代码文件,形成可执行文件。(扩展名为EXE) (4)运行可执行文件。观察执行结果,以验证其正确性。 3.实验内容: (1)从键盘上输入若干个十进制数(-32767

again1: mov ax,[si] cmp ax,[si+2] jle next1 xchg ax,[si+2] xchg ax,[si] next1: add si,2 loop again1 mov cx,di loop again2 mov ah,9 lea dx,out_message int 21h mov cx,count ;输出(升序) lea si,array again3: mov bx,[si] call write call dpcrlf inc si inc si loop again3 mov ax,4c00h int 21h INCLUDE out_B_D.ASM INCLUDE in_D_B.ASM END (2)从键盘上输入若干个十进制数(-32767

微机原理课程设计音乐跑马灯程序

dseg segment num dw 0 num1 dw 0 data1 db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,7Fh data2 db 7Fh,0BFh,0DFh,0EFh,0F7h,0FBh,0FDh,0FEh data3 db 7Eh,0BDh,0DBh,0E7h,0E7h,0DBh,0BDh,7Eh data4 db 0fch,0f9h,0f3h,0e7h,0e7h,0cfh,09fh,03fh data5 db 03fh,09fh,0cfh,0e7h,0e7h,0f3h,0f9h,0fch dseg ends code segment assume cs:code,ds:dseg start: mov ax,dseg mov ds,ax mov dx,406h mov al,36h out dx,al mov ax,20000 mov dx,400h out dx,al mov al,ah mov dx,400h out dx,al ;初始化8253 mov dx,0206h ;取8255A的控制端口的地址 mov al,8bh ;初始化8255A的A口为输出模式,B口为输入模式,c输入out dx,al mov dx,0200h ;取8255的端口A的地址 mov al,0FFh ;使8255的PA0-PA7全为1 out dx,al mov dx,0202h ;取8255的端口B的地址 in al,dx ;检测B口输入信号 mov dx,0200h ;取8255的端口A的地址 mov al,0FFh ;使8255的PA0-PA7全为1 out dx,al ;使所有的灯LED全灭 ledflash proc ;检测开关闭合,以便确定哪种闪烁方式 mov dx,0202h ;取8255A的端口B的地址 in al,dx ;检测B口输入信号 choice1:

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

音乐演奏程序设计

课程设计任务书 学生姓名:王琨专业班级:自动化1105班 指导教师:向馗工作单位:自动化学院 题目: 音乐演奏程序设计 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.使用汇编语言设计一个在计算机上运行的音乐演奏程序。 2.屏幕显示钢琴图像。 3.实现以下附加功能:按“D”键,加快播放速度,按“E”键,降低播放速度。 4. 按"X"鍵,退出。 5.撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。 时间安排: 12月30日-----12月31日查阅资料及方案设计 1月2日-----1月3日编程 1月6日调试程序 1月7日-----1月8日撰写课程设计报告 指导教师签名:年月日 系主任(或责任教师)签名:年月日

摘要 汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。 使用的编译软件是masm for windows ,MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32asm,是Windows下开发汇编的利器。它与Windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM 的开发人员必须在Windows下进行开发。 关键词:汇编语言、MASM、DOS环境

基于单片机音乐演奏系统设计毕业设计

摘要 如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放,弹奏乐曲更为广泛。它有功能多﹑价格优﹑外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。利用单片机发声键盘操作直观简单。对于初学者来说,是很容易弹奏的。本设计为基于单片机的音乐演奏系统,设计出一种不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。 本文设计出一种基于STC89C52的简单音乐演奏系统,利用单片机技术、LM386音频功放芯片、4x4键盘、SPEAKER、以及74HC595和LED数码管实现原理图设计到电路板设计开发,并用C51高级语言进行键盘识别程序设计和音频脉冲输出程序的设计。最终能够实现乐曲演奏和自动播放音乐,并且可以通过LED数码管显示音符和音调的高低。 关键词:STC89C52;音频脉冲;键盘识别;播放音乐

Abstract At present, the examples of microcontroller control music playback is too numerous to enumerate, at the same time,the music performance system is also widely used, make the best use of microcontroller which can store music, control playback, playing music.The advantage of the music performance system contains multiple functions,excellent price,simple peripheral circuit.The features of the music performance system not only popular with music lovers and music chip manufacturers, but also accepted by general family for it price.The keyboard operation is simple under the use of microcontroller.It is easy for beginner to play. The design of music performance system based on microcontroller, it can not only play music but also play the music which we want to. This paper designs a simple music system which is based on STC89C52 which make full use of microcontroller technology, the LM386 audio amplifier chip, 4x4 keyboard, SPEAKER, 74HC595 and LED digital tube.It realizes from schematic design to circuit board design and development, and use C language accomplish keyboard identify program design and audio pulse output program design. Finally the design realizes the music play and auto play music,it can display the high or low of notes and tone through the LED digital tube . Key words: STC89C52; audio pulse; keyboard; play the music

微机原理实验报告——分支程序设计

实验三 分支程序设计 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言分支程序基本指令的使用方法; 3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。 二、软硬件环境 1.硬件环境:微机CPU 486以上,500MB 以上硬盘,32M 以上内存; 2.软件环境:装有MASM 、DEBUG 、LINK 和EDIT 等应用程序。 三、实验涉及的主要知识单元 在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号和相减而导致的结果来进行。下面就有符号数转移指令来了解在汇编语言程序设计方法。 四、实验内容与步骤 1.实验内容 (1)编写计算下面函数值的程序: ?? ? ??<-=>=0,10,00,1x x x y 设输入数据为X 、输出数据Y ,且皆为字节变量,使用Debug 查看X 、Y 两个变量的 数据 (2)以ARRAY 为首地址的内存单元中,存放5个8位的不带符号数,找出5个数中的最大数,并将结果存入RESULT 字节单元中。 2.实验步骤 a.实验流程图 (1)计算函数值的流程图

b.编写程序 (1)计算函数值的实验代码 DATA SEGMENT X DB 12 Y DB ? DATA ENDS STACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 ;把AX 与0比较 JGE BIGPR ;0≥AL 转入BIGPR MOV Y,0FFFFH ;0AL 则1=Y JMP EXIT EQUPR: MOV Y,0 ;0=AL 则0=Y EXIT: MOV AL,Y RET CODE ENDS END START

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

音乐演奏程序设计

信息与电气工程学院 电子信息工程CDIO一级项目(2013/2014学年第一学期) 题目:音乐演奏程序设计 专业班级:xxxxxxxxxxxxxxxxx 学生姓名:xxxxxxx 学号:xxxxxxxxx 指导教师:xxxxxxx 设计周数: 设计成绩: 2013年12月28日

1、项目设计目的 1.1掌握接口电路的应用和设计技术。 1.2掌握汇编语言的设计思路。 1.3掌握8086的控制流程,以及8255和8253芯片的功能。 1.4用汇编程序完成键控音乐播放器,用8253定时器来产生声音。 1.5使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。 2、项目设计正文 2.1设计内容 要求完成一个音乐程序,即通过按下键盘上某个按键就可以按预先设定的程序播放音乐或者终止程序。比如:按大写字母“1”,唱乐曲“沂蒙山小调”;按大写字母“2”,唱乐曲“生日快乐”按大写字母“3”,唱乐曲“棉花糖”;按"4"键,退出。并且可以重复操作。 2.2总体设计思路 在IBM-PC/XT机中都带有8253-5定时/计数器,IBM-PC/AT中带有8254定时/计数器,这两种芯片功能十分类似。本文通过对8253-5定时/计数器芯片的操作实现音乐演奏。该声音接口通过汇编语言对8253-5的端口直接进行操作,可以不必要过多的使用BIOS的调用和DOS的调用。 计数器芯片有3个通道,各自具有专用功能。通道0时系统的始终节拍计时器,通道1专用于产生动态RAM的定时刷新信号,通道2用来控制计算机的扬声器的声音频率。该音乐演奏主要用到通道2的功能,使通道2工作在“方波发生器”方式,产生相应频率的音调送至喇叭驱动电路,使喇叭发出不同音调的声 音。使用8255A的PB 0控制通道2的计数,PB 1 控制通道2的输出对扬声器产生控制的时间。 人机交互包括屏幕显示提示语以及人工输入相应参数,主要应用到BIOS的10H号中断调用以及DOS 的21H号中断调用。BIOS的10H号中断调用用于显示器驱动,设置显示模式和光标位置;DOS的21H号中断调用用于单字符输入以及多字符输出显示。 音乐演奏实现的一个主要步骤是乐谱编程。通过相应的频率表将乐谱中对应的音符转化为计数器的计数初值,节奏通过延时程序转化为对喇叭发音时间的控制,从而实现音符和节拍的数字化。 2.3流程图 2.3.1主程序流程图

音乐演奏器设计

山东工商学院 电子设计大赛 作品设计报告 题目:音乐演奏器设计 队名: XXXXXX 成员: XXXXXXXXXXXXXXXXXXXX 提交时间: 2016.7.1

目录 一、引言....................................................................................................................................... 3 二、方案比较以及选择................................................................................................................. 3 2.1 控制模块选择方案......................................................................................................... 3 2.2 按键选择方案.................................................................................................................. 4 三、硬件设计及说明..................................................................................................................... 4 3.1系统组成及总体框图...................................................................................................... 4 3.2元件简介........................................................................................................................... 5 3.3 各功能模块原理图.......................................................................................................... 6 四、软件设计................................................................................................................................. 8 4.1 音乐相关知识.................................................................................................................. 8 4.2用单片机实现音乐的节拍............................................................................................... 9 4.3用单片机产生音频脉冲................................................................................................... 9 五、系统调试................................................................................................................................. 9 5.1硬件调试........................................................................................................................... 9 5.2 软件调试...................................................................................................................... 10 六、总结..................................................................................................................................... 10 七、参考文献............................................................................................................................. 10附录1:元器件清单...................................................................................... 错误!未定义书签。附录2:电路原理图.................................................................................................................. 11

微机原理实验五输入与输出程序设计

实验六输入与输出程序设计 一、实验目的 1?掌握常用DOS中断调用的功能以及在应用程序中的使用方法。 2?学习键盘输入和屏幕输出的基本方法。 3?宏指令、子程序在应用程序屮的使用。 4?汇编语言程序设计的调试与完善。 二、设计指标与实验要求 1.设计内容 本实验要求设计完成:①屏幕输出提示(如〃Want in put (Y/N)? ”),若键入N则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。②换行后输出提示(如"please in put a strings :”),且在该提示后键入一字符串(输入到输入缓冲区) ③换行后输出提不(如"your in putt ing is :”),在该提不后输出由②步输入的字符串。 ④换行后输出提示“Want continue (Y/N)? ” ,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。 2 ?设计要求 ①按屏幕提示要求输入,从屏幕上获得正确结果。 ②把程序屮常用的屮断调用定义成宏指令(至少定义2个)。 ③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应能显示由 主程序指定的任一字符串。要注意这两种方法实现的设计过程是不同的。 采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用 9号功能的,子程序输入参数为“回显字符串地址”。 ④屏幕的提示信息显示格式尽量做到兼顾美观。

3 .实验步骤 ①?选用合适的程序文本编辑软件编辑源程序, 并为文件取以.ASM为扩展名的文件存盘。 ②?用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。 ③?用LINK对由MASM匚编后产生的目标文件做连接,生成可执行文件;若有错误(同上)回步骤1修改源程序文件。 ④?对存在问题的程序,用CV调试程序,检察运行结果,并调试程序。 ⑤?反复验正程序的正确性。 ⑥?完善、改进所设计的程序算法、功能、界面、或性能等指标。 四、思考题 1.输入串若以指定字符(非回车)做结束标志时的输入部分应如何改写。 2.若为应用程序添加启动时的密码检验功能,密码输入时采用什么屮断功能比较合适? 3.如何为应用程序添加字母的大小写转换功能? OUTPUT MACRO MOV AH, 9 INT 21H EXDM INPUTS MACRO MOV AH, 10 INT 21H ENDM DATA SEGMENT BUF1 DB Odh, Oah,,Wa nt in put(Y/N)?$, BUF2 DB Odh,Oah, 5 please in put a stri ngs:$' BUFIN DB 20,?,20 DUP(?) BUF3 DB Odh,Oah, ' your in putt ing is:$' BUF4 DB Odh, Oah,,Wa nt contin ue(Y/N)?$,

键盘钢琴汇编语言程序设计—微机原理课程设计

学号:xxxxxxxxxxx 课程设计 题目键盘钢琴汇编语言程序设计 学院自动化学院 专业自动化专业 班级xxxxxxxx 姓名xxxxxx 指导教师xxxxxx 2012 年01 月12 日

? 3 ? 2 ? 1课程设计任务书 学生姓名: xxxx 专业班级: xxxxxxx 指导教师: xxxx 工作单位: xxxxxx 题 目: 键 盘 钢 琴 汇 编 语 言 程 序 设 计 初始条件: 采用16 位微处理器 8086 CPU 以及86 系列微型计算机的指令系统; 软件设计平台为多功能微型计算机实验软件MFS 中的微机原理实验集成环境MF2KP ,仿 真设计平台为Proteus 软件。 要求完成的主要任务: 设计汇编语言程序,实现键盘钢琴功能,具体功能要求如下: (1)在键盘上自定义若干键对应钢琴键; (2)单击钢琴键,计算机发出相应音阶,发声时间自定义; (3)单击”ESC”键退出程序。 音阶与频率的对应关系如下表所示: 音符 4. 5. 6. 7. 1 2 3 4 5 6 7 频率/Hz 175 196 220 247 262 294 330 349 392 440 494 523 587 659 根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试: 撰写课程设计说明书。课程设计说明书的撰写格式如下: (1)设计说明书包括封面、任务书(指导老师提供)、正文、参考文献(3~ 5 篇)、附录(程序清单,要求有注释)、成绩评定表(指导老师提供)。 (2)说明书正文包含总体方案论证(功能分析、系统连接图设计或算法说明);程序流程图设计及其说明、软件设计关键问题说明;程序调试说明、结果记录及分析;课程设计收获及心得体会。 (3)同一选题若为合作完成,设计说明书中需注明本人承担的设计部分。 时间安排: (本次课程设计时间:2012 年1 月4 日-13 日,历时一周半) 周次 具体时间 设计内容 第 一 周 1月4日 指导老师就课程设计内容、设计要求、设计进度安排、评分标准等作具体介绍。强调课程设计期间纪律要求。学生确定选题,明确设计内容及要求。 1月5日 根据选题查阅资料,完成方案的初步设计,包括系统原理及算法。 1月6日 绘制系统硬件接线图(接口应用设计题必须)以及程序流程图。 第 二 周 1月9日 学生根据程序流程图,编写程序代码。 1月10日 仿真调试、修改。 1月11日 学生结合程序流程图解释说明设计思路与算法;指导老师检查程序运行效果,并就结果进行评分。 1月12日 学生撰写课程设计说明书。 1月13日 上交课程设计说明书,以及答辩。 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日

音乐演奏程序设计

微机原理及接口技术 课程设计 题目音乐演奏小程序 学院自动化学院 专业电气工程及其自动化班级 姓名 指导教师 2014 年12 月28 日

课程设计任务书 学生姓名:专业班级:电气 指导教师:工作单位:自动化学院 题目: 音乐演奏小程序 初始条件: 音乐程序,按大写字母“A”,奏一首歌曲;按大写字母“B”;奏另一首歌曲,曲目自选。按Q退出程序。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)设计任务及要求分析 (2)方案比较及认证说明 (3)系统原理阐述 (4)硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明 (5)软件设计课题需要说明:软件思想,流程图,源程序及程序注释 (6)调试记录及结果分析 (7)总结 (8)参考资料 (9)附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图

目录 音乐演奏小程序 (1) 1 总体要求与设计原理 (1) 1.1设计要求 (1) 1.2设计原理 (1) 2 方案设计 (1) 2.1 方案一 (2) 2.2方案二 (2) 2.3 方案三 (2) 2.4 方案选择 (2) 3 硬件电路 (2) 4 软件设计 (3) 4.1 音乐选择模块 (3) 4.2 频率产生模块 (3) 4.3 控制音符的演奏时间 (4) 4.4 音乐乐谱编程 (5) 4.5屏幕显示设计 (7) 4.6 程序流程图 (9) 5 程序调试及运行结果 (10) 6 小结与体会 (12) 参考文献 (13) 附录1 程序源代码 (14) 附录2 芯片资料 (18)

音乐演奏小程序 1 总体要求与设计原理 1.1设计要求 本文主要编写一段音乐程序,该程序可以进行如下操作:按大写字母“A”,奏一首歌曲;按大写字母“B”;奏另一首歌曲,曲目自选,可重复操作。按Q退出程序。 1.2设计原理 在本次课程设计中大家利用课上所学的各种知识,对自己的课程设计题目进行设计。我所要设计的题目是音乐程序设计。看到大多数同学选择了8253定时器,为了与同学区分开来,我在设计的过程选择利用计数器/定时器8254芯片和可编程并行接口8255A芯片,完成2个开关选择歌曲,能用扬声器播放歌曲。 首先我们利用定时器产生各种频率的声音,如“DO”“RE”“ME” 然后将各个单音连接起来就组成了一首简单的曲子或者旋律,旋律及拍数可以按音乐简谱而定。 对8255芯片PA0和PA6口的置0和1来选择歌曲。其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。 2 方案设计 音乐的实现主要是对乐谱中的单音符按照一定的音符频率表转化为计数器 的计数频率以及喇叭发声的控制时间,通过计数产生相应的控制动作。由此可以有三种方案比较和选择。

相关主题
文本预览
相关文档 最新文档