资源描述:
《单片机课程设计音乐彩灯开关控制.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微机原理及接口技术课程设计设计题目:开关控制音乐彩灯闪烁设计指导老师:学生姓名:学院:班级:学号:设计时间:一.课程设计题目开关控制音乐彩灯闪烁系统设计二.设计功能说明用实验系统中的LED来代替彩灯,用定时器T1,工作方式1,通过8031的P1.0驱动LED亮500ms,灭500ms闪烁。利用定时器0实现音阶的振荡频率,定时器1实现音值的基本节拍控制,两者均工作于定时方式1状态。对于一般乐曲来讲,一拍的时间约占0.5秒左右,且以1/4拍作为基本节拍,通过程序输入基本节拍的倍数,而实现音值的节拍时间控制。程序设计中音乐的播放用接口P1.4输出,最
2、后通过开关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
3、 其中f0=233.08188Hz(C调6#)。i音调修正值音调CC#DD#EFF#GG#AA#Bi01234567891011j音阶修正值音阶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音
4、阶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结束继续播放NNYY启动定时器T1方式1定初值,循环后
5、取反LED的闪烁,K2控制亮灭 五.程序清单ORG0000H;程序开始AJMPLP0;跳转乐曲信息表首地址ORG000BHAJMPLP6;跳转至音阶代码ORG001BHAJMPPTIINT;中断彩灯闪烁服务程序MOVDPTR,#0F0H;送外部端口地址MOVXA,@DPTR;读入开关状态MOVX@DPTR,A;根据开关状态,驱动发光二极管MOVP1,A;开关控制接口P1START:MOVR7,#14H;R7=14MOVTMOD,#10H;中断方式MOVTL1,#2CHMOVTH1,#CFHSETBEA;开放总中断SETBET1;开放T1中断SE
6、TBTR1;启动定时器T1SJMP$PTIINT:MOVTL1,#2CH;恢复计算初值MOVTH1,#CFHDJNZR7,PEND;判断是否循环发生了20次MOVR7,#05HCPLP1.0;500ms后取反LP0:MOVDPTR,#TABLE;乐曲音符信息表首地址MAIN:CLRAMOVCA,@A+DPTR;读音阶代码MOVR5,AMOVR0,ACLRAINCDPTRMOVCA,@A+DPTR;读节拍代码MOVR4,AMOVA,R5;重读音阶代码DECARLA;以两个字节为单位查表MOVR5,A;代码转存ADDA,#41H;与TABLE0间的
7、偏移量MOVCA,@A+PC;查得音阶定时初值高8位MOVTH0,AMOVR3,A;初值高8位转存MOVA,R5;重新装入音阶代码ADDA,#3BHMOVCA,@A+PCMOVTL0,AMOVR2,AMOVTMOD,#11HMOVA,#05HMOVB,R4MULABMOVR4,AMOVTH1,#0CFHMOVTL1,#2CHSETBTR1CJNER0,#80H,LP1;若没有结束,转至LP1AJMPLP0;否侧重新开始LP1:CJNER0,#00H,LP2;不为休止符,转至LP2,否则转至LP4AJMPLP4LP2:SETBTR0;所读音阶不是
8、休止符,启动定时器T0SETBEASETBET0LP3:JNBTF1,$;TF1不为0,则原地执行CLRTF1;当发生中断时,重设TF1为0DJNZR