问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

单片机音乐程序写一首歌

发布网友 发布时间:2023-11-19 12:37

我来回答

3个回答

热心网友 时间:2024-03-14 18:10

在网上找了一个程序,不过不是汇编,是C语言写的,希望对你有用

/**********************************************************************/
#include <REG52.H> 
#include <INTRINS.H>
//本例采用89C52, 晶振为11.0592MHZ 
//关于如何编制音乐代码, 其实十分简单,各位可以看以下代码. 
//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍; 
//所以拿出谱子, 试探编吧! 
sbit Beep = P1^5 ; 
unsigned char n=0; 
unsigned char code music_tab[] ={ 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 }; void int0() interrupt 1 { TH0=0xd8; TL0=0xef; n--; } 
void delay (unsigned char m) 

    unsigned i=3*m; while(--i); 

void delayms(unsigned char a) 

    while(--a); 

void main() 

    unsigned char p,m; 
    unsigned char i=0; 
    TMOD&=0x0f; 
    TMOD|=0x01; 
    TH0=0xd8;
    TL0=0xef; 
    IE=0x82; 
    play: 
    while(1) 
    { 
        a: 
        p=music_tab[i]; 
        if(p==0x00) 
        { 
            i=0, 
            delayms(1000); 
            goto play;
        } 
        else if(p==0xff) 
        { 
            i=i+1;
            delayms(100),
            TR0=0; 
            goto a;
        } 
        else 
        {
            m=music_tab[i++], n=music_tab[i++];
        } 
        TR0=1;          //开定时器1 
        while(n!=0) 
            Beep=~Beep,delay(m); 
        TR0=0;          //关定时器1 
    } 
}

热心网友 时间:2024-03-14 18:11

不错不错,味道好极了。

热心网友 时间:2024-03-14 18:11

我不喜欢歌
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
嘴巴是黄色的两鬓各一处白色羽毛肚子是灰白色羽毛腿是黄色的 鸟儿对我们有哪些好处? ...是怎么回事?汽车启动时在驾驶舱听到响声,好似拖拉机烟囱里发出... 软电脑各个时代的开机画面如何设置电脑开机画面 ...器空间、外部数据存储器空间和位地址空间的 饿了么微信支付怎么开通 微信支付开通方式分享 饿了么怎样绑定微信? 梦见不认识的拘给它洗澡身上长蛆 与朋友交而不信乎信的意思是什么 与朋友交而不信乎信的意思 浙江农信如何查询余额 查询余额方法 我想注销现在的,可是绑定快手了现在注销不了怎么办20 请问SAS表的评分是不是只要超过常模的上限就可以定为有焦虑?如果把被调... 男生每天都会跟你说早,,什么意思?早和早安有什么区别?617 最近发现母亲和我的三观越来越不合应该怎么办?我和女儿还能和好吗 上班的时候公司没事做员工可以私自去做核酸吗? 请问一个手机号注册了两个,但登不上另一个怎么办啊? 是不是只有颜值和财力才能决定一个人的幸福感? 骑摩托在路口左转遇红灯时,应把车停在左转弯道上还是自行车道上_百度知 ... 我需要 山香教育资料,谁有这个教师资料的网盘资源? 感觉生一次大气会生病? 8640钢机械性能 高手求助 四种热带、六种温带、三种寒带气候的气候特征、分布规律、分布地...51 老公在外受气,回家向老婆发威怎么办? 1平方公里等于多少平方米657 我的pin1忘记了,怎么解 我的手机是,HTC 新渴望V1 HTC手机忘记密码了怎么刷机?59 脖子粗大但是甲状腺检查都正常 是怎么回事3 吉林事业单位教师岗有专业不限的吗?1 怎么一年内修改两次怎样才能一年修改两次? 惠东县到搏罗五矿哈施塔特旅旅小镇多远? 想知道:惠州市 从罗浮山到五矿哈施塔特有什么交通工具? sruo可以组成什么单词? 土豆兄弟没捡起来的材料哪去了 小型激光切割机哪个牌子好? 我电脑重装系统失败,开不了机该怎么办? DELL台式电脑开不了机怎么办?419 怎么把微信好友转移到另一个? 电脑重装系统失败后开不了机了怎么办?1 求助 有谁知道HTC T382T vt 新渴望手机解锁图案忘...2 惠普笔记本没有外置麦克风插孔,只有一个耳机插孔,要想接入外置... 惠普笔记本没有麦克风插口吗 ?我这只找到一个耳机的插口,这麦...1 桓台汇丰加油站加油充值500元赠送多少元 怎么强制修改第二次 我一个手机号注册了两个,另外一个登不上了,怎么办? 怎么在一年内修改两次 怎么改第二次? 周立波宣布复出晒短视频新节目,自称独立艺术家,为何各方都来调侃? 一个手机号能不能注册两个? 我一个手机号注册了两个,另外一个登不上了,怎么办? 请问什么是股票,
  • 焦点

最新推荐

猜你喜欢

热门推荐