一 需求分析

设计一个音乐盒,可用在诸如生日礼品等场景里。

包含的功能有播放音乐、切换音乐。默认播放第一首音乐,单曲循环。当拨动控制开关时切换歌曲,总共三首,分别由三个开关控制。当且仅当一个开关开启其它开关关闭时有效,多个开关同时开启时无效。

要求所选多个芯片或模块的加权值总和≥2,并且,所选芯片或模块中必须包含8259或8254芯片的其中一个作为功能模块部分。

二 设计思路

发声:通过将8254(8253)模块,设置为第三种模式,选择0号计数器,00110110B,作为波形发生器。通过输出波形的频率控制音调,通过维持频率波形的时间控制节拍。(1Mhz时钟信号下,频率与音阶对应如下:1=247,2=277,3=311,4=399,5=370,6=415,7=466,

1’=494)。

控制:通过将8255模块,设置为方式0,A端口输入,10010000B,作为控制器。通过读取A端口输入的数据来选择相应的歌曲。每次读取到的数据存入寄存器,与下次读取到的做对比,来判断是否需要切换。切换时,不同开关位状态分别代表不同歌曲,设置的三首音乐分别对应001B,010B,100B。

程序流程图设计如下图:

参考博文和源码下载地址:

https://write-bug.com/article/104.html

基于汇编语言的音乐盒设计与实现相关推荐

  1. java八音盒_基于汇编语言的音乐盒设计与实现

    一 需求分析 设计一个音乐盒,可用在诸如生日礼品等场景里. 包含的功能有播放音乐.切换音乐.默认播放第一首音乐,单曲循环.当拨动控制开关时切换歌曲,总共三首,分别由三个开关控制.当且仅当一个开关开启其 ...

  2. 单片机音乐盒c语言,基于单片机的音乐盒设计与实现

    中图分类号:TP338 文献标识码:A 文章编号:1009-3044(2016)16-0234-03 音乐是由人们在长期发展中为了表达各种情感而特别挑选出来的,并组成一个固定的系统[1].音乐以其具有 ...

  3. 基于汇编语言的电子琴设计(1)

    [调试环境:TASM 5.0+ winxp] 一.基本要求:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:off ...

  4. stc89c51单片机音乐盒系统设计_基于单片机的音乐盒设计资料 含PCB与原理图,源程序和报告...

    1 选题的背景 本次课设是应用单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计.通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同的音调的音乐,在利用延迟来控制 ...

  5. c51单片机音乐盒c语言,毕业论文-基于AT89C51单片机的音乐盒设计(C程序).doc

    精品论文 基于单片机的音乐盒设计 [摘要]本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒.该音乐盒主要由按键电路. ...

  6. stc89c51单片机音乐盒系统设计_基于51单片机音乐盒课程设计1.doc

    基于51单片机音乐盒课程设计1 课程名称: 微机原理课程设计 题 目: 基于单片机的音乐盒设计 摘要 随着人类社会的发展,人们对视觉.听觉方面的享受提出了越来越高的要求.小小的音乐盒可以给人们带来美好 ...

  7. stc89c51单片机音乐盒系统设计_基于单片机数字音乐盒的设计与实现(附PCB,电路图,程序)...

    基于单片机数字音乐盒的设计与实现(附PCB,电路图,程序)(开题报告,中期检查表,毕业论文18000字) 摘要 传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉 ...

  8. stc89c51单片机音乐盒系统设计_基于单片机STC89C52的数字音乐盒设计

    基于单片机STC89C52的数字音乐盒设计 1基于单片机 STC89C52 的数字音乐盒设计一. 引言1.1 设计的目的通过课程设计,让学生熟悉单片机微机应用系统开发.研制的过程,软硬件设计的工作方法 ...

  9. 基于51单片机带显示器的音乐盒设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87512938?spm=1001.20 ...

最新文章

  1. 211.Alpha多样性箱线图(样章,11图2视频)
  2. 《数据结构》知识点Day_03
  3. » Markdown/reST 编辑器 ReText 3.0 发布 Wow! Ubuntu
  4. 列表数据提交_Mybatis-实现数据的增删改查
  5. Java SE Eclipse中引入第三方jar及class
  6. SAP CRM和Cloud for Customer的organization unit
  7. 分数相同名次排名规则C语言,如何给数据排名(相同分数相同名次)-excel篇
  8. mysql访问60s出现timeout_websocket 每60s报WsHttpUpgradeHandler.timeoutAsync
  9. Hadoop未授权访问漏洞记录(影响版本:全版本,端口号:50070)
  10. 各大网站猪年新春应景LOGO秀
  11. 用SQL中的isnull函数注意了
  12. 利用中继攻击解锁并开走汽车,本田不打算修复(含视频)
  13. 【CentOS 7架构16】,限制user_agent#171226
  14. 动网论坛“数据库连接出错”处理记-间歇博客
  15. 考研经验-东南大学软件学院软件工程(这些基础课和专业课的各种坑和复习技巧你应该知道)
  16. unity3——Humanoid与generic的区别
  17. 微信小程序showToast在真机中显示时间不可控制,显示时间短
  18. mysql基本用法笔记
  19. 高性能定时器--时间轮/多级时间轮
  20. Arduino LCD1602电子时钟

热门文章

  1. c4d用python能做出啥动画_做三维动画为什么要选择Cinema 4D?C4D软件可以制作什么类型的动画...
  2. vue嵌入html文件,vue如何引用独立的html模板文件?
  3. Linux安装Skype
  4. 计网实验原理-TCP/UDP套接字编程
  5. XP系统设置多用户远程桌面
  6. uvm misc note
  7. 由于计算机技术的发展才产生了信息技术,2014年信息技术学业水平考试复习题...
  8. Python 新浪实时新闻词云
  9. 【Three.js:3D模型】各种模型简单介绍
  10. 实验一:基于Ubuntu系统实现无人机自主飞行