首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 数字音乐盒设计单片机设计报告

    时间:2021-03-05 16:41:57 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:设计 音乐盒 单片机

    数字音乐盒设计单片机设计报告 本文关键词:设计,音乐盒,单片机,数字,报告

    数字音乐盒设计单片机设计报告 本文简介:陕西理工学院毕业设计单片机课程设计题目:数字音乐盒设计要求:存放4首以上乐曲,能选曲或循环播放班级:13电信卓越学号:130803012姓名:黄赵完成日期:2015年01月01日指导老师:刘小燕老师陕西理工学院毕业设计目录引言11概述.21.1课题意义21.2设计方案.21.3研究内容.22系统总体

    数字音乐盒设计单片机设计报告 本文内容:

    陕西理工学院毕业设计

    单片机课程设计

    题目:

    数字音乐盒设计

    要求:存放

    4

    首以上乐曲,能选曲或循环播放

    班级:13

    电信卓越

    学号:130803012

    姓名:黄赵

    完成日期:2015

    01

    01

    指导老师:刘小燕老师

    陕西理工学院毕业设计

    引言

    1

    1

    概述.2

    1.1

    课题意义

    2

    1.2

    设计方案.2

    1.3

    研究内容.2

    2

    系统总体方案介绍

    3

    2.1

    系统组成框图

    3

    2.2

    音乐盒的功能结构图

    3

    2.3

    主要设计软件介绍

    3

    2.3.1

    PROTEUS

    软件简介

    .3

    2.3.2

    KEIL

    简介

    4

    3

    硬件设计.5

    3.1

    总体设计框图

    5

    3.2

    各部分硬件设计及其原理.5

    3.2.1

    AT89C51

    简介

    .5

    3.2.2

    LED

    显示电路设计与原理

    .6

    3.2.3

    时钟振荡电路.6

    3.3

    硬件电路图及功能

    6

    4

    软件设计.8

    4.1

    音调、节拍以及编码的确定方法.8

    4.1.1

    音调的确定.8

    4.1.2

    节拍的确定.9

    4.1.3

    编码10

    4.2

    软件程序设计

    .11

    4.2.1

    程序流程图及相应代码块11

    4.2.2

    程序源代码(见附录

    A)

    15

    5

    调试16

    5.1

    检查硬件连接

    .16

    5.2

    检查软件系统

    .16

    5.3

    测试结果

    .16

    5.3.1.总体运行图.16

    5.3.2.花样灯

    3

    种花样图.17

    6

    总结

    .18

    致谢

    .19

    参考文献

    .20

    科技外文文献

    .21

    中文译文

    .24

    附录

    A

    程序源代码及注释.26

    陕西理工学院毕业设计

    1.1

    实验要求

    用单片机

    at89c51

    设计一个数字音乐盒,要求音乐盒能够存放

    4

    首歌

    曲,并且能够进行按键切歌,以及按键暂停功能.

    1.21.2

    设计方案设计方案

    设计一个基于

    AT89C51

    系列单片机的音乐盒,利用按键切换演奏出不同的乐曲。蜂鸣器发出

    某个音调,与之相对应的

    LED

    亮起。使用两个按键,一个用来切换歌曲。

    1.31.3

    研究内容研究内容

    1)电路有两种工作模式:演奏音乐模式和花样灯模式。

    演奏音乐模式:演奏完整的一首的歌曲,八路

    LED

    随着音乐变化。

    花样灯模式:八路

    LED

    变化出各种花样,蜂鸣器随着发出“嘀嘀”声

    2)按下按键

    1

    进入演奏音乐模式,再按切换歌曲,共两首歌曲。

    3)按下按键

    2

    进入花样灯模式,再按切换

    LED

    花样,共三种花样。

    此电路的程序只占用了

    1K

    左右,可编制更多的音乐和

    LED

    花样,使系统的功能更加强大。

    2

    系统总体方案介绍

    2.12.1

    系统组成框图系统组成框图

    音乐盒的系统结构以

    AT89C51

    单片机位控制核心,加上

    2

    个按键、时钟复位电路、蜂鸣器、

    LED

    模块组成。单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式

    以及蜂鸣器发音。系统组成框图如图

    2.1

    所示。

    2.1

    系统组成框图

    2.22.2

    音乐盒的功能结构图音乐盒的功能结构图

    音乐盒的功能结构如图

    2.2

    所示。Key1

    负责切换播放歌曲,播放歌曲共

    2

    首,分别是挥着翅膀

    的女孩和寂寞沙洲冷。Key2

    负责暂停。

    陕西理工学院毕业设计

    3

    硬件设计

    3.1

    总体设计框图总体设计框图

    3.1

    总体设计框图

    3.2

    各部分硬件设计及其原理各部分硬件设计及其原理

    3.2.1

    AT89C51AT89C51

    简介简介

    AT89C51

    是一种带

    4K

    字节闪存可编程可擦除只读存储器(

    FPEROM—Flash

    Programmable

    and

    Erasable

    Read

    Only

    Memory)的低电压,高性能

    CMOS

    8

    位微处理器,俗称单

    片机。AT89C2051

    是一种带

    2K

    字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除

    只读存储器可以反复擦除

    100

    次。该器件采用

    ATMEL

    高密度非易失存储器制造技术制造,

    与工业标准的

    MCS-51

    指令集和输出管脚相兼容。由于将多功能8

    CPU

    和闪烁存储器组合

    在单个芯片中,

    ATMEL

    AT89C51

    是一种高效微控制器,

    AT89C2051

    是它的一种精简版本。

    AT89C51

    单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如

    3.2

    所示

    陕西理工学院毕业设计

    3.2

    AT89C51

    系列单片机

    3.2.2

    LED

    显示电路设计与原理显示电路设计与原理

    LED

    显示电路是由

    8

    LED

    发光二极管组成,连接方式为共阳极,LED

    接到单片机的

    P1

    口,

    若为低电平,可使

    LED

    亮起。发光二极管的亮、灭由内部程序控制,8

    LED

    发光二极管分别对

    应不同的音阶,所以

    LED

    会随着音阶的变化按规律亮、灭。

    3.2.3

    时钟振荡电路时钟振荡电路

    AT89C51

    中有一个用于构成内部振荡器的高增益反相放大器,引脚

    XTAL1

    XTAL2

    分别是

    该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成

    自然振荡器。外接石英晶体及电容

    C1、C2

    接在放大器的反馈回路中构成并联振荡电路。对外接电

    C1,C2

    虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作

    的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用

    30PF10PF,

    ?

    而如果使用陶瓷振荡器建议选择

    40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如

    ?

    图示。这种情况下,外部时钟脉冲接到

    XTAL1

    端,即内部时钟发生器的输入端,XTAL2

    则悬空。

    由于外部时钟信号是通过一个

    2

    分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比

    没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。振荡

    器电路图如下:

    3.3

    单片机内部、外部振荡电路

    3.3

    硬件电路图及功能硬件电路图及功能

    总体硬件电路实现功能如下,如图

    3.4

    所示

    1)

    电路中用

    P3.2、P3.3

    控制按键。

    2)

    P1.0~P1.7

    控制

    LED。

    3)

    P2.3

    控制蜂鸣器。

    4)

    电路为

    12MHZ

    晶振频率工作,起振电路中

    C1、C2

    均为

    30PF。

    3.4

    硬件电路图

    陕西理工学院毕业设计

    4

    软件设计

    在本程序中设置了两个标志——count1

    count2,分别初始化为

    1

    0。按键

    1

    使得

    count1

    1

    2

    之间切换,按键

    2

    使得

    count2

    1~4

    之间切换。程序检测

    count1

    的值,count1

    等于

    1

    时播放

    第一首歌曲,等于

    2

    时播放第二首。另一方面根据

    count2

    的值来切换

    LED

    的花样。count1

    count2

    的值是互斥的,设置

    count1

    等于

    1、2

    时,count2

    同时设置为

    0;设置

    count2

    等于

    1~4

    时,

    count1

    也同时设置为

    0。

    4.14.1

    音调、节拍以及编码的确定方法音调、节拍以及编码的确定方法

    陕西理工学院毕业设计

    一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能

    像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”

    和节拍表示一个音符唱多长的时间。

    4.1.14.1.1

    音调的确定音调的确定

    不同音高的乐音是用

    C、D、E、F、G、A、B

    来表示,这

    7

    个字母就是音乐的音名,它们一般

    依次唱成

    DO、RE、MI、FA、SO、LA、SI,即唱成简谱的

    1、2、3、4、5、6、7,相当于汉字“多

    来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”

    ,即

    Tone。把

    C、D、E、F、G、A、B

    这一组音的距离分成

    12

    个等份,每一个等份叫一个“半音”

    。两个音之间

    的距离有两个“半音”

    ,就叫“全音”

    。在钢琴等键盘乐器上,C–D、D–E、F–G、G–A、A–B

    两音之间隔着一个黑键,他们之间的距离就是全音;E–F、B–C

    两音之间没有黑键相隔,它们之

    间的距离就是半音。通常唱成

    1、2、3、4、5、6、7

    的音叫自然音,那些在它们的左上角加上﹟号

    或者

    b

    号的叫变化音。﹟叫升记号,表示把音在原来的基础上升高半音,b

    叫降记音,表示在原来

    的基础上降低半音。例如高音

    DO

    的频率(1046Hz)刚好是中音

    DO

    的频率(523Hz)的一倍,中

    DO

    的频率(523Hz)刚好是低音

    DO

    频率(266

    Hz)的一倍;同样的,高音

    RE

    的频率

    (1175Hz)刚好是中音

    RE

    的频率(587Hz)的一倍,中音

    RE

    的频率(587Hz)刚好是低音

    RE

    率(294

    Hz)的一倍。

    1)要产生音频脉冲,只要算出某一音频的周期(1/频率)

    ,然后将此周期除以

    2,即为半周期

    的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的

    I/O

    反相,然后重复计时

    此半周期时间再对

    I/O

    反相,就可在

    I/O

    脚上得到此频率的脉冲。

    2)利用

    AT89C51

    的内部定时器使其工作在计数器模式

    MODE1

    下,改变计数值

    TH0

    TL0

    以产生不同频率的方法。

    此外结束符和休止符可以分别用代码

    00H

    FFH

    来表示,若查表结果为

    00H,则表示曲子终

    了;若查表结果为

    FFH,则产生相应的停顿效果。

    3)例如频率为

    523Hz,其周期

    T=1/523=1912us,因此只要令计数器计时

    956us/1us=956,在每

    次技术

    956

    次时将

    I/O

    反相,就可得到中音

    DO(523Hz)

    计数脉冲值与频率的关系公式如下:

    N=Fi2Fr

    ?

    ?

    N:计算值;Fi:内部计时一次为

    1us,故其频率为

    1MHz;

    4)

    其计数值的求法如下:

    T=65536-N=65536-Fi2Fr

    ?

    ?

    例如:设

    K=65536,F=1000000=Fi=1MHz,球低音

    DO(261Hz)

    。中音

    DO(523Hz)

    。高音的

    DO(1046Hz)的计算值

    T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr

    ?

    ??

    ?

    低音

    DO

    T=65536-500000/262=63627

    低音

    DO

    T=65536-500000/523=64580

    低音

    DO

    T=65536-500000/1047=65059

    5)

    C

    调各音符频率与计数值

    T

    的对照表如表

    4.1

    所示。

    4.1

    C

    调各音符频率与计数值

    T

    的对照表

    低音频率T参数中音频率T参数高音频率T参数

    Do2621908229Do523956115Do10465757

    Do﹟

    2771805217

    Do﹟

    554903108

    Do﹟

    11095454

    Re2941701204Re587852102Re11755151

    陕西理工学院毕业设计

    Re﹟

    3111608193

    Re﹟

    62280497

    Re﹟

    12454848

    Mi3301515182Mi65975991Mi13184545

    Fa3491433172Fa69871686Fa13974343

    Fa﹟

    3701351162

    Fa﹟

    74067681

    Fa﹟

    14804141

    So3921276153So78463877So15683838

    So﹟

    4151205145

    So﹟

    83160272

    So﹟

    16613636

    La4401136136La88056868La17603434

    La﹟

    4641078129

    La﹟

    93253664

    La﹟

    18653232

    Si4941012121Si98850661Si19763030

    4.1.24.1.2

    节拍的确定节拍的确定

    若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动)

    ,而且可以

    调节各个音的快满度。

    “节拍”,即

    Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手

    或跺脚。若

    1

    拍实

    0.5s,则

    1/4

    拍为

    0.125s。至于

    1

    拍多少

    s,并没有严格规定,就像人的心跳

    一样,大部分人的心跳是每分钟

    72

    下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持

    续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。

    一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频

    率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可知产生不同频率

    的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定

    时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片

    机定时计数的关系。

    4.2

    节拍与节拍码对照

    节拍码节拍数节拍码节拍数

    1

    1/4

    1

    1/8

    2

    2/4

    2

    1/4

    3

    3/4

    3

    3/8

    4

    1

    4

    2/1

    5

    1

    1/4

    5

    5/8

    6

    1

    1/2

    6

    3/4

    8

    2

    8

    1

    A

    2

    1/2

    A

    1

    1/4

    C

    3

    C

    1

    1/2

    F

    3

    3/4

    每个音符使用

    1

    个字节,字节的高

    4

    位代表音符的高低,低

    4

    位代表音符的节拍,图

    5.2

    为节

    拍码的对照。如果

    1

    拍为

    0.4

    秒,1/4

    拍实

    0.1

    秒,只要设定延迟时间就可求得节拍的时间。假设

    1/4

    拍为

    1DELAY,则

    1

    拍应为

    4DELAY,以此类推。所以只要求得

    1/4

    拍的

    DELAY

    时间,其余

    的节拍就是它的倍数,如图

    5.3

    1/4

    1/8

    节拍的时间设定。

    4.3

    1/4

    1/8

    节拍的时间设定

    曲调值DELAY曲调值DELAY

    陕西理工学院毕业设计

    4/4125

    毫秒调

    4/462

    毫秒

    3/4187

    毫秒调

    3/494

    毫秒

    2/4250

    毫秒调

    2/4125

    毫秒

    4.1.34.1.3

    编码编码

    do

    re

    mi

    fa

    so

    la

    si

    分别编码为

    1~7,重音

    do

    编为

    8,重音

    re

    编为

    9,停顿编为

    0。播放长度以十

    六分音符为单位(在本程序中为

    165ms)

    ,一拍即四分音符等于

    4

    个十六分音符,编为

    4,其它的播

    放时间以此类推。音调作为编码的高

    4

    位,而播放时间作为低

    4

    位,如此音调和节拍就构成了一个

    编码。以

    0xff

    作为曲谱的结束标志。

    举例

    1:音调

    do,发音长度为两拍,即二分音符,将其编码为

    0x18。

    举例

    2:音调

    re,发音长度为半拍,即八分音符,将其编码为

    0x22

    歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为

    unsigned

    char

    的数组中。

    程序从数组中取出一个数,然后分离出高

    4

    位得到音调,接着找出相应的值赋给定时器

    0,使之定

    时操作蜂鸣器,得出相应的音调;接着分离出该数的低

    4

    位,得到延时时间,接着调用软件延时。

    4.4

    简谱对应的简谱码、T

    值、节拍数

    简谱发音简谱码T

    值节拍码节拍数

    5低音

    SO16426011/4

    6低音

    LA26440022/4

    7低音

    TI36452433/4

    1中音

    DO46458041

    2中音

    RE56468451

    1/4

    3中音

    MI66477761

    1/2

    4中音

    FA76482082

    5中音

    SO864898A2

    1/2

    6中音

    LA964968C3

    7中音

    TIA65030F3

    3/4

    1高音

    DOB65058

    2高音

    REC65110

    3高音

    MID65157

    4高音

    FAE65178

    5高音

    SOF65217

    4.2

    软件程序设计

    4.2.14.2.1

    程序流程图程序流程图及相应代码块及相应代码块

    主程序流程图

    陕西理工学院毕业设计

    开始

    初始化

    标志位

    Count==0

    标志位

    Count==1

    标志位

    Count==2

    标志位

    Count==3

    播放音乐

    Yes

    No

    花样灯1

    花样灯1

    花样灯1

    Yes

    Yes

    Yes

    No

    No

    No

    4.1

    主程序流程图

    陕西理工学院毕业设计

    4.2

    播放音乐子程序流程图

    陕西理工学院毕业设计

    5

    调试

    5.15.1

    检查硬件连接检查硬件连接

    PROTUES

    检查各硬件管脚是否连接正确,线路逻辑是否正确,例如:晶振电路的连接,复位

    电路是否设计正确。

    5.25.2

    检查软件系统检查软件系统

    1.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。

    2.将所有程序组织起来,在软件环境下运行,检查程序是否正确。通过对硬件和软件系统的

    认真检查,反复测试,如果没有出现问题即可把源程序编译成

    HEX

    文件装载到单片机中,对硬件进

    行仿真。

    5.35.3

    测试结果测试结果如上图所示如上图所示

    6

    总结

    单片机的设计至今为止已经进入了令人鼓舞的阶段,在进行了长达两个多月的时间的摸索与实

    验,使我不仅仅是对于单片机入门软件与硬件的常用设计与功能,还使我对于一项设计研究的制作

    过程所需要的详细步骤和具体的实现方法的力度的掌握。

    当然在这次宝贵的毕业设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知

    陕西理工学院毕业设计

    问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过

    了。但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人

    性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门

    学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期内被实现。

    总之,这次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。真是曾经

    为程序的编写而冥思查找过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹

    豫彷徨过,但最终我成功了。

    附录

    A

    程序源代码及注释

    #include

    #define

    uchar

    unsigned

    char

    #define

    uint

    unsigned

    int

    sbit

    duan=P2^6;

    sbit

    key1=P3^2;//按

    key1

    可切换花样

    sbit

    key2=P3^3;//按

    key2

    可切换歌曲

    sbit

    fm=P3^7;//蜂鸣器连续的

    IO

    sbit

    P34=P3^4;//矩阵键盘的一列

    uchar

    code

    huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花样

    1

    uchar

    code

    huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花样

    2

    uchar

    code

    huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};

    char

    code

    huayang4[]={

    0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};

    uchar

    count1;//花样标志

    uchar

    count2;//歌曲标志

    uchar

    timeh,timel,i;

    //编程规则:字节高位是简谱,低位是持续时间,//代表多少个十六分音符

    //1-7

    代表中央

    C

    调,8-E

    代表高八度,0

    代表停顿

    //最后的

    0

    是结束标志

    uchar

    code

    qnzl[]={

    //千年之恋

    0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,//前奏

    0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,0xff

    };

    uchar

    code

    jmszl[]={

    //寂寞沙洲冷

    0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,//自你走后心憔悴

    0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,//白色油桐风中纷飞

    0xff};

    uchar

    code

    znpa[]

    ={

    //祝你平安

    0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0xff};

    uchar

    code

    lbdya[]

    ={//路边的野花不要采

    陕西理工学院毕业设计

    0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,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,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();//蜂鸣器叫一声

    main()

    {uchar

    x;

    count1=0;//流水灯无花样

    count2=1;//唱第一首歌

    P34=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)

    {if(count1!=0)

    {switch(count1)

    {case

    1:

    for(x=0;x0;x--)

    for(y=19000;y0;y--);

    }

    void

    delay1(uint

    z)//延时

    1MS

    {uint

    x,y;

    for(x=z;x0;x--)

    for(y=112;y0;y--);

    }

    void

    beep()//蜂鸣器叫一声

    {uchar

    i;

    for(i=0;i50;i++)

    {fm=~fm;

    delay1(1);

    }

    fm=1;

    }

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识