资源描述:
《项目四_音乐门铃和简易演奏器设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、项目四音乐门铃和简易演奏器设计设计说明书任务一音乐门铃一、任务设计要求1、实现“滴、滴”报警声要求:产生频率为500Hz,扬声器响0.25s,停0.25s,反复循环2、实现“滴、滴”报警声实现“滴、滴”报警门铃要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒。3、技能提高任选一首歌曲,编制歌谱表,由单片机演奏,实现音乐门铃。4、计数器应用设用内部定时器/计数器1的计数功能,工作在方式2,实现计数5次产生中断使P1.7所接发光二极管闪烁。二、设计过程1、实现“滴、滴”报警声要求:产生频率为500Hz,扬声器响0.25s,停0.25s,反复循环1、设计方案确定2、硬件电路设计1
2、4(实现“滴、滴”报警声)(实现“滴、滴”报警门铃)和(音乐门铃)的硬件电路设计14计数器的硬件电路设计3、软件设计实现“滴、滴”报警声步骤1:定时参数的计算1)要产生频率为500Hz的方波信号,方波信号的周期为2ms。电路采用12MHz的晶振,利用定时器T0的方式1,产生1ms的定时,在P1.7上输出周期为2ms的方波。(a)T0的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方式控制字为01H(b)计算计数初值X由于晶振为12MHz,机器周期T=,要产生产生1ms的定时,计数初值为X=65536-1000=64536=FC18H将FCH、18H分别预置给TH0、TL0。
3、重装计数值中断入口Yes输出声音计满0.25s?FLAG=1?无输出中断返回NoNoYes(1)、绘制流程图开始标志FLAG清0计时计数值清0设置定时器标志位FLAG取反计时计数值清0定时1ms启动定时器等待中断主程序流程图中断程序流程图14142、实现“滴、滴”报警门铃要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒14(2)、编写源程序:共4个程序程序一:实现“滴、滴”报警声 TCOUNTEQU30H14 FLAGBIT00HORG0000HSJMPSTART;跳转到主程序ORG000BH;T0的中断入口地址LJMPINT_T0;转向中断服务程序START:C
4、LRFLAG;标志位清零MOVTCOUNT,#00H;计时计数值清零MOVTMOD,#01H;置T0工作于方式1MOVTH0,#(65536-1000)/256;装入计数初值MOVTL0,#(65536-1000)MOD256MOVIE,#82H;开中断SETBTR0;启动T0定时器SJMP$;;等待中断INT_T0:MOVTH0,#(65536-1000)/256;重新装入计数值MOVTL0,#(65536-1000)MOD256INCTCOUNT;计时计数值+1MOVA,TCOUNTCJNEA,#250,I1;是否计满0.25秒CPLFLAG;标志位FLAG取反MOVTCOUNT,#00H
5、;计时计数值清零I1:JBFLAG,I2;检查标志位CPLP1.7;声音输出SJMPRETUNEI2:CLRP1.7;关声音RETUNE:RETI;中断返回END程序二:按下门铃按键,发出“滴、滴”报警声TCOUNTEQU30HFLAGBIT00HORG0000HSJMPSTART;跳转到主程序ORG000BH;T0的中断入口地址LJMPINT_T0;转向中断服务程序;——————————————主程序———————————START:CLRFLAG;标志位清零MOVTCOUNT,#00H;计时计数值清零MOVTMOD,#01H;置T0工作于方式114MOVTH0,#(65536-1000)/
6、256;装入计数初值MOVTL0,#(65536-1000)MOD256MOVIE,#82H;开中断LOOP:JBP1.0,STOP;判断P1.0是否按下SETBTR0;启动T0定时器ACALLDELAY;等中断约3.2sSTOP:CLRP1.7;关声音CLRTR0;关闭T0定时器SJMPLOOP;;反复;————————————T0中断服务程序————————INT_T0:MOVTH0,#(65536-1000)/256;重新装入计数值MOVTL0,#(65536-1000)MOD256INCTCOUNT;计时计数值+1MOVA,TCOUNTCJNEA,#250,I1;是否计满0.25秒CP
7、LFLAG;计时计数值取反MOVTCOUNT,#00H;计时计数值清零I1:JBFLAG,I2;检查标志位CPLP1.7;声音输出SJMPRETUNEI2:CLRP1.7;关声音RETUNE:RETI;中断返回DELAY:MOVR1,#0FFH;延时约3.2秒DEL1:MOVR2,#0FFHDEL2:MOVR3,#09HDEL3:NOPNOPNOPDJNZR3,DEL3DJNZR2,DEL2DJN