音乐倒数播放器含源程序

合集下载

audiotrack播放原理

audiotrack播放原理

audiotrack播放原理一、Audiotrack简介Audiotrack是Android系统中用于播放音频的一种类。

它提供了一个接口,使开发者能够直接访问底层音频设备,并通过PCM数据流进行音频播放。

二、Audiotrack的工作原理1. 创建Audiotrack对象要使用Audiotrack进行音频播放,首先需要创建一个Audiotrack 对象。

在创建对象时,需要指定音频的参数,包括采样率、声道数、音频格式等。

2. 准备PCM数据PCM(Pulse Code Modulation)是一种常用的音频数据编码格式。

在使用Audiotrack播放音频之前,需要将音频数据转换为PCM格式,并保存在一个缓冲区中。

3. 写入PCM数据将准备好的PCM数据写入到Audiotrack对象中。

可以一次性写入所有数据,也可以分块写入。

写入数据时,需要注意确保写入的数据不超过Audiotrack对象的缓冲区大小。

4. 开始播放调用Audiotrack的play()方法,开始播放音频。

在播放过程中,可以通过调用pause()方法暂停播放,再调用play()方法继续播放。

5. 停止播放调用Audiotrack的stop()方法,停止音频播放。

停止播放后,可以通过调用release()方法释放Audiotrack对象。

三、Audiotrack的应用场景Audiotrack在Android音频应用开发中有广泛的应用场景,包括:1. 音乐播放器:通过Audiotrack可以实现音乐的播放功能,包括播放、暂停、停止等操作。

2. 语音通话:Audiotrack可以用于实现手机通话的语音播放功能,包括接听、拒接、挂断等操作。

3. 游戏开发:在游戏开发中,可以使用Audiotrack实现游戏中的音效播放,提升游戏的交互体验。

4. 多媒体应用:Audiotrack可以用于多媒体应用的音频播放,如播放视频中的音频轨道。

四、Audiotrack的优势和不足1. 优势:- 高效稳定:Audiotrack可以直接访问底层音频设备,能够提供高效稳定的音频播放效果。

音频倒放 在Adobe Premiere Pro中制作音频倒放效果

音频倒放 在Adobe Premiere Pro中制作音频倒放效果

音频倒放:在Adobe Premiere Pro中制作音频倒放效果音频倒放是一种常用的音效技巧,在影视制作中广泛应用。

通过将音频逆向播放,可以产生奇特的效果,增加影片的趣味性和吸引力。

今天,我们将介绍如何在Adobe Premiere Pro中制作音频倒放效果。

步骤一:导入音频文件首先,打开Adobe Premiere Pro软件,创建一个新的项目或打开一个已有的项目。

点击“文件”菜单,选择“导入”-“文件”,将需要制作音频倒放效果的音频文件导入到项目中。

步骤二:创建音频序列在项目面板中,右键点击一个空白区域,选择“新建序列”。

在弹出的对话框中,选择一个适合音频文件参数的预设序列,点击“确定”创建音频序列。

步骤三:将音频文件拖入时间线面板将导入的音频文件从项目面板中拖动到创建好的音频序列的时间线面板中。

确保音频文件的起始位置对准时间线面板的起始位置。

步骤四:镜像音频轨道在音频序列的时间线面板中,右键点击音频轨道上的音频片段。

从弹出菜单中选择“镜像”。

此时,你会发现音频片段被水平翻转了,表示镜像成功。

步骤五:调整播放速度选中镜像后的音频片段,在“编辑”菜单中找到“速度/时长”的选项。

点击后会弹出一个速度/时长窗口。

在窗口中,将速度的百分比设置为-100%。

点击“确定”后,你会发现音频开始逆向播放了。

步骤六:导出音频在制作音频倒放效果完成后,你可以进行预览和调整。

如果满意,可以将其导出为一个新的音频文件。

选择“文件”菜单中的“导出”-“媒体”,在弹出的导出设置窗口中选择合适的输出格式和参数,点击“导出”按钮即可完成导出过程。

总结:通过以上步骤,我们可以在Adobe Premiere Pro中制作音频倒放效果。

这是一个简单但却很有趣的音效技巧,可以为影视作品增添独特的魅力。

希望通过本教程,你能够掌握如何在Adobe Premiere Pro中使用音频倒放效果,创造出更加引人注目的作品。

如果有任何问题,欢迎随时交流和探讨。

免费的音乐升降调插件下载方法

免费的音乐升降调插件下载方法

免费的音乐升降调插件下载方法
要下载免费的音乐升降调插件,可以按照以下方法进行操作:
1. 在网上搜索音乐升降调插件,可以使用关键词如“免费音乐升降调插件”或者指定软件的名称。

2. 在搜索结果中选择安全可靠的下载源。

可以选择官方网站、知名软件下载网站或者其他受信任的网站。

3. 进入选择的下载源,找到合适的版本。

通常会有不同的操作系统版本和音乐播放软件的兼容性选择,根据自己的需求选择适合自己的版本。

4. 点击下载按钮,等待下载完成。

5. 下载完成后,双击安装文件进行安装。

按照安装程序的指示进行操作,通常只需点击“下一步”、“同意”等按钮即可完成安装过程。

6. 安装完成后,在音乐播放软件中找到插件的安装位置。

具体位置可能因音乐播放软件的不同而有所不同,可以在插件的官方网站或者手册中查找相关信息。

7. 将插件文件拖入插件安装位置。

8. 重新启动音乐播放软件,检查插件是否成功安装。

以上是一般的下载安装过程,具体操作可能因不同的插件和软件而有所不同。

在下载、安装插件时要注意确保下载源的安全性,并且根据自己的需求选择适合自己的版本。

音乐播放软件使用指南

音乐播放软件使用指南

音乐播放软件使用指南随着智能手机的普及和网络的发展,音乐播放软件成为人们生活中不可或缺的一部分。

无论是在休闲娱乐还是工作学习中,音乐都扮演着重要的角色。

本篇文章将为大家提供一份音乐播放软件的使用指南,帮助大家充分发掘和优化音乐播放软件的功能,提升音乐享受的质量。

第一部分:安装与注册使用音乐播放软件的第一步是安装与注册。

下面是一些简单的步骤。

1. 在应用商店中搜索所需的音乐播放软件。

2. 点击安装按钮,等待下载和安装完成。

3. 打开应用并按照界面上的提示进行注册。

4. 输入必要的信息,如用户名、密码、电子邮件等。

5. 确认注册信息并完成注册。

第二部分:浏览与搜索音乐安装并成功注册后,你可以开始使用音乐播放软件浏览和搜索你喜欢的音乐。

下面是一些常见的功能和操作。

1. 首页:音乐播放软件通常有一个首页,显示热门音乐、新歌推荐等。

你可以在这里发现最新的音乐,并了解流行的曲目。

2. 分类浏览:音乐播放软件往往按照类型、地区或流派分类音乐。

你可以浏览不同的分类,找到自己感兴趣的音乐。

3. 搜索功能:音乐播放软件通常提供搜索功能,你可以根据歌曲名称、歌手或专辑等信息进行搜索。

输入关键词后,软件会给出相关的搜索结果。

4. 播放列表:许多音乐播放软件支持创建和管理播放列表。

你可以根据自己的喜好创建多个播放列表,方便根据不同心情或场景进行音乐播放。

第三部分:播放与管理音乐成功找到喜欢的音乐后,你可以开始享受音乐了。

以下是一些播放和管理音乐的常用功能。

1. 播放控制:音乐播放软件通常提供暂停、播放、上一曲、下一曲等基本的播放控制按钮。

你可以根据需要随时调整播放状态和切换歌曲。

2. 歌曲信息:在播放界面,你可以查看当前播放歌曲的详细信息,如歌曲名称、歌手、专辑等。

部分软件还提供歌词和封面显示功能,更好地视听享受。

3. 收藏和分享:当你发现喜欢的歌曲时,可以收藏或分享给朋友。

通常,音乐播放软件会提供收藏按钮和分享功能,方便你管理和分享自己的音乐收藏。

下载最多的音乐播放器APP推荐

下载最多的音乐播放器APP推荐

下载最多的音乐播放器APP推荐在当今数字化时代,我们对音乐的需求如此之高,以至于音乐播放器成为必备的应用程序之一。

然而,在众多的音乐播放器中选择一个功能丰富、易于使用且下载量最多的应用程序可能会变得相当困难。

因此,本文将向您推荐几款备受用户欢迎并且下载量极高的音乐播放器APP。

一、网易云音乐作为国内最受欢迎的音乐播放器之一,网易云音乐以其庞大的音乐资源库和强大的音乐推荐算法而闻名。

用户可以享受到海量的音乐资源,包括国内外各类音乐风格,从流行音乐到古典音乐,从嘻哈到摇滚,无所不包。

此外,网易云音乐还提供了精准的个性化推荐功能,根据用户的听歌偏好推荐类似的音乐,给用户带来更加个性化的音乐体验。

二、QQ音乐作为中国最大的社交平台之一,QQ音乐是该平台上备受欢迎的音乐播放器之一。

它不仅拥有庞大的音乐资源,还提供了许多有趣的互动功能,例如歌曲点歌、K歌和音乐电台等。

此外,QQ音乐还与许多热门音乐人和乐队合作,为用户带来独家的音乐内容,让用户能够第一时间享受到最新的音乐作品。

三、酷狗音乐酷狗音乐是一款备受青睐的音乐播放器,以其快速高效的在线音乐播放和下载功能而受到用户的喜爱。

酷狗音乐提供了丰富的音乐资源,支持在线听歌和下载,用户可以随时随地畅享高音质的音乐。

此外,该应用还提供了歌曲的MV、歌词和资讯等丰富的音乐内容,让用户在欣赏音乐的同时能够了解更多关于音乐的信息。

四、虾米音乐虾米音乐是一款专注于发现和推荐新音乐的应用程序。

与其他音乐播放器不同的是,虾米音乐注重发现用户喜欢的新音乐,并通过其强大的音乐智能推荐系统为用户推荐类似的音乐。

此外,虾米音乐还提供了在线听歌和下载功能,保证用户能够方便地享受到自己喜欢的音乐。

五、喜马拉雅FM虽然喜马拉雅FM主要是一个以听书、电台和音频节目为主的应用程序,但它也是一款备受推崇的音乐播放器。

喜马拉雅FM拥有丰富的音乐内容,包括各类音乐节目、音乐电台和热门歌曲,涵盖了各种音乐风格和类型。

可以倒放的软件操作方法

可以倒放的软件操作方法

可以倒放的软件操作方法倒放音轨是一种常见的音频编辑操作,通过将音轨倒放可以产生一些有趣的效果。

在这个过程中,你可以发现一些以前听不到的音频细节,或者创造一些独特的音效。

下面是一种常见的方法来倒放音轨的操作。

首先,你需要一个专业的音频编辑软件。

有很多软件可以完成这个任务,比如Adobe Audition、Audacity、Logic Pro等。

在本教程中,我将使用Adobe Audition进行演示。

第一步,打开Adobe Audition软件,并导入你想要倒放的音轨。

你可以直接将文件拖入软件界面,或者通过"文件"->"导入"来导入音频文件。

第二步,选择你想要倒放的音轨。

在屏幕上的波形视图中,你可以看到你导入的音轨的可视化图像。

选择你想要倒放的音轨,可以通过鼠标点击选择,或者使用键盘上的上下箭头来选择。

你可以通过点击左上角的播放按钮来播放所选的音轨,以确保你选择了正确的音轨。

第三步,将所选音轨倒放。

在Adobe Audition软件中,你可以通过两种方法来倒放音轨。

第一种方法是通过转到"特效"->"时间和频率"->"倒放"来倒放音轨。

这将在所选音轨上应用一个倒放效果。

另一种方法是使用快捷键Ctrl+Shift+I。

这个快捷键将立即倒放所选音轨。

第四步,播放倒放后的音轨。

现在,你可以点击播放按钮来播放倒放后的音轨。

注意,倒放后的音轨会以相反的方向播放,因此你可能会听到一些陌生的音频。

第五步,导出倒放后的音轨。

一旦你满意倒放后的音轨,你可以将它导出为一个新的音频文件。

在Adobe Audition软件中,你可以通过在菜单栏中选择"文件"->"导出"来导出音频文件。

选择你想要导出的文件类型,比如WAV或MP3,并给你的文件取一个适当的名称和保存位置。

数字音乐播放器使用手册

数字音乐播放器使用手册

数字音乐播放器使用手册欢迎使用数字音乐播放器!本手册将为您提供详细的操作指南,以帮助您充分利用该播放器的功能和特性。

请按照以下步骤进行操作,以确保您能够顺利地使用该播放器。

1. 连接和充电将数字音乐播放器使用随附的USB线缆与计算机相连,以便传输音乐文件和充电。

确保电脑已经安装了相应的驱动程序,以便与播放器进行连接。

2. 文件传输打开计算机上的音乐文件夹,选择您想要添加到播放器的音乐文件。

将这些文件直接拖放到数字音乐播放器的指定文件夹中。

等待文件传输完成后,您可以断开与计算机的连接。

3. 音乐播放打开数字音乐播放器的电源,然后通过菜单界面选择您想要播放的音乐。

通过使用播放、暂停、上一曲、下一曲按钮进行音乐的控制。

您还可以调整音量大小,并通过耳机或扬声器来收听音乐。

4. 设置功能通过菜单界面,您可以访问播放器的各种设置功能。

这些功能包括音效调节、平衡设置、睡眠定时器、屏幕亮度等。

根据个人喜好和需求,您可以对这些设置进行调整,并保存您的设置。

5. 播放列表您可以创建自己的播放列表,以便更方便地组织和播放音乐。

通过菜单界面选择“创建播放列表”,然后按照提示在列表中添加您喜爱的音乐曲目。

保存播放列表后,您可以随时在菜单中选择并播放它们。

6. FM收音机该播放器还具有FM收音机功能。

通过菜单界面进入FM收音机模式,然后按下搜索按钮,播放器将搜索并保存可用的收音机频道。

您可以使用上一频道和下一频道按钮切换频道,并通过调整音量来进行调谐。

7. 时钟和闹钟设置播放器还具备时钟和闹钟功能。

通过菜单界面进入时钟设置,您可以调整时间和日期,并设置闹钟时间。

在闹钟设置完成后,播放器会在指定的时间发出提醒音。

8. 电池续航请确保及时充电以确保播放器的正常使用。

使用USB线缆连接计算机或电源适配器进行充电。

播放器通常具有较长的续航时间,但具体续航时间因使用情况而异。

9. 故障排除如果您遇到任何问题或故障,可以查阅播放器附带的用户手册,或联系售后服务获得帮助和支持。

提高音乐播放体验音乐播放器工具推荐

提高音乐播放体验音乐播放器工具推荐

提高音乐播放体验音乐播放器工具推荐提高音乐播放体验音乐播放器工具推荐随着科技的发展,音乐已经成为了人们生活不可或缺的一部分。

音乐能够陶冶情操,舒缓压力,带给人们愉悦和享受。

然而,并不是所有的音乐播放器都能够提供高质量的音乐体验。

本文将介绍一些优秀的音乐播放器工具,以帮助你提高音乐播放的体验。

一、Foobar2000Foobar2000是一个自由开源的音频播放器,它提供了强大的功能和高度的自定义性。

它支持各种音频格式,包括MP3,AAC,FLAC,WAV等,而且还能够提供无损音质的播放。

Foobar2000具有极低的系统资源占用,可以在电脑上运行非常流畅。

此外,它还支持各种插件扩展,如均衡器,音效增强等,让你可以根据个人喜好来调整音乐的播放效果。

二、VLC媒体播放器VLC媒体播放器是一款多功能的音视频播放器,它不仅支持各种音频格式的播放,而且还具有强大的解码能力,能够播放各种编码方式的音乐文件。

VLC媒体播放器界面简洁友好,操作简单方便,还支持音频播放列表的管理,让你可以方便地组织和管理自己的音乐文件。

此外,VLC媒体播放器还具有流媒体播放功能,可以在线收听各种网络电台和音乐服务,拓宽了你的音乐选择范围。

三、WinampWinamp是一款经典的音乐播放器,它具有丰富的功能和个性化的定制能力。

Winamp支持各种音频格式的播放,包括MP3,WAV,FLAC等,并且可以自动扫描你的音乐文件夹,建立音乐库,方便你管理和浏览自己的音乐。

Winamp还提供了强大的均衡器功能,可以调节音乐的音效,以及各种插件支持,如CD转换,音频提取等,增强了音乐播放的功能。

四、AIMPAIMP是一款小巧而强大的音乐播放器,它具有简洁的界面和优秀的音质表现。

AIMP支持各种音频格式的播放,包括MP3,WAV,FLAC等,并且能够提供无缝、无损的音质播放。

AIMP还支持音频编辑功能,可以对音乐进行裁剪和转码。

此外,AIMP还提供了在线电台和在线音乐搜索功能,方便你发现和收听更多的优质音乐资源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计要求利用A T89C51单片机结合字符型LCD 显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。

做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。

定时闹钟的基本功能如下。

字符型LCD (16 * 2)显示器。

显示格式为“TIME 分分:秒秒”。

用4个按键操作来设置当前想要倒计数的时间。

一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。

程序执行后工作指示灯LED 闪动,表示程序开始执行,按下操作键K1~K4动作如下。

K1—可调整倒计数的时间1~60分钟。

K2—设置倒计数的时间为5分钟,显示“0500”。

K3—设置倒计数的时间为10分钟,显示“1000”。

K4—设置倒计数的时间为20分钟,显示“2000”。

复位后LCD 的画面应能显示倒计时的分钟和秒数,此时按K1键 则在LCD 上显示出设置画面。

此时,若: a. 按操作键K2—增加倒计数的时间1分钟。

b. 按操作键K3—减少倒计数的时间1分钟。

c. 按操作键K4—设置完成。

VCCXTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC133uFC233uF234567891RP1RESPACK-8LS1SOUNDERK2K3K4K1D1LED-GREENR2200D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016LQ1NPNR110kC31nFR310k源程序:#include<reg51.h>//头文件 #define uint unsigned int #define uchar unsigned char#define busy 0x80sbit k1=P1^0;//按键位定义sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit RS=P2^0;//LCD位定义sbit RW=P2^1;sbit E=P2^2;sbit led=P3^6;sbit sound=P3^7;uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};uchar code table1[]={"105090440037 "};uchar code table2[]={" 10 dian zi "};uchar code table3[]={"TIME 00:00 "};uchar code table4[]={"TIME 05:00 "};uchar code table5[]={"TIME 10:00 "};uchar code table6[]={"TIME 20:00 "};uchar code table7[]={" TIME OUT! "};uchar d,e,num,t,shishi,shige,fenshi,fenge,miaoshi,miaoge, b,b1,count,aa,s1,s2,s3,s4;uint counter=0;//乐谱简表uchar code array[]={0x18, 0x30, 0x1C, 0x10,0x20, 0x40, 0x1C, 0x10,0x18, 0x10, 0x20, 0x10,0x1C, 0x10, 0x18, 0x40,0x1C, 0x20, 0x20, 0x20,0x1C, 0x20, 0x18, 0x20,0x20, 0x80, 0xFF, 0x20,0x30, 0x1C, 0x10, 0x18,0x20, 0x15, 0x20, 0x1C,0x20, 0x20, 0x20, 0x26,0x40, 0x20, 0x20, 0x2B,0x20, 0x26, 0x20, 0x20,0x20, 0x30, 0x80, 0xFF,0x20, 0x20, 0x1C, 0x10,0x18, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40,0x20, 0x20, 0x1C, 0x10,0x18, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40,0x20, 0x30, 0x1C, 0x10,0x18, 0x20, 0x15, 0x20,0x1C, 0x20, 0x20, 0x20,0x26, 0x40, 0x20, 0x20,0x2B, 0x20, 0x26, 0x20,0x20, 0x20, 0x30, 0x80,0x20, 0x30, 0x1C, 0x10,0x20, 0x10, 0x1C, 0x10,0x20, 0x20, 0x26, 0x20,0x2B, 0x20, 0x30, 0x20,0x2B, 0x40, 0x20, 0x15,0x1F, 0x05, 0x20, 0x10,0x1C, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40,0x20, 0x30, 0x1C, 0x10,0x18, 0x20, 0x15, 0x20,0x1C, 0x20, 0x20, 0x20,0x26, 0x40, 0x20, 0x20,0x2B, 0x20, 0x26, 0x20,0x20, 0x20, 0x30, 0x30,0x20, 0x30, 0x1C, 0x10,0x18, 0x40, 0x1C, 0x20,0x20, 0x20, 0x26, 0x40,0x13, 0x60, 0x18, 0x20,0x15, 0x40, 0x13, 0x40,0x18, 0x80, 0x00};char shi,fen,miao;//*****************1秒延时程序********************* void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=200;y>0;y--);}bit lcd_busy()//测试LCD忙碌状态{bit result;E=0;RS=0;//指令RW=1;//读出E=1;delay(4);//高电平读出1usresult=(bit)(P0&busy);E=0;return result;}//**********************LCD写命令程序****************void write_com(uchar com)//写命令{while(lcd_busy());RS=0;delay(5);RW=0;delay(5);E=0;delay(5);P0=com;E=1;delay(10);E=0;}//***************************LCD写数据程序******************** void write_Data(uchar Data)//写数据{while(lcd_busy());RS=1;delay(5);RW=0;delay(5);E=0;P0=Data;delay(5);E=1;delay(10);E=0;}//**********************LCD初始化程序************************* void LCD_init()//lcd初始化{write_com(0x01);//清屏delay(5);write_com(0x38);//功能设定delay(5);write_com(0x0c);//光标不闪烁delay(5);write_com(0x06);//lcd模式设定i/d=1//计数地址加1delay(5);}//********************LCD全局初始化程序********************* void init()//全局出初始化{{t=0;s1=0;s2=0;s3=0;s4=0;led=1;TMOD=0X11;//设置定时器1在工作方式1TH0=0xff;TL0=0xff;TH1=(65536-50000)/256;//给定时器1装初值TL1=(65536-50000)%256;EA=1;//开启总中断ET0=1;//开启外部中断0中断ET1=1;//开启定时器1中断TR0=0;TR1=0;}LCD_init();//初始化显示屏write_com(0x80+2);for(num=0;num<16;num++){write_Data(table1[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<16;num++){write_Data(table2[num]);delay(5);}}//**********************按键扫描程序****************** void key_check(){if(k1==0){delay(200);if(k1==0){s1++;if(s1==2){s1=0;}if(s1==1){TR1=0;//中断计时1write_com(0x80+0x42);for(num=0;num<16;num++)//显示00:00{write_Data(table3[num]);delay(5);}write_com(0x80+0x4a);write_com(0x0f);//打开光标闪烁fen=0;miao=0;//设定时间为00:00}}}{delay(200);if(k2==0){s2++;delay(200);if(s1==1&&s4!=1){fen++;//设置分加1s2=0;if(fen==61){fen=0;}fenge=fen%10;fenshi=fen/10;write_com(0x80+0x4a);write_Data(table[fenge]);write_com(0x80+0x49);write_Data(table[fenshi]);}if(s1==0){TR1=0;//中断计时1write_com(0x0c);//关闭光标闪烁write_com(0x80+0x42);for(num=0;num<16;num++)//显示05:00{write_Data(table4[num]);delay(5);}fen=5;miao=0;//设定时间为05:00TR1=1;}}}if(k3==0){delay(200);if(k3==0){s3++;if(s1==1&&s4!=1)fen--;//设置分减1if(fen==-1){fen=60;}fenge=fen%10;fenshi=fen/10;write_com(0x80+0x4a);write_Data(table[fenge]);write_com(0x80+0x49);write_Data(table[fenshi]);}if(s1==0){TR1=0;//中断计时1write_com(0x0c);//关闭光标闪烁write_com(0x80+0x42);for(num=0;num<16;num++){write_Data(table5[num]);//显示10:00delay(5);}fen=10,miao=0;//设定时间为10:00TR1=1;}}}if(k4==0){delay(200);if(k4==0){if(s1==1||s2==1||s3==1||s4==1){write_com(0x0b);//关闭光标闪烁TR1=1;//完成设置,释放中断1}if(s1!=1&&s2!=1&&s3!=1&&s4!=1){TR1=0;//中断计时1write_com(0x0b);//关闭光标闪烁write_com(0x80+0x42);for(num=0;num<16;num++)//显示20:00{write_Data(table6[num]);delay(5);}fen=20;miao=0;//设定时间为20:00TR1=1;}s1=0;s2=0;s3=0;//k1,k2,k3计数清0s4++;if(s4==3){s4=1;}}}}void sound_delay(uchar n)//音乐延时程序{uint i,j;for(i=0;i<n;i++){for(j=0;j<3;j++);}}//*****************音乐播放程序****************void playmusic()//音乐程序{uint i;uchar sound_signal;//定义音符大小uchar sound_pace;while(1){i=0;while(array[i]!=0x00){if(array[i]==0xff)//如果是休止符,延时100ms,进入下一个循环{TR0=0;i++;delay(100);continue;}sound_signal=array[i];//从表中取得音符大小i=i+1;sound_pace=array[i];//从表中取得节拍大小TR0=1;while(counter!=sound_pace)//节拍数未到时,继续产生该音调{sound=~sound;sound_delay(sound_signal);}i++;counter=0;//节拍计数器置0 进入下一个音调}delay(10);//歌曲演唱完毕后,延时一段时间}}//************主程序**********void main()//主函数{count=0,aa=0;sound=0;init();//初始化数据delay(10);while(1){key_check();//进入按键检测if(TR1==0&&TR0==1)//判断是否满足条件,是则播放音乐{playmusic();//播放音乐TR0=0;//播放结束中断计时0}}}//*****************************************void time1() interrupt 3//定时器1中断{TH1=(65536-50000)/256;TL1=(65536-50000)%256;write_com(0x0c);//关闭光标闪烁count++;aa++;if(count==20)//定时1s{count=0;if(miao==-1){miao=59;fen--;//分减1fenge=fen%10;write_com(0x80+0x40+10);write_Data(table[fenge]);fenshi=fen/10;write_com(0x80+0x40+9);write_Data(table[fenshi]);}miaoge=miao%10;write_com(0x80+0x40+13);write_Data(table[miaoge]);miaoshi=miao/10;write_com(0x80+0x40+12);write_Data(table[miaoshi]);if(fen==0&&miao==0)//判断时间是否为0{TR1=0;TR0=1;led=0;write_com(0x80+0x40);for(num=0;num<16;num++){write_Data(table7[num]);delay(5);}}miao--;//秒减1}if(aa==10)//开启流水灯 让它随时间闪动{aa=0;led=~led;}}void time0()interrupt 1//定时器0中断{counter++;//节拍次数计数TH0=0xd8;//定义单位节拍的延时大小TL0=0xef;}。

相关文档
最新文档