- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
l单片机课程设计音乐彩灯开关控制
微机原理及接口技术课程设计
设计题目:开关控制音乐彩灯闪烁设计
指导老师:
学生姓名:
学院:
班级:
学号:
设计时间:
一.课程设计题目
开关控制音乐彩灯闪烁系统设计
二.设计功能说明
用实验系统中的LED来代替彩灯,用定时器T1,工作方式1,通过8031的P1.0驱动LED亮500ms,灭500ms闪烁。
利用定时器0 实现音阶的振荡频率,定时器1 实现音值的基本节拍控制,两者均工作于定时方式1 状态。对于一般乐曲来讲,一拍的时间约占 0.5秒左右,且以1/4拍作为基本节拍,通过程序输入基本节拍的倍数,而实现音值的节拍时间控制。
程序设计中音乐的播放用接口P1.4输出,最后通过开关K1控制P1.0,开关K2控制P1.4,从而实现音乐的播放和停止,彩灯的亮灭。
三.设计内容
1. 定时器T1,工作方式1产生500ms的定时程序驱动LED闪烁,设定时25ms的初值为X,则有(2-X)
图一
(G调)
音阶 5 6 7 1 2 3 4 振荡频率f (Hz) 293.67 329.63 367.00 392.00 440.00 493.88 523.25 定时初值(H) FCAD FD0A FD5D FD82 FDC8 FE06 FE22 代码(H) 01 02 03 04 05 06 07 音阶 5 6 7 .
1 .
2 .
3 0 振荡频率f (Hz) 587.33 659.26 740.00 784.00 880.00 987.77 休止符 定时初值(H) FE57 FE85 FEAE FEC1 FEE4 FF03 代码(H) 08 09 0A 0B 0C 0D 00
音值 X X X· X X· X- X- - X- - - X- - - - 节拍 1/4 2/4 3/4 1 3/2 2 3 4 5 代码(H) 01 02 03 04 06 08 0C 10 14
四.程序流程图
?
五.程序清单
ORG 0000H ;程序开始
AJMP LP0 ;跳转乐曲信息表首地址
ORG 000BH
AJMP LP6 ;跳转至音阶代码
ORG 001BH
AJMP PTIINT ;中断彩灯闪烁服务程序
MOV DPTR, #0F0H ;送外部端口地址
MOVX A,@DPTR ;读入开关状态
MOVX @DPTR,A ;根据开关状态,驱动发光二极管
MOV P1,A ;开关控制接口P1
START:MOV R7,#14H ;R7=14
MOV TMOD,#10H ;中断方式
MOV TL1,#2CH
MOV TH1,#CFH
SETB EA ;开放总中断
SETB ET1 ;开放T1中断
SETB TR1 ;启动定时器T1
SJMP $
PTIINT:MOV TL1,#2CH ;恢复计算初值
MOV TH1,#CFH
DJNZ R7,PEND ;判断是否循环发生了20次
MOV R7,#05H
CPL P1.0 ;500ms后取反
LP0:MOV DPTR,#TABLE ;乐曲音符信息表首地址
MAIN:CLR A
MOVC A,@A+DPTR ;读音阶代码
MOV R5,A
MOV R0,A
CLR A
INC DPTR
MOVC A,@A+DPTR ;读节拍代码
MOV R4,A
MOV A,R5 ;重读音阶代码
DEC A
RL A ;以两个字节为单位查表
MOV R5,A ;代码转存
ADD A,#41H ;与TABLE0间的偏移量
MOVC A,@A+PC ;查得音阶定时初值高8位
MOV TH0,A
MOV R3,A ;初值高8位转存
MOV A,R5 ;重新装入音阶代码
ADD A,#3BH
MOVC A,@A+PC
MO
文档评论(0)