51单片机,怎么样使蜂鸣器响一下,流水灯闪烁一个。

我也能写,但是蜂鸣器声音的频率不会调。声音很低····就是相当于只给蜂鸣器单独加一个延时程序,使流水灯不去执行这个延时程序。怎么加呢。我的QQ15182829 大神求教啊

如果是普通的蜂鸣器的话,是没法通过频率来改变其音质音量的,是扬声器的话可以通过调整频率来改变其发生,下面是一个我做的例子,模拟电子琴,你试试。
T0H EQU 30H
T0L EQU 31H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
SETB ET0
SETB EA
LOOP:
MOV DPTR,#FREQ
MOV A,P2
MOV R1,#0 //高位键未按下基址=0
ANL A,#03H
JB ACC.0,LOOP01
MOV R1,#14 //中音键按下基址=14
SJMP LOOP0
LOOP01:
JB ACC.1,LOOP0
MOV R1,#28 //高音键按下基址=28
LOOP0:
JB P0.0,LOOP1
MOV A,R1 //“1”键按下
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP1:
JB P0.1,LOOP2
MOV A,R1 //“2”键按下
ADD A,#2
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#2
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP2:
JB P0.2,LOOP3
MOV A,R1 //“3”键按下
ADD A,#4
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#4
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP3:
JB P0.3,LOOP4
MOV A,R1 //“4”键按下
ADD A,#6
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#6
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP4:
JB P0.4,LOOP5
MOV A,R1 //“5”键按下
ADD A,#8
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#8
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP5:
JB P0.5,LOOP6
MOV A,R1 //“6”键按下
ADD A,#10
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#10
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP6:
JB P0.6,LOOP7
MOV A,R1 //“7”键按下
ADD A,#12
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#12
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP7:
CLR TR0
LJMP LOOP
;-----------------------------
T0ISR:
CLR TR0
MOV TH0,T0H
MOV TL0,T0L
SETB TR0
CPL P3.0
RETI
;-----------------------------
FREQ:
DB 0F2H,03DH ;低音1
DB 0F3H,0BDH ;低音2
DB 0F5H,014H ;低音3
DB 0F5H,0B1H ;低音4
DB 0F6H,0D0H ;低音5
DB 0F7H,0D1H ;低音6
DB 0F8H,0B5H ;低音7
DB 0F9H,01EH ;中音1
DB 0F9H,0DEH ;中音2
DB 0FAH,08AH ;中音3
DB 0FAH,0D8H ;中音4
DB 0FBH,068H ;中音5
DB 0FBH,0E8H ;中音6
DB 0FCH,05AH ;中音7

DB 0FCH,08FH ;高音1
DB 0FCH,0EFH ;高音2
DB 0FDH,045H ;高音3
DB 0FDH,06CH ;高音4
DB 0FDH,0B4H ;高音5
DB 0FDH,0F4H ;高音6
DB 0FEH,029H ;高音7
;-----------------------------
END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-23
是不是说因为延时,互下影响了,能不能这样:蜂鸣器响声,开定时器TR0=1,则在定时中断里开关这个脚,另外,如果流水灯用了定是器,也想和它共用,则要响的时候标志为1,在定时中断里,如果标志为1,则计数++,到了一定的数值关标志,标志的开关,也就是它的声音开关
。我用这个也一个定时器,控闪和流水灯,没影响过本回答被提问者采纳
第2个回答  2012-07-23
加一个比较器,然后判断高低电平。
相似回答