AT89C52单片机 蜂鸣器响一秒停0.5秒 速求 c语言

 我来答
greatway000
2012-01-06 · TA获得超过362个赞
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:183万
展开全部
#include <reg51.h>

typedef unsigned char BYTE; // 数据范围0-255
typedef unsigned int WORD; // 数据范围0-65535
typedef bit BOOL ; // 数据范围0-1

sbit BUZZ = P0^0;
WORD count,flag;

void timer0() interrupt 1
{
TH0=(65535-46080)/256;
TL0=(65536-46080)%256; // 重新载入延时时间,如果晶振为12M, 则为被减数则为50000

count++;

if(count==10) // 11.0592 晶振精确延时0.5秒
{ flag++;
if (flag==1)
{BUZZ=0; }
else if (flag==3)
{BUZZ=1; flag=0; }
count=0;
}
}

/* 主程序 */
/********************************/
main()
{
TMOD=0x01; // 定时器工作在方式1
TH0=(65536-46080)/256;
TL0=(65536-46080)%256; // 载入定时器初值
ET0=1; // 开定时器0 中断
EA=1; // 开总中断
TR0=1; // 定时器0工作
flag=0;
while(1);
}
更多追问追答
追问
52单片机  不是51单片机
追答
一样用
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
想当诸侯的小蚂蚁
2012-01-06 · TA获得超过344个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:144万
展开全部
用定时器啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知识浪
2012-01-06 · 超过13用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:35.6万
展开全部
这个重点在于定时,你写两个延时函数,或是用定时器,自己试一下吧,很简单的
追问
不会啊  就会响一秒停一秒
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式