我始终搞不懂中断定时器是怎样改变蜂鸣器的发音频率的,假如P3^7是控制蜂鸣器的。beep=P3^7; beep=!beep;这个地方为什么要取非,这样有什么好处?先谢了!!!!
发音是蜂鸣器振动引起的,而振动则是对蜂鸣器电压断通引发的,控制电压的频率就是蜂鸣器振动的频率,取非则是对电压控制的断通控制,先是1,非后是0,再非又继续循环。追问
是不是电压通他就响,电压断就不响?要是这样的话,也只能决定它响的时间长短,比如响”多“这个音,响一秒,或者响两秒。但是是哪部分程序让它响其它音调的音呢?
追答有两种蜂鸣器,一种无源蜂鸣器吗,一种是有源,有源是指给它通上直流电,它就按本身固有的频率响(本身有震荡电路比如3K),而无源则相反,相当于喇叭,给喇叭通上直流电,是不会响的,需要交变的电压,这就是以上问题的蜂鸣器,这种蜂鸣器的振动频率是外部电路控制的,音调也即是可控的。改变高低电平的频率就是蜂鸣器的频率,可以通过定时器来改变。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-05-30
用一个定时器(计数器)对系统时钟进行计数,当计数满时会有一个中断发生,应该在中断服务中对输出引脚取反(取非)。如果定时器反复计数下去,引脚上就会产生交替变化的高-低-高-低....的信号,这个信号就是供蜂鸣片(或扬声器)发声的音频信号。
第2个回答 2013-05-30
用一个定时器(计数器)对系统时钟进行计数,当计数满时会有一个中断发生,应该在中断服务中对输出引脚取反(取非)。如果定时器反复计数下去,引脚上就会产生交替变化的高-低-高-低....的信号,这个信号就是供蜂鸣片(或扬声器)发声的音频信号。
如果不取反,就没有办法产生高低交变的信号。
改变定时器的计数初值,就可以改变音频信号的频率。本回答被网友采纳
如果不取反,就没有办法产生高低交变的信号。
改变定时器的计数初值,就可以改变音频信号的频率。本回答被网友采纳