实现1,让数码管从0-9,在8个数码管上循环显示,时间0,5s
2,让蜂鸣器以1hz频率响数码管工作正常,但是蜂鸣器却不是我想要的效果,它一直响
搭个顺风车再问一个,stc下载程序时,当开发板连接着电脑,看似一切正常,但是一不小心,不知发生了什么,就断开连接,数据线还能给开发板供电,但此时串口却不存在了,不管怎么搞都出不来,或许,重启可以,还有拔了插有时也起作用,不知什么原因,希望有人解答,3q
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void yanshi(uint);
sbit duan=P2^6;
sbit wei=P2^7;
sbit fmq=P1^4;
uchar code tableduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff ,0x6f};
uchar code tablewei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar a,b,c;
void main ()
{
a=b=c=0;TMOD=1;EA=1;ET0=1;TH0=15536/256;TL0=15536%256;TR0=1;
while(1)
{ fmq=1;
yanshi(100); fmq=0; yanshi(100); }
}
void time() interrupt 1
{
TH0=15536/256;TL0=15536%256;a++;
if(a==10)
{ a=0; wei=1; P0=tablewei; wei=0; duan=1; P0=tableduan[c]; duan=0; b++; c++; if(b==8) b=0; if(c==10) c=0;
}
}
void yanshi(uint z)
{
uint d,e;for(d=z;d>0;d++)
for(e=1000;e>0;e++);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
http://bbs.elecfans.com/?fromuid=241693
评分
查看全部评分
{
uint d,e;for(d=z;d>0;d++)
for(e=1000;e>0;e++);
},d和e一直满足大于0的情况,这里是个死循环
while(1)
{ fmq=1;
yanshi(100); fmq=0; yanshi(100); }
}
这里给高电平不是让它不响么。
你这个是设置频率而已啊、
给你看下我这个例子
uint t;
uchar h;
/**********************************************************
函数名称: beep()
函数功能:产生声音
入口参数:无
出口参数:无
备 注:
**********************************************************/
void beep1KHZ() //产生1KHZ频率声音的函数
{
fmq=0;
delay_1us(500);
fmq=1;
delay_1us(500);
}
void FMQ()
{
for(t=0;t<500;t++) //响的时长
{
beep1KHZ();
}
fmq=1; //关闭
delay_1ms(600); //关闭600MS 、再响
}
还有,你的延时函数是死循环,有问题
一周热门 更多>