unsigned char BPFlag = 0; void Deel_Beep() { static unsigned char BPSign = 0; switch(BPFlag) { case 0: //-------不响 BZ = 0; break; case 1: //-------长响 BZ = 1; BPSign ++; if(BPSign>5) { BPSign = 0; BPFlag = 0; BZ = 0; } break; case 2: //-------双响 switch(BPSign) { case 0: BZ = 1; BPSign++; break; case 1: BZ = 0; BPSign++; break; case 2: BZ = 1; BPSign++; break; default: BZ = 0; BPSign = 0; BPFlag = 0; break; } break; case 3: //-------短响 BZ = 1; BPSign ++; if(BPSign>1) { BPSign = 0; BPFlag = 0; BZ = 0; } break; case 4: //-------双响 switch(BPSign) { case 0: BZ = 1; BPSign++; break; case 1: BZ = 0; BPSign++; break; case 2: BZ = 1; BPSign++; break; case 3: BZ = 0; BPSign++; break; case 4: BZ = 1; BPSign++; break; default: BZ = 0; BPSign = 0; BPFlag = 0; break; } break; } } |
兴安xa 发表于 2022-6-3 20:46 打扰一下,大佬可以帮忙看看我的第二个主题该如何修改吗 |
兴安xa 发表于 2022-6-3 20:46 好的,非常感谢! |
不要黑 发表于 2022-6-3 18:47 但是这些引脚的高低电平一直在变化。 |
在中断里找到标志位1,在下面添加上buzz=0;即可,标志位2也一样,要停止鸣响,在主函数里添加一个按键程序 if(sec_1==0&&min_1==0) { flag1=0; buzz=0; k1=0; } 主函数里写 if(key4==0) { buzz=1; } 当然还在先定义按键和BUZZ sbit key4=P3^5; sbit buzz=P1^0; |
同意楼上说的,可以用有源蜂鸣器和一个三极管来实现,注意NPN或PNP三极管,蜂鸣器摆放的位置不同,可百度查询 |
蜂鸣器建议选有源的,这样加个三极管就可以直接用引脚高低电平控制了。 |