本文目录一览:
单片机都是死循环的,总是在while 1 里面反复执行。程序执行速度很快,可能一秒钟就把这个子函数调用了几千遍
如果是单步调试的话,可能是IO口刚好是在让蜂鸣器响的状态
可以用定时器的计数模式,也可以直接定义一个变量,让这个变量循环加1,当超出预设值时,执行下蜂鸣器响的函数就ok了
在main里面加入
//适合有源蜂鸣器
while(1)
{
P1.0=1;//或=0,根据外围电路决定
}
//适合无源蜂鸣器
sbit fmq = P1^0;
while(1)
{
fmq=~fmq1;
delay_ms(10);//这个延时时间自己定义了,根据无源蜂鸣器的响应频率
}
keil里面对于P口的单独引脚不能直接赋值,需要用sbit P0^7 = FMQ; 单独定义P口引脚一个变量名。
你好!
那这个要采用时钟芯片作为时钟源,然后通过驱动蜂鸣器完成整点报时