永发信息网

单片机AT89C51编汇报警信号:用P1.0输出1KHz和2KHz的音频信号驱动扬声器,作报警信。

答案:3  悬赏:0  手机版
解决时间 2021-04-02 20:51
  • 提问者网友:人傍凄凉立暮秋
  • 2021-04-02 13:44
单片机AT89C51编汇报警信号:用P1.0输出1KHz和2KHz的音频信号驱动扬声器,作报警信。
最佳答案
  • 五星知识达人网友:轻雾山林
  • 2021-04-02 15:19
#include
#define uchar unsigned char
uchar th1,tl1,th2,tl2;
uchar cnt;
bit flag;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
sbit pluse=P1^0;
if(cnt>=10)
{
cnt=0;
flag=~flag;
}
}
void t1isr() interrupt 3
{
if(flag)
{
TH1=(65536-500)/256;
TL1=(65536-500)/256;
}
else
{
TH1=(65536-250)/256;
TL1=(65536-250)/256;
}
pluse=~pluse;
}
main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-500)/256;
TL1=(65536-500)%256;
flag=1;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
EA=1;
while(1);
}
全部回答
  • 1楼网友:行路难
  • 2021-04-02 17:17
用一个定时器,足矣。
  • 2楼网友:迟山
  • 2021-04-02 15:58
;用P1.0输出1KHz和500Hz的音频信号驱动扬声器, ;要求1KHz信号响100ms,500Hz信号响200ms,交替进行. ORG 0000H JMP MAIN ORG 0030H MAIN: CALL BP1K CALL BP500 SJMP MAIN ;------------------------- BP500: MOV R6, #200 BP50: CPL P1.0 CALL DL500US CALL DL500US DJNZ R6, BP50 RET ;------------------------- BP1K: MOV R6, #200 BP10: CPL P1.0 CALL DL500US DJNZ R6, BP10 RET ;------------------------- DL500US: MOV R7, #247 DJNZ R7, $ RET ;------------------------ END 上述程序经过实验,可以满足题目要求。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯