让蜂鸣器唱“美丽的姑娘”

发布者:那是一条路都最新更新时间:2012-08-24 来源: 51hei关键字:蜂鸣器  单片机  音乐 手机看文章 扫描二维码
随时随地手机看文章

把51hei-5单片机开发板的 j5跳线插到23端 以便选通蜂鸣器,烧入程序就可以听到美丽的姑娘的音乐了.

#include      
#include 
#include 
#define uchar unsigned char
#define uint unsigned int
#define ON  0
#define OFF 1
sbit P20=P2^2;
struct music_type
{ uchar tone;
  uchar delay;
};
uint code tonetab[] =
{
63890,64070,64229,64303,64438,64557,64664,
64713,64803,64883,64919,64987,65047,65100,
65124,65169,65209,65228,65261,65291,65318,
};
struct music_type code codetab[]=
{
 1+7,0x02,1+7,0x02,6+7,0x04,5+7,0x04,
 6+7,0x01,1+14,0x01,6+7,0x01,5+7,0x01,3+7,0x02,3+7,0x01,1+7,0x01,
 2+7,0x02,3+7,0x02,4+7,0x02,5+7,0x02,
 3+7,0x04,2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,
 1+7,0x10,

 5+7,0x02,5+7,0x01,5+7,0x01,1+14,0x03,7+7,0x02,6+7,0x02,
 1+14,0x01,1+14,0x01,1+14,0x01,6+7,0x01,5+7,0x04,
 5+7,0x02,5+7,0x02,1+14,0x02,7+7,0x02,6+7,0x02,7+7,0x02,1+14,0x0c,
 
 5+7,0x02,5+7,0x02,1+14,0x02,7+7,0x02,6+7,0x02,7+7,0x01,7+7,0x01,
 1+14,0x01,1+14,0x01,1+14,0x01,6+7,0x01,5+7,0x02,3+7,0x02,
 5+7,0x02,5+7,0x01,5+7,0x01,6+7,0x02,6+7,0x01,5+7,0x01,3+7,0x03,1+7,0x01,
 2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,1+7,0x04,

 1+7,0x02,1+7,0x02,6+7,0x04,5+7,0x04,
 6+7,0x01,1+14,0x01,6+7,0x01,5+7,0x01,3+7,0x02,3+7,0x01,1+7,0x01,
 2+7,0x02,3+7,0x02,4+7,0x02,5+7,0x01,4+7,0x01,3+7,0x03,1+7,0x01,
 2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,1+7,0x04,

 1+7,0x02,1+7,0x02,6+7,0x04,5+7,0x04,
 6+7,0x01,1+14,0x01,6+7,0x01,5+7,0x01,3+7,0x02,3+7,0x01,1+7,0x01,
 2+7,0x02,3+7,0x02,4+7,0x02,5+7,0x01,4+7,0x01,3+7,0x03,1+7,0x01,
 2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,1+7,0x04,

 5+7,0x02,5+7,0x01,5+7,0x01,1+14,0x03,7+7,0x02,6+7,0x02,
 1+14,0x01,1+14,0x01,1+14,0x01,6+7,0x01,5+7,0x04,
 5+7,0x02,5+7,0x02,1+14,0x02,7+7,0x02,6+7,0x02,7+7,0x02,1+14,0x0c,
 
 5+7,0x02,5+7,0x02,1+14,0x02,7+7,0x02,6+7,0x02,7+7,0x01,7+7,0x01,
 1+14,0x01,1+14,0x01,1+14,0x01,6+7,0x01,5+7,0x02,3+7,0x02,
 5+7,0x02,5+7,0x01,5+7,0x01,6+7,0x02,6+7,0x01,5+7,0x01,3+7,0x03,1+7,0x01,
 2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,1+7,0x04,

 1+7,0x02,1+7,0x02,6+7,0x04,5+7,0x04,
 6+7,0x01,1+14,0x01,6+7,0x01,5+7,0x01,3+7,0x02,3+7,0x01,1+7,0x01,
 2+7,0x02,3+7,0x02,4+7,0x02,5+7,0x01,4+7,0x01,3+7,0x03,1+7,0x01,
 2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,1+7,0x04,

 1+7,0x02,1+7,0x02,6+7,0x04,5+7,0x04,
 6+7,0x01,1+14,0x01,6+7,0x01,5+7,0x01,3+7,0x02,3+7,0x01,1+7,0x01,
 2+7,0x02,3+7,0x02,4+7,0x02,5+7,0x01,4+7,0x01,3+7,0x03,1+7,0x01,
 2+7,0x01,3+7,0x01,2+7,0x01,1+7,0x01,1+7,0x04,

 0,0x00,
};
volatile uchar tl0,th0;
void delay_us(uchar n)  
{ do
  { _nop_();
    _nop_();
    _nop_();
    _nop_();
  }while(--n);
}
void delay_ms(uint n) 
{ do delay_us(100); 
  while(--n);
}
void T0_sev() interrupt 1
{ TL0=tl0;
  TH0=th0;
  P20=!P20;
}
void main(void)
{ uchar i,j;
  TMOD=0x01;
  IE=0x82;

  while(1)
  { i=0;
    while(codetab[i].delay)
    { if(!codetab[i].tone) TR0=0;
      else
   { th0=TH0=tonetab[codetab[i].tone-1]/256; 
        tl0=TL0=tonetab[codetab[i].tone-1]%256;
        TR0=1;
     }   
      for(j=0;j
关键字:蜂鸣器  单片机  音乐 引用地址:让蜂鸣器唱“美丽的姑娘”

上一篇:单片机红外遥控解码程序
下一篇:mcs-51单片机 扫描矩阵键盘程序

推荐阅读最新更新时间:2024-03-16 13:06

STM32单片机GPIO口配置问题
  在学习STM32F单片机时,我们常常困惑什么时候才能叫入门,采用什么样的教材入门,或者采用什么的编程软件。在学习类的教材中,以神州,原点教材布局很多,但是相信很多人看到这类教材也是一头雾水,需要你花费巨大的精力从寄存器的最底层去学习和了解,学习时间还是相对漫长。在采用的编程软件中,KEIL和IAR各有优势吧,在这里我选用的是KEIL。   在开始学习编程时,我采用的是库函数开发指南。在安装完成KEIL软件和添加项目工程时,就开始学习库函数编程。   在编写一个GPIO口控制时,首先我们要知道我们要实现的功能,连接的IO口和怎么配置GPIO口。最常见的以LED举例来说。比如我采用PB13引脚连接LED灯的负极,按照硬件的
[单片机]
单片机多机并行通讯的一种方法
1 简介   本文介绍的单片机多机并行通讯系统,使用89C51作为主机,多片89C2051作为从机。(89C2051为20脚300MIL封装,带有2K FLASH E2PROM的单片机,除了少了两个并口外,具备MCS-51系列单片机所有功能。因为其体积小,功能强,必将在单片机应用领域内广泛使用)。这种并行通讯方法适用于在多站点,多层次的检测和控制系统中充当通信控制器的角色;也适合于用作单片机串行口扩充电路。         图1 芯片的逻辑图及四种工作状态           图2 单片机并行通信原理框图   2 三态总线缓冲寄存器74HC646   在单片机构成的多机并行通讯系统中,总线上的信息交
[单片机]
基于单片机的太阳能热水器智能仪
1智能仪的性能特点   智能仪主要有以下特点:   (1)使用电源为220VAC,功耗小于5W。 (2)水温数码显示,测温范围0~99℃;精度±2℃,水位分五档显示。 (3)水位设置。可设置加水水位20%、50%、80%、100%(本仪预置水位50%)。 (4)温控上水。当水箱水未加满,水温超过60℃时,自动加水至50℃,此功能使太阳能热水 器产出最多热水(温度50℃以上)。 (5)缺水上水/报警。当水位从高到低,出现缺水状态时,蜂鸣报警,缺水指示灯 闪亮,延时15分钟自动上水至预置水位。 (6)手动上水。按“上水”键,若水位低于预置水位,可上水至预置水位;若水 位已达到预置水位,则在原水位基础上再加一档;若水位已加满,则停止手动
[单片机]
基于<font color='red'>单片机</font>的太阳能热水器智能仪
Atmel推出车用AVR微控制器系列
日前,爱特梅尔公司 (Atmel Corporation) 宣布推出用于汽车联网 LIN Networking 应用的全新 AVR 8 位微控制器系列,当中,ATtiny167 是首款器件,专为 LIN slave 端应用而优化。该器件将获得 AECQ-100 Grade 0 标准认证,能够耐受高达 150℃ 的环境温度。ATtiny167 结合 LIN 收发器 (如 ATA662x 或 ATA666x) 能为变速箱、排气系统、泵 (pump) 或涡轮发动机中的传感器提供完整的解决方案。   许多车身电子子系统,如车门锁、车窗升降、雨刷、照明系统、阳光和落雨传感器等都通过 LIN 网络连接。它们需要带有模拟/数字转换器的微型
[单片机]
基于单片机为核心的遥控报警系统设计
1 引 言   由于经济的快速发展,人们生活水平得到较大的提高,生活节奏也越来越快,为此家电遥控和家庭安全也为人们所需要和重视。以AT89C51单片机为核心通过电话进行电器遥控和报警装置主要解决这些问题。他的主要功能有:通过电话可以遥控16路电器通断,遥控路数可以根据需要进行扩展;可以实现电器调压调速控制,有密码设定,保密安全性好;有语言提示,避免盲目操作;可以取消已输入的操作命令;当单片机接收到家中天然气泄露、温度超限和失窃信号后会自动拨打预留电话并报告家中发生的情况。 2 硬件电路设计   总体电路设计思路是:电话遥控报警器与家用电话采用并联方式,当有振铃信号时单片机开始记数,前10次铃声内若有人接电话,则遥控报警器被屏蔽,不
[单片机]
基于<font color='red'>单片机</font>为核心的遥控报警系统设计
单片机学习记录——开发环境的搭建
【1】所需工具 硬件: PC机(编程、编译程序、烧写程序) 单片机开发板(开发用) USB线 (连接PC机与单片机开发板,供电和烧录程序用) 软件: 单片机驱动程序 集成开发环境(keil4) 官网烧录软件(stc-isp-15xx-v6.86H) 【2】具体步骤 第一步:用USB线连接PC机与开发板 第二步:安装驱动程序 第三步:打开Keil,编写程序,编译生成 .hex文件 第四步:打开烧录软件,把.hex文件烧录至单片机即可。
[单片机]
图解单片机网卡RAM区如何发送数据包
  本文深入研究了使用单片机控制网卡,接入以太网Ethernet,即IEEE802.3协议网络,实现串口仪器的网络化。   1 硬件结构和电路设计   1.1 总体设计   整个系统设计采用ATMEL公司8位通用微控制器AT89C51作为主处理器,驱动REALTEK公司的10M以太网控制芯片RTL8019AS,实现串口数据和外部网络互连。   1.2 网卡接线设计   RTL8019AS为100管脚PQFP封装,工作电压5V。其接线原理图如图1所示。地址SA0-4接到单片机P2的低五位上;SA8和SA9接电源;其余SA5-7,SA10-19这13个管脚全部接地;IORB和IOWB分别接单片机的读写信号端;RSTDRV接到
[单片机]
图解<font color='red'>单片机</font>网卡RAM区如何发送数据包
基于AVR微控制器的电力机车智能辅保系统的实现
    摘要: 给出了以AVR微控制器为核心的电力机车智能辅保系统的设计方案,并介绍了系统硬件及软件的具体实现方法。     关键词: 智能辅保系统 AVR微控制器 硬件 软件 电气机车辅助系统中有劈相机、空气压缩机、通风机及制动风机等各种类型的电机。运行中为了防止出现短路、过流等异常情况而烧毁电机,通常配置辅助保护系统,起到及时监测电机故障并加以处理的作用。目前电力机车上安装的辅保系统都是模拟电路装置,系统硬件复杂,又不方便司机使用和维修。因此,设计一种实时性高、性能可靠的智能辅保系统替代原有的模拟电路装置势在必行。本文将介绍笔者开发的用于韶山型电力机车的智能辅助保护系统的设计及实现。 1 系统的主要功能
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved