汇编写的音乐播放器

这篇博客介绍了一个使用汇编语言编写的音乐播放器,通过控制蜂鸣器产生不同频率的波来播放音乐。作者详细阐述了如何计算低、中、高音的频率,设置延时以及处理键盘中断来实现人机交互。实验中,作者以《欢乐颂》为乐谱,实现了音乐播放功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微原第三次实验

刚转了一个汇编播放器的博客,后面发现需要移植的东西比较多,那个就当学习了,提示信息很全面,人机交互比较好。

 

实验前预习的时候参考这个写了一个欢乐颂的程序,实验时改成最炫民族风了,结果忘拷贝回来,只好把原版的代码发上来。

<1>蜂鸣器的工作方式

以前做单片机蜂鸣器发声的时候,蜂鸣器在三极管的C极,B极接IO口,高电平时候,be之间导通,ce之间通过电流,蜂鸣器振动发声。

这次做的时候,发现需要定时器产生一定频率的波。

用蜂鸣器做音乐发声的比较小,当个提示音就行。

 

<2>算出低中高音的频率,通过输出频率给蜂鸣器来发出不同的声音。

<3>需要一段乐谱

<4>每个音符之后有一定的间隔,也就是延时

<5>每个音符播放出后进入键盘中断,若有键按下则退出。

<6>开始播放时会讲这时需要播放的乐符的频率送入蜂鸣器,加延时后播放下一个,需要计算乐符的长度。

 

DATA SEGMENT
    ;Count number
    LOU  DB 122,108,97,91,81,72,64                       ;三种音调段的频率
    MID  DB 61,54,48,45,40,36,32
    HIG  DB 30,27,24,22,20,18,16
    ;Song huanlesong
    BOK  DB 3,3,4,5,5,4,3,2,1,1,2,3,3,2,2                ;乐谱
  DB 3,3,4,5,5,4,3,2,1,1,2,3,2,1,1
  DB 2,2,3,1,2,3,4,3,1,2,3,4,3,2,1,2,5,3
                DB 3,3,4,5,5,4,3,2,1,1,2,3,2,1,1
    LEN EQU $-BOK  ;How many chars.                  ;长度
    ;TON 1-LOW,2-MID,3-HIG
    TON  DB 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值