亲们怎样才能自学英语学好单片机,我自学了一个月了还蒙蒙懂懂

你说的闭合的小方块是RXD上的串行输入数据,在TXD移位时钟信号有效时,每来一个时钟,RXD上的位数据刷新一次,在其它时间,RXD上位数据保持。&br&当RXD上位数据保持过程中,如内部移位脉冲Shift有效,则RXD上位数据串行移进移位寄存器。当接收到8位数据位时,TXD上信号失效,接收控制器发出装载SBUF信号,那么8位移位寄存器内数据并行输出到SBUF寄存器。具体如下:&br&RI=0,REN(SCON.4)=1开始启动一次接收过程。RXD(Data IN)为串行数据接收端,TXD(Shift Clock)输出同步移位脉冲。 &br&(1)RI=0,
REN=1启动了接收控制器;&br&(2) 经过一个机器周期,内部接收控制器RECV=1有效,打开或门,允许TXD输出同步移位脉冲。该脉冲控制外接芯片逐位输入数据,波特率为fosc/12;&br&(3) 在内部移位脉冲Shift作用下,RXD上的串行输入数据逐位移入移位寄存器;&br&(4) 当8位数据(一帧)全部移入移位寄存器后,接收控制器使RECV=0失效;或门关闭,停止输出移位脉冲,发出“装载SBUF”信号,打开三态门,将8位数据并行送入接收缓冲器SBUF保存。与此同时,接收控制器硬件置接收中断标志RI=1,向CPU申请中断。 &br&(5) CPU响应中断后,用软件使RI=0,使移位寄存器接收下一帧信号,然后通过读接收缓冲器的指令例如 MOV A,SBUF读取SBUF中数据。在执行这一指令时,CPU发出“读SBUF”信号打开三态门,数据经内部总线进入CPU。
你说的闭合的小方块是RXD上的串行输入数据,在TXD移位时钟信号有效时,每来一个时钟,RXD上的位数据刷新一次,在其它时间,RXD上位数据保持。 当RXD上位数据保持过程中,如内部移位脉冲Shift有效,则RXD上位数据串行移进移位寄存器。当接收到8位数据位时,T…
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。&strong&即取指令-----分析指令-----执行指令。&/strong&&br&&strong&取指令的任务是:&/strong&根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。&br&&br&&strong&分析指令阶段的任务是:&/strong&将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。&br&计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。&br&一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。&br&&br&&strong&下面我们将举个实例来说明指令的执行过程:&/strong&开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。&br&例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:1 程序计数器的内容(这时是0000H)送到地址寄存器;&br&2 程序计数器的内容自动加1(变为0001H);&br&3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;&br&4 CPU使读控制线有效;&br&5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。&br&至此,取指阶段完成,进入译码分析和执行指令阶段。&br&&br&&p&由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC=0002H,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。&/p&
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分…
单片机的学习绝不仅仅是对一项知识的掌握。想要学好单片机,需要从硬件结构、内部资源、外设应用等几个方面多方位入手。而要想成为一名嵌入式工程师,就要对单片机的基础非常熟悉,并且掌握C语言当中各个功能的初始化、启动、停止各类函数的编写调试。那么想要掌握单片机需要从哪几个方面入手呢?&br&&br&数字I/O的应用&br&&br&在大多数的单片机实验中,跑马灯实验正是数字I/O的典型应用,也是跑马灯的实验被安排第一个的原因。通过将单片机的I/O引脚位进行置位或清零来点亮或关闭LED灯,虽然简单,但是这就是数字电路中的逻辑功能。数学I/O应用的实验还有按键实验,当按下某键时,某LED灯被点亮。数字I/O实验教会我们单片机的编程思想,必须首先对单片机的相应寄存器进行配置,以初始化I/O引脚,这样才能使该引脚具备数字输入与输出功能。单片机的一个内置或外置功能的使用,就是对该功能相关的寄存器进行设置,初始化,而这便是单片机编程的特点。少则4、5个函数搞定,多则十几行程序,要有耐心,别怕麻烦,所有的单片机都是这样。&br&&br&RS232串口通讯&br&&br&单片机都有UART接口,这个简单、古老的通讯方式可以与我们PC机的RS232接口直接连接通讯,当然,因为它们两者电平逻辑不同,必须要使用一个RS232电平转换芯片才能与PC机连接,例如Max232芯片。&br&&br&UART接口的使用是非常重要的,通过这个接口,我们可以使单片机与PC机之间交换信息,“接口”概念的学习也便由此引入。使用UART接口也会学习到目前最为简单与常用的通信协议等知识。我们也可以通过PC机的串口调试软件来监视到单片机实验板的数据。&br&&br&定时器的使用&br&&br&学会定时器的使用,就可以利用单片机来实现典型的时序逻辑电路。时序逻辑电路的应用是最强大、最广泛的。例如,在工业的控制中,我们让某个开关每隔1秒钟打开与关闭一次。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。定时器是单片机内部资源里最为重要的一个,更是逻辑与时间控制实现的基础。&br&&br&中断&br&&br&在单片机软件设计架构中,一段程序循环执行是其一个特点,也是一个弊端。每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。针对在单片机程序正常运行时能够对外部事件立即做出响应而设计了中断功能。当中断功能执行时,单片机优先处理中断程序,当中断处理完成后,再回到单片机的正常程序执行中。中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。中断学会后,就可以编写复杂结构功能的程序,可以一边闪着小LED灯,一边扫描着按键,一边发送着数据,也可以干着多个事情……比如,中断功能可以使单片机吃着碗里的,看着锅里的。根据传说中的8020定律,如果掌握了上面提到的这四步,那么就说明已经学会单片机80%的内容了。&br&&br&I2C、SPI通讯接口&br&&br&单片机系统毕竟资源有限,而利用I2C、SPI通讯接口进行扩展外设是最常用的方法,也是非常重要的方法。这两个通讯接口都是串行通讯接口,典型的基础实验就是I2C的EEPROM实验与SPI的SD卡读写实验。&br&&br&比较,捕捉,PWM功能&br&&br&比较,捕捉与PWM功能可以使单片机更加适合电机控制,信号检测,实现电机速度与步长的调节。PWM波现在又是LED调光的主要手段。这里已经初步接触了数字电路里的模拟电路部分。&br&&br&A/D模数采集&br&&br&单片机目前基本都自带多通道A/D模数转换器,通过这些A/D转换器可以单片机获取模拟量,用于检测电压、电流等信号。学习时要分清模拟地与数字地,参考电压,采样时间,转换速率,转换误差等重要概念。这一步学会了数字电路控制模拟电路部分,而最简单的A/D模数转换器就是电压表实验。&br&&br&学习USB接口、TCP/IP协议、工业总线&br&&br&目前主流的通讯协议为USB协——下位机与上位机高速通讯接口;TCP/IP——万能的互联网使用的通讯协议;工业总线——诸如Modbus,CANOpen等工业控制各个模块之间通讯的协议。这些都会应用在未来的项目里,集成入单片机里的固件,并且也是当前产品开发的一个发展方向。&br&&br&需要注意的是,上面所讲的学习顺序是针对于想要从事嵌入式行业人员的。如果纯粹是单片机的入行,则需要涉及到总线,以及如何利用单片机的总线拓展外部的设备,并且中断系统的重要性要多于串口通讯。
单片机的学习绝不仅仅是对一项知识的掌握。想要学好单片机,需要从硬件结构、内部资源、外设应用等几个方面多方位入手。而要想成为一名嵌入式工程师,就要对单片机的基础非常熟悉,并且掌握C语言当中各个功能的初始化、启动、停止各类函数的编写调试。那么…
已有帐号?
无法登录?
社交帐号登录
1474 人关注
345 人关注
861 人关注
331 条内容
102 人关注
8649 条内容当前位置: >>
基于AT89C52单片机的音乐播放器(含电路图)
山东英才学院 毕 业 设 计(论 文)题目: 基于 51 单片机的儿童早教故事机的设计学生姓名 学 专 学 院 业 号孙东帅 机械工程及其自动化学院 电气工程及其自动化
高嵩年 月 日指导教师 毕业设计(论文)原创性声明本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究 工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他 个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡献的个人和集体,均 已在文中以明确方式标明并表示了谢意。论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向 有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1、保密□,在_____年解密后适用本授权书。 2、不保密□。 (请在以上相应方框内打“√”)论文作者签名: 导师签名:日期: 日期:年 年月 月日 日 目录摘 要 .........................................................................................................................................................I Abstract ...................................................................................................................................................... II 1 绪 论 .......................................................................................................................................................11.1 1.2 1.3 1.4 我国儿童早教机发展现状及发展趋势................................................................................1 国外现状 ......................................................................................................................................2 儿童早教故事机的发展趋势 ..................................................................................................2 课题研究的目的和意义 .......................................................................................................22 方案比较 ...............................................................................................................................................32.1 主控单元的选择..............................................................................................................................32.2 液晶显示模块的选择 ...............................................................................................................3 2.3 语音模块的选择 ........................................................................................................................43 系统硬件设计 ....................................................................................................................................63.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 总体方案设计 .............................................................................................................................6 主控单元模块 .............................................................................................................................6 液晶显示屏..................................................................................................................................7 80C52 单片机的的封装和引脚 ..............................................................................................8 红外遥控器..................................................................................................................................9 独立键盘 ......................................................................................................................................9 电源 ...............................................................................................................................................9 语音模块 ....................................................................................................................................104 软件设计 .............................................................................................................................................124.1 4.2 4.3 4.4 音乐播放主控流程图 .............................................................................................................12 音乐播放子程序流程图 .........................................................................................................14 LCD1602 显示子程序流程图 .................................................................................................15 语音模块工作流程图 .............................................................................................................155 实物操作 .............................................................................................................................................175.1.开机未播放音乐下的状态 ....................................................................................................17 5.2 工作状态下的单片机状态 .....................................................................................................17 5.3 按键功能测试 ...........................................................................................................................18 5.4 红外遥控器功能测试 .............................................................................................................19结论 .............................................................................................................................................................20 参考文献 ..................................................................................................................................................21 致 谢 .......................................................................................................................................................22 附录 A........................................................................................................................................................23 附录 B .........................................................................................................................................................36 基于 51 单片机的儿童早教故事机的设计摘 要:当今社会,父母对孩子的早期教育相当重视,如何更完善、更系统的把知识教授 给孩子,儿童早教故事机就是一个很好的选择。本课题介绍了一种以 STC89C52 单片机为 控制核心的儿童早教故事机,通过 keil 软件编写的程序实现早教故事机的音乐播放功能, 用户可以凭借独立按键或红外遥控器来选择播放歌曲顺序,功率放大器和喇叭可以控制音 量大小,同时 LCD1602 显示屏可以显示歌曲名称数码管显示歌曲序号。除此之外,单片机 外接 WT588D 语音模块、8002 功率放大器以及喇叭可以实现其人声讲故事的功能,增加 其趣味性,使其整体更适合儿童倾听和玩耍。 本论文详细描述了儿童早教故事机的国内外发展现状,对课题设计所需要的多种元件 的方案比较,对所选用的元件绘制了硬件设计电路、软件流程图并编写了相关的程序。论 文最后加入了设计成果的实物演示图。 关键词:STC89C52 单片机;WT588D 语音模块;红外遥控器;LCD1602 显示屏;功率放 大器I Design of early childhood story machine based on 51 single chipAbstract: In today's society, the parents to the child's early education very seriously, how to be more perfect, more systematic the knowledge taught to children, early childhood story.This paper introduces a children story machine based on single-chip microcomputer STC89C52 machine is a good choice.Through the keil software written procedures to achieve early childhood story machine music playback function, the user can by virtue of the independent button or IR remote controller connected to choose to play the song sequence, power amplifier and the loudspeaker can control the volume size and LCD1602 display can display song name digital tube display song number.In addition, the SCM connected WT588D voice module and 8002 power amplifier and a speaker can achieve its voice to tell the story, increase the interest, make the whole more suitable for children to listen and play. This paper described in detail the development status about early childhood story machine at home and abroad, various elements of the design issues need compared for the selected components drawn hardware circuit design, software flow chart and the preparation of the relevant procedures. Finally joined the design results of the demo map. Keywords:STC89C52 WT588D inf LCD1602 power amplifierII 山东英才学院 2015 届本科生毕业设计(论文)1 绪 论当今社会,我国人口基数大、儿童出生率高 ,但是家中的青壮劳动力因为忙于工作 没时间去教育孩子,看孩子的主要是孩子的祖父母。祖辈的文化程度比较低,没办法很好 的教育孩子,也不知道如何更好地教孩子,所以,对于这样的家庭来说,经济实惠而且功 能比较多的儿童早教机是一个很好的对孩子进行早期教育的选择。而儿童早教机大体上有 什么功能呢?首先是可以讲故事和播放音乐,孩子发育早期是一个学习语言的重要时期, 都是周围说什么他们会学什么,而且音乐的节拍更加的生动,可以让孩子发育初期就了解 什么是韵律。儿童早教故事机的语音切换大多是通过按键和红外遥控器来控制的,这个早 期就锻炼孩子对阿拉伯数字的认识了解。 现在的早教故事机大多是触摸屏, 从而代替纸张, 更加环保,而且幼儿操作比较容易。综上所述,儿童早教故事机对于孩子早期教育是很好 的选择。 简单来说:儿童早教故事机实现了儿童娱乐及儿童教育等重要功能。功能简单易懂、 操作简便、价格便宜,适合各种家庭使用。1.1 我国儿童早教机发展现状及发展趋势在当前社会,不管哪个国家地区都很重视儿童早期的教育,毕竟孩子是祖国的花朵, 未来的栋梁。由于现在贸易的全球化和科技发展的迅速等原因,这就让儿童早教故事机进 入了一个快速发展的状态,在这一情况下,儿童早教故事机的发展在国际上有一定的相似 性。但是大体来说儿童早教机经历了以下几代的改进:首先是最初的早教故事机产品:插 学习卡的儿童早教故事机;但是这类早教机操作起来比较繁琐,孩子一般因为年龄原因是 很难学会使用方法,还需要占用家长工作的时间。另外需要插上辅助学习卡才能用,所以 学习卡都要保管好,但是因为学习卡比较小所以容易丢失。除此之外,学习卡里面内容是 固定的,并不是说一张卡就能包含很多内容,一张卡用的时间久了,里面的内容就显得单 调无聊了。所以这一类的早教故事机很快被淘汰了,没有被用户持续使用。 第二代产品:第二代的早教故事机是现在大多数店面还有销售的一类早教故事机。其 功能详情如下:(1)语言训练:里面有智能模块可以和孩子进行简单的聊天,给孩子讲 故事,培养孩子的语言表达能力。 (2)早期的英语启蒙:早教故事机语音功能中增加了讲英语的功能,虽然只是比较简单 的单词教育和日常对话,但是不能忽视儿童早期英语启蒙学习中的重要性,这在上学之后 对英语的兴趣和喜爱具有决定性的作用。上学之后经过英语启蒙的孩子对英语学习的兴趣 和所得到成绩相对于没有启蒙的孩子都要优秀。 (3)可爱的外观设计:现在一些早教故事机外观都是卡通图案,而且体积小,在方便孩 子携带玩耍的同时,增加孩子对美的认识、对颜色的识别。 (4)益智故事:开拓了幼儿的视野,挖掘孩子的潜能,是一种很好的教育方式。可以扩 宽孩子思维的模式,在听故事同时能够培养孩子善恶观,了解事物的是非黑白,无论是成1 山东英才学院 2015 届本科生毕业设计(论文)人还是少儿,都可以从故事中学习到为人处世的方法。 (5)儿童歌曲:不止是简单的纯音乐播放,还有人声伴唱,语音更生动美妙,可以让孩 子学习一些儿歌同时增加其对韵律和节奏的感觉。 可以说,这已经是功能相当丰富的了,是市场上较为常见的产品了。1.2 国外现状国外主要开发到现在的第三代(也是我国现阶段主流进口产品)。(1)第三代产品 在第二代早教机的基础上增加了彩色显示屏,让幼儿可以更直观的看动画视频和文字,从而 增强宝宝对教学资料的理解能力和接受度。 (2)机身的内存也从原来的 1G 扩大到 4G 或 8G 及 16G 以上,从而可以下载更多的教育内容,使平时的儿童生活更加丰富多彩。(3) 电池在原先的基础上进行升级,由原来的 AAA 干电池,升级为更环保,更安全的可循环充电 锂电池(或聚合物电池),增加了基于电池的保护电路,从而更安全可靠。(4)外形体积越来 越小,方便幼儿的随身携带。1.3 儿童早教故事机的发展趋势将来的儿童早教故事机不仅仅局限于幼儿的娱乐和教育功能,更注重儿童的安全考 虑。其中,儿童早教故事机更趋向于选择环保和绿色健康的材料,为了增加儿童对色彩的 分辨率以及对美好事物的理解,设计的更加可爱、多姿多彩。增加其安全功能,比如环境 温度过高的情况下早教机进行声音报警并且联系家长手机发送报警短信提示。增加距离感 应器,当儿童跟随父母出行并距离父母较远时单片机报警引起父母警觉,有效防止孩子走 失。 增加远程视频通话的功能, 当孩子想念父母时可以通过简单按键实时与父母视频通话。 并且如现在连接手机的智能腕表一样,给孩子带一个连接早教机的智能手环连接,实时检 测孩子体温和心率等身体情况,让父母随时了解孩子的健康状况。1.4 课题研究的目的和意义本课题的任务是一个基于 STC89C52 单片机的儿童早教故事机的设计,它是以 STC89C52 单片机作为主控模块,通过编写好的程序下载到单片机中,本设计编写的歌曲 共有 5 首歌曲,外接喇叭播放歌曲,独立按键和红外遥控器选择歌曲进行播放,同时 LCD1602 液晶显示屏显示歌曲名字,数码管显示歌曲序号。通过外接 WT588D 语音模块, 8002 功率放大器和喇叭进行人声发音以实现其讲故事的功能。2 山东英才学院 2015 届本科生毕业设计(论文)2 方案比较2.1 主控单元的选择单片机的类型选择具有至关重要的地位,内存的大小、工作速率的快慢、应用范围的 大小和成本的高低等都是需要考虑的因素。由于本课题要求用 51 单片机,所以我们选择 两种方案进行比较论证。 方案一 AT89C52 是一款低电压,高性能单片机,其特点主要功能是:可与 MCS51 指令系统 完全兼容;有 8K 可反复擦拭的内存(超过 1000); 32 个双向 I / O 串行端口; 256 * 8 位的内 部存储器; 3 位可编程定时器/计数器中断;控制 0-24MHz 的时钟频率;它的串行中断有两个, 外部中断源有两个, 中断源有 8 个;读写中断口线 2 个, 具有软件可以设置睡眠和唤醒的功 能,在低功耗的空闲模式和掉电模式下; 还有 PDIP,PQFP,TQFP 和 PLCC 等几种封装, 以适应不同产品的要求[1]。 AT89C52 是一个 8 位微处理器,PDIP 封装引脚 AT89C52 引脚图使用行业标准。标准 的 C51 工作内核, 引脚的排列方式和内部能运行的功能与一般的 8xC52 单片机相同。 其主 要功能包括:集成电路,数据存储和外部接口模块初始化内部寄存器,发送和接收红外遥 控信号[2]。 方案二 采用 STC89C52RC 作为控制器。具有超强抗干扰,超低功耗,且能兼容 AT89S51, 管脚定义一样,无需编程器,无需仿真器,只要用 TTL 线就能烧录,支持在线下载程序, 下载程序比较方便,外设丰富,寿命长,价格便宜,编程简单,加密性强等特性。[3]。 STC89C52 单片机的构造:在总共 40 个引脚中专用于主电源引脚有 2 个,可以外接晶 振的引脚有 2 个,控制或与其它电源复用的引脚有 4 个,其他的 32 条是控制输入输出 I/O 引脚[4]。 综上所述 AT89C52 和 STC89C52 相比,基本功能相同,同样的晶振频率,后者的速 度比前者快, 同时后者下载程序方面, 直接串口就可以下载, 前者需要使用专用的编程器, 后者比较流行,前者已经停产十几年了。所以我们选用 STC89C52 单片机。2.2 液晶显示模块的选择LCD 是液晶显示器的缩写,液晶显示器本身是不发光的,而是液晶通过通电处理后改 变光线通过的方向,达到显示字体的效果。 方案一 LCD12864 显示块是点阵液晶显示模块,就是由 128*64 个液晶显示点组成的一个 128 列*64 行的阵列,所以也就叫成了 12864。每一位二进制数都是对应着一个相应的显示点, 当输出程序为 0 时表示灭,为 1 时就表示亮,当对应的储存单元存入了这些写好的点阵信 息后,就可以进行相对的显示。但是是显示点在存储器中的信息和地址液晶屏上的位置之3 山东英才学院 2015 届本科生毕业设计(论文)间的关系就成了应用的问题关键。LCD12864 显示屏是一种单中文字库的 4 位/8 位并行的 显示屏、 一线或多线串行接口的方式。 显示屏显示的分辨率为 128× 64, 内置 8129 个 16*16 的汉字和 128 个 16*8 点 ASCII 字符集,利用该模块灵活的接口方式和简单、方便的操作 指令,可构成全中文人机互交图形界面[5]。 方案二 LCD1602 显示器,这就是简单应用的工业字符型液晶,LCD1602 显示屏是指即可显 示两行,每行可以显示 16 个字符的液晶显示模块(显示数字或者字符),显示内容是 16 乘以 2 的字符,这样能够让最多 16X02 即 32 个字符同时显示,分辨率为 5× 7。每个显示 点都对应着有一位二进制数,和 LCD12864 相同,当输出程序为 0 时表示灭,为 1 时就表 示亮。LCD1602 液晶也被叫做 LCD1602 字符型的液晶显示屏,它经常被用来显示字母、 数字和符号等。在每个字符之间有一个点距的间隔,每行之间也有间隔,起到了控制字符 间距和行间距,让显示更清楚,但是正也因为这些设计让它不能很好的显示图形[6]。 综上所述,LCD12864 显示屏相对比功能是比较强大的,由于我们只是显示歌曲名字, 所以在选择液晶屏幕方面,LCD1602 显示屏已经够用了,而且更加实惠。2.3 语音模块的选择语音模块可以连接单片机、功率放大器和喇叭发出人声。通过连接下载模块可直接把 需要的音频下载到语音模块中,然后连接单片机通过更改编程控制语音模块播放其中的语 音音频。 方案一 ISD1802 语音模块, 它的正常工作电压为 3 到 5V, 按住录音按键不放可以自主进行录 音,当松开时,就可播放已经录制好的音频,录入的时间越短其音质越好。播放方式为循 环播放,除非断电,否则播放不停。可外接话筒,进行人声放音,其音质相比通常的话筒 要好一些。 方案二 WT588D 语音模块:WT88D 语音模块具有功能多,音质好,应用范围广等特点,而 且 WT588D 语音模块弥补了以往各种单片机功能少、应用范围小的缺点,除此之外,它的 应用模式也比较多,如:MP3 控制模式、按键控制模式、按键组合控制模式、并口控制模 式、一线串口控制模式、三线串口控制模式以及三线串口控制控制端口扩展输出模式,这 让其几乎可用于任何领域。 另外, WT588D 语音模块音质也颇为不错, 支持 6MHz 到 20MHz 音频模式的加载,这个芯片的特点就是能够将加载好的音频的音质几乎能够完整无损的播 放出来。WT588D voiceChip 软件是 WT588D 系列语音单片机模块一个相对应配套的加载 软件,它能够使语音模块中的语音加载或者删除变得简单,也能通过此软件反复擦除模块 的内容是模块应用更加多样化。其次,WT588D 语音模块可控制的语音地址位能达到 220 个,达到播放音频更多的效果。另外 SPI-FLASH 存储器是 WT588D 语音模块这一系列里 本来就内置好的,应用 WT588D 系列语音单片的用户,SPI-FLASH 存储器也可根据用户 想要用的实际用处进行外置,只需要更换 SPI-FLASH 里面的内容比如众多的控制模式或4 山东英才学院 2015 届本科生毕业设计(论文)者更换里面的语音组合的方式,就能完全实现操作方式和内容的切换[7]。 综上所述, 因为 WT588D 语音模块相对于其他的语音模块功能更强大完善, 音质更好, 可反复更换其中的内容等特点,更适合我们的要求。5 山东英才学院 2015 届本科生毕业设计(论文)3 系统硬件设计3.1 总体方案设计本设计是以 STC89C52 单片机作为主控模块,通过编写好的程序下载到单片机中,外 接喇叭播放歌曲,独立按键和红外遥控器选择歌曲进行播放,同时 LCD1602 液晶显示屏 显示歌曲名字,数码管显示歌曲序号。通过外接 WT588D 语音模块,8002 功率放大器和 喇叭进行人声发音以实现其讲故事的功能[8]。如图 3.1 所示独立键盘STC89C52 单片机语音模块红外遥控器 扬声器电路 LCD1602 显示 屏图 3.1 总体方案图3.2 主控单元模块最小单片机系统一般应包括:单片机,晶振电路和复位电路。STC89C52 微控制器复 位电路最小系统极性的大小直接影响 MCU 复位时间的大小,一般为 10?30uF,更大 STC89C52 系统最小容量值需要在更短的时间内复位。 STC89C52 单片机最小系统晶体可 以使用 6MHz 或 11.0592MHz,同时更高频率的晶振也可以在正常频率下使用。STC89C52 晶体芯片系统的振荡频率直接影响正常工作状态下的芯片处理速度,更大的频率意味着有 更快的处理速度。 STC89C52 单片机 SCM 系统振荡电容 MC2,MC3 一般采用 15?33pF 的,并和晶振尽可能接近。 P0 口是开漏输出,需要添加阻力,当其作为输出端口的时候, 阻力一般是 10K。最小单片机系统,其实就是能使单片机工作的最小元件工作系统[9]。 (1)复位电路:当系统上电后,复位电路开始工作,就是为了让电源接入后消除按键 按下后产生的抖动。所以只有在电源电流稳定后才撤销复位,并且只有 VCC 电平比较高 时才会复位成功。 (2)晶振电路:在单片机中这是非常重要的部件,单片机的运作需要时钟频率,而 晶振是产生时钟频率的部件,它产生的频率越高,单片机工作速度越快。通常为了达到系 统的稳定性,一个单片机中的部件都是共用一个晶振[10]。如图 3.2 所示:6 GVNC3.3 所示D S C 0 1 R 1 C 0 0 3 1 K μ F 1 T S E R J 2 23.3 液晶显示屏3 2 2 C C 2 2 2 1 p p 1 C F F 0 2 μ 1 2 G F V N C D C Y 1 S 1 R 1 1 0 1 2 M K W R L REST S C R D E G N N D山东英才学院 2015 届本科生毕业设计(论文)图 3.2 单片机最小电路图但是控制原理是一样的,本课题用的是 16 脚的,多出来的两个脚是接背光电源的。如图通过电极改变液晶分子状态达到显示的目的,所以它的重量也比较轻,同理,它的能耗主的复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等,液晶显示器LCD 显示屏工作在 5V 的电压下,可以通过调节屏幕的对比度来显示字符,内部自带要就是消耗在电极和驱动 IC 上,所以消耗小[11]。常见的 LCD1602 有 14 脚和 16 脚之分,72 1 0 9 G X X N 1 2 D STC89C52 P2.0 P2.1 P2.2 2 2 1 2111111111876543210 987654321P3.7RDP3.6WRP3.5T1P3.4T0P3.3INT1P3.2INT0P3.1TXDP3.0RXDRESTP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0U1EA/VDDPSENAVP2.3P2.4P2.5P2.6P2.7P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0LCEC222222233333333334345678901234567890VCFDDDDDDDDCM76543210 山东英才学院 2015 届本科生毕业设计(论文)图 3.3 LCD1602 电路图3.4 80C52 单片机的的封装和引脚80C51 系列单片机的封装形式一般采用的是双列直插式( DIP40)封装形式。QFP44 (Quad Flat Pack)形式和 LCC(Leaded Chip Caiier)。这里仅介绍常用的总线型 DIP40 封装。 40 个引脚按引脚功能大致可分为 4 个种类: 2 个电源、 2 个时钟、 4 个控制和 32 个 I/O 引脚[12]。如图 3.4 所示: (1) 电源: VCC :芯片的电源,接+5V 电压; VSS: 接地端;图 3.4 STC89C52 单片机封装引脚图8 山东英才学院 2015 届本科生毕业设计(论文)3.5 红外遥控器这是一种集红外线接收和放大于一体进行红外接收外送信号的遥控器,不需要再外接 任何元件, 就能完成红外线接收和输出并兼容 TTL 电平信号的所有工作, 适合与各种红外 遥控器和红外数据进行传输,而且它的体积和普通的塑封三极管大小一样[13]。如图 3.5 所 示:图 3.5 红外遥控器电路图3.6 独立键盘本课题设计成果是除了红外遥控器之外也可以用单片机独立按键控制音乐循环播放, 单片机的每个按键都是工作于一个单独的 I / O 口线,而且当按下一个按键,I/O 接口工作 而别的 I/O 接口的工作状态不受到影响。因此,通过检测输入线的电平状态可以容易的确 定哪个键被按下,键盘工作方式采用定时扫描方式,采用定时器 T0 定时[14]。如图 3.6 所 示:K 1 L C D E N R K 2 W S K 3 R K G N图 3.6 独立按键电路图3.7 电源系统直流 9V 或者 12V 电池供电,由一片 LM7805 芯片将 9V/12V 电源稳压在 5V 上。 5V 电源能给所有芯片和电路供电。在我们使用滤波电容器的电源电路中,其主要目的是 为了消除使用该系统的滤波电容器的干扰,提高系统的抗干扰能力[15]。如图 3.7 所示:D49DR 山东英才学院 2015 届本科生毕业设计(论文)D U 8 J 1 L7805CP 2 V E E I N O U C G N G N D 3 G N D图 3.7 电源电路图3.8 语音模块WT588D 系列语音单片机的优点是相比其他的语音模块可用的功能更多、发声之后的 音色更好、可以长时间工作,这也弥补了以前的一些语音模块的不足之处,所以在很多场 合都可见到它的应用设计[16]。作为一般以语音为基础的芯片,支持音质为 6K~20K 采样频 率的音频加载。本课题采用的控制模式为三线串口模式,通过扫描有按键按下,就用三线 串口程序调用一段语言模块中的语音达到发声的目的[17]。如图 3.8 所示:10DT 山东英才学院 2015 届本科生毕业设计(论文)图 3.8WT588D 电路图11 山东英才学院 2015 届本科生毕业设计(论文)4 软件设计4.1 音乐播放主控流程图电路以 STC89C52 为主控制器,主程序对单片机实现初始化设置后,采用单片机自带 的独立键盘来实现对播放的控制,然后子程序对播放切换进行判断,得到按键中断后进行 播放并进入歌曲曲目识别的子程序,进行歌曲曲目判断。确定歌曲曲目后,数码管显示歌 曲序列,1602LCD 显示歌名。 在播放音乐的过程中,根据按键中断的子程序判断音乐是否切换,如未切换,则播放 继续,如要切换歌曲,则切换为下一首,当音乐结束时程序跳回初始识别子程序[18]。如图 4.1 所示:12 山东英才学院 2015 届本科生毕业设计(论文)开始系统初始化扫描按键得到键值判断键值LCD 显示播放的歌曲蜂鸣器(喇叭)发音 切换歌曲 扫描键盘YES切换键是否按 下NO继续发声结束图 4.1 音乐播放主控流程图13 山东英才学院 2015 届本科生毕业设计(论文)4.2 音乐播放子程序流程图开始播放自定义的音乐程序时,指针指向乐谱的的第一个字节,第一个字节被分成高 低字节,高位字节是相应定时器音符音高常数,低字节的音符对应的 1/4 拍的节拍数,并 启动定时器 0 中断在模式 1,由定时器定时常数得到相应音高,设置 1/4 节拍的延时子程 序,由节拍次数得到节拍,然后读取音乐的下一个字节,循环下去就会演奏出精彩、和谐 的音乐[19]。如图 4.2 所示: 开始程序 指向乐谱第一个字节拆分字节的高低字节由高字节得音高对应定时器定时 常数 由低字节得到节拍对应节拍次数 启动定时器 0延时节拍时间 关闭定时器 0读取下一个乐谱字节字节是 00H 吗?NOYES 程序循环图 4.2 音乐播放子程序图14 山东英才学院 2015 届本科生毕业设计(论文)4.3 LCD1602 显示子程序流程图当按下电源键,LCD 出现开始页面 music stop,当有键按下,系统进入歌曲子程序并 分辨歌曲名字,LCD 显示;当歌曲播放完毕,LCD 返回初始页面。如图 4.3 所示:开始LED 显示 music stopNO数字键按下YES调 music1~music5 子程 序,并顺序自动播放,并 显示英文歌名系统返回图 4.3 LCD1602 显示流程图4.4 语音模块工作流程图开始播放下载好的语音模块程序时,单片机判断键值,经过功率放大器调节播放声音 的大小然后喇叭发声,独立键盘来实现对播放的控制,在播放音乐的过程中,根据按键中 断判断音乐是否切换,如未切换,则播放继续,如果切换歌曲,则切换为下一首,当播放 结束时,返回初始化。如图 4.4 所示:15 山东英才学院 2015 届本科生毕业设计(论文)开始扫描按键得到键值判断键值语音模块功率放大器调节音量 切换语音 扫描键盘YES切换键是否按 下NO继续发声结束图 4.4 语音模块流程图16 山东英才学院 2015 届本科生毕业设计(论文)5 实物操作5.1 开机未播放音乐下的状态在单片机中下载好程序并连接好电路后打开电源, 音乐不播放, 数码管闪烁, LCD1602 显示器显示“music player STOP PLAY!!!”如图 5.1 所示。液晶屏显示音乐 播放器停止工作 数码管闪烁喇叭未发声图 5.1 开机状态实物图5.2 工作状态下的单片机状态LCD 显示屏显示 music player 和歌曲名称,数码管显示正在播放的歌曲的序号,外接 的喇叭发声并可凭借功率放大器控制音量大小。如图 5.2 所示。17 山东英才学院 2015 届本科生毕业设计(论文)图 5.2 工作状态下的液晶显示实物图5.3 按键功能测试按下按键,音乐更换,数码管显示歌曲序号更换,LCD 显示屏歌曲名称更换。如图 5.3 所示。图 5.3 按键测试实物图18 山东英才学院 2015 届本科生毕业设计(论文)5.4 红外遥控器功能测试检测到红外遥控器有按键按下,歌曲更换,数码管显示歌曲序号更换,液晶显示屏歌 曲名称更换。如图 5.4 所示。图 5.4 红外遥控器功能实物图19 山东英才学院 2015 届本科生毕业设计(论文)结论我设计的儿童早教故事机采用 STC89C52 单片机为主控元件,价格比较便宜、性能比 较完善。采用喇叭为外接的播放器件,音质方面比较蜂鸣器要好一点,但是歌曲播放的是 简单的节拍,没有人声歌唱功能,音质好的的音频也不能播放,与现在流行的 WAV、MP3 等音乐质量很好的系统相比,它就不是一个好的选择。单片机的外形比较大,外观也不漂 亮,相对于现在发展的各类外形小巧漂亮的可随身携带的电子设备相比有很大的缺陷,这 是本设计的不足。 本设计因为时间不足、语音模块下载及调试语音程序比较繁琐原因未能实现其语音模 块人声发声讲故事的功能,表示十分遗憾,敬请各位老师谅解。20 山东英才学院 2015 届本科生毕业设计(论文)参考文献[1] 刘海成.单片机及应用系统设计原理与实践[J]北京:北京航空航天大学出版社, 2009. [2] 郭天祥.新概念 51 单片机 C 语言教程-入门、提高、开发、拓展全攻略[M].北京: 电子工业出版社,2009. [3] 江力. 单片机原理与应用技术[D]. 北京:清华大学出版社,2006 [4] 陈明焚.8051 单片机课程设计实训教材[M].北京:清华大学出版社,2005. [5] 裴岩,刘利民.单片机系统综合设计与实践[J].内蒙古:内蒙古大学出版社,2003. [6] 求是科技.8051 系列单片机 C 程序设计完全手册[M].北京:人民邮电出版社,2006. [7] 任文,孔庆彦.C 语言程序设计[M].北京:机械工业出版社,] 清源科技. Protel99SE 电路原理图与 PCB 设计及仿真[M].北京:机械工业出版社,2011. [9] 刘润景,张丽娜,丁莉.基于 PROTEUS 的电路及单片机设计与仿真(第 2 版)[M].北京:北京航空 航天大学出版社,2010. [10] 丁明亮,唐前辉.51 单片机应用设计与仿真―基于 Keil C 与 Proteus[J].北京:北京航空航天 大学出版社,] 黄智伟.全国大学生电子设计竞赛电路设计(第 2 版) [J].北京:北京航空航天大学出版 社,2011. [12] 黄智伟. 全国大学生电子设计竞赛技能训练(第 2 版)[J].北京:北京航空航天大学出版 社,2011. [13] 黄智伟. 全国大学生电子设计竞赛系统设计(第 2 版)[J].北京:北京航空航天大学出版 社,2011. [14] 黄智伟. 全国大学生电子设计竞赛制作实训(第 2 版)[J].北京:北京航空航天大学出版 社,2011. [15] 徐淑华,程退安,姚万生.单片机微型机原理及应用[M].哈尔滨:哈尔滨工业大学出版社.2005 [16] 裴岩,刘利民.单片机系统综合设计与实践[J].内蒙古:内蒙古大学出版社,2003. [17] Ljung,Lennard.Theory And Practice of Recursive Identification[M].The MIT press,1983. [18] Ljung,Lennard.Theory And Practice of Recursive Identification[M].The MIT press,1983. [19] Dallas Semiconductor Data Book.DS18B20 programmable resoluting l-wire digital thermometer[S]. [S.l.]:Dallas Semiconductor.21 山东英才学院 2015 届本科生毕业设计(论文)致谢毕业设计之所以那么顺利的完成, 感谢院领导们为我们制定的时间任务安排以及提供 实验室等学习场地,使毕业设计有条不紊的进行。同时感谢我的导师高嵩老师每周坚持不 懈的给我们辅导。在这几个月里,我学到了许多东西,我的导师也教会我如何把一件事情 快速有效的完成,在毕业设计期间 虽然遇到很多困难,但是庆幸导师在我旁边为我指点 迷津、解决困难。在此真诚的感谢院领导的关怀和导师的帮助。 我的论文题目是基于 51 单片机的儿童早教故事机的设计,刚开始拿到这个题目时, 这对于在大学生活里生活的懵懵懂懂的我是相当困惑的,清晰的题目中却带着我满满的迷 惑,从哪里开始入手,怎么进行编程和怎么操作单片机?我几乎都是一无所知,毕竟大学 4 年学习的内容相对比较片面,没有真正的了解一些专业方面的知识。幸好高嵩老师秉承 的严谨的教学态度,严格要求我每周做完相应的任务指标,给了我一个清晰的通往胜利的 道路。并且学校的领导为了给我们一个良好的做毕业设计的环境,专门给我们提供了实验 室, 从而使我们能在一个安静的环境中专注的作者自己的设计, 非常谢谢学校领导的关心。 虽然毕业设计时间很紧迫,设计要求很严格,但是我在其中学到了很多东西,首先,做事 有计划性,把一件难事分为许多件小事,做好时间规划,一步步的完成,最后,就会成功。 另外,做事情坚持不懈,当我们遇见困难时,不要第一时间就想着“我不行”,而是想尽办 法克服困难,克服自己内心的恐惧和负面情绪,人生中总是遇见自己未曾见到的高峰,但 是不能止步不前,而是努力攀登。在这几个月的时间中,我也逐渐认识到了自身的不足, 以前的我遇见学习问题第一时间的想到的是请求同学老师帮忙解决,但是经过这次毕业设 计我开始学会了自己去解决问题,比如这次毕业设计用到的 protel 软件,keil 软件和用语 音模块等。然后尝试自己去画电路图,自己去编写程序,虽然过程很艰难,但是当成功的 笑容挂在嘴角时,突然发现这些都是值得的。 如何成功,如何实现自己的梦想,一步一个脚印,不耍小聪明,就会发现你会学的比 别人更多,比别人更快。在这毕业之际,感谢老师,感谢校领导,感谢给我帮助的同学和 参考文献的作者,真正让我学习到了属于自己专业的知识。 此致 敬礼22 山东英才学院 2015 届本科生毕业设计(论文)附录 A#include &reg52.h& #include &intrins.h& #include&string.h& #define uchar unsigned char #define uint unsigned int #define lcd1602 P0 //1602 数据接口连接 sbit IR=P3^2; //红外遥控器接口 sbit key1=P3^2 ; //按 key1 可切换歌曲 sbit key2=P3^3;//按 key2 可切换歌曲 sbit fm=P1^2;//蜂鸣器连续的 IO 口 sbit lcd1602rs=P2^4; sbit lcd1602rw=P2^5; sbit lcd1602en=P2^6; //1602RS 接口连接 //1602RW 接口连接 //1602EN 接口连接unsigned char a[20]=&Music Player &; unsigned char b[20]=&STOP PLAY!!!!! &; unsigned char s1[20]=&Song:LaoDongGR & ; unsigned char s2[20]=&Song:WeiYi &; unsigned char s3[20]=&Song:ClassMate Y & ; unsigned char s4[20]=&Song:HuLuWa &; unsigned char s5[20]=&Song:QiKaiDeSheng & ; unsigned char b1[20]=&STOP PLAY!!!!! &; //红外用全局变量 bit irpro_ok, unsigned char IRcord[4]; unsigned char irdata[33]; uchar count1;//花样标志 uchar count2;//歌曲标志 uchar timeh,timel,i; void delay11(uint z); void delay_ms(uint ms ) { for(ms&0;ms--) for(j=120;j&0;j--); } static void delay(unsigned int us)23 山东英才学院 2015 届本科生毕业设计(论文){ while(us)us--; } void Delay1us(unsigned char n) { for(i=0;i&n;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } //@12.000MHz/*液晶显示*/ bit lcd1602busy(void) { lcd1602rs=0; //指令 lcd1602rw=1; //读取 lcd1602en=1; //开始 Delay1us(5); busy=(bit)(lcd); Delay1us(5); lcd1602en=0;//返回结果 } void lcd1602writecmd(unsigned char cmd) //lcd 写指令 { while(lcd1602busy()); lcd1602rs=0; //指令 lcd1602rw=0; //写入 lcd1602en=1; //使能 Delay1us(5); lcd1602= //准备命令 Delay1us(5); lcd1602en=0; //使能 } void lcd1602writedata(unsigned char mydata) //lcd1602 写数据 { while(lcd1602busy()); lcd1602rs=1; //数据 lcd1602rw=0; //写入 lcd1602en=1; //使能24 山东英才学院 2015 届本科生毕业设计(论文)Delay1us(5); lcd1602= //准备数据 Delay1us(5); lcd1602en=0; //写入 } void lcd1602setpos(unsigned char pos) //设置字符位置 { lcd1602writecmd(pos|0x80); //D7 位 置 1 Delay1us(5); } void lcd1602int(void) //液晶初始化设置 { lcd1602writecmd(0x38); //8 位总线 双行显示 5x7 的点阵字符 Delay1us(5); lcd1602writecmd(0x0c); //开显示,无光标,无闪烁 Delay1us(5); lcd1602writecmd(0x01); //清显示 Delay1us(5); } void lcddisplay(void) { unsigned char i=0; lcd1602int(); delay_ms(2); while(a[i]!='\0') { lcd1602setpos(i); lcd1602writedata(a[i]); lcd1602setpos(0x40+i); lcd1602writedata(b[i]); i++; } } /**************红外显示************/ void Ir_work(void); void Ircordpro(void); void tim0_isr (void) interrupt 1 using 1 { irtime++; //用于计数 2 个下降沿之间的时间 } void TIM0init(void)//定时器 0 初始化 { TMOD=0x02;//定时器 0 工作方式 2,TH0 是重装值,TL0 是初值 TH0=0x00; //重载值25 山东英才学院 2015 届本科生毕业设计(论文)TL0=0x00; //初始化值 ET0=1; //开中断 TR0=1; } void EX0init(void) { IT0 = 1; //指定外部中断 0 下降沿触发,INT0 (P3.2) EX0 = 1; //使能外部中断 EA = 1; //开总中断 } void EX0_ISR (void) interrupt 0 //外部中断 0 服务函数 { st //接收红外信号处理
//是否开始处理标志位 if(startflag) { if(irtime&63&&irtime&=33)//引导码 TC9012 的头码,9ms+4.5ms i=0; irdata[i]=//存储每个电平的持续时间,用于以后判断是 0 还是 1 irtime=0; i++; if(i==33) { irok=1; i=0; } } else { irtime=0; startflag=1; } } void Ir_work(void)//红外键值散转程序 { switch(IRcord[2])//判断第三个数码值 { case 0x0c:count2++; case 0x18:count2=0; case 0x5e:; case 0x08:; case 0x1c:; case 0x5a:; case 0x42:; case 0x52:;26 山东英才学院 2015 届本科生毕业设计(论文)case 0x4a:; default: } irpro_ok=0;//处理完成标志 } void Ircordpro(void)//红外码值处理函数 { unsigned char i, j, k,cord, k=1; for(i=0;i&4;i++) //处理 4 个字节 { for(j=1;j&=8;j++) //处理 1 个字节 8 位 { cord=irdata[k]; if(cord&7)//大于某值为 1,这个和晶振有绝对关系,这里使用 12M 计算,此值可以有一定 误差 value=value|0x80; if(j&8) { value&&=1; } k++; } IRcord[i]= value=0; } irpro_ok=1;//处理完毕标志位置 1 } uchar code ldzgr[]={ //劳动最光荣 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x32,0x52,0x12,0x32,0x28, //太阳光,金亮亮,雄鸡唱三唱; 0x52,0x84,0x52,0x62,0x62,0x54,0x52,0x81,0xA1,0x92,0x52,0x88, //花儿 醒来了,鸟儿忙梳妆 0x83,0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, //小喜鹊 造新房,小蜜蜂 采蜜糖 0x12,0x11,0x21,0x32,0x51,0x51,0x62,0x52,0x84,0x82,0x51,0x61,0x84,0xA4,0x92, 0x52,0x86,0x02, //幸福的生活从哪里来?要靠劳动来创造 0x52,0x81,0x81,0x82,0x52,0x62,0x61,0x81,0x54,0x32,0x51,0x61,0x53,0x31,0x12, 0x32,0x24, //青青的叶儿 红红的花,小蝴蝶 贪玩耍 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x51,0x61,0x81,0xA1,0x92,0x52,0x88, //不爱劳动 不学习,我们大家不学它27 山东英才学院 2015 届本科生毕业设计(论文)0x83,0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, //要学喜鹊 造新房,要学蜜蜂 采蜜糖 0x12,0x11,0x21,0x32,0x52,0x82,0x52,0x68,0x52,0x61,0x61,0x84,0xA4,0x92,0x52, 0x84,0xff//歌曲结束符号 //劳动的快乐 说不尽,劳动的创造 最光荣 }; uchar code wy[]={ //唯一[10] 0x33,0x53,0x63,0x53,0x63,0x73,0x63,0x33,0x53,0x03,0x53,0x53,0x53,0x43,0x44, 0x52,0x43,0x33,0x22,0x14,0x38, //我的天空多么的清新,透明的承诺是过去的空气 0x04,0x43,0x43,0x43,0x33,0x23,0x13,0x38,0x03,0x13,0x23,0x13,0x33,0x26,0x04, 0x33,0x23,0x13,0x2c,0x04, //牵着我的手是你,但你的笑容却看不清 0x33,0x53,0x63,0x53,0x63,0x73,0x63,0x33,0x55,0x03,0x53,0x53,0x53,0x43,0x44, 0x52,0x43,0x33,0x23,0x13,0x35, //是否一颗星星变了心,从前的愿望也全都被抛弃 0x04,0x43,0x43,0x43,0x33,0x23,0x13,0x33,0x54,0x83,0x83,0x93,0xA3,0x92,0x81, 0x63,0x62,0xA3,0x93,0x83,0x96,0x04,0x04, //最近我无法呼吸,连自己的影子也都想逃避 0xA4,0x94,0x82,0x82,0x82,0x52,0x82,0x92,0xA4, //Ba By 你就是我的唯一 0x72,0x72,0x72,0x52,0x72,0x82,0x94,0x04,0xA2,0xA2,0xB2,0xA2,0x82,0x92, //两个世界都变心,回去谈何容易 0x04,0xA4,0x94,0x82,0x82,0x82,0x52,0x82,0x92,0xA4, //确定 你就是我的唯一 0x72,0x72,0x72,0x52,0x72,0x82,0x92,0xA2,0x84,0x64,0x03,0x51,0xB2,0xA2,0x82, 0x61,0x51, //独自对着电话说我爱你,我真的爱你 0x04,0xA4,0x94,0x82,0x82,0x82,0x82,0x72,0x82,0x52,0x32,0x68, //BABY 我已不能多爱你一些 0x02,0xA4,0x94,0x82,0x82,0x82,0x82,0x72,0x82,0x54,0x42,0x66,0xff //其实 早已超过了爱的极限 }; uchar code tzdn[]={ //同桌的你[11] 0x56,0x56,0x32,0x42,0x52,0x76,0x66,0x56,0x52,0x22,0x32,0x46,0x16,0x26,0x04, //前奏 0x52,0x52,0x52,0x52,0x32,0x42,0x56,0x86,0x62,0x62,0x62,0x62,0x42,0x62,0x56, 0x04, //明天你是否会想起,昨天你写的日记 0x52,0x52,0x52,0x52,0x72,0x62,0x52,0x44,0x02,0x42,0x42,0x42,0x42,0x33,0x21, 0x16,0x02, //明天你是否还惦记,曾经最爱哭的你 0x82,0x82,0x82,0x82,0x52,0x32,0x86,0x82,0xA4,0x92,0x92,0x92,0x93,0x81,0x72, 0x66,0x02, //谁娶了多愁善感的你,谁看了你的日记 0x72,0x72,0x72,0x72,0x72,0x82,0x96,0x54,0x02,0x72,0x72,0x82,0x92,0x82,0x72,28 山东英才学院 2015 届本科生毕业设计(论文)0x16,0x02, //谁把你的长发盘起,谁给你做的嫁衣 0x84,0x82,0x82,0x52,0x62,0x86,0xA6,0x94,0x92,0x92,0x82,0x72,0x66,0x74,0x72, 0x72,0x72,0x82,0x96,0x56, //啦……,啦……,啦…… 0x72,0x72,0x82,0x92,0x82,0x72,0x86,0x94,0x92,0x92,0x62,0x72,0x96,0xB6,0x94, 0x92,0x92,0x82,0x72,0x66, //啦……,啦……,啦…… 0x72,0x72,0x72,0x72,0x72,0x82,0x96,0x56,0x72,0x72,0x82,0x92,0x82,0x72,0x96, 0x86,0xff //啦……,啦……,啦……,啦…… }; uchar code hlw[]={ //小小葫芦娃 0x83,0x63,0x51,0x61,0x03,0x81,0x61,0x51,0x81,0x63,0x01,0x81,0x61,0x63,0x51, 0x63,0x01,0x61,0x81,0x61,0x51,0x81,0x63,0x03, //前奏 0x12,0x12,0x35,0x11,0x12,0x31,0x02, //葫芦娃,葫芦娃 0x62,0x62,0x61,0x51,0x62,0x51,0x12,0x31,0x02, //一根藤上七朵花 0x81,0x61,0x61,0x51,0x65,0x51,0x12,0x21,0x02, //风吹雨打都不怕 0x75,0x51,0x32,0x58, //啦啦啦啦 0x81,0x01,0x61,0x61,0x51,0x51,0x62,0x61,0x01, //叮当当冬冬当当 0x52,0x11,0x32,0x02,0x81,0x01,0x61,0x61,0x51,0x51,0x61,0x61,0x01,0x51,0x11, 0x22,0x02, //葫芦娃,叮当当冬冬当当,七朵花 0x35,0x11,0x62,0x18, //啦啦啦啦 0x31,0x52,0x61,0x31,0x52,0x61, //葫芦娃,葫芦娃 0x85,0x01,0x71,0x52,0x65,0x02,0xff //七朵花 }; uchar code qkds[]={ //旗开得胜 0xA2,0x82,0x92,0xA1,0x81,0x03,0x81,0xC1,0xB1,0xA1,0x91,0xA2,0x82,0x92,0xA1, 0x91,0x04,0xA2,0x82,0x92,0xA1,0x81,0x03,0x81,0xC1,0xB1,0xA1,0x91,0xA2,0x82, 0x92,0xA1,0x91,0x94,0x04, //哦!哦!哦!哦! 0x01,0xA2,0x91,0xA1,0x91,0x82,0x01,0x62,0x81,0x81,0x61,0x52,0x01,0xA2,0xA1, 0xC2,0xC2,0x01,0x92,0x81,0xA1,0x91,0x81,0x61, //痛快自在,热血澎湃,别问由来,星可以摘 0x01,0xA2,0x91,0xA1,0x91,0x82,0x01,0x62,0x81,0x81,0x61,0x51,0x31,0x01,0xA2, 0xA1,0xC2,0xC1,0x91,0x01,0x92,0x81,0xA1,0x91,0x82,29 山东英才学院 2015 届本科生毕业设计(论文)//see the champions,take the fleld now,unify us ,make us feel proud 0x01,0xA2,0x91,0xA1,0x91,0x82,0x01,0x62,0x81,0x81,0x61,0x52,0x01,0xA2,0xA1, 0xC2,0xC2,0x01,0x92,0x81,0xA1,0x91,0x81,0x61, //头昂起来,畅爽开怀,天涯不过,你我胸怀 0x01,0xA2,0x91,0xA1,0x91,0x81,0x61,0x01,0x62,0x81,0x81,0x61,0x51,0x31,0x01, 0xA2,0xA1,0xC1,0xA1,0x92,0x01,0x92,0x81,0xA1,0x91,0x82, //celebration it surrounds us , every nation all around us 0x82,0x81,0x81,0xA2,0xC1,0xD1,0x02,0xD1,0xD1,0xD1,0xD1,0xD1,0xD1,0xC1, 0xA2,0x91,0x02,0x81,0x81,0x82,0x81,0x81,0xA1,0xA1,0xC1,0xD1,0x02,0xD1,0xD1, 0xD1,0xD1,0xD1,0xD1,0xC1,0xA2,0x91, // 青 春 是 一 首 歌 , 迎 着 光 让 我 们 一 起 唱 , 看 世 界 就 在 我 们 脚 下 , 把 梦 踢 到 天 际 无 限 0x03,0xA1,0xA1,0x91,0x81,0x61,0x81,0x82,0x91,0xA1,0x91,0x82,0xB1,0xB2,0xB1, 0xA1,0x91,0x92,0xA1,0xA2,0xA1,0x91,0x81,0x82,0x91,0x92,0xA1,0x91,0x81,0x72, //一起唱,汗让梦茁壮,你让我成长,旗像风翅膀,你给我力量 0x83,0x81,0x91,0x81,0x72,0x83,0x81,0x91,0x81,0x72,0x83,0x81,0x91,0x81,0x72, 0x83,0x81,0x91,0x81,0x72, //flag so wave your flag now wave your flag now wave your flag now wave your 0x81,0x82,0x91,0xA1,0x91,0x82,0xB1,0xB2,0xB1,0xA1,0x91,0x92,0xA1,0xA2, 0xA1,0x91,0x81,0x72, //汗让梦茁壮,你让我成长,旗像风翅膀,你给我力量 0x83,0x81,0x91,0x81,0x72,0x83,0x81,0x91,0x81,0x72,0x83,0x81,0x91,0x81,0x72, 0x83,0x81,0x91,0x81,0x72,0x83,0x81,0x91,0x81,0x72, //flag so wave your flag now wave your flag now wave your flag now wave your flag now wave your 0xA2,0x82,0x92,0xA1,0x81,0x03,0x81,0xC1,0xB1,0xA1,0x91,0xA2,0x82,0x92,0xA1, 0x91,0x04,0xA2,0x82,0x92,0xA1,0x81,0x03,0x81,0xC1,0xB1,0xA1,0x91,0xA2,0x82, 0x92,0xA1,0x91,0x93,0x91,0xA1,0x91,0x81,0x61, //哦!哦!哦!哦!一起唱 0x02,0xA1,0x91,0xA1,0x91,0xA1,0x91,0xA1,0x91,0x84,0x04,0xff //世界沸腾我们一起唱 };//简谱音调对应的定时器初值,适合 11.0592M 的晶振 uchar code cuzhi[]={ 0xff,0xff,//占位 0xFC,0x8E,//中央 C 调 1-7 0xFC,0xED, 0xFD,0x43, 0xFD,0x6A, 0xFD,0xB3, 0xFD,0xF3, 0xFE,0x2D, 0xFE,0x47,//高八度 1-7 0xFE,0x76, 0xFE,0xA1, 0xFE,0xC7,30 山东英才学院 2015 届本科生毕业设计(论文)0xFE,0xD9, 0xFE,0xF9, 0xFF,0x16 }; uchar yinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};//将音调转化为 LED 样式 void delay1(uint z);//延时 1MS void delay(uint z);//延时 165MS,即十六分音符 void song(); void beep();//蜂鸣器叫一声 void tube(); /*void key() { if(key1==0) { delay_ms(50); if(key1==0) { count2++;if(count2&5)count2=0; while(!key1); } } if(key2==0) { delay_ms(50); if(key2==0) { //暂停音乐 //播放暂停count2=0; while(!key2); } } }*/ uchar code num[6]={0x3f,0x06,0x5b,0x4f,0x66,0x6d}; main() { count1=1;//流水灯显示第一种花样31 山东英才学院 2015 届本科生毕业设计(论文)count2=0;//不唱歌 P0=num[0]; EA=1;//开总中断 EX0=1;//开外部中断 0 IT0=1;//外部中断 0 下降沿触发方式 EX1=1;//开外部中断 1 IT1=1;//外部中断 1 下降沿触发方式 TMOD=0x01;//定时器 0 工作在方式 1 TH0=0; TL0=0; ET0=1; while(1) { // key(); /* switch(count2) { case 0:; case 1:strcpy(b,s1); case 2:strcpy(b,s2); case 3:strcpy(b,s3); case 4:strcpy(b,s4); case 5:strcpy(b,s5); } */ lcddisplay();//显示结果到液晶屏song();delay_ms(50); } } void int0() interrupt 0 { EA=0;//关总中断 delay1(10);//去抖 if(key1==0) { count2++;//不让蜂鸣器唱歌 TR0=0; if(count2==6) count2=0; switch(count2) { case 0:strcpy(b,b1); case 1:strcpy(b,s1);32 山东英才学院 2015 届本科生毕业设计(论文)case 2:strcpy(b,s2); case 3:strcpy(b,s3); case 4:strcpy(b,s4); case 5:strcpy(b,s5); } lcddisplay(); } EA=1;//开总中断 } void int1() interrupt 2 { EA=0;//关总中断 delay1(100);//去抖 if(key2==0) { count1=0;//流水灯无花样 TR0=1; i=0;//从头开始唱 count2++; if(count2==6) count2=0; } switch(count2) { case 0:strcpy(b,b1); case 1:strcpy(b,s1); case 2:strcpy(b,s2); case 3:strcpy(b,s3); case 4:strcpy(b,s4); case 5:strcpy(b,s5); } lcddisplay(); EA=1;//开总中断} void timer0() interrupt 1 //用于产生各种音调 { TH0= TL0= fm=~ } void song() {//jp 是简谱 i=0; while(count2)33 山东英才学院 2015 届本科生毕业设计(论文){ if(count2==0) { } if(count2==1)//选曲 temp=ldzgr[i]; if(count2==2) temp=wy[i]; if(count2==3) temp=tzdn[i]; if(count2==4) temp=hlw[i]; if(count2==5) temp=qkds[i]; if(temp==0xff) switch(count2) { case 0:P0=num[0]; case 1:P0=num[1]; case 2:P0=num[2]; case 3:P0=num[3]; case 4:P0=num[4]; case 5:P0=num[5]; } jp=temp/16; //取数的高 4 位 P1=yinyue[jp]; if(jp!=0) { timeh=cuzhi[jp*2]; timel=cuzhi[jp*2+1]; } else { TR0=0; fm=1;//关蜂鸣器 } delay11(temp%16); //取数的低 4 位 TR0=0; //唱完一个音停 10MS fm=1; delay1(10); TR0=1; i++; }34 山东英才学院 2015 届本科生毕业设计(论文)TR0=0; fm=1; } void delay11(uint z) //延时 165MS,即十六分音符 { uint x,y; for(x=z;x&0;x--) for(y=19000;y&0;y--); } void delay1(uint z) //延时 1MS { uint x,y; for(x=z;x&0;x--) for(y=112;y&0;y--); } void beep() //蜂鸣器叫一声 { for(i=0;i&50;i++) { fm=~ delay1(1); } fm=1; }35 山东英才学院 2015 届本科生毕业设计(论文)附录 B36 山东英才学院 2015 届本科生毕业设计(论文)37
基于这个思想,采用 AT89C52 单片机设计了一款特殊的&音乐播放器&, 本播放器可...按键 输入 蜂鸣器 单片机晶振复 位电路图 2-1 总体设计框图 指示灯 2.2 ...基于AT89C51单片机的音乐播放器课程设计_工学_高等教育_教育专区。基于 AT89C...北京: 北京航空航天大学出版社, 2004 如需要代码及电路图(Proteus 仿真图)请...基于单片机控制音乐播放器_电子/电路_工程科技_专业资料。设计的课题是“基于单片机的音乐播放器设计”,它是以单片机AT89C52作为硬件核心控制部件,结合负脉冲电路和...16 一、功能介绍 1.1 功能特点本设计是一个基于 AT89C52 系列单片机的音乐播放器,依据单片机技术原理,通 过硬件电路设计以及软件编译,设计出一个多功能音乐播放...基于STC89C52单片机音乐播放器的设计_电子/电路_工程科技_专业资料。基于STC89C...1.3 单片机实验开发板原理图及硬件结构 1、单片机最小系统最小系统一般应该包括...(设计)题目 基于单片机控制的音乐播放器 年 级 08 级 专 业 机电一体化 姓...该设计方案的硬件电路 图的设计如下所示。 方案二用单片机 AT89C51、LM386(...基于单片机的音乐播放器的特点有功能多, 价格廉、 外部电路简单的优点,深受音乐...(AT89C52) 发声模块 电源电路 按键模块 图 2-1 硬件系统结构图 2 2.2 ...单片机原理及课程设计报告 基于单片机的音乐播放器设计 摘要 随着我国现代化技术...AT89C51 蜂鸣器发声 电路 按键输入电 路 图 1 系统组成框图 AT89C51 简介 ...音乐播放器 基于 STC89C52 单片机设计一个音乐播放器,根据对音乐播放器的设计...其电路原理图如图 2,3,4 所示: 图2 图3 2 图4 2、 MCU 系统 STC89C...论文-基于AT89C52音乐播放器的设计- 音乐播放设备在我们生活中越来越多,尤其以播放MP3音乐格式为主的音乐播放器。本文介绍了一种以AT89S52单片机为核心的音乐播放...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 如何才能自学好英语 的文章

 

随机推荐