求c51单片机程序,关于蜂鸣器控制,最好附带程序说明,晶振暂定12MHz

题目是:控制蜂鸣器发出”嘀、嘀。。。。“报警声,报警声从P1.3端口输出,产生频率为2.5KHz,声长1.1秒,间隔1秒。
使用汇编语言编写

;

;晶振12MHz
;控制蜂鸣器发出"嘀、嘀。。。。"报警声,报警声从P1.3端口输出

;产生频率为2.5KHz,声长1.1秒,间隔1秒。

ORG 0000H
JMP MAIN
ORG 000BH
JMP T0_INT
MAIN:
MOV TMOD, #02H
MOV TH0, #56
MOV TL0, #56
SETB TR0
MOV IE, #82H
MOV R2, #100
MOV R3, #50
SJMP $

T0_INT:
JNB F0, NO
CPL P1.3
DJNZ R2, EXIT
MOV R2, #100
DJNZ R3, EXIT
MOV R3, #50
CPL F0
NO:
SETB P1.3
DJNZ R2, EXIT
MOV R2, #100
DJNZ R3, EXIT
MOV R3, #55
CPL F0
EXIT:
RETI

END

本程序,已经经过了测试。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-08
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 001BH
LJMP T1ISR
ORG 0030H
MAIN:
MOV TMOD,#11H
MOV TH0,#HIGH(65536-800)
MOV TL0,#LOW(65536-800)
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB TR0
SETB TR1
SETB ET0
SETB ET1
SETB EA
CLR 00H
MOV R2,#0
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-800)
MOV TL0,#LOW(65536-800)
SETB TR0
CPL P.13
RETI
T1ISR:
CLR TR1
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB TR1
INC R2
JB 00H,T1STOP
MOV A,R2
CJNE A,#22,T101
T101:
JC T1RE
MOV R2,#0
CPL 00H
CLR TR0
RETI
T1STOP:
MOV A,R2
CJNE A,#20,T102
T102:
JC T1RE
MOV R2,#0
CPL 00H
SETB TR0
T1RE:
RETI
END
第2个回答  2013-07-08
P2^3可以不/.
相似回答