基于单片机stc89c52的数字音乐盒设计内容摘要:
0。 高优先级 SETB IT1。 外部中断 1 为跳沿触发 SETB PX1。 高优先级 SETB EX1。 允许外部中断 1 中断 SETB EX0。 允许外部中断定 0 中断 SETB EA。 开中断总开关 SETB TR1。 定时器 1 开始工作,作中断用 SETB OUT。 音频输出端口初始化。 ***********************************。 设置结束 CLR F0。 设置 F0=0,用来作暂停 /播放的标置位用 MOV 22H,01H。 22H单元中存放正在播放的歌曲编号 MOV DPTR,OUT_TAB。 将正在播放的歌曲编号送数码管显视 MOV A,22H MOVC A,@A+DPTR MOV OUT_NUM,A MOV R7,00H。 R7 中存放歌曲总信息的入口地址 START0:MOV R4,00H。 R4 存放当前正在播放歌曲的第几个节拍数 MOV R0,30H。 30H开始的单元中存放歌曲的入口信息 MOV A,R7。 将歌曲的节拍表的入口地址送到 DPTR ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR。 取出第一节拍数 ,其实第一个节拍不是歌曲的第一个节拍,而是表示几分音符 18。 **************************************************** MOV 26H,A。 将取出的音符数 +节拍数保存在职 26H单元中 NEXT: MOV R0,30H。 开始取出歌曲的第一个数据 MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR。 放在 A中。 **************************************************** JZ END0。 若为 0,则表示为休止符,不唱,本次音符不唱, MOV R1,A。 不为 0,取出节拍数 ANL A,0FH MOV R2,A MOV A,R1 SWAP A ANL A,0FH JNZ SING。 音符不为 0,唱 CLR TR0。 为 0,不唱 ,关频率发生器 SJMP SING1 SING: DEC A。 开始唱 ,进行相应的数据处理 MOV R3,A RL A MOV DPH,@R0 INC R0 19 MOV DPL,@R0 INC R0 MOVC A,@A+DPTR MOV 21H,A MOV TH0,A MOV A,R3 RL A INC A MOVC A,@A+DPTR MOV 20H,A MOV TL0,A SETB TR0。 开唱 START:MOV DPTR,DTABLE MOV A,50H MOVC A,@A+DPTR MOV P1,A INC 50H MOV A,50H CJNE A,15H,SING1 MOV 50H,00H SING1:LCALL DELAY。 每个音符唱多久 JB F0,FOR。 是否暂停, AJMP NEXT。 没有暂停,继续 FOR: CLR TR0。 暂停,不唱 JB F0,$。 等待播放 AJMP NEXT。 开始播放 END0: CLR TR0。 不 唱 MOV A,22H。 唱完处理 CJNE A,N,WW。 是不是全部歌曲都唱完 20 MOV 22H,01H。 全部唱完,则从第一首开始再唱 MOV R7,00H MOV OUT_NUM,57H。 数码管显视第一首歌曲编号 AJMP WWW WW: MOV A,R7。 没有全部唱完,唱下一首 ,歌曲的入口信息调整 ADD A,4 MOV R7,A INC 22H CLR EA PUSH DPH PUSH DPL MOV A,22H MOV DPTR,OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A。 数码管显视相应的歌曲编号 POP DPL POP DPH WWW: SETB EA AJMP START0。 开始下一首的演唱 F_T0: MOV TH0,21H。 定时器 0 置初值 MOV TL0,20H CPL OUT。 频率产生 RETI NEXT_SONG: PUSH ACC。 下一曲中断程序 处理,保护现场 PUSH DPH PUSH DPL CLR EA。 关中断 MOV A,22H CJNE A,N,Q。 是最后一首吗。 21 MOV R7,00H。 是最后一首,则 R7 指向第一首,演唱第一首 MOV 22H,01H AJMP BACK Q: INC 22H。 不是最后一首,唱下一首 ,R7 内容加 4,歌曲数加 1 MOV A,R7 ADD A,4 MOV R7,A BACK: MOV R4,00H。 数码管显视相应的歌曲编号 MOV A,22H MOV DPTR,OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A。 ******************************************** MOV B,R0。 对下首要演唱的歌曲的几分拍。基于单片机stc89c52的数字音乐盒设计
相关推荐
南京工业大学本科生毕业设计 (论文 ) 3 第二章 步进电机简介 步进电机概念 步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁装置,是一种特殊的电动机。 一般电动机是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每次给它一个脉冲,它就转过一个固定的角度。 步进电动机的角位移量和输入的脉冲个数成正比,在时间上与输入脉 冲同步
法比较单一,就是在电动机轴上加阻尼器,电子阻尼法则有多种。 (1)多相励磁法:采用多相励磁会产生电磁阻尼, 会削弱或消除振荡现象。 (2)变频变压法:步进电机在高频和在低频时转子所获得的能量不一样,在低频时绕组中的电流上升时间长,转子获得的能量大,因此容易产生振荡,在高频时则相反。 所以,可以设计一种电路,使电压随频率的降低而减少,这样使绕组在低频时的电流减少,可以有效地消除振荡 [9]。
式设制 0 0 0 0 0 0 0 1 I/D S 显示状态设制 0 0 0 0 0 0 1 D C B 无标画面滚动 0 0 0 0 0 1 S/C RL * * 功能设置 0 0 0 0 1 DL N F * * CGRAM 地址设制 0 0 0 1 A5 A4 A3 A2 A1 A0 DDRAM 地址设制 0 0 1 A6 A5 A4 A3 A2 A1 A0 读 BF 和 AC 0 1
储器。 在 FLASH 编程期间,此引脚也用于施加 12V编程电源( VPP)。 ( 11) XTAL1:反向振荡放大器的输 入及内部时钟工作电路的输入。 ( 12) XTAL2:来自反向振荡器的输出 【 6】。 片内 振荡器: 该反向放大器可以配置为片内振荡器 ,如图 32 所示。 长春理工大学光电信息学院毕业设计 6 图 32 片内 振荡器 芯片擦除: 整个
过对 PS、 C86引脚接不同的电平来选择操作的时序( 8080操作时序接线图: (PS接 VDD,C86接 VSS) , 6800操作时序接线图: (PS接 VDD, C86接 VDD) ,行操作时序接线图: (PS接 VSS,C86接 VSS或 VDD都可 ) )。 SPLC501液晶显示模组中,设置了 PS和 C86的跳线,供用户选择操作时序。 毕业设计 19 第四章 系统软件设计
內呼去 1 楼 开关门有效内呼 M222 內呼去 2 楼 M223 內呼去 3 楼 M224 內呼去 4 楼 M225 內呼去 5 楼 6 电梯的上升和下降是由一台交流电机来完成的。 如图所示, KM KM2为电机正反转接触器,用以实现电梯的上升和下降控 制。 KM3 为电梯减速运行接触器,用以实现电梯的减速控制,当电梯收到停层指示后, KM3断电释放,串入阻抗,使电路的电流减小