用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz方波信号响100ms

发布时间:2021-02-26 00:36:41

用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz方波信号响100ms,500Hz方波信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上报警信号响,当开关断开报警信号停止,编出程序.单片机晶振频率为12MHz.

网友回答

选用定时计数器T1工作与定时方式1,定时1ms(1KHz)和2ms(500Hz)机器周期为
1ms:定时器初值TC= D=FC18H
所以:TH1=0FCH,TL1=18H
2ms:定时器初值TC= D=F830H
所以:TH1=0F8H,TL1=30H
开关合上P1.7输入低电平;方波由P1.0引脚输出,具体主程序及中断服务程序如下:
FLAG BIT 20H.0
ORG 00H
LJMP START
ORG 1BH
LJMP INT_T1
ORG 0100H
START:MOV TMOD,#10H
MOV TH1,#0FCH
MOV TL1,#18H
SETB ET1
SETB EA
SETB P1.7
MOV R7,#100
CLR FLAG
LOOP:CLR TR1
JB P1.7,$
SETB TR1
JNB P1.7,$
SJMP LOOP
INT_T0:JB FLAG,YS_200Ms
MOV TH1,#0FCH
MOV TL1,#18H
SJMP T0_1
YS_200Ms :MOV TH1,#0F8H
MOV TL1,#30H
DJNZ R7,T0_END
MOV R7,#100
CPL FLAG
T0_END:CPL P1.0
RETI======以下答案可供参考======
供参考答案1:这还不简单,比如你程序先给个高电平,1KHz就延时100ms,500Hz就延时200ms,用循环让它循环不就可以了
以上问题属网友观点,不代表本站立场,仅供参考!