求助:单片机问题

本人用的芯片是89S51的开发板做实验,程序能正常的写入,但是工作不正常,出现个奇怪的故障,基本排除开发板的问提,现象是:比如做一个P1.0口做一个每隔一秒取反一次的实验... 本人用的芯片是89S51的开发板做实验,程序能正常的写入,但是工作不正常,出现个奇怪的故障,基本排除开发板的问提,现象是:比如做一个P1.0口做一个每隔一秒取反一次的实验,只能输出两次(取反两次),然后LED就不正常了,软件写的没有问题,是否是单片机的问题,有没有高手们遇到过哪怕就简单的程序也会出这个问题:

例:这样的程序也无法正常执行,只能正常两秒左右,就不执行了

#include <reg51.h>
sbit P1_0=P1^0;
unsigned char i;
void main()
{
EA=1;
ET0=1;
TMOD=0x01;
TR0=1;
TH0=0x3C;
TL0=0xB0;
i=0x14;
while(1);
}
void timer0() interrupt 1
{
TH0=0x3C;
TL0=0xB0;
while(i==0)
{
i=0x14;
P1_0=!P1_0;
}
i--;

}

软件没有问题,请问那位高手遇到过这样的问题
有加分!
展开
 我来答
zhidao_ceo
2008-10-04 · TA获得超过993个赞
知道小有建树答主
回答量:345
采纳率:0%
帮助的人:331万
展开全部
粗看是程序问题
注意最后中断中i--;后的结果,和堆栈的配置及中断入口数据保护,
硬件没问题

你用汇编随便写个试试一定可以,硬件不会出这种问题(强调:一定不要怀疑硬件)
最大的问题可能在:1、刚说的堆栈,及栈保护问题;2、很小的可能在编译器上,但很小!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
生活爱知道
高能答主

2008-10-07 · 把复杂的事情简单说给你听
知道答主
回答量:290
采纳率:78%
帮助的人:40.6万
展开全部
按下面的试下,不行加我的百度HI

#include <reg51.h>
sbit P1_0=P1^0;
unsigned char i;
void main()
{
i=0x14;
ET0=1;
TMOD=0x01;
TR0=1;
TH0=0x3C;
TL0=0xB0;
EA=1;
while(1);
}
void timer0() interrupt 1
{
TH0=0x3C;
TL0=0xB0;
if(i==0)
{
i=0x14;
P1_0=!P1_0;
}
i--;

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狈让炮bpd96
2008-10-04 · TA获得超过4971个赞
知道大有可为答主
回答量:2451
采纳率:0%
帮助的人:2701万
展开全部
你如何排除软件的问题呢?
这是全部的代码吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
生活营口
2008-10-06 · TA获得超过187个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:266万
展开全部
void main()
{
EA=1;
ET0=1;
TMOD=0x01;

TH0=0x3C;
TL0=0xB0;
i=0x14;
TR0=1; 放这试下
while(1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
还需继续努力
2008-10-04
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
我也不会!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式