微机原理课程设计音乐播放器123
音乐播放器-单片机课程设计
设计内容与设计要求设计内容:本课题要求以单片机为核心设计一个音乐播放器,完成多曲选择播放控制、停止控制、省电模式控制等功能。
音乐播放器利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音,选取某段音乐使单片机连续播放。
设计3个按键:播放/停止、下一曲、上一曲;4位LED 显示器,用来显示所选曲目,该显示器在播放期间为了节省电源,设计为关闭状态,当一歌曲演奏结束,或选曲时显示器才显示曲目信息。
要求焊接好开发板,在开发板上进行调试。
设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)开发板焊接及测试5)系统软件设计及调试;6)系统联调及操作说明7)写说明书主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件,仿真软件proteus;3、开发板1块;4、制作工具1套;5、系统设计所需的元器件。
说明书格式目录第1章、概述第2章、系统总体方案设计第3章硬件设计第4章软件设计及调试第5章系统联调及操作说明第6章总结参考文献附录A系统硬件原理图附录B程序清单进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。
下午:借阅有关资料,总体方案讨论。
星期二、分班级焊接开发板星期三、确定总体方案,学习与设计相关内容。
星期四、各部分方案设计,各部分设计。
星期五、设计及上机调试。
星期六、设计并调试第二周星期一:设计及上机调试。
星期二:调试,中期检查。
星期三:调试、写说明书。
星期四--星期五上午:写说明书、完成电子版并打印成稿。
星期五下午:答辩。
参考文献参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.第1章概述... ... ... ... ... ... ... ... .. .. . 61.1单片机简介... ... ... ... .. ... ... ... (6)1.2 任务简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7第2章系统总体方案设计 (8)2.1 音乐的产生... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82.2 系统方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10第3章硬件设计 (11)3.1 89C51单片机 (12)3.2 I/O并行口直接驱动LED显示 (14)3.3 蜂鸣电路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153.4控键电路.. . . . . . . . . . . . . . . . . . .163.5时钟电路 . . . . . . . . . . . . . . . . .. .173.6电源电路 . . . . . . . . . . . . . . . . . . 17 第4章软件设计 (18)4.1.软件设计 (18)4.2 设计方案. . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . .. . . . .19第5章系统调试与仿真 (20)5.1软件仿真阶段 (20)5.2系统的仿真调试阶段 (20)5.3调试问题处理 (21)第6章心得体会 (22)参考文献 (23)附录A:音乐播放器电路设计图 (24)附录B:程序清单 (25)第1章概述1.1单片机简介单片机又称单片微控制器,它不是完成某一逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
五年级信息技术下册我的音乐播放器微课设计
微课名称我的音乐播放器
微课脚本设计
结构教学环节讲解内容一、片头
二、导入环节音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。
它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。
实现音乐播放功能离不开程序的编程。
同学们想不想自己制作一个音乐App?其实App Inventor中的组件可以帮你实现这个愿望。
我们今天一起来学习第十四课我的音乐播放器。
三、正文讲解(5-6
分钟)功能设想
单击播放按钮开始播放音乐
设计界面
根据刚刚的功能分析,我们两个“按钮”组
件;音乐播放需要用到“水平布局”组件“按
钮1”和“按钮2”等组件。
修改属性
组件类型属性设置
Screen1 标题:我的音乐播放器APP
标签1 显示文本清空内容
按钮1
显示文本:播放
重命名:播放按钮
按钮2
显示文本:停止
重命名:停止按钮
逻辑编程
项目保存调试1.保存:
项目→保存项目
2.调试
可以通过不同方法把程序安装到安卓智能手机上进行调试。
四、总结(1)为什么要初始化“screen 1”并加载“音乐播放器1”的音频文件和音量数值?
(2)为什么要重命名组件列表中的组件?
组件类
型
属性设置
Screen1 修改标题内容为“我的音乐播放器”按钮1 宽度:100像素
按钮2 宽度:100像素
3.保存调试
五、片尾这节课就上到这里,谢谢你的观看!再见!。
音乐播放器单片机课程设计
一.概述 (2)二.系统总体方案设计 (3)三.硬件设计 (6)3.1 89C51单片机 (6)图3-1和3-2 (7)3.2 I/O并行口直接驱动LED显示 (7)四.软件设计 (10)4.1.软件设计 (10)五.系统调试与仿真 (12)5.1软件仿真阶段 (12)5.2系统的仿真调试阶段 (12)5.3硬件安装调试 (12)六.总结 (14)参考文献 (15)附录A:音乐播放器电路设计图 (16)附录B:程序清单 (17)一.概述本课题要求以单片机为核心设计一个音乐播放器,完成多曲选择播放控制、停止控制、省电模式控制等功能。
音乐播放器利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音,选取某段音乐使单片机连续播放。
设计3个按键:播放/停止、下一曲、上一曲;4位LED显示器,用来显示所选曲目,该显示器在播放期间为了节省电源,设计为关闭状态,当一歌曲演奏结束,或选曲时显示器才显示曲目信息。
总体的设计思路是这样的。
二.系统总体方案设计本课题要求以单片机为核心设计一个简易音乐播放器,具有自动播放乐曲的功能。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,音阶对应频率关系图1-1:图2-1本设计用89C51单片机为核心,利用8段数码管显示器.采用动态显示输出,声音输出用蜂鸣器来实现。
采用8段数码管显示器进行动态显示需要占用4根I/O线,蜂鸣器占用1根I/O线,89C51单片机有足够的线,不用扩展I/O口。
用一片单片机即可满足本设计的输入输出。
系统框图如图1-2所示:图2-2通过对音乐播放器主体部分的电路进行模仿设计,达到播放器固有的基本功能,设定按钮K1、 K2和K3。
按钮K1打开并自动播放乐曲1;按钮K2打开并自动播放乐曲2;按钮K3为手动控制音乐停止的按键。
根据设计要求该播放器能实现音键的控制。
除此之外还实现了存储并读出几首音乐的功能。
《微机原理》课程设计说明书_键盘电子乐器
《微机原理》课程设计说明书_键盘电子乐器武汉理工大学《微机原理》课程设计说明书课程设计任务书学生姓名: 专业班级: 电气0805班指导教师: 工作单位: 自动化学院题目: 键盘电子乐器初始条件:掌握汇编语言程序设计方法,所设计的程序运行后可通过键盘控制,满足系统功能,并实现该系统设计方案。
在DOS,windows,汇编软件环境下运行。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.设计一个用键盘演奏音乐的程序,计时器系统设计编程定时输出――电子音调,用pc机内部8253time~使扬声器发声。
用汇编语言对8253进行编程,使其OUT0上输出一定的频率,将其一定频率输出到喇叭上,演奏出不同的音节。
pc机的数字键(1,7)作为电子音调的音调选择2. 课程设计说明书应包括:a)设计任务及要求b)方案比较及认证c)程序设计基本思想,程序流程图,部分源程序及注解d)调试记录及结果分析e)参考资料f)附录:全部源程序清单g)总结时间安排:2011年元月07日--元月09日选题、查阅资料和方案设计 2011年元月10日--元月14日编程2011年元月15日--元月16日调试程序,改进与提高2011年元月17日撰写课程设计报告(有调试过程及结果的截屏) 2011年元月18日答辩和交课程设计报告指导教师签名: 2011 年元月 6 日系主任(或责任教师)签名: 年月日1武汉理工大学《微机原理》课程设计说明书摘要利用PC上的定时/计数芯片8253A控制PC扬声器发声。
编写内核模块,直接操作扬声器相关端口,或字符设备驱动,供应用程序调用,用键盘使其发出不同的声音。
关键字:8253 定时器中断2武汉理工大学《微机原理》课程设计说明书目录1. 方案比较 ....................................... 42.芯片介绍 (4)2.1 8255芯片简述 (4)2.1.1 8255三种方式下工作 (4)2.2 8253芯片简述 (5)2.2.1 8253六种工作方式 ........................ 63.通用发声程序 ..................................... 7 4.音调与频率和时间的关系 ........................... 11 附录 (13)附录一: (13)附录二: (14)附录三: (26)附录四: (27)附录五: ...................................... 32 参考文献 (33)3武汉理工大学《微机原理》课程设计说明书键盘电子乐器1.方案比较1.1 发声程序循环优点:简单,易于思维缺点:程序过于长,比较繁琐1.2 调用宏,进行发声优点:程序短缺点:不易想到2.芯片介绍2.1 8255芯片简述8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,+5V单电源供电。
微机原理课程设计——音乐播放器
一.课程设计目的1.通过D/A装换器产生模拟信号,使PC机作为简易音乐播放器。
2.了解利用数模转换器产生音乐的基本方法。
二.课程设计任务设计并实现一个键控音乐播放器。
要求:(1)自己选用合适的芯片,不少于两种。
(2)自行设计电路并使用汇编语言编写程序完成键控音乐播放器功能。
(3)该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
三、总体设计方案1、总体设计方案一所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。
2、总体设计方案二可以使用0832(数模转换器)来产生频率,原理图:提出这个方案是因为我想产生模拟信号,来驱动扬声器,这样产生的声音更加圆润感觉更连续,效果更好点。
我们想把一个周期的波形分成32份,然后每份给8253一个值让他转换成模拟信号,不同的频率可以用8253计数器控制,比如要产生261Hz的频率,使用1MHz的话,周期就为1/261=3.83ms,分成32份,每份间隔时间就是3.83ms/32=0.12ms,换句话说就是送计数器0的初值为1M/261/32=120次。
3、各个音符的对应频率表:音符频率/HZ 半周期/us 音符频率/HZ 半周期/us低1DO 262 1908 #4FA# 740 0676#1DO# 277 1805 中5SO 784 0638低2RE 294 1700 #5SO# 831 0602#2RE# 311 1608 中6LA 880 0568低3M 330 1516 #6LA# 932 0536低4FA 349 1433 中7SI 988 0506#4FA# 370 1350 高1DO 1046 0478低5SO 392 1276 #DO# 1109 0451#5SO# 415 1205 高2RE 1175 0426低6LA 440 1136 #2RE# 1245 0402#6LA# 466 1072 高3M 1318 0372低7SI 494 1012 高4FA 1397 0358中1DO 523 0956 #4FA# 1480 0338#1DO# 554 0903 高5SO 1568 0319中2RE 578 0842 #5S0# 1661 0292#2RE# 622 0804 高6LA 1760 0284中3M 659 0759 #6LA# 1865 0268中4FA 698 0716 高7SI 1976 0253四.部分电路设计及功能解说1、频率发生电路使用8253产生音符频率。
音乐播放器课程设计
音乐播放器课程设计一、课程目标知识目标:1. 学生能够理解音乐播放器的基本原理和功能。
2. 学生掌握音乐播放器界面设计的基本元素和布局。
3. 学生了解音乐播放器中不同音乐格式及其特点。
技能目标:1. 学生能够使用音乐播放器软件进行音乐播放、暂停、停止等基本操作。
2. 学生能够通过音乐播放器软件对音乐进行分类、排序和搜索。
3. 学生能够运用所学知识设计和制作简单的音乐播放器界面。
情感态度价值观目标:1. 培养学生对音乐的热爱和欣赏能力,提高审美情趣。
2. 培养学生团队协作和沟通能力,学会分享和交流音乐心得。
3. 增强学生对科技产品的认识,激发创新意识和探索精神。
课程性质:本课程为信息技术与音乐相结合的综合性课程,注重实践操作和实际应用。
学生特点:六年级学生具有一定的信息技术基础和音乐素养,对新事物充满好奇,喜欢动手实践。
教学要求:结合学生特点,采用任务驱动法,引导学生自主探究和合作学习,注重理论与实践相结合,提高学生的实际操作能力和创新能力。
通过本课程的学习,使学生能够将所学知识应用于实际生活,提升音乐欣赏和信息技术素养。
二、教学内容1. 音乐播放器原理与功能- 了解音乐播放器的基本构成和原理- 掌握音乐播放器的主要功能及操作方法2. 音乐播放器界面设计- 学习音乐播放器界面设计的基本原则- 分析并模仿经典音乐播放器界面布局3. 音乐格式及特点- 介绍常见音乐格式(如MP3、WAV等)及其特点- 了解音乐格式对播放效果和文件大小的影响4. 音乐播放器操作与使用- 学习使用音乐播放器软件进行基本操作(播放、暂停、停止等)- 掌握音乐播放器的高级功能(如音乐分类、排序、搜索等)5. 设计制作音乐播放器界面- 学习运用设计软件制作音乐播放器界面- 结合团队协作,设计并展示个性化的音乐播放器界面教学大纲安排:第一课时:音乐播放器原理与功能第二课时:音乐播放器界面设计第三课时:音乐格式及特点第四课时:音乐播放器操作与使用第五课时:设计制作音乐播放器界面教学内容关联教材章节:《信息技术》六年级上册:第五章 多媒体技术应用,第三节 音乐播放器原理与使用。
音乐播放器课程设计报告
课程设计报告课程名称PLD原理与应用设计题目音乐播放器专业通信工程四位抢答器摘要随着我国经济和文化事业的发展,在这个竞争激烈的社会中,知识竞赛、评选优胜,选拔人才之类的活动愈加频繁。
在很多竞争场要求有快速公正的竞争裁决,例如:证劵、股票交易及各种智力竞赛等。
在现代社会生活中,智力竞赛更是作为一种生动活泼的教育形式和方法能够引起观众极大的兴趣。
但是、在竞赛中往往是多个选手一起,分为几个小组参加比赛,针对主持人提出的问题各竞赛小组进行抢答,而抢答环节就要有一种逻辑电路抢答器作为裁判员功能、实现其比赛公平、公正的规则。
智能抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它都能客观、迅速地判别出最先获得发言权的选手。
新增了许多功能,如选手号码显示,抢按后的计时,选手得分显示等功能。
随着科技的发展,现在的抢答器向着数字化、智能化的方向发展.本设计借助于QuartusⅡ软件仿真制作了四人抢答器。
通过选手按动按键的先后,判定由哪位选手回答问题,并且实现倒计时和对选手加分的功能。
本设计分为三个模块:控制模块、计时模块、计分模块,各个模块共同作用,以实现整个设计的总体功能。
关键词:QuartusⅡ,仿真,抢答器,控制模块,计时模块,计分模块Four-way responderABSTRACTWith the development of China's economic and cultural undertakings, in this competitive society, knowledge contests, selection of superior, talents such as activities more and more frequent. In many competitive games require fast fair competition award. In the modern society life, quiz is as a kind of lively education form and the method can cause the audience interest. But, in the competition is often several players together, divided into several groups to participate in the game, against the host question carries on the competition team vies to answer first, vies to answer first link will have a logic circuit buzzer as referee function, achieve the game rules of fairness and justice.Smart responder is a kind of equipment, they are widely used in various competitions, vies to answer first, it can be objective, quickly won the voice discriminant out first. Added many features, such as the contestant number display, rob after pressing time, players score shows, and other functions. With the development of science and technology, now the responder toward digital, intelligent direction.This design with the aid of Quartus Ⅱsoftware simulation produced four responder. Through the player has to press a button, decide which players to answer the question, and can realize the function of the countdown and the player points. This design is divided into three modules: control module, timing module, scoring module, each module combination, to achieve the over all function of the whole design.KEY WORDS: QuartusⅡ,Simulation ,Answer four device,Control,Timing,Scoring目录前言 (1)第1章绪论 (2)1.1 抢答器系统图 (2)1.2 抢答器设计要求 (2)1.3 基本功能 (3)第2章模块设计 (4)2.1 主控制模块 (4)2.1.1 主要功能 (4)2.1.2 代码编写 (4)2.1.3 仿真波形及其分析 (6)2.2计时模块 (7)2.2.1 主要功能 (7)2.2.2 代码编写 (7)2.2.3 仿真波形及其分析 (8)2.3 计分模块 (9)2.3.1 主要功能 (9)2.3.2 代码编写 (9)2.3.3 仿真波形及其分析 (12)第3章顶层电路 (13)3.1 电路图 (13)3.2 抢答器工作原理 (14)3.2.1 各个端口的含义 (14)3.2.2 操作流程及相应波形图 (14)结论 (16)谢辞 (17)参考文献 (18)前言关于这次设计的用于多人竞赛抢答的器件,在现实生活中很常见,尤其是在随着各种智益电视节目的不断发展,越来越多的竞赛抢答器被用在了其中,这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张、活跃气氛,让观众看得更有情趣。
微机原理音乐播放程序设计
实验报告(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 <dos.h>#include <stdio.h>#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 604void 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(DO,400);sing(DLA,2000);sing(0,2000);sing(FA,800);sing(FA,400);sing(MI,400);sing(RUI,400);sing(DO,400);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(GRUI,400); sing(GMI,600); sing(GSO,600); sing(GRUI,3600); sing(0,400); sing(GRUI,400); sing(GRUI,400); sing(SO,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(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)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线,随后修改了程序。
微机原理课程设计音乐播放器
一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。
通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。
该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
通过课程设计环节来加强对所学知识的理解和应用。
二、课程设计相关知识2.1 定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。
缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。
本实验就采用了8254,其主要功能为:(1)每片上有3 个独立的16 位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6 种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达10MHz。
主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.2 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:8254的引脚(1)D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
微机原理课程设计-音乐播放器
WAIT1: MOV CX,6 DELAY1:LOOP DELAY1
DEC BX JNZ WAIT1
;设循环次数 6 ;循环 BX 次,即传进来的节拍时间
POP POP POP POP POP RET SPEAKER
DI DX CX BX AX
ENDP
;恢复堆栈
;_______歌曲乐谱_____________
回顾起此次微机原理课程设计,至今我组成员仍感慨颇多。从理论到实践, 在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西, 同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过 的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论
知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结 论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在 设计的过程中遇到问题,可以说得是困难重重,这毕竟是我们第一次做硬件设计, 难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对 以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说 8255A 芯片的使用, PROTUES 软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后, 我们把以前所学过的知识又重新温故了一遍,起到了课程设计的预期效果。
MOV AL,10110110B OUT 46H,AL
;对计数器写控制字
MOV DX,00H MOV AX,5000 DIV DI OUT 44H,AL 8253 的通道 2 端口 MOV AL,AH OUT 44H,AL
;设置被除数 ;(DI)=频率,商→AL,余数→AH ;先送 LSB 最低有效位,44H 为
音乐播放器课程设计报告
目录一、设计任务要求 ................................................................................................ - 2 -1、课程设计题目 ............................................................................................. - 2 -2、工程设计总述 ............................................................................................. - 4 -二、选择器件 .......................................................................................................... - 4 -三、功能模块 .......................................................................................................... - 4 -1.分频器(div) ............................................................................................... - 4 -2、计数器(notetabs)................................................................................... - 6 -3、选择模块(choice)................................................................................... - 7 -4、数据翻译模块(tontaba): ...................................................................... - 9 -5、译码器模块(deled) .............................................................................. - 10 -6、数控分频器模块(speakera)................................................................ - 14 -7、乐谱数据ROM(四个模块)................................................................. - 15 -四、总体设计电路图 ............................................................................................ - 21 -1、顶层设计的电路原理图 ........................................................................... - 21 -2、顶层设计的仿真结果: ........................................................................... - 22 -3、电路的顶层文件管脚分配图 ................................................................... - 22 -五、心得体会 ........................................................................................................ - 22 -音乐播放器课程设计一、设计任务要求1、课程设计题目设计一个乐曲演奏电路,能够自动播放2首音乐。
微机原理 电子音乐播放器报告
《微机原理》课程设计报告评阅成绩评阅教师评阅时间题目:电子音乐播放器专业班级:电子信息科学与技术0810 班设计学生:完成时间:2010年12月15 日湖南文理学院物理与电子科学学院设计题目电子音乐播放器设计要求利用8253作为音阶频率发生器,应先对一段音乐进行编码后存入音符表,并建好音阶表(只建一个八度即可),音符长度不能少于60个,连续播放三遍即可停止。
设计思路用频率发生器74LS393给定时/计数器8253提供一个固定频率的时钟信号,通过给8253输入计数值,以输出对应C调DOU、RUAI、MI、FA、SOU、LA、XI 、DOU(高)的不同频率。
在通过延时下一计数值的输入,控制节拍时间。
最后输入扬声器就会有对应音乐播放。
硬件设计:⑴、频率发生器74LS393的T7端输入到8253的CLOCK0端,提供15.625kHz的时钟信号,⑵、定时/计数器8253的GATE0接﹢5V,提供高电平;⑶、定时/计数器8253的OUT0接扬声器驱动模块的SIN端口;⑷、扬声器驱动模块的J5端口接扬声器的J5端口。
连接图如下框中的系统设计原理图。
程序设计:见下程序流程图。
8253的计数值N=;fifcTcTi=15625;其中=fc现。
延时下一音符的读取实而每个音符的节拍通过表中读取由其中;frequencyfi对应的C调的DOU、RUAI、MI、FA、SOU、LA、XI 、DOU(高)频率为264、297、330、352、396、440、495、528;8253的控制字端口为43H,0、1、2计时器输入端口地址分别为40H、41H、42H 。
系统设计原理图程序流程图源程序:写入8253,计时赋值延时开始三次播放结束74LS393T7YCLOCK0GATE0扬声器驱动SIN J5扬声器8253OUT0+5V定义端口号NCODE SEGMENTASSUME CS:CODEorg 1000hSTART: JMP TCONTTCONTRO EQU 0043H ;8253控制口地址0043H TCON0 EQU 0040H ;定时计数器0地址0040H TCONT: mov cx,64 ;写入计数值jixu: mov ax,64sub ax,cxmov bx,axmov al, cs:[bx+offset data1] ;查音阶表mov cs:[4000h],alcall set8253 ;调用8253设置call delay ;调用延时程序loop jixujmp tcont ;循环delay: push cx ;延时mov cx,01ffhdelay1: call delay2loop delay1pop cxretdelay2: push cxmov cx,0ffhdelay3: loop delay3pop cxretset8253: MOV DX,TCONTRO ;8253写控制字MOV AL,36HOUT DX,ALMOV DX,TCON0 ;8253定时计数器0工作在方式3MOV AL,byte ptr ds:[4000h]OUT DX,ALMOV AL,00HOUT DX,ALretdata1: db24,20,30,30,27,24,40,40,30,27,24,20,27,27,27,27,24,20,30,30,27,24,36,36,27,40,27,24,30,3 0,30,30,18,18,20,20,18,18,30,30,24,18,24,20,27,27,27,27,24,20,30,30,27,24,36,36,27,40,27 ,24,30,30,30,30CODE ENDSEND START设计总结:经过1个星期的课程设计,完成任务的效果和预想中有很大的出入,以为是一个简单的实验,也没有查阅资料,直到调试的时候,来编程,才发现有困难!即时大框架做好了,也很可能失败,很多小细节时我们不容忽视的。
《微机原理与应用》课程设计-电子音乐播放器模板
电子音乐播放器一、课程设计的目的和意义学习和掌握计算机中常用接口电路的应用和设计技术,学会针对不同的要求设计汇编程序代码,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计要求利用8254作为音阶频率发生器,应先对至少两段音乐进行编码后存入音符表,并建立好音阶表,每段音符长度不能少于60个,每首连续播放3遍后,自动播放下一段音乐,几段音乐播完后,循环播放,直到有键盘输入任意字符时停止,并且使用8255作为控制开关的并行输入接口,输入开关选择的音乐控制信号。
三、设计总框图四、设计设计思路说明:电子音乐播放器属于接口电路的连接使用,本设计是以8254芯片为核心的发生系统。
8086CPU 在形成系统总线后,通过和8254及8255的连接使用可以很好的驱动扬声器发音。
系统初始化后,8255通过B 通道,从控制开关读取所需的控制字,并送入8086CPU 中进行判断,选择不同的播放音乐。
使8254的通过0号计数器工作在“频率发生器”方式3,向发生器发出不同频率的方波。
当给定不同的计数初值时可以使扬声器发出不同频率的音响。
五、程序流程图开始 读取音符频率是1H 吗? N 是2H 吗? N 是4H 吗? Y Y N 键盘是否输入? 结束播放song1 播放song2 播放song3 Y N Y播放音乐 读取选择信号 CX=0 N Y六、接口电路原理图1、8254的基本知识8254占用4个端口,3个定时器各占1个,控制端口占1 个。
8254的内部结构如图所示,它主要包括以下几个主要部分:8254的内部结构(1).数据总线缓冲器实现8254与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8254的控制信息、数据信息以及CPU从8254读取的状态信息,包括某时刻的实时计数值。
微机原理与接口技术简单的音乐选择播放器
微机原理与接口技术课程设计报告题目名称:简单的音乐选择播放器学生姓名:学号:专业年级: 09级计算计科学与技术指导教师:时间: 2012年1月1日目录1.课程设计方案 ................................................................................. - 2 - 2.课程设计任务和技术要求 ............................................................. - 2 - 3、总体设计方案 ................................................................................. - 2 -3.1基本设计 ................................................................................. - 2 -3.2 扬声器驱动 ............................................................................ - 2 -3.3程序运行 ................................................................................. - 3 -3.3.1主要界面 ...................................................................... - 3 -4、程序设计方案 ................................................................................. - 4 -4.1数据段设计 ............................................................................. - 4 -4.1代码段设计 ............................................................................. - 4 -5. 心得体会........................................................................................... - 4 -6.主要参考文献 .................................................................................... - 5 - 附页:.................................................................................................... - 6 -1.课程设计方案本次课程设计,由于个人能力有限最终将设计改为利用汇编制作音乐选择播放器,PC机上的大多数I/O都是由主板上的8255可编程序外围接口芯片管理的。
音乐播放器的实现及LCD显示微机原理课程设计
微机原理与接口技术课程设计报告题目:音乐播放器的实现及LCD显示学院:信息学院专业:物联网班级:2012240901学号:201224090105姓名:章杭目录一、课程设计任务及要求...............................1.1 课程设计题目.........................................................................1.2 课程设计任务及要求.............................................................二、课程设计相关知识...................................2.1 8254芯片.................................................................................2.2 8255芯片..................................................................................2.3 12864液晶................................................................................三、程序设计思路...........................................3.1 设计思路说明.......................................................................3.2 电路图连接...........................................................................四、代码程序说明...........................................五、调试结果及分析.......................................六、总结与体会...............................................一、课程设计任务及要求1.1 课程设计题目音乐播放器的实现1.2 课程设计任务及要求要求用TCP-ZK实验箱及PC机的连接实现音乐播放功能,并在12864液晶屏上显示所放音乐的歌名。
电子音乐播放器课程设计
一.电子音乐播放器一、设计的任务和目的题目目的:学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
设计要求:利用8253作为音阶频率发生器,应先对一段音乐进行编码后存入音符表,并建立好音阶表(只建立一个8度即可,音阶表见附录),音符长度不能少于60个,连续播放3遍后停止。
二8253芯片介绍1 芯片介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。
8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号8253引脚图(6)方式5:硬件触发的选通信号8253引脚图如图所示,各引脚功能如下。
D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
2 控制字三.程序框图通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。
当与门打开后,经过放大器放大的作用,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序,之后再将扬声器(关闭与门)即可。
c课程设计音乐播放器
c 课程设计音乐播放器一、教学目标本课程的目标是让学生掌握音乐播放器的制作原理和技巧,学会使用C语言进行程序设计,培养学生的编程能力和逻辑思维能力。
具体的学习目标包括:1.知识目标:学生需要了解音乐播放器的基本原理,掌握C语言的基本语法和数据结构,熟悉音乐文件的处理方法和音效控制技术。
2.技能目标:学生能够运用C语言编写音乐播放器程序,进行音频文件的播放、暂停、停止、跳转等操作,调整音量大小和音效效果,实现歌词同步和专辑封面显示等功能。
3.情感态度价值观目标:学生通过制作音乐播放器,培养对编程和音乐的兴趣,提高创新意识和团队合作能力,增强自信心和自我成就感。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.音乐播放器的基本原理:介绍音乐播放器的工作原理,包括音频解码、音量控制、音效处理等模块。
2.C语言基础知识:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生编写音乐播放器程序打下基础。
3.音乐文件处理:介绍音乐文件的常见格式和结构,讲解如何读取、解析和播放音乐文件。
4.音效控制技术:讲解如何在音乐播放器中实现音量调整、音效效果等功能。
5.歌词同步和专辑封面显示:介绍如何实现歌词同步播放和专辑封面显示功能,提高音乐播放器的用户体验。
6.音乐播放器程序设计:引导学生运用所学知识,分组设计和实现一个简单音乐播放器程序。
三、教学方法为了激发学生的学习兴趣和主动性,本课程采用以下教学方法:1.讲授法:讲解音乐播放器的基本原理、C语言基础知识、音乐文件处理方法等,为学生提供理论支持。
2.案例分析法:分析实际的音乐播放器案例,引导学生学会分析问题、解决问题,提高编程能力。
3.实验法:分组进行音乐播放器程序设计,让学生动手实践,培养学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享编程心得和解决问题的方法,促进团队合作和交流。
四、教学资源为了支持教学内容和教学方法的实施,本课程准备以下教学资源:1.教材:选用权威、实用的C语言编程教材,为学生提供系统的学习资料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。
通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。
该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
通过课程设计环节来加强对所学知识的理解和应用。
二、课程设计相关知识2.1 定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。
缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。
本实验就采用了8254,其主要功能为:(1)每片上有3 个独立的16 位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6 种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达10MHz。
主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.2 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:8254的引脚(1)D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
(2)RD:来自于CPU的读控制信号输入引脚,低电平有效。
(3)WR:来自于CPU的写控制信号输入引脚,低电平有效。
(4)CS:芯片选择信号输入引脚,低电平有效。
(5)A1、A0:地址信号输入引脚,用以选择8254芯片的通道及控制字寄存器。
(6).VCC 及GND:+5V电源及接地引脚。
(7)CLKi: i=0,1,2,第i个通道的计数脉冲输入引脚,8254规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。
(8)GATEi: i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。
(9)OUTi:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。
2.3 8254端口地址8254控制字说明:(1) 8254每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。
(2) 8254编程时先写控制字,再写时间常数。
2.4 8254工作方式(1) 方式0:计数结束产生中断方式当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
(2) 方式1:可编程单次脉冲方式当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
(3) 方式2:频率发生器方式当初值装入时,OUT变为高;计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数周期。
(4) 方式3:方波发生器当装入初值后,在GATE上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT输出低电平。
方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,只是输出的波形不同。
(5)方式4:软件出发选通方式进入工作方式4,OUTi输出高电平。
装入计数值n后,如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUTi输出宽度为一个CLKi周期的负脉冲。
由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。
如果在操作的过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从初值开始减“1”计数。
(6)方式5:硬件触发方式计数进入工作方式5,OUTi输出高电平,硬件触发信号由GATE端引入。
因此,开始时GATE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUTi将输出负脉冲,其宽度固定为一个CLKi周期,表示定时时间到或计数次数到。
三、程序设计思路所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
CPU通过对定时器的通道2(端口地址为42)进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低控制通道2门控的开断。
以产生特殊的音响。
当定时器接收的计数值为533H时,能产生896Hz的声音,因此产生其他频率的计数值就可算出来:533Hz×896÷频率=1234DC÷频率在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。
其位组合的格式如下:当通道2用于发声时,采用的是模式3,在模式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。
产生指定频率声音的程序段如下:MOV AL,0B6HOUT 43H,AL ;43H为8254的控制字端口MOV DX,12HMOV AX,34DCHDIV DI ;(DI)=频率OUT 42H,AL ;42H为8254的通道2端口MOV AL,AHMOV 42H,AL从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。
送到扬声器的信号还受到了从并行接口芯片8255(端口地址为61H)来的双重控制,端口61H的最低位控制通道2的门控开断,以产生特殊的音频信号,端口61H的PA1位和定时器的输出信号同时作为与门的输入,PA0和PA1位可由程序决定为0还是为1。
显然只有PA0和PA1都是1时,才能使扬声器发出声音。
控制音长的时间可以简单地通过反复执行指令来得到。
我们知道执行2801次LOOP指令约需要10MS的时间。
因此用10MS的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长了。
实现程序如下:IN AL,61HMOV AH,ALOR AL,3OUT 61H,AL ;开扬声器L: MOV CX,2801DY:LOOP DYDEC BXJNZ LMOV AL,AHOUT 61H,AL ;关扬声器四、功能流程图及子程序说明1、总流程图MAIN程序:MAIN程序是总程序,输出说明,等待用户按键并读取键值。
根据不同的按键选择调用播音子程序播放不同的歌曲。
2、音乐播放子程序流程图PLAY子程序:PLAY子程序是播音子程序,SI指向音节表中的频率,BP指向音节表中的时间。
从SI的指向的音节表中取一个频率,只要不是-1,即有效就再读取时间,然后计算计数初值送入计数器,产生各种频率。
开启扬声器,根据所取的时间调用若干次延时子程序。
这段时间扬声器就发出该频率的声音,延时结束,就关闭扬声器,调用音节之间的小延时程序。
最后修改SI和BP,指向下一个频率,重复上面的工作DELAY子程序和DELAY_OFF子程序:两个都是子程序,采用空操作循环多次的方法,只是第二个延时时间较短,大概为5ms。
五、试验结果截屏:初始界面:如果按错了键,会出现如下界面:如果选择正确,将出现如下界面:六、参考文献【1】李长青. 微机原理与接口技术. 徐州:中国矿业大学出版社,2006【2】沈美明. 汇编语言程序设计实验教程. 北京:清华大学出版社,2002年【3】周明德. 微机原理与接口技术. 北京:人民邮电出版社,2002年七、总结在本次设计中,可以说是一次成功的经验。
在我们学完了《微型计算机原理与接口技术》这门课的基础上来做这个设计,通过设计后,使我们对这门课的理论知识的理解有很大程度上的加强。
微机原理这门课程本身是一门实验性和工程性很强的专业技术课,因此不仅要重视理论教学,更应注意实践技能的培养和训练。
课程设计是这门课程的一个重要环节,通过课程设计,巩固、加深和拓宽了学习的理解,本课程设计的重点目标是使用汇编语言,而不过多涉及硬件方面的太多知识。
在编程方面我通过本次课程设计学到了很多。
一开始面对很长的程序往往有畏难情绪,感觉无法下手,没办法只能硬着头皮啃下去,多看几个和音乐播放有关的汇编程序,然后我就能慢慢看懂了并理解了别的作者的设计思路。
然后再根据自己的思路,对照本人在图书馆借的汇编语言指导书慢慢编写符合自己思路的程序。
一次写出来的程序肯定不会是正确的,还需要进一步调试它。
检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。
编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。
调试程序中,学习了DEBUG 的使用,DEBUG对检查程序的错误作用很大。
同时,也要灵活使用各种调试方法,来缩小寻找错误的范围。
书到用时方恨少。
在课程设计过程中,我才体会到这句话的深意。
课堂上学的8254的知识和汇编语言都太少,还不足以完成本次课设,为此我经常跑图书馆借了各种各样的工具书。
有的书用处较大,有的书仅能用到一小块知识,就是这样,一步步在知识的海洋里我寻觅着自己需要的东西,确实克服了不少困难,解决了不少问题。
或许坎坷才能更好的使人成长。
在这次的课程设计中,我的收获是不但做出了一个符合要求的音乐播放器,而且为自己积累了一些宝贵的经验。
同时我也对音乐方面的频率知识有了一些认识,我想如果不是本次课程设计中用到这方面知识,我这辈子可能没有机会去接触这方面的知识了。
这,或许也是我比别的同学多出的一点收获吧!六、附录1、源程序代码:SSEG SEGMENT PARA STACK 'stack'dw 100h dup(0) ;Resize the stack by changing the number '100'SSEG ENDSDSEG SEGMENTINFO1 DB 0DH,0AH,'--------------------------',0DH,0AH,'THERE ARE 3 SONGS:',0DH,0AH,0DH,0AH,'$' INFO2 DB '1.HAPPY BIRTHDAY',0DH,0AH,'$'INFO3 DB '2.SHEEP',0DH,0AH,'$'INFO4 DB '3.RIVER',0DH,0AH,'$'INFO5 DB '0.EXIT',0DH,0AH,'$'INFO6 DB 'YOU HAVE CHOSEN :$'INFO7 DB 'THANK YOU FOR YOUR USE',0DH,0AH,'$'INFO8 DB '---------------------------',0DH,0AH,'PRESS THE KEY TO SELECT SONG!',0DH,0AH,'$'INFO9 DB 0DH,0AH,'-------------------',0DH,0AH,'|INVALIDSELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$'FREG1 DW 2 dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349 ;曲1的频率DW 330,294,466,266,440,349,392,349,-1TIME1 DW 1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4 ;曲1的时间FREG2 DW 330,294,262,294,3 DUP(330) ;曲2的频率DW 3 DUP(294),330,392,392DW 330,294,262,294,4 DUP(330)DW 294,294,330,294,262, -1TIME2 DW 6 DUP(1),2 ;曲2的时间DW 2 DUP(1,1,2)DW 12 DUP(1),4FREG3 DW 330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294 ;曲3的频率DW 262,262,220,196,220,262,294,332,262, -1TIME3 DW 3 DUP(2),1,1,2,1,1,4 ;曲3的时间DW 2 DUP(2,2,1,1),4DW 3 DUP(2,1,1,1),4DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG, ss:SSEGINIT PROC ;初始化程序mov ax, dsegmov ds, axmov es, axINIT ENDPMAIN PROC ;程序入口call INITRE: MOV DX,28BH ;关闭扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALLEA DX,INFO1 ;输出说明信息MOV AH,09HINT 21HLEA DX,INFO2INT 21HLEA DX,INFO3INT 21HLEA DX,INFO4INT 21HLEA DX,INFO5INT 21HLEA DX,INFO8INT 21HMOV AH,01H ;读取按键INT 21HCMP AL,'1' ;根据不同的按键播放不同的曲子JE MUSIC1CMP AL,'2'JE MUSIC2CMP AL,'3'JE MUSIC3CMP AL,'0'JE EXITLEA DX,INFO9 ;无效选择,输出错误提示MOV AH,09HINT 21HJMP REMUSIC1:MOV SI,OFFSET FREG1 ;指向曲1的表MOV BP,OFFSET TIME1CALL PLAYJMP REMUSIC2:MOV SI,OFFSET FREG2 ;指向曲2的表MOV BP,OFFSET TIME2CALL PLAYJMP REMUSIC3:MOV SI,OFFSET FREG3 ;指向曲3的表MOV BP,OFFSET TIME3CALL PLAYJMP REEXIT:MOV DX,28BH ;关闭扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXOUT DX,ALLEA DX,INFO7 ;输出欢迎使用信息,增加界面友好度MOV AH,09HINT 21Hmov ax, 4c00h ;The end of the program, return to the systemint 21hMAIN ENDPPLAY PROC ;PLAY子程序,功能上面介绍过L1: MOV BX,DS:[SI] ;取频率CMP BX,-1 ;看是否有效JE L0 ;无效就退出MOV CX,DS:[BP] ;读取时间MOV DL,CL ;保存时间ADD DL,30HMOV AH,02HINT 21HMOV DX,0FH ;计算计数初值,1M的十六进制为0F4240H MOV AX,4240HDIV BXMOV BX,AXMOV DX,283H ;设置计数器工作方式MOV AL,36HOUT DX,ALMOV DX,280H ;输入计数初值MOV AX,BXOUT DX,ALMOV AL,AHOUT DX,ALMOV DX,28BH ;开扬声器MOV AL,89HOUT DX,ALMOV DX,28AHIN AL,DXNOT ALMOV DX,288HOUT DX,ALROD:CALL DELAY ;延时LOOP RODMOV DX,28BH ;关扬声器MOV AL,89HMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALCALL DELAY_OFF ;音节间延时ADD SI,2ADD BP,2JMP L1L0: RETPLAY ENDPDELAY PROC ;延时子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV BX,09FHLL1:MOV CX,0FFFFH ;循环这么多次LOP: LOOP LOPDEC BXJNZ LL1POP DXPOP CXPOP BXPOP AXRETDELAY ENDPDELAY_OFF PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV BX,0FHLL2:MOV CX,0CFFFHLOP2: LOOP LOP2DEC BXJNZ LL2POP DXPOP CXPOP BXPOP AXRETDELAY_OFF ENDPCSEG ENDSEND MAIN2、各个音符的对应频率表:音符频率/HZ 半周期/us 音符频率/HZ 半周期/us 低1DO 262 1908 #4FA# 740 0676#1DO# 277 1805 中5SO 784 0638低2RE 294 1700 #5SO# 831 0602#2RE# 311 1608 中6LA 880 0568低3M 330 1516 #6LA# 932 0536低4FA 349 1433 中7SI 988 0506#4FA# 370 1350 高1DO 1046 0478低5SO 392 1276 #DO# 1109 0451#5SO# 415 1205 高2RE 1175 0426低6LA 440 1136 #2RE# 1245 0402#6LA# 466 1072 高3M 1318 0372低7SI 494 1012 高4FA 1397 0358中1DO 523 0956 #4FA# 1480 0338#1DO# 554 0903 高5SO 1568 0319中2RE 578 0842 #5S0# 1661 0292#2RE# 622 0804 高6LA 1760 0284中3M 659 0759 #6LA# 1865 0268中4FA 698 0716 高7SI 1976 0253。