BUZZ EQU P3.3
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 0100H
MAIN:
MOV SP,#60H
MOV P1,#0FFH
MOV TMOD,#01H
SETB ET0
SETB EA
CLR TR0
START:
MOV R0,P1
CJNE R0,#0FFH,KEY1
CLR TR0
SJMP START
KEY1:
CJNE R0,#0FEH,KEY2
MOV 30H,#0F8H
MOV 31H,#0E9H
LJMP SET_TIMER
KEY2:
CJNE R0,#0FDH,KEY3
MOV 30H,#0FCH
MOV 31H,#05CH
LJMP SET_TIMER
KEY3:
CJNE R0,#0FBH,KEY4
MOV 30H,#0FCH
MOV 31H,#0C1H
LJMP SET_TIMER
KEY4:
CJNE R0,#0F7H,KEY5
MOV 30H,#0FCH
MOV 31H,#0EFH
LJMP SET_TIMER
KEY5:
CJNE R0,#0EFH,KEY6
MOV 30H,#0FDH
MOV 31H,#045H
LJMP SET_TIMER
KEY6:
CJNE R0,#0DFH,KEY7
MOV 30H,#0FDH
MOV 31H,#092H
LJMP SET_TIMER
KEY7:
CJNE R0,#0BFH,NOKEY
MOV 30H,#0FDH
MOV 31H,#0D6H
SET_TIMER:
SETB TR0
SJMP START
NOKEY:
CLR TR0
SJMP START
INT_T0:
MOV TH0,30H
MOV TL0,31H
CPL BUZZ
RETI
;
END
原理就是按键控制单片机产生不同的频率来控制蜂鸣器。。。。。麻烦你多给点分