- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理及接口技术课程设计
设计题目:开关控制音乐彩灯闪烁设计
指导老师:
学生姓名:
学院:
班级:
学号:
设计时间:
一.课程设计题目
开关控制音乐彩灯闪烁系统设计
二.设计功能说明
用实验系统中的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)*0.000002 =0.025,X=53036=CF2C,在程序中给出TH,TL的赋值。
2.奏歌曲《两只蝴蝶》,乐谱为图一,其中每一音符占两个字节,第一个字节用于存放音阶代码,第二个字节用于存放节拍代码。
另外规定音阶代码00H表示休止符,80H表示反复演奏。
振荡频率的计算公式为:
f=f0×2(i+j)/12
其中f0=233.08188Hz(C调6#)。
i音调修正值
音调CC#DD#EFF#GG#AA#Bi01234567891011
j音阶修正值音阶55#66#711#22#344#55#66#7j-3-2-1012345678910111213
歌曲《两只蝴蝶》乐谱
图一
(G调)
音阶5671234振荡频率f (Hz)293.67329.63367.00392.00440.00493.88523.25定时初值(H)FCADFD0AFD5DFD82FDC8FE06FE22代码(H)01020304050607音阶567.
1.
2.
30振荡频率f (Hz)587.33659.26740.00784.00880.00987.77休止符定时初值(H)FE57FE85FEAEFEC1FEE4FF03代码(H)08090A0B0C0D00
音值XXX·XX·X-X- -X- - -X- - - -节拍1/42/43/413/22345代码(H)0102030406080C1014
四.程序流程图
开始运行
T0,T1初始化并开中断
装入音阶R5值到T0中,并启动T0
装入节拍R4值到T1中,并启动T1
当前播放状态是否结束
手控制开关K1
结束
继续播放
N
N
Y
Y
启动定时器T1
方式1
定初值,循环后取反
LED的闪烁,K2控制亮灭
?
五.程序清单
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次
文档评论(0)