基于Proteus的音乐播放器仿真实现

合集下载

音乐播放器-单片机课程设计

音乐播放器-单片机课程设计

设计内容与设计要求设计内容:本课题要求以单片机为核心设计一个音乐播放器,完成多曲选择播放控制、停止控制、省电模式控制等功能。

音乐播放器利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音,选取某段音乐使单片机连续播放。

设计3个按键:播放/停止、下一曲、上一曲;4位LED 显示器,用来显示所选曲目,该显示器在播放期间为了节省电源,设计为关闭状态,当一歌曲演奏结束,或选曲时显示器才显示曲目信息。

要求焊接好开发板,在开发板上进行调试。

设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)开发板焊接及测试5)系统软件设计及调试;6)系统联调及操作说明7)写说明书主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件,仿真软件proteus;3、开发板1块;4、制作工具1套;5、系统设计所需的元器件。

说明书格式目录第1章、概述第2章、系统总体方案设计第3章硬件设计第4章软件设计及调试第5章系统联调及操作说明第6章总结参考文献附录A系统硬件原理图附录B程序清单进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。

下午:借阅有关资料,总体方案讨论。

星期二、分班级焊接开发板星期三、确定总体方案,学习与设计相关内容。

星期四、各部分方案设计,各部分设计。

星期五、设计及上机调试。

星期六、设计并调试第二周星期一:设计及上机调试。

星期二:调试,中期检查。

星期三:调试、写说明书。

星期四--星期五上午:写说明书、完成电子版并打印成稿。

星期五下午:答辩。

参考文献参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.第1章概述... ... ... ... ... ... ... ... .. .. . 61.1单片机简介... ... ... ... .. ... ... ... (6)1.2 任务简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7第2章系统总体方案设计 (8)2.1 音乐的产生... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82.2 系统方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10第3章硬件设计 (11)3.1 89C51单片机 (12)3.2 I/O并行口直接驱动LED显示 (14)3.3 蜂鸣电路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153.4控键电路.. . . . . . . . . . . . . . . . . . .163.5时钟电路 . . . . . . . . . . . . . . . . .. .173.6电源电路 . . . . . . . . . . . . . . . . . . 17 第4章软件设计 (18)4.1.软件设计 (18)4.2 设计方案. . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . .. . . . .19第5章系统调试与仿真 (20)5.1软件仿真阶段 (20)5.2系统的仿真调试阶段 (20)5.3调试问题处理 (21)第6章心得体会 (22)参考文献 (23)附录A:音乐播放器电路设计图 (24)附录B:程序清单 (25)第1章概述1.1单片机简介单片机又称单片微控制器,它不是完成某一逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

微机原理与接口技术基于PROTEUS实现音乐播放器的设计

微机原理与接口技术基于PROTEUS实现音乐播放器的设计

信息科学与技术学院微机原理与接口技术课程设计报告题目名称:基于PROTEUS实现音乐播放器的设计学生姓名:王浩宇关问鼎徐然冉启幸学号: 05 51 24 78专业班级: 13 电信指导教师:刘恩博2015年 7月 9 日目录一.课程设计题目基于PROTEUS实现音乐播放器的设计二.课程设计任务及要求设计要求:1.实现播放音乐;2.实现多首音乐连续播放和选择播放;3.要求通过PROTUES完成此项功能,并完成PCB电路图。

三.总体方案与设计说明每个音符的对应频率表1 每个音符的对应频率设计说明该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码电路、定时/计数器8253A来实现功能。

8086中央处理器输出地址码A16-A19和数据AD0-AD15,将AD0-AD7输入地址锁存器输出A0-A7,再将A0-A7通过译码器进行译码输出作为8253的片选信号,8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。

四.硬件电路设计及描述芯片介绍(1)8086中央处理器8086中央处理器是Intel系列的16位微处理器,有16根数据线和20跟地址线。

它主要由执行部件EU(Execution Unit)和总线接口部件BIU(Bus interface Unit)两部分组成。

8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。

资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。

它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。

大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。

运算结果会储存在操作数中的一个。

为了能够简单有效地进行对8086操作,故采用最小模式进行工作。

要使8086处于最小模式,首先要将MN/MX端置为高电平。

Proteus仿真软件在音乐播放器制作中的应用

Proteus仿真软件在音乐播放器制作中的应用

Proteus仿真软件在音乐播放器制作中的应用
陈贵银
【期刊名称】《自动化应用》
【年(卷),期】2014(000)012
【摘要】为了解决专用音乐播放芯片只能一次性烧录、播放内容不可变的缺点,提出采用Proteus仿真软件实现调试过程的解决方案.
【总页数】3页(P18-20)
【作者】陈贵银
【作者单位】武汉船舶职业技术学院,武汉430050
【正文语种】中文
【中图分类】G718.5
【相关文献】
1.Proteus仿真软件在单片机原理及应用课程教学中的应用 [J], 刘青;任晓芳
2.PROTEUS仿真软件在广告灯箱制作中的应用 [J], 陈贵银
3.仿真软件Proteus在《数子电路应用》课程教学中的应用 [J], 陶洪;钱驰波
4.浅谈Proteus仿真软件在单片机教学和电路设计中的应用 [J], 郑三婷
5.Proteus仿真软件在电子类课程设计中的应用 [J], 段凌飞;张宏桥;姚敏
因版权原因,仅展示原文概要,查看原文内容请购买。

基于Proteus和Keil的单片机演奏乐曲的仿真

基于Proteus和Keil的单片机演奏乐曲的仿真

基于Proteus和Keil的单片机演奏乐曲的仿真王超;符晓玲【摘要】According to shortage of the music playing in MCU practical teaching, the design method of MCU’s music playing based on the joint of Proteus and Keil is introduced, and it can achieve music playing function by the coding of notes and beats of music. The result of simulation shows that the method of design is simple, easily debugging and has achieved other song’s playing for simple modification program.%针对乐曲演奏在单片机实践教学中实现的不足,介绍了基于Proteus和Keil联调的单片机演奏乐曲的设计方法,通过对乐谱的音符和节拍进行编码,实现了乐曲演奏的功能。

仿真结果表明:该方法电路简单、调试方便,只需简单的修改程序就可实现其它歌曲的演奏。

【期刊名称】《电子设计工程》【年(卷),期】2014(000)014【总页数】4页(P103-106)【关键词】Proteus;Keil;单片机;乐曲【作者】王超;符晓玲【作者单位】昌吉学院物理系,新疆昌吉 831100;昌吉学院物理系,新疆昌吉831100【正文语种】中文【中图分类】TN710.9在用单片机实现乐曲演奏的课程实践教学中,多是通过开发板与仿真器或者实验箱来完成,这种调试过程由于硬件设备固定,难以有更多的扩展和创新,借助Proteus和Keil软件可极大的克服上述不足。

通过搭建虚拟仿真平台,使用虚拟测试仪器,根据需要可随时更换原器件和修改程序,完成乐曲播放的功能。

音乐播放器实验报告

音乐播放器实验报告
通过控制单片机定时器的定时时间产生不同频率的音频脉冲使 得蜂鸣器发出不同音节的声音,即声调。用软件延时来控制发音时 间的长短,控制节拍。把乐谱中的音符和相应的节拍变换为定时常 数和延时常数,作为数据表格存放在存储器中,由程序查表得到定 时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出该 音频脉冲的持续时间。
b 功能结构图: Key1 负责切换播放歌曲,共两首。分别是祝你生日快乐和寂寞 沙洲冷;Key2 负责切换 LED 显示花样,共 3 种:顺序显示,由两 边向中间移动然后向两边移动,循环显示。
三、 实验器材 Windows7 操作系统 Proteus 仿真软件 keil4 软件 AT89C51 单片机 共阴极数码管 开关 电容 晶振 电阻 发光二极管 蜂鸣器
(2) 系统要求有选择上一首、下一曲功能; (3) 两个按键,可在播放和显示花样中进行切换; (4) 用一个键控制花样类型的显示功能; (5)用 LED 灯闪烁“伴奏”。 五、 实训基本原理(附原理图、源程序清单) 1 硬件设计 ①LED 显示电路设计与原理
LED 显示电路是由 8 个 LED 发光二极管组成,连接方式是共阳 极,LED 接到单片机的 P1 口,若是低电平,可使 LED 亮。发光二 极管的亮灭是由内部程序控制的,8 个 LED 发光二极管分别对应不 同的音阶,所以 LED 会随着音阶的变化按规律亮灭。
一定的物理实件(扬声器),就产生了一定频率的声音。若改变输出 方波的频率,产生的声音随之改变。通过控制输出方波的时间长短, 声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样 的节拍,单片机就可以产生电子音乐。音乐的播放模式及选择可以 通过按键的输入得以实现。在本次设计中将蜂鸣器连接到 AT89C52 的 P3^7 接口处。

(完整版)PROTEUS仿真100实例

(完整版)PROTEUS仿真100实例

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例第01 篇基础程序设计01 闪烁的LED/* 名称:闪烁的LED说明:LED按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){while(1){LED=~LED;DelayMS(150);}}02 从左到右的流水灯/* 名称:从左到右的流水灯说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){P0=0xfe;while(1){P0=_crol_(P0,1); //P0的值向左循环移动DelayMS(150);}}03 8只LED左右来回点亮/* 名称:8只LED左右来回点亮说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;P2=0x01;while(1){for(i=0;i<7;i++){P2=_crol_(P2,1); //P2的值向左循环移动DelayMS(150);}for(i=0;i<7;i++){P2=_cror_(P2,1); //P2的值向右循环移动DelayMS(150);}}}04 花样流水灯/* 名称:花样流水灯说明:16只LED分两组按预设的多种花样变换显示*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};uchar code Pattern_P2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;while(1){ //从数组中读取数据送至P0和P2口显示for(i=0;i<136;i++){P0=Pattern_P0[i];P2=Pattern_P2[i];DelayMS(100);}}}05 LED模拟交通灯/* 名称:LED模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

基于Proteus和Keil的单片机演奏乐曲的实现

基于Proteus和Keil的单片机演奏乐曲的实现
好 、 学易用。 易 试 界 面 , 它 编 辑 原 理 图 , 绑 由 K i生 成 的 hx文 件 , 行 电 路 仿 性 的 代码 编 写 问题 ,所 以 本例 中采 用 的 是 C语 言 作 为 软 件 编 程语 言 。 用 捆 el e 进 真。 软 件 设 计 中对 乐 曲节 拍 的控 制 需 重 点 分 析 ,本 例 乐 曲节 拍 为每 分 钟 7 2拍 , 个 节 拍 所 需 时 间 8 3 s 根据 乐 谱 知 识 , 乐谱 中第 - d 节 各 每 3m , 本 , 音 调节 拍 如 下 :1为 两个 1 1 / , 分 别 延 时 4 6 s 1为 1 , 延 时 2拍 需 1m ; 拍 需
当前 很 多 单 片 机 演 奏 乐 曲 的 实 现 都 是 利 用 开发 板 结合 仿 真 器 来 实现 , 这种 方 式 调 试 不是 很 方 便 , 开发 板 成 本 较 高 . 文 提 出了 一 种 且 本 基 于 Po u 和 K i的 单 片机 演 奏 乐 曲 的实 现 方 法 , 常 简 单 实 用 . rt s e e | 非 且 成本 低 , 试 方 便 , 适 合 爱 好 音乐 的单 片 机 开 发 者 。 调 很
程 , 过 仿 真 器 对 系 统 软 件 和 硬 件 调 试 , 后 将 调 试 成 功 的代 码 固 化 通 最 到 单 片机 的程 序存 储 器 中 。 论 从 硬 件成 本 上 , 是从 调 试 周 期 上 , 无 还 传
就可 以了, 这里以演奏乐 曲《 新年好》 为例。
统 开 发 模 式 的效 率 都 有 待 提 高 。_ 而基 于 Poe s K i的仿 真平 台 】 rtu 和 el 可 进 行 单 片 机仿 真 、 试 、 板 并 最 大 限 度 地进 行 电路 运 行 模 拟 , 大 调 制 可 大 提 高单 片 机 开 发 的 效率 和 质 量 。

基于Proteus的简易音乐播放器

基于Proteus的简易音乐播放器

《微处理器与接口技术课程设计》报告——简易音乐播放器设计专业:通信工程班级:1611姓名:学号:2018年7 月摘要本设计是基于AT89C51单片机的简易音乐播放器。

该音乐播放器是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进行仿真制作以及利用KEIL软件对音乐播放器源程序进行C怨言编译,而设计出的一个音乐播放器。

该音乐播放器通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的声音,程序通过把乐谱转化成相应的定时常熟来驱动蜂鸣器演奏音乐。

本音乐播放器共收录了3首歌曲,同时设计了LED等的变换,随着音调进行闪烁。

可以通过按键暂停和播放歌曲,并能够切换至下一个歌曲。

并能够通过LCD1602显示出歌曲的名称。

关键词:AT89C51;LCD1602;音乐播放器;按键第1章课程设计目的1.1巩固和加深对微处理器原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。

第2章课程设计任务与要求2.1 设计任务设计一个简单的音乐播放器,能够在系统开始模拟后自动播放音乐,并且能够在LCD屏幕上显示出正在播放的音乐的名字,LED灯随着音调的不同实现不同个数的灯亮,并且能够通过按键暂停、开始播放和切换歌曲。

2.2 设计要求1.在播放歌曲时LCD屏幕上能够正确显示出歌曲名。

2.在按下暂停按键后能够暂停播放歌曲,并且再次按下后能够继续播放歌曲。

3.在按下切换按键后能够切换歌曲,并且LCD屏幕上的歌名随之变换。

4.能够实现LED灯随着音乐音调进行相应的发光。

第3章硬件设计3.1 设计思想本系统时由按键系统,单片机系统,屏幕显示系统以及音乐播放系统组成的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void delay()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/********************************************************************
*名称: bit Busy(void)
*功能:这个是一个读状态函数,读出函数是否处在忙状态
申报者信息:
队员1:
队员2:
1.引言
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。在音乐播放方面,利用单片机储存音乐,控制播放也越来越广泛。为了更好的掌握单片机的应用,用单片机设计一个音乐播放器。这样可以有效的将理论知识与实践相结合。
void wcmd(uchar del)
{
while(Busy());
RS = 0;
RW = 0;
E = 0;
delay();
P0 = del;
delay();
E = 1;
delay();
E = 0;
}
/********************************************************************
***********************************************************************/
void L1602_char(uchar hang,uchar lie,char sign)
{
uchar a;
if(hang == 1) a = 0x80;
}
DelayMS(10);
//下一个音符索引
i++;
}
}
/********************************************************************
*名称: L1602_init()
*功能: 1602初始化
***********************************************************************/
图1系统硬件组成
3.2单元电路设计
3.2.1单片机简介
89C51单片机拥有4KB的片内ROM和128B的片内RAM。ROM和RAM的片外寻址范围都为64KB。单片机拥有32个并行口和1个串行口。在89C51单片机中存在5个中断源,其中有两个外部中断源、两个内部中断源和一个串行中断源。
图2 89C51单片机
RS = 1;
RW = 0;
E = 0;
delay();
P0 = del;
delay();
E = 1;
delay();
E = 0;
}
void DelayMS(uint ms)
{
uchar t;
while(ms--) for(t=0;t<120;t++);
}
void PlayMusic()
{
uint i=0,j,k;
图5复位电路
3.2.5发声电路
发声电路由数字扬声器组成。扬声器一端接地另一端接单片机的P3.7。
图6发声电路
3.3总体电路图
图7总体电路图
四.系统软件设计
4.1数码音乐产生原理
音调的高低用音阶表示,不同的音阶对应不同的频率。因此,不同频率的方波就可以产生音阶,音阶与频率的关系见表1。由于频率的倒数是周期,因此可由单片机中的定时控制方波周期,当定时器计数溢出时产生中断。将与扬声器连接的P1.7取反后就可得到方波的周期,从而达到了控制频率,即音阶的目的。
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//这三个引脚参考资料
sbit E=P2^7;//1602使能引脚
sbit RW=P2^6;//1602读写引脚
sbit RS=P2^5;//1602数据/命令选择引脚
图31602字符液晶
3.2.3晶振电路
晶振电路由两个10pF的电容和一个12MHZ的晶体振荡器组成。节点1与单片机的XTAL2相连接。节点2与单片机的XTAL1相连接。
图4晶振电路
3.2.4复位电路
复位电路由复位键、22uF的电容C3、1KΩ的电阻R9、200Ω的电阻R10组成。节点1与单片机的RST相连接。
注:0表示简谱中的空拍
当晶体振荡频率为6.144MHz,定时器工作在方式1下时,若各音阶相对应的定时器计数初值为X,则可根据下式计算X:
音调的长短用节拍数表示(例如1/4拍、2/4拍、……),不同节拍数的不同音符的组合形成乐谱。程序中,音的节拍可由延时子程序实现。延时子程序设定为四分之一拍,节拍值只能是它的整数倍。
void L1602_init(void)
{
wcmd(0x38);
wcmd(0x0c);
wcmd(0x06);
wcmd(0x01);
}
/********************************************************************
*名称: L1602_char(uchar hang,uchar lie,char sign)
附录一
仿真结果
附录二
代码
/********************************************************************
*文件名:液晶1602显示.c
***********************************************************************/
sbit BEEP=P3^7;
uchar code SONG_TONE[]={ 212,212,190,212,159,169,212,212,190,212,
142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};
uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,
if(hang == 2) a = 0xc0;
a = a + lie - 1;
wcmd(a);
wdata(sign);
}
/********************************************************************
*名称: L1602_string(uchar hang,uchar lie,uchar *p)
4.2总体流程图
主程序实现对单片机进行初始化后,进入曲目识别子程序,进行歌曲曲目判断。确定歌曲曲目后,LCD再进行显示。执行播放后,LCD显示并播放音乐。在播放音乐。
图8总体流程图

4.3仿真测试
图11LCD结果显示图
4.4测试总结
音乐播放器很好的实现了播放,但是在实现播放长度方面还有不足,因为对外接存储器的使用还不是很熟悉,扩充四片EEPROM,可实现更长时间的播放,本次试验使用的是较为简单的循环播放模式。
*输入:输入的命令值
***********************************************************************/
bit Busy(void)
{
bit busy_flag = 0;
RS = 0;
RW = 1;
E = 1;
delay();
busy_flag = (bit)(P0 & 0x80);
12,12,12,12,9,3,12,12,12,24,0};
/********************************************************************
*名称: delay()
*功能:延时,延时时间大概为5US。
***********************************************************************/
*名称: Main()
***********************************************************************/
*名称: wdata(uchar del)
*功能: 1602写数据函数
*输入:需要写入1602的数据
***********************************************************************/
void wdata(uchar del)
{
while(Busy());
E = 0;
return busy_flag;
}
/********************************************************************
*名称: wc
*输入:输入的命令值
***********************************************************************/
330
349
392
440
494
相关文档
最新文档