《2022年单片机汇编语言教程:课音乐程序设计[汇 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机汇编语言教程:课音乐程序设计[汇 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 28课-音乐程序设计(基于 HL-1、HJ-C52、HJ-3G 实验板)(图片HL-1 开发板 )利用单片机 (或单板机) 奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。单片机的基本发音实验我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音, 若再
2、利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。例如,要产生 200HZ 的音频信号,按图 1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为:其中子程序DEL为延时子程序, 当 R3 为1时,延时时间约为 20us,R3 中存放延时常数, 对200HZ音频,其周期为 1/200秒,即5ms 。这样,当P1.4的高电平或低电平的持续时间为2.5ms, 即R3 的时间常数取 2500/20=125(7DH)时,就能发出 200HZ的音调。将上述程序键入学习机,并名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
3、- - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ R3 的常数能感到音调的变化。乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率及其对应的时间常数。读者能根据表 1所供给的常数,将其16进制代码送入R3 ,反复练习体会。根据表 1能奏出音符。仅这还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。音符的节拍我们能用定时器T0来控制
4、,送入不一样的初值,就能产生不一样的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为 0.64秒。其它节拍与时间的对应关系见表2。但时,由于 T0的最大定时时间只能为 131毫秒,因此不可能直接用改变T0的时间初值来实现不一样节拍。我们能用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。表2中也给出了各种节拍所对应的时间常数。例如对1/4 拍音符,定时时间为 0.16秒,对应的时间常数为 16(即10H );对3拍音符,定时时间为1.92秒,对应时间长数为 192(即C0H ) 。我们将每一音符的时间常数和其对应的节拍常数作为一组,按次序将乐
5、曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就能实现演奏效果。此外,结束符和体止符能分别用代码00H 和 FFH来表示,若查表结果为 00H ,则表示曲子终了;若查表结果为 FFH ,则产生对应的停顿效果。为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不一样的音符。下面给出程序序清单,可直接在TD-III型学习机上演奏,对其它不一样型号的学习机,只需对应地改变一下地址即可。本程序演奏的是民歌“八月桂花遍地开”,C调,节奏为 94拍/ 分。读者也能自行找出一首歌,按表1和表2给定的常数,将乐曲翻译成码表输入机器,而程序不变。本实验办法
6、简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。程序清单(略,请参看源程序的说明)。程序框图如图 2所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ , 有问题指出.硬件连接说明:随便找一个仿真机或者什么单片机实验
7、板,只要能工作的就行,将程序输入,运行,然后找个音箱(你计算机旁边应当就有一对吧)拨出插头,插头的前端接在P1。0上,后面部分找根线接单片机的地,就应当有声了,然后怎么改进硬件连接就是你的事了。 。 。音乐程序汇编代码代码1-Voice.asm-ORG0000HLJMPSTARTORG000BHINC20H; 中断服务 , 中断计数器加1MOVTH0,#0D8HMOVTL0,#0EFH;12M 晶振,形成 10毫秒中断RETISTART:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
8、 3 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 表头地址送DPTRMOV20H,#00H; 中断计数器清0MOVB,#00H; 表序号清0MUSIC1:NOPCLRAMOVCA,A+DPTR; 查表取代码JZEND0; 是00H,则结束CJNEA,#0FFH,MUSIC5LJMPMUSIC3MUSIC5:NOPMOVR6,AINCDPTRMOVA,BMOVCA,A+DPTR; 取节拍代码送R7MOVR7,ASETBTR0;
9、启动计数MUSIC2:NOPCPLP1.0MOVA,R6MOVR3,A名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 中断计数器 (20H)=R7否?; 不等, 则继续循环MOV20H,#00H; 等于, 则取下一代码INCDPTR;INCBLJMPMUSIC1MUSI
10、C3:NOPCLRTR0; 休止100毫秒MOVR2,#0DHMUSIC4:NOPMOVR3,#0FFHLCALLDELDJNZR2,MUSIC4INCDPTRLJMPMUSIC1END0:NOPMOVR2,#64H ; 歌曲结束 , 延时1秒后继续MUSIC6:MOVR3,#00HLCALLDELDJNZR2,MUSIC6LJMPMUSIC0DEL:NOPDEL3:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 51 单片机
11、汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20hdb 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20hdb 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20hdb 30h,20h,30h,20h,39h,10h,26h,
12、10h,26h,60h,40h,10h,39h,10h,26h,20hdb 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10hdb 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20hdb 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20hdb 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20hd
13、b 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10hdb 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80hdb 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20hdb 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20hdb 39h,20h,26h,10h,2bh,10h,2bh,20h,2b
14、h,40h,40h,10h,40h,10h,20h,10hdb 20h,10h,2bh,10h,26h,30h,30h,80h,00HEND音乐程序汇编代码代码2-Voice1.asm-; 标题 八月桂花香 发声程序; 摘要详见 无线电92 年3期; 作者周振安ORG0000HLJMPSTART名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实
15、验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 中断服务 , 中断计数器加1MOVTH0,#0D8HMOVTL0,#0EFH;12M 晶振,形成 10毫秒中断RETISTART:MOVSP,#50HMOVTH0,#0D8HMOVTL0,#0EFHMOVTMOD,#01HMOVIE,#82HMUSIC0:NOPMOVDPTR,#DAT; 表头地址送DPTRMOV20H,#00H; 中断计数器清0MOVB,#00H; 表序号清0MUSIC1:NOPCLRAMOVCA,A+DPTR; 查表取代码JZEND0; 是00H,则结束CJNEA,#0FFH,MUSIC5LJMPMU
16、SIC3MUSIC5:NOPMOVR6,AINCDPTRMOVA,BMOVCA,A+DPTR; 取节拍代码送R7MOVR7,A名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 启动计数MUSIC2:NOPCPLP1.0MOVA,R6MOVR3,ALCALLDELMOVA,
17、R7CJNEA,20H,MUSIC2; 中断计数器 (20H)=R7否?; 不等, 则继续循环MOV20H,#00H; 等于, 则取下一代码INCDPTR;INCBLJMPMUSIC1MUSIC3:NOPCLRTR0; 休止100毫秒MOVR2,#0DHMUSIC4:NOPMOVR3,#0FFHLCALLDELDJNZR2,MUSIC4INCDPTRLJMPMUSIC1END0:NOPMOVR2,#64H ; 歌曲结束 , 延时1秒后继续MUSIC6:MOVR3,#00H名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
18、理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ ,1CHDB20H,20H,20H ,26HDB40H,20H ,20H ,2BHDB20H,26H,20H ,20HDB20H,30H ,80H ,0FFHDB20H,20H,1CH ,10HDB18H,10H,20H ,20H名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
19、师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ ,2BH ,20HDB30H,20H ,2BH ,40HDB20H,20H,1CH,10HDB18H,10H,20H,20HDB26H,20H ,2BH,20HDB30H,20H,2BH ,40HDB20H,30H,1CH ,10HDB18H,20H ,15H ,20HDB1CH,20H ,20H ,20HDB26H,40H,20H ,
20、20HDB2BH,20H,26H ,20HDB20H,20H,30H ,80HDB20H,30H,1CH ,10HDB20H,10H,1CH ,10HDB20H,20H,26H,20HDB2BH,20H,30H,20HDB2BH,40H,20H,15HDB1FH,05H,20H,10HDB1CH,10H,20H ,20HDB26H,20H,2BH ,20HDB30H,20H,2BH ,40HDB20H,30H,1CH,10HDB18H,20H ,15H,20HDB1CH,20H ,20H,20HDB26H,40H,20H,20HDB2BH,20H,26H,20HDB20H,20H,30H,30
21、HDB20H,30H,1CH,10HDB18H,40H,1CH,20HDB20H,20H,26H,40H名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ ,20HDB15H,40H,13H ,40HDB18H,80H,00Hend重要说明需要 51 学习板的朋友请QQ:
22、3981150881、本教程是慧净电子网上收整理,版权归互联网,全部免费共享,为了支持 慧净免费助学 加上了慧净 51 实验板的链接。2、教程中的实验不保证100% 正确,当你能认真学习时你会有能力修正实验中的小错误。3、请不要再问如何学单片机,如何写程序,为什么这样写程序的问题, 慧净不提供源码分析,如果你有心学单片机的,全部由你自己自学完成, 推荐你用慧净电子的HJ-C5HJ-C52 2实验板配套学习。祝你学业有成, 以后多点共享各种单片机资料,使中国电子技术更强名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
23、- - - - - - - 第 11 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ HJ-C52学习板, 想学单片机详细了解一下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51
24、实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ 功能模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
25、 - 第 14 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 51 单片机汇编语言教程 -慧净电子会员收集整理(全部 28 课)推荐使用慧净51 实验板。推荐51 学习网 WWW.HJMCU.COM淘宝网: http:/ QQ:398115088慧净单片机学习网址:WWW.HJMCU.COM淘宝网址:http:/ 年 11 月 11 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -