题目1:报警信号,高分求助!!!

题目1:报警信号用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行。P1.7接一开关进... 题目1:报警信号用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行。P1.7接一开关进行控制,当开关合上响警报信号,当开关断开警告信号停止。
我不要百度已有的,要有中断系统,
每句后面有解析的,AT89C51的
回答后额外提高悬赏
展开
zhxiufan
2012-07-07 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38398
国家科技进步奖

向TA提问 私信TA
展开全部
#include<reg51.h>
unsigned char freqh,freql,time;
void t0isr() interrupt 1
{
TH0=freqh; //重新装载计数初值
TL0=freql;
if(P1.7==0)P1.0=~P1.0; //如果键按下,P1.0发脉冲
}
void t1isr() interrupt 3
{
TH0=(65536-50000)/256; //50毫米定时器初值
TL0=(65536-50000)%256;
time++; //50毫秒计数加1
if(time>5)time=0; //300毫秒时计数复位
}
main()
{
TMOD=0x11; //定时器工作于16位模式
TH0=(65536-500)/256; //1K
TL0=(65536-500)%256;
TH1=(65536-50000)/256; //50ms
TL1=(65536-50000)%256;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
while(1)
{
if(time==0) //time为0时,赋值1K频率
{
freqh=(65536-500)/256;
freql=(65536-500)&256);
}
else if(time==2) //time为2即100ms到时赋值500Hz
{
freqh=(65536-1000)/256;
freql=(65536-1000)%256;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辞不达意lxw
2012-07-09
知道答主
回答量:7
采纳率:0%
帮助的人:6.5万
展开全部
答案已发送邮箱!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式