久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1721|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)音樂盒制作

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:863133 發(fā)表于 2020-12-18 23:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P1^0; //播放和停止鍵
sbit SPK=P3^7; //蜂鳴器
uchar Song_Index=0,Tone_Index=0; //當(dāng)前音樂段索引,音符索引
//數(shù)碼管段碼表
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//標(biāo)準(zhǔn)音符頻率對(duì)應(yīng)的延時(shí)表
uchar code HI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248};
uchar code LO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};
//三段音樂的音符
uchar code Song[][50]=
{
{1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,6,5,3,5,3,2,1,2,1,-1},
{3,3,3,4,5,5,5,5,6,5,3,5,3,2,1,5,6,53,3,2,1,1,-1},
{3,2,1,3,2,1,1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,3,2,1,3,2,1,1,-1}
};
//三段音樂的節(jié)拍
uchar code Len[][50]=
{
{1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,-1},
{1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,-1},
{1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,-1}
};
//外部中斷0
void EX0_INT() interrupt 0
{
TR0=0; //播放結(jié)束或者播放中途切換歌曲時(shí)停止播放
Song_Index=(Song_Index+1)%3; //跳到下一首的開頭
Tone_Index=0;
P2=DSY_CODE[Song_Index]; //數(shù)碼管顯示當(dāng)前音樂段號(hào)
}
//定時(shí)器0中斷函數(shù)
void T0_INT() interrupt 1
{
TL0=LO_LIST[Song[Song_Index][Tone_Index]];
TH0=HI_LIST[Song[Song_Index][Tone_Index]];
SPK=~SPK;
}
//延時(shí)
void DelayMS(uint ms)
{
uchar t;
while(ms--) for(t=0;t<120;t++);
}
//主程序
void main()
{
P2=0xc0;
SPK=0;
TMOD=0x00; //T0方式0
IE=0x83;
IT0=1;
IP=0x02;
while(1)
{
while(K1==1); //未按鍵等待
while(K1==0); //等待釋放
TR0=1; //開始播放
Tone_Index=0; //從第0個(gè)音符開始
//播放過程中按下K1可提前停止播放(K1=0)。
//若切換音樂段會(huì)觸發(fā)外部中斷,導(dǎo)致TR0=0,播放也會(huì)停止
while(Song[Song_Index][Tone_Index]!=-1&&K1==1&&TR0==1)
{
DelayMS(300*Len[Song_Index][Tone_Index]); //播放延時(shí)(節(jié)拍)
Tone_Index++; //當(dāng)前音樂段的下一音符索引
}
TR0=0; //停止播放
while(K1==0); //若提前停止播放,按鍵未釋放時(shí)等待
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 最近最新中文字幕 | xxxxx黄色片 欧美一区免费 | 久久综合久久自在自线精品自 | 日韩精品免费看 | 亚洲成人一区二区 | 国产精品久久久久久妇女 | 亚洲狠狠 | 一区二区视频免费观看 | 久久久一区二区 | 91n成人 | 亚洲精品女人久久久 | 一区二区视频在线 | 色免费看| 日韩中文字幕在线观看视频 | 日韩国产中文字幕 | 久久大全 | 日韩美香港a一级毛片免费 国产综合av | 欧美日韩黄 | 亚洲三级国产 | 一区二区三区久久 | 在线免费看黄 | 国产激情一区二区三区 | 国产日韩欧美91 | 97精品国产97久久久久久免费 | 草比av| 99精品一区二区 | 久久精品欧美电影 | 国产一区不卡 | 欧美专区在线视频 | 日韩三级免费网站 | 特级毛片| 亚洲一区在线日韩在线深爱 | 国产精品国产三级国产aⅴ中文 | 亚洲国产二区 | 三级av在线 | 日韩在线视频一区 | 亚洲区一区二 | 国产传媒在线播放 | 成人国产精品久久久 | 麻豆久久久久久久久久 | 天天插天天搞 |