单片机课程设计学习目标:音乐盒的研究与制作——数字音乐盒的设计音乐:秦亚麟程序:伍青青仿真:丁名都2020/5/10摘要本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个简单音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用4*4键盘控制音乐盒,本音乐盒共有十首歌曲,播放歌曲时,蜂鸣器发出某个音调。本设计利用ROTEUS仿真软件对音乐盒汇编源程序进行编程并调试,同时对硬件进行仿真调试,节约了设计时间。LCD液晶显示屏显示、按键电路、和复位电路等部分构成,液晶显示屏显示时间以及对应的歌曲编号。一、设计方案1.利用单片机的I/O口产生一定频率的方波,驱动蜂鸣器,使其发出不同的音调,从而达到播放音乐的效果。2.预存10首音乐,用4*4键盘控制音乐的播放。3.带有开关、暂停键、上一曲、下一曲控制键。4.利用LCD液晶显示歌曲的序号、播放时间以及开机画面,在开机按钮按下时有英文欢迎提示字符,播放时显示歌曲序号。二、单片机音乐盒的系统结构框图AT89C51蜂鸣器电路复位电路4*4键盘液晶显示电路电路图三、硬件电路端口分配(1)硬件电路用P1.0-P1.7控制4*4按键,利用扫描法,其中P1.0-P1.3扫描列,P1.4-P1.7扫描行。(2)用P0.0-P0.7,P2.0-P2.7控制LCD,其中P0.0-P0.7作为D0-D7位的控制信号,用P2.0-P2.3作为液晶的RS,R/W,E的控制信号。(3)用P3.7口控制蜂鸣器。(4)RST连接复位电路。四、LCD1602简单介绍1602LCD是工业字符型液晶,能够同时显示16x2即32个字符(16列2行)。1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。LCD显示器通常可分为笔段型、字符型和点阵型。1602图片样张1602的特性:+5V电压,对比度可调内含复位电路提供各种控制命令,比如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM关于LCD1602中的寄存器1602绝大多数是基于HD44780液晶芯片的,HD44780内置了DDRAM、CGROM和CGRAM,这三个都是存储器。CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)、显示数据RAM(DDRAM)、字符显示RAM缓冲区(DDRAM)LCD的管脚控制:RSR/WE操作00下降沿指令寄存器写入01高电平忙标和地址计数器读出10下降沿数据寄存器写入11高电平数据寄存器读出五、部分程序介绍1、系统初始化程序2、液晶显示程序3、时间显示程序4、歌曲播放子程序5、定时中断子程序6、部分歌单按键功能说明:1~A:十首歌曲C:下一首歌曲D:上一首歌曲E:歌曲暂停F:开机画面主控模块主要设计器件有AT89C51,4*4键盘。通过软件设计,使单片机p3.7口作为蜂鸣器的信号输出口。其中C作为下一曲的按键;D作为上一曲的按键;E作为开始/暂停的按键。4*4键盘图音乐演奏控制器是通过控制单片机内部的定时器T0来产生不同频率的方波,驱动扬声器发出不同音节的声音。再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。再利用程序来控制单处机某个口线的“高”电平或“低”电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音。单片机音乐盒利用单片机进行乐曲演奏的原理:单片机音乐盒再利用延时来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符对应的频率转换为定时常数,把相应的节拍变换为定时常数,然后做成表格存放在存储器中,由程序查表得到定时常数和延时常数,分别用以控制定时器产生方波的频率和该频率方波的持续时间。当延时常数到时,再查下一个音符的定时常数和延时常数。依次进行下去,就可演奏悦耳动听的音乐。用定时器TO方式1来产生歌谱中每个音符对应频率的方波,由P3.7输出驱动扬声器。节拍的控制可通过调用延时子程序DELAY30(延时100ms)次数来实现。以每拍800ms的节拍时间为例,那么一拍需要循环调用延时子程序八次。同理,半拍就需要调用延时子程序四次。适当的调整他的延时时间,我们就可以让其发出DO,RUI,MI,FA,SO,LA,XI,DO的声音。单片机音乐盒对应音符表TABLE00最后,效果图演示:F键位开机画面1、开机欢迎界面。按下6键计时效果图2、按下键音乐开始播放同时计时器开始计数。谢谢大家!!开动脑筋动手操作研发创新