ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:31.17KB ,
资源ID:462374      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-462374.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(音乐倒数计时器文档格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

音乐倒数计时器文档格式.docx

1、LCD闪动表示程序开始执行*扫描显示器更新倒数时间数 据,检查闹铃时间是否到了K1:调整倒数时间K2:倒数计时时间为5MINK3:倒数计时时间为10MINK4:倒数计时时间为20MIN图1 设计流程图原理:1,定时/计数器:单片机电子钟利用内部定时/计数器溢出产生中断(12M晶振 一般为50mS再乘以相应的倍率来实现秒、分、时的转换。大家 都知道从定时/计数器产生中断请求到响应中断需要 3-8个机器 周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还 需要占用数个机器周期,还有从中断入口转到中断子程序也要占 用一定的机器周期。2,工作指示灯:送出低电平时,LED点亮,高电平时则使LED

2、熄灭。3,按键控制:按键控制室控制程序执行时数据的输入或是特殊功能的设置 及操作,使用单片机端口 3的4条输入口,由程序来控制,平时 输入端为高电平,当有按键按下则相对位会呈现低电平,进过轮 流扫描判断输入端是否为低电平,便可知道按下的是哪一个按钮。 4,控制程序:本课程设计中,可以学习利用单片机定时器设计时间计时处 理,其时分秒控制,定时器0计时中断程序每个5ms中断一次当 做一个计数,每中断一次则计数加 1,当计数200次时,表示1s 到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h 到了,若计数到了则将相关变量清除为 0。单片机定时器负责定 时的技术,不会因为案件处理而中断

3、时间描述的增加。在主控程序循环中主要工作为扫描是否有按键,若有按键则做相应的功能处理,同时也检查所倒数的时间是否为 0,若为0表示倒数的时间终了,应该执行想对应的工作了,图 1为主程序控制工作流程。时间计时处理程序时等过了 1s后,则更新时间数 据,将最新剩余倒数的分秒的时间数据转换为数字数据,并显示 在数码管上。程序中如何判断是否已过了 1s?可以设一旧秒数变 量,当新旧秒数变量不一样时,则表示已过了 1s,要做相关程序处理了。倒数计时闹铃的动作利用时间计时处理来做秒数倒数, 当所设置的时间为0,喇叭则不断发出音乐声,启动继电器,有 继电器可以控制家电开启或关闭。音乐声的产生也是有定时器来产

4、生固定频率的方波信号推动 压电喇叭,发出旋律。而定时器原先已利用设计时间计时处理了, 怎么能在设计来做音乐旋律的控制?在此设计定义一个音乐演奏 标志,若音乐演奏标志为0则执行中断程序中计时程序的部分程 序,若音乐演奏标志为1则执行音乐发生控制程序。因此只要适 当的运用程序设计技巧,计时中断程序中可以做许多种不同的工 作,而这些工作是需要特定一段时间就必须要被触发而被执行的 程序。5,延时时间的计算若我们想设计程序执行100ms时间延时,程序可以设计如下DELAY: MOV R6, #50D1:MOV R7,#100DJNZ R7,$DJNZ R6,D1DJNZ R5QELAYRET如果震荡频率

5、为12MHZ则执行时间按为T=1+50*(1+100*2)+2+2+2us=10.057ms如果执行10次此子程序,则延时时间约为6,工作方式设计100ms本次设计中采用的定时器模式 0来设计,在此方式中T0、T0 可以进行13位的计时,其值保存在两个8位的定时寄存器中。对 于其中任一定时器,工作时钟可以由内部或是外部来提供,由C/T 位来决定做定时器还是计数器。定时器的时钟为系统工作时钟除 以12.此次试验中采用12MHz石英震荡器则产生1us的计数时间 脉冲宽度。本次实验的定时器计时时间为 5ms因此定时器0需计数5000次,其定时器初值的加载可以计算如下:TL0=(8192-5000).

6、MOD.32TL1=(8192-5000)/32执行后的结果为,产生的脉冲宽度为T=5ms7,由定时器产生各种频率的声音我们可以设定发音的频率来改变声音产生音乐,计时时间长 短也是按照发音的频率而定的。由频率值推得定时器计数初值由 下关系式得到:T=1/f(us) ;方波宽度Co=(i nt)t/2 ;定时器所得计数的次数Lo=( 8192-co)%32 ;计数初值低字节Hi=(8192-co)/32 ;计数初值高字节四、源程序:LOAEQU 24HIAEQU 99CO EQU 200 ;5msMUBEQU 20H.0MINEQU 31HSECEQU 32HSECO EQU 34HDEDA E

7、QU 33HMM EQU 36HSS EQU 37HLO EQU 38H以下是开始对各个变量的具体定义,加载字节,确定时间常 数,时间变量的存放,倒数的分钟秒钟的存放地址,各变量的含 义。中断计数时间常数,计数200次表示1s ; 音乐演奏标志 已经运行的分钟数 正在运行的秒数 旧的秒数5ms 计数值 倒数时间分钟数 倒数时间秒钟数HI EQU 39HTC EQU 3AH;以下是对四个按键的定义K1 EQU P3.4K2 EQU P3.5K3 EQU P3.6K4 EQU P3.7WEI EQU P2.7 ; 位选DUAN EQU P2.6 ; 段选以下是对继电器、喇叭、闪烁灯的定义RY1 E

8、QU P1.1 ; 继电器SPK EQU P2.3 ; 扬声器WLED EQU P1.0 ; 闪烁灯程序开始,代码由地址0开始执行,使用的是定时器0中断ORG 0000HSJMP STARTORG 000BH ;T0 中断SJMP T0_INTSTART:SETB MUB ; 测试音乐演奏CLR RY1 ; 继电器关CLR MUB ;LCALL INITLCALL INIT_TIMERLCALL LOOPLCALL DISPLAY LOOP:LCALL DOWN_TIMEJNB K1,L1 ;JNB K2,L2JNB K3,L3JNB K4,L4JMP LOOP按键1按下,则:L1: LCAL

9、L DISPLAYJNB K1,L1MOV MM,#1LCALL SET_TIME JMP LOOP按键2按下:L2:MOV MM,#5MOV SS,#0SJMP LOOP按键3按下:L3:MOV MM,#10按键4按下:L4:MOV MM,#20SJMP LOOP ;INIT: MOV DEDA,#0 ;MOV SEC,#0清除音乐演奏标志按键控制部分 对按键进行检测继续循环执行将所有时间计时清为0MOV SECO,#0MOV MIN,#0定义初始倒数时间:MOV MM,#0MOV SS,#100模式0计时以下是初始化定时器接口,使用定时器INIT_TIMER:MOV TM0D,#00000

10、000BMOV IE, #10000010BMOV TL0,#LOAMOV TH0,#HIASETB TR0T0 INT:JNB MUB,W0 ;T0 次,音乐演奏标志为0时 计时程序MOV TL0,LOMOV TH0,HICPLSPK ; RETIW0: PUSH ACC ;MOV TH0,#HIA INC DEDAMOV A,DEDA CJNE A,#CO,W1MOV DEDA, #0 CPL WLED ;INC SECMOV A,SECCJNE A,#60,W1INC MINMOV SEC,#0 MOV A, MIN计时中断程序每5ms中断一 ; 则执行对音乐的加载对时间计数的初始化判断

11、是否为1S工作指示灯闪烁判断是否1分到了判断一小时是否到了将累加器由堆栈取出从中断返回按键1的功能,时间设置部分定时中断扫描按下的为哪个键喇叭发出声音W1: POP ACCRETI ;SET_TIME: ;CLR TR0S0:JNB K2,S1JNB K3,S2JNB K4,S3SJMP S0S1:INC MMMOV A,MM CJNE A,#61,S0S2:DEC MMMOV A,MM CJNE A,#0,S0MOV MM,#60S3: JNB K4,S3LCALL BZSETB TR0 RETBZ: MOV R6,#0 ;B1: CALL DEXCPLSPKDJNZ R6,B1MOV R5

12、,#10CALL DELAYDEX: MOV R7,#180 ; 短暂延迟DE1: NOPDJNZ R7,DE1MOV R6, #50涎时子程序,延迟10ms MOV R7,#100DJNZ R5,DELAY过了 1S后则更新倒数时间并检查是否倒数终止:DOWN_TIME:LCALL DISPLAYMOV A,SEC ; 加载现在时间MOV B,SECO ; 加载旧时间CJNE A,B,DO1 ; 是否过了 1SDO1:MOV SECO,SEC ; 记录旧秒数DEC SSMOV A,SSCJNE A,#0FFH,D2 ; 判断秒数和分钟数是否为0MOV A,MMCJNE A,#0,D12CAL

13、L TIME_OUT当秒数和分钟数为0时则停止倒数计时D12: MOV SS,#59 ; 秒数=59 分钟数减1D2: RET显示模块,将时、分、秒十位、各位分离,并暂存到50H-55H ; 内,P2.6 口控制段选,P2.7 口控制位选DISPLAY:MOV A,#00 ;将时数进行十位、各位分离MOV B,#10DIV ABMOV 50H,AMOV 51H,BMOV A,MM ;将分数进行十位、各位分离MOV 52H,AMOV 53H,BMOV A,SS ;将秒数进行十位、各位分离MOV 54H,AMOV 55H,BM1: MOV R6,#00H控制扫描次数MOVR0,#0FEH;R0值为

14、位选值,01H=00000001B 第一 位数码管选通MOV R1,#50H时、分、秒暂存值的单元首地址给 R1MOV DPTR,#TAB;TA的首地址给 DPTRLOOP1:SETB DUANMOV A,R1 ; 时、分、秒的值给 AMOVC A,A+DPTR查找对应的段码MOV P0,A ;把段码值给P0 口CLR DUANSETB WEIMOV A,R0 ;位选值给A位选值给P0 口,控制位选CLR WEIINC R1 ;时、分、秒暂存值的地址加1INC R6 ;扫描次数加1RL A ;位选值左循环MOV R0,ALCALL DELAY1延 时CJNE R6,#06 H, LOOP1是

15、否扫描一遍了DELAY1:MOV R4,#5DEL2: MOV R5,#250DEL3: DJNZ R5,DEL3DJNZ R4QEL2TIMER0: MOV TLO,#OBOH给 T0装计数初值(50mSMOV TH0,#9CH / 给 TO 装计数初值(50msINC R7RETI/ 查找表 /TAB: DB 3FH /数字0-9所对应数码管上显示 0-9的译码 值DB 06HDB 5BHDB 4FHDB 66HDB 6DHDB 7DHDB 07HDB 7FHDB 6FHTIME_OUT:SETB RY1倒数终了程序,继电器 ON停止计时TI1:演奏音乐LCALL MUSICSJMP TI

16、1MUSIC: 音乐的设置模块MOV TMOD,#00000000BM0:CALL SOUND_ON ; 喇叭打开MOV R4,#1 ; 发出 “ DO 拍MOV R3,#1CALL PLAYMOV R4,#2 ; 发出“ RE 一拍MOV R4,#3 ; 发出“ ME 拍MOV R3,#3CALL SOUND_OFFMOV R5,#50 ;下面是一段旋律演奏的程序CALLSOUND_ONCALL PLAY_SONGCALLSOUND_OFFJMP M0R4音阶指针,R3拍数PLAY:CALL LOAD_VALUEPL:DJNZ R3, PL实现暂停:MOV R5,#3演奏一段旋律:PLAY_

17、SONG:MOV TC,#0PP0:MOV DPTR, #SONGMOV A,TCMOVC A,A+DPTRMOV R4,ACJNE A,#0FFH,PP1PP1:MOV DPTR, #LENMOV R3,AINC TC喇叭关闭没有声音静音0.5S单音演奏喇叭开启指向旋律音阶数据列表地址指向旋律拍数数据列表地址JMP PPOSOUND_ON:SETB TROSOUND_OFF: 喇叭关闭CLR TRO以查表法由音阶计数值来载入计数初值, R4表示音阶计数值LOAD_VALUE:MOV DPTR,#HI_LIST ; 指向数据列表地址MOV A,R4MOV HI,AMOV DPTR,#LO_LI

18、STMOV LO,A定时器的设置用来设置音乐声音:HI_LIST: 音阶对应定时器0计数初值高字节数据列表DB 0,226,229,232,233,236,238,240DB 241,242,244,244,246,247,248LO_LIST:音阶对应定时器0计数初值低字节数据列表DB 0,4,13,10,20,3,8,6DB 2,23,5,26,1,4,3以下为旋律数据:SONG:DB 2,6,2,2,3,1,4,3,2,2,1,6,7,1,3,3,5,3,2,7,6,1,0FFHLEN:DB 2,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,0FFH

19、END五、心得体会在这段时间里,我学到了很多知识也有很多感受,不仅使我 对模拟电子及其它专业知识有了更深刻的了解而且我开始了独立 的学习和实验查看相关资料和书籍,让自己头脑中模糊的概念逐 渐清晰,每一次改进都是我学习的收获,同时使我将理论应用于 实际。我不但回顾了以前所学的电路原理的基础知识,而且还学 到了一些新知识。最重要的是我深刻体会到要做好一件完整的事 情,要有系统的思维方式和逻辑方法,要耐心的面对所有问题、 要善于用应用各种资源来充实和满足自己。这次做设计的经历让我终生受益、我感受到做设计是要用心 去做的一件事,没有学习就不可能有研究的能力,这次的经历能 在以后的学习、工作中激励我继续进步。这份期末的课程设计让我达到了强化自身能力的目的,实际开发 过程中,发现日常看起来很普通的一件物品,原来各个都凝聚了 人类智慧的结晶,即使只是一个普普通通的倒数计时器,在开发 过程中自身学到了很多东西,也充分的认识了自己,以前常认为 做事要求的是个人能力,在这次开发过程中,我真正认识到了团 队的概念,原来明确的分工,带来的将是意想不到的效果。顺祝老师工作顺利,身体健康。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2