用89C51单片机设计一个系统,轮流显示0-9,当有按键1按下时,数字显示停止,播放一段歌曲。用C语言最好 15
用89C51单片机设计一个系统,具有6个数码管,按键若干,指示灯若干系统运行后,轮流显示0-9,当有按键1按下时,数字显示停止,播放一段歌曲,播放完毕后继续显示数字;在播...
用89C51单片机设计一个系统,具有6个数码管,按键若干,指示灯若干
系统运行后,轮流显示0-9,当有按键1按下时,数字显示停止,播放一段歌曲,播放完毕后继续显示数字;在播放歌曲的过程中,若按下按键2,则使8个LED灯闪烁5次,闪烁完后继续播放歌曲。
电路图已经附上了,谢谢了。 展开
系统运行后,轮流显示0-9,当有按键1按下时,数字显示停止,播放一段歌曲,播放完毕后继续显示数字;在播放歌曲的过程中,若按下按键2,则使8个LED灯闪烁5次,闪烁完后继续播放歌曲。
电路图已经附上了,谢谢了。 展开
3个回答
展开全部
先写这么多,改天我过来在看看!有时间就写完!有一些错误,自己调试一下 应该问题不大!
int key_value;
void delay1s(void)
{
unsigned char h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);
}
int key(int)
{
int key_count;
if(p3.0==0)
{
key_count++;
if(p3.0==0)&(key_count>10)
{
key_value = 0x01;
key_count = 0;
}
}
else if(p3.1==0)
{
key_count++;
if((p3.1==0)&(key_count>10))
{
key_value = 0x02;
key_count = 0;
}
}
else
{
key_value = 0x00;
key_count = 0;
}
retunt key_value;
}
void led_flash(void)
{
p1=0xff;
delay1s();
p1 = 0x00;
delay1s();
}
void main(void)
{
while(1)
{
if(key()==0x01)
{
if(key() == 0x02)
{
flash_count = 5;
}
else
{
}
}
else
{
number_index ++
if( number_index>10)
number_index = 0;
}
p0=number_buff[number_index];
if(flash_count>0)
{
led_flash();
flash_count --;
}
}
}
int key_value;
void delay1s(void)
{
unsigned char h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);
}
int key(int)
{
int key_count;
if(p3.0==0)
{
key_count++;
if(p3.0==0)&(key_count>10)
{
key_value = 0x01;
key_count = 0;
}
}
else if(p3.1==0)
{
key_count++;
if((p3.1==0)&(key_count>10))
{
key_value = 0x02;
key_count = 0;
}
}
else
{
key_value = 0x00;
key_count = 0;
}
retunt key_value;
}
void led_flash(void)
{
p1=0xff;
delay1s();
p1 = 0x00;
delay1s();
}
void main(void)
{
while(1)
{
if(key()==0x01)
{
if(key() == 0x02)
{
flash_count = 5;
}
else
{
}
}
else
{
number_index ++
if( number_index>10)
number_index = 0;
}
p0=number_buff[number_index];
if(flash_count>0)
{
led_flash();
flash_count --;
}
}
}
追问
大哥,能加点注释不?这门课肯定不喜欢得,所以没怎么学,所以你的懂的,帮人帮到底吧。
追答
其实我这个就是个思路,如果再加调试的话,就完全可以实现的!如果要答案,还是抄袭吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好外面挂个语音芯片,这样就好做,单片机输出电流太小,驱动不了喇叭。
更多追问追答
追问
必须用编程来实现,硬件是不行的。其实就是两个中断问题,但是我不会。
追答
不同的歌,程序不一样,不会是送给女友的吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要耗费好长时间,每一个晚上做不出来,你自己试着做做 遇到不懂再问问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询