项目四_音乐门铃和简易演奏器设计_第1页
项目四_音乐门铃和简易演奏器设计_第2页
项目四_音乐门铃和简易演奏器设计_第3页
项目四_音乐门铃和简易演奏器设计_第4页
项目四_音乐门铃和简易演奏器设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目四 音乐门铃和简易演奏器设计设计说明书任务一 音乐门铃一、任务设计要求1、实现“滴 、滴”报警声要求:产生频率为500Hz,扬声器响0.25s,停0.25s,反复循环2、实现“滴 、滴”报警声 实现“滴 、滴”报警门铃要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒。3、技能提高任选一首歌曲,编制歌谱表,由单片机演奏,实现音乐门铃。 4、计数器应用设用内部定时器/计数器1的计数功能,工作在方式2,实现计数5次产生中断使P1.7所接发光二极管闪烁。 2、 设计过程1、 实现“滴 、滴”报警声要求:产生频率为500Hz,扬声器响0.25s,停0.25s,反复循环1、设计方案

2、确定2、硬件电路设计(实现“滴 、滴”报警声)(实现“滴 、滴”报警门铃)和(音乐门铃)的硬件电路设计计数器的硬件电路设计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

3、、18H 分别预置给TH0、TL0。重装计数值中断入口Yes输出声音计满0.25s?FLAG=1?无输出中断返回NoNoYes(1) 、绘制流程图 开 始 标志FLAG清0 计时计数值清0 设置定时器标志位FLAG取反计时计数值清0 定时1ms 启动定时器 等待中断 主程序流程图 中断程序流程图 2、实现“滴 、滴”报警门铃要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒(2) 、编写源程序:共4个程序程序一:实现“滴 、滴”报警声 TCOUNT EQU 30HFLAG BIT 00H ORG 0000H SJMP START ;跳转到主程序 ORG 000BH ;T0的中

4、断入口地址 LJMP INT_T0 ;转向中断服务程序START: CLRFLAG ;标志位清零 MOVTCOUNT,#00H;计时计数值清零 MOVTMOD,#01H ;置T0工作于方式1 MOVTH0,#(65536-1000)/256 ;装入计数初值 MOVTL0,#(65536-1000)MOD 256 MOVIE,#82H;开中断 SETBTR0;启动T0定时器 SJMP$; ;等待中断INT_T0: MOVTH0,#(65536-1000)/256 ;重新装入计数值 MOVTL0,#(65536-1000)MOD 256 INCTCOUNT;计时计数值+1 MOVA,TCOUNT

5、CJNEA,#250,I1;是否计满0.25秒 CPLFLAG;标志位FLAG取反 MOVTCOUNT,#00H;计时计数值清零I1: JBFLAG,I2;检查标志位 CPLP1.7;声音输出 SJMPRETUNEI2: CLRP1.7;关声音RETUNE: RETI;中断返回 END 程序二:按下门铃按键,发出“滴 、滴”报警声TCOUNT EQU 30HFLAG BIT 00H ORG 0000H SJMP START ;跳转到主程序 ORG 000BH ;T0的中断入口地址 LJMP INT_T0 ;转向中断服务程序; 主程序START: CLRFLAG ;标志位清零 MOVTCOUNT

6、,#00H;计时计数值清零 MOVTMOD,#01H ;置T0工作于方式1 MOVTH0,#(65536-1000)/256 ;装入计数初值 MOVTL0,#(65536-1000)MOD 256 MOVIE,#82H;开中断LOOP:JB P1.0,STOP;判断P1.0是否按下 SETBTR0;启动T0定时器ACALL DELAY ;等中断约3.2sSTOP: CLR P1.7 ;关声音 CLR TR0;关闭T0定时器 SJMPLOOP; ;反复;T0中断服务程序INT_T0: MOVTH0,#(65536-1000)/256 ;重新装入计数值 MOVTL0,#(65536-1000)MO

7、D 256 INCTCOUNT;计时计数值+1 MOVA,TCOUNT CJNEA,#250,I1;是否计满0.25秒 CPLFLAG;计时计数值取反 MOVTCOUNT,#00H;计时计数值清零I1: JBFLAG,I2;检查标志位 CPLP1.7;声音输出 SJMPRETUNEI2: CLRP1.7;关声音RETUNE: RETI;中断返回DELAY: MOV R1,#0FFH ;延时约3.2秒DEL1: MOV R2,#0FFHDEL2: MOV R3,#09HDEL3: NOP NOP NOP DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET END

8、3、 技能提高任选一首歌曲,编制歌谱表,由单片机演奏,实现音乐门铃。BABY DONT CRY 程序三: ORG 0000H LJMP START ORG 000BH ;T0中断矢量 LJMP INT_T0START: MOV SP,#50H MOV TMOD,#01H ;置T0工作于方式1 SETB ET0 SETB EA ;开中断MAIN: CLR SPEAKER ;静音NSP: JB KEY,NSP ;如果按钮没按下,等待 LCALL DELY10MS ;10ms延时 JB KEY,NSP ;如果按钮没按下,等待 MOV DPTR,#SONGLOOP: CLR A MOVC A,A+DP

9、TR MOV R1,A ;音符定时值高位 INC DPTR CLR A MOVC A,A+DPTR MOV R0,A ;音符定时值低位 ORL A,R1 JZ NEXT0 ;如果是停止符00,到NEXT0 MOV A,R0 ANL A,R1 CJNE A,#0FFH,NEXT ;如果不是结束符FFH,到NEXT CLR TR0 LJMP MAINNEXT: MOV TH0,R1 ;定时器初值 MOV TL0,R0 SETB TR0 ;启动定时器T0 SJMP NEXT1NEXT0: CLR TR0 ;停止定时器T0 CLR SPEAKER ;静音NEXT1: CLR A INC DPTR MO

10、VC A,A+DPTR MOV R2,A ;节拍延时常数 ;节拍延时LOOP1: LCALL DELY25MS DJNZ R2,LOOP1 INC DPTR ;下一个音符的地址 LJMP LOOP ;演奏下一个音符;延时子程序 DELY25MS: MOV R6,#50 ;延时25msD1: MOV R7,#245 DJNZ R7,$ DJNZ R6,D1 RETDELY10MS: MOV R6,#20 ;延时10msD2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 RET;T0中断服务程序INT_T0: MOV TH0,R1 ;定时器初值 MOV TL0,R0 CPL

11、SPEAKER ;声音输出 RETI;BABY DONT CRY乐谱SONG: 4、计数器应用设用内部定时器/计数器1的计数功能,工作在方式2,实现计数5次产生中断使P1.7所接发光二极管闪烁。 程序四:ORG 0000H LJMP MAINMAIN:MOV TMOD,#60H :采用T1方式2 MOV TH1,#0FBH :装入初值 MOV TL1,#0FBH SETB ET1 SETB EA ;允许中断 SETB TR1 :启动定时器 SJMP $ :等待中断 ORG 001BH ;中断服务程序 MOV R0,#10H MOV A,#0FEH ;重新设置初值LOOP:MOV P1,A AC

12、ALL DELAY RL A DJNZ R0,LOOP MOV P1,#0FFH RETIDELAY:MOV R3,#250 D2:MOV R4,#250 D1:NOP DJNZ R4,D1 DJNZ R3,D2 RET END4、 软、硬件调试仿真(效果图)(实现“滴 、滴”报警声)和(实现“滴 、滴”报警门铃)和(音乐门铃)的软、硬件调试仿真(效果图)计数器的软、硬件调试仿真(效果图)任务二 简易演奏器一、任务设计要求1、基本要求利用定时器的定时功能,分别产生三个声音的方波,驱动扬声器发音,由三个按键控制演奏DO、RE、MI 三个声音。二、设计过程1、设计方案确定2、 硬件电路设计3、软件

13、设计(1)、绘制流程图(2) 、编写源程序:1个程序ORG 0000H SJMP STARDLY: MOV R2,#20 ;延时程序10ms-(去抖动处理)D1: MOV R3,#248 DJNZ R3,$ DJNZ R2,D1 RET ORG 0030HSTAR: MOV TMOD,#1 ;T0-方式1 MOV P3,#0FFH ;P3口置1 JNB P3.0,DOS ;P3.0按下,转移到DOS ACALL DLY JNB P3.1,RES ;P3.1按下,转移到ERS ACALL DLY JNB P3.2,MIS ;P3.2按下,转移到MIS ACALL DLY SJMP STARDOS

14、: MOV TH0,#0FCH ;DO-定时器初值 MOV TL0, #44H SETB TR0 ;启动定时器 JNB TF0,$ ;延时时间到否? CLR TF0 ;清中断标志位 CPL P2.7 ;关声音 JNB P3.0,DOS ;再次判断-P3.0按下,转移到DOS CLR TF0 ;清中断标志位 SJMP STAR ;返回主程序RES: MOV TH0,#0FCH ;RE-定时器初值 MOV TL0,#0ACH SETB TR0 JNB TF0,$ CLR TF0 ;清中断标志位 CPL P2.7 ;关声音 JNB P3.1,RES ;再次判断-P3.0按下,转移到DOS CLR TF0 SJMP STAR MIS: MOV TH0,#0FDH ;MI-定时器初值 MOV TL0,#09H SETB TR0 JNB TF0,$ CLR TF0 ;清中断标志位 CPL P2.7 ;关声音 JNB P3.2,MIS ;再次判断-P3.0按下,转移

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论