b0bset p54 ;响
b0bclr p54 ;关
如果你说的2KHz要单片机产生的话,根据CPU工作时钟用定时器或者指令延时按4KHz产生事件,在事件中取反P54的高低即可产生2KHz的方波驱动蜂鸣器了。
上面的未免有些复杂了,程序就不给了,提供你个思路如何?设置一个寄存器,里面就装#00H即可,每次按键按下自加一,利用二进制代码末尾的0,1特性,每次自加一之后把寄存器里的数值和#01H做乘法,直接判断处理数值是否为零即可,是则KEY为开,不是则KEY为关。自行设计一段程序脉冲,频率自行考虑。(由于蜂鸣器功率不大,建议1K即可)主程序就做个开关检测,利用子程序调用,开则调用子程序,然后自检测开关按键,相信就那几个机器周期是不碍事的。楼主可以自行试试。
有源蜂鸣器都是长鸣固定频率的,只要加5Ⅴ电压就响。要按不同频率发声,应该用无源蜂鸣器,或小功率的扬声器,即小喇叭。利用定时器定时,输出一定频率的方波信号即可。如1KHz方波,信号周期为1ms,定时05ms=500us,假设单片机晶振频率是12M,机器周期是1us,用定时器T0,定时的初始值,X=65536-500=65036=FE0CH,TH0=FEH,TL0=0CH。
汇编程序:
START:MOV TMOD , #01H
SETB TR0
LOOP:MOV TH0 , #0FEH
MOV TL0 , #0CH
JNB TF0 , $
CLR TF0
CPL P17 ; P17输出方波信号
SJMP LOOP
你想要其他频率的信号,可参照上面的计算过程和程序,自己修改一下就成了。
以上就是关于松翰2501B单片机,蜂鸣器驱动程序(汇编语言)谢谢。全部的内容,包括:松翰2501B单片机,蜂鸣器驱动程序(汇编语言)谢谢。、用汇编语言实现无源蜂鸣器,按按键1响一秒,按按键2响两秒,按按键3响3秒,按按键4响四秒!谢谢!!、求一个51单片机上能用的有源蜂鸣器不同频率响的汇编程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)