打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
生日快乐歌单片机C语言程序
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit BEEP=P2^3;//接喇叭或蜂鸣器的接口
uint h,i;
uint hz;
uchar jiep;
bit flag;
uint code fre[]={ 64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217};
uchar code song[]={6,9, 6,3, 7,12, 6,12, 9,12, 8,24, 6,9, 6,3, 7,12,
6,12, 10,12, 9,24, 6,9, 6,3, 13,12, 11,12, 8,12, 7,12,
12,9, 12,3, 11,12, 9,12, 10,12, 9,24}; //歌谱 2个一组(0,0)(音调,节拍)

void init () //初始化
{
        EA=1;
        TMOD=0x11;
        ET0=1;
        ET1=1;
        i=0;
        flag=1;
}

void sing()
{
        if(flag==1)
        {
        h=song;
        jiep=song[i+1];
        i=i+2;
        if(i>46)
                i=0;
        hz=fre[h];
        TH0=(hz)/256;
        TL0=(hz)%256;
        flag=0;
        TR0=1;
        TR1=1;
        }
}

void main()
{
        init();
        while(1)
        {
        sing();
        }
}

void time0() interrupt 1 //定时器0
{
        TH0=(hz)/256;
        TL0=(hz)%256;
        if(!flag)
                BEEP=!BEEP;
        else
                TR0=0;
}

void time1() interrupt 3
{
        TH1=(15536)/256;
        TL1=(15536)%256;
        --jiep;
        if(jiep==0)
        flag=1;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
51单片机C语言程序(二)定时/计数器?中断
机器人教程1:如何利用51单片机输出PWM波
单片机闹钟程序设计
51单片机C语言程序(一)发光二极管
51单片机模拟音乐详解
6位LED电子钟程序 LCDHOME论坛
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服