基于51单片机的音乐盒的设计-毕业设计内容摘要:
FH,TL0=0FFH。 当按键第一次产生中断信号时,播放 /暂停子程序改变标志符 R1,将其赋值为 01H。 此时播放器由暂停状态进入播放状态。 当按键第二次产生中断信号时, 播放 /暂停子程序判断 R1 是否为 02H 后,将 R1 再次赋值为 00H。 此时,播放器由播放状态进入暂停状态。 第 16 页 共 38 页 图 42 播放流程 代码实现如下: POP DPL。 恢复现场 POP DPH POP ACC SETB EA RETI。 中断返回 START_PAUSE:CPL F0。 开始 /暂停中断处理程序,将标置位取反 JB F0,RETURN。 为 1返回 SETB TR0。 为 0则播放 开始 标识符 R0=00H 暂停 R0是否为 00H 播放 /暂停 播放 将 R0 赋值 01H 将 R0 赋值 00H R0 是否为02H 第 17 页 共 38 页 RETURN: RETI。 中断返回 DELAY: MOV 27H,26H。 音 乐 演奏控制 D2: MOV 28H,125 D3: MOV 29H,248 DJNZ 29H,$ DJNZ 28H,D3 DJNZ 27H,D2 DJNZ R2,DELAY RET LCD 显示模块软件设计 LCD 的 初始化函数 void LCD_Init(void) { LCD_Write_Com(0x38)。 /*显示模式设置 */ DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 LCD_Write_Com(0x08)。 /*显示关闭 */ LCD_Write_Com(0x01)。 /*显示清屏 */ LCD_Write_Com(0x06)。 /*显示光标移动设置 */ DelayMs(5)。 LCD_Write_Com(0x0C)。 /*显示开及光标设置 */ LCD 与继电器的函数 LCD_Write_String(5,0,YinYueHe)。 while (1) 第 18 页 共 38 页 { if(key0==0) { DelayMs(20)。 //延时 if(key0==0) //条件选择 {while(!key0)。 JiDianQi=0。 // LCD的显示和继电器控制扬声器的同步 } } if(key1==0) { DelayMs(20)。 if(key1==0) {while(!key1)。 JiDianQi=1。 } 第 19 页 共 38 页 5 系统实现 本设计实现的是音乐盒的播放以及用 LCD 显示屏显示播放曲目,系统的硬件实现如下图所示: 图 51 歌曲切换 图 52 歌曲切换 第 20 页 共 38 页 硬件调试 按键控制的实现 本设计中通过按键实现控制上一曲、下一曲、音乐暂停和音乐开始,如下图: 图 53 显示电路的实现 LCD 显示 本设计中利用 LCD 显示实现歌曲曲目的显示,如下图: 图 54 LCD 显示 第 21 页 共 38 页 其他 软件部分主要是利用 KEIL 软件编写的音乐盒单片机程序的运行成功。 如图 图 55软件实现 第 22 页 共 38 页 总 结 单片机 音乐盒 的设计 在经历了近两个月后终于基本完成了,在当时选择这个题目时觉得一点思路都没有,之后在和老师讨论以及向其他同学请教之后确定了以STC89C52 单片机为基础的数字音乐 盒。 音乐盒的主要组成部分有 LCD 显示、单片机最小系统、继电器电路、扬声器组成;经过不断的修改与完善音乐盒可以实现使用 LCD 显示播放的歌曲名、用按键控制音乐的播放 /暂停和切换上一曲 /下一曲,通过这次的毕业设计我了解了如何使用 keil 软件来编写所需要的程序,怎么去合理的设计一个电路,更收获了单独做一个设计所需要的经验;这些都是在本次设计中我所学到的,让我受益匪浅。 然而,伴随着收获的往往还有遗憾,在这次的设计中我所做的音乐盒还有一些瑕疵和还未实现的功能;音乐盒是将放在 U 盘内的歌曲通过音频解码后使用由继电器控制 的扬声器播放的,但是,如果 U盘内的歌曲更换时, LCD 的显示必须要再次通过 Keil 软件来添加新的歌曲曲名,否则就无法显示着一点是十分麻烦的。 而且在原来的计划中,音乐盒播放时是想使用跑马灯来渲染的,但是由于程序编写存在问题使得跑马灯设计失败。 第 23 页 共 38 页 参考文献 [1]罗亚非 .凌阳 16 位单片机应用基础 [M],北京:北京航空航天大学出版社, 2020. [2] 雷思孝 .凌阳单片机原理及实用技术 [M],西安电子科技大学, 2020. [3] 黄智伟 .凌阳单片机课程设计指导 [M],北 京:北京航空航天大学出版社, . [4] 李广弟,朱月秀,王秀山 .单片机基础 [M],北京:北京航空航天大学出版社, . [5] 赵曙光,郭万有,杨颂华 .可编程逻辑器件原理开发与应用 [M],西安:西安电子科技大学, 2020. [6] 李建忠 .单片机原理及应用 [M],西安电子科技大学出版社, . [7] 康华光 . 模拟电子技术基础 (第四版 )[M], 武汉:华中理工大学出版社, 1999. [8] 谭浩强 .C 语言程序设计(第二版) [M],北京:清华大学出版社, 1991. [9] 陈小忠,黄宁 . 单片机接口技术实用子程序 [M],北京:北京人民邮电出版社, 2020. [10] 黄智伟 .全国大学生电子设计竞赛系统设计 [M],北京:北京航空航天大学出版社,. [11] 贾立新,王涌 .电子系统设计与实践 [M],北京:清华大学出版社, 2020. 第 24 页 共 38 页 附录 A 元器件清单 表 1 元器件清单 STC89C52 1 个 LCD 显示屏 1 个 扬声器 1 个 继电器 1 个 按键 5 个 电源线 1 根 第 25 页 共 38 页 附录 B 源程序 include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 include define RS_CLR RS=0 define RS_SET RS=1 define RW_CLR RW=0 define RW_SET RW=1 define EN_CLR EN=0 define EN_SET EN=1 define _Nop() _nop_() //定义空指令 define DataPort P0 sbit RS = P2^4。 //定义端口 sbit RW = P2^5。 sbit EN = P2^6。 sbit SDA=P2^1。 //模拟 I2C数据传送位 sbit SCL=P2^0。 //模拟 I2C时钟控制位 sbit key0=P1^0。 sbit key1=P1^1。 sbit key2=P1^2。 sbit key3=P1^3。 sbit JiDianQi=P1^4。 bit ack。 //应答标志位 void DelayUs2x(unsigned char t)。 //函数声明 void DelayMs(unsigned char t)。 /* uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量, 其值的范围是 0~255 这里使用晶振 12M,精确延时请使用汇编 ,大致延时 长度如下 T=tx2+5 uS */ void DelayUs2x(unsigned char t) { while(t)。 } 第 26 页 共 38 页 /* mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时请使用汇编 */ void DelayMs(unsigned char t) { while(t) { //大致延时 1mS DelayUs2x(245)。 DelayUs2x(245)。 } } /* 启动总线 */ void Start_I2c() { SDA=1。 //发送起始条件的数据信号 _Nop()。 SCL=1。 _Nop()。 //起始条件建立时间大于 ,延时 _Nop()。 _Nop()。 _Nop()。 _Nop()。 SDA=0。 //发送起始信号 _Nop()。 //起始条件锁定时间大于 4μ _Nop()。 _Nop()。 _Nop()。 _Nop()。 SCL=0。 //钳住 I2C总线,准备发送或接收数据 _Nop()。基于51单片机的音乐盒的设计-毕业设计
相关推荐
现数码管的显示。 开通定时器 T0 中断来对数码管的查表和 1 秒的准确计时,然后利用 P3口的低三位作为判断程序,判断是否分时秒是否溢出,若无溢出则显示当前值,若溢出则清零实现时分秒的加一。 3 硬件设计 单片机的复位电路 在系统运 行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。 如图 31 所示。 这种电路的设计
} void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure。 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG , ENABLE)。 = GPIO_Pin_6 | GPIO_Pin_7
和分析以及计算 生物 学等众多应用 领域。 附加的工具箱(单独提供的专用 MATLAB函数 集)扩展了 MATLAB 环 境,以解决这些应用 领域 内特定类型的问题。 一、 设计原理 模拟带通、带阻滤波器的设计过程是:先将希望设计的各种滤波器转换为低通滤波器技术指标,然后设计相应的低通滤波器,最后采用频率转换法将低通滤波器转换成所希望的各种滤波器。 带阻滤波器的设计原理 本设计中分别用
.............................................................土开挖、边坡支护施工方案 湖北洲天建设集团有限公司 9 喷射砼顺序可根据 本工程 地 质 情况采取 “喷 +锚 +喷 ”, 在边坡开挖作业完成后,为了减少对边坡土方曝露,及时对边坡进行初次喷射作业,喷射厚为 30 ㎜,等锚杆及网片钢筋施工完成后,再进行二次喷射。 喷射作业时
防水卷材采用外防外贴法施工,施工工艺采用热熔实铺满粘法施工。 (一)、外墙板防水施工 作业条件: a、已对外墙对拉螺杆孔处理完毕,如图: b、施工人员证件齐全。 操作工艺: 结构穿墙螺杆孔封堵,结构面清理 →拆除根部临时保护墙→ 20厚 1:(基层刷冷底子油)→ 3mm 厚 SBS 卷材施工→ 20 厚1: 2 水泥砂浆保 护层→ 70厚膨胀聚苯板(专用粘结剂粘结) 施工要点: a