永发信息网

单片机:如何将音乐程序和流水灯程序合起来,能让音乐的同时灯闪?

答案:1  悬赏:0  手机版
解决时间 2021-07-29 03:36

这个是音乐程序

#include<absacc.h>
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define led RD
#define key_rec T1
sbit BUZZER= P2^7;
uchar code T0_H[16]={0xFF,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE};
uchar code T0_L[16]={0xF1,0x4,0x90,0xC,0x44,0xAC,0x9,0x34,0x82,0xC8,0x06,0x22,0x56,0x85,0x9A,0xC1};
uchar code music[32]={8,0,8,9,8,0xB,0xA,0,8,0,8,9,8,0xC,0xB,0,8,0,8,0xF,0xD,0xB,0xA,9,0xE,0,0xE,0xD,0xB,0xC,0xB,0x0};
uchar code music_L[32]={2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4};
uchar a,b;
uint second,minute;
long t0count;
void delay(uint v)
{
while(v!=0) v--;
}
void delay1(uint j)
{
while(j!=0){j--;delay(200);}
}
void delay2(uint j)
{
while(j!=0){j--;delay1(80);}
}
main()
{
// uint i;
uchar k,n,m;
delay(100);
TMOD=0x11;
TH0=0xfc;
TL0=0x66;
t0count=0;
EA=1;
ET0=0;
TR0=0;
ET1=0;
TR1=0;
while(1)
{
ET1=1;
TR1=1;
for(k=0;k<32;k++)
{
n=music[k];
m=music_L[k];
a=T0_H[n];
b=T0_L[n];
delay2(m);
}
}
}
time0 () interrupt 1 using 1
{
TH0=0xFC;
TL0=0x66;
t0count=t0count+1;
if (t0count==1000)
{
second++;
if (second==60)
{
minute++;
if (minute==60) minute=0;
second=0;}
t0count=0;
}
}
time1 () interrupt 3 using 3
{
TH1=a;
TL1=b;
BUZZER=!BUZZER;
}

这个是广告灯程序

#include <reg51.H>
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x00,0xff,0x00,0xff,
0x01};
unsigned char i;

void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}

void main(void)
{
while(1)
{
if(table[i]!=0x01)
{
P1=table[i];
i++;
delay();
}
else
{
i=0;
}
}
}

最佳答案

加到定时中断里面即可,虽然不知道你用T0中断来干嘛:


time0 () interrupt 1 using 1
{
TH0=0xFC;
TL0=0x66;
t0count=t0count+1;
if (t0count==1000)
{
second++;


if(table[i]!=0x01)//每秒变换一个状态
{
P1=table[i];
i++;
}
else
{
i=0;
}


}
if (second==60)
{
minute++;


if (minute==60) minute=0;
second=0;}
t0count=0;
}
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
桂阳县郴州桂阳县第一人民医院肝病治疗中心这
七龙珠的所有
学散打要到什么程度才能以1敌一般的20?
睡觉前要干什么?
苏州阶梯文化公司
谁能告诉我这个男人是哪个动画里的?附带详细
水浒传的名句赏析,水浒传名句赏析,句子30字
人与人之间能不能不能用不说话来…
汉阳区武汉江城明珠驾校报名点(玉龙路)我想知
铜川耀县南街有街道办事处吗?
我想在淘宝开一家网点。该怎么做。
璧山永辉对面的邮政局能不能寄包裹
你们猜、火箭今年进的到西部半决赛不?
cry me out下载地址
唐河县南阳361度(唐河县人民医院一分院北)地
推荐资讯
烽火战国怎么进去什么都看不到啊
我是1990年阴历6月25日生的,我想问一下我的
购书什么网站好?
谁有because you live的les MV版本下载
邮件里东西没有了
曾都区随州洛阳购物中心地址在哪里啊
诺基亚或三星的直板超薄智能的手机都有哪些?
求高达seed中基拉去抢婚的那集是哪集
QQ三国元神会自动绑定?
蔡甸区武汉百姓膳坊(奓山店)地址有谁知道?有
什么插件可以把韩文的网站翻译成中文的网站
长辈对结婚祝福语大全,长辈送给晚辈的祝福语
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?