51单片机定时器中断方式实现P1.0输出周期1s的方波的方法

 我来答
www_zhanglei
2010-06-22 · TA获得超过143个赞
知道答主
回答量:88
采纳率:0%
帮助的人:59.6万
展开全部
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的
#include <reg52.h>
sbit p1_0=P1^0;
int i; //全局变量

void timing(void) //晶振为3.6864M
{
TMOD|=0x01; //定时器T0,工作方式1
TH0=0xC3;
TL0=0xC7; //这两个寄存器存的是计数器的计数开始的值,这两个值累加至溢出后正好是50ms
ET0=1; //使T0中断可以溢出
EA=1; //开启总中断
TF0=0; //溢出位清零
TR0=1; //开启T0
}
/********定时中断函数*********/
void time0_int () interrupt 1 //定时中断函数
{
TH0=0xC3;
TL0=0xC7;
i++;
}

main()
{
i=0;
timing();
while(;)
{
if(i==20)
{
p1_0=~p1_0; //p1.0口状态翻转
i=0;
}
}
}
百度网友90e40b1
2010-06-20 · TA获得超过429个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:58.7万
展开全部
让定时器每0.5秒进入一次中断。
每进入一次中断,就改变一次P1.0的电平状态。
这样你用示波器看到的P1.0就是周期1秒的方波了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
20078004058
2010-06-20 · TA获得超过673个赞
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:287万
展开全部
有几种方法,可以用89S52的定时器2工作在始终输出模式。最高频率可达晶振的1/4,还可以用任何一个定时器定时一秒,中断里写P1.0取反的程序就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lsy_forever
2010-06-20 · TA获得超过400个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:196万
展开全部
这是个基本的啊……查查电子钟的程序,把定时中断摘出来。获取知识的过程是要有的,不能指望现成的一模一样的程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式