求助:单片机问题
本人用的芯片是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--;
}
软件没有问题,请问那位高手遇到过这样的问题
有加分! 展开
例:这样的程序也无法正常执行,只能正常两秒左右,就不执行了
#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--;
}
软件没有问题,请问那位高手遇到过这样的问题
有加分! 展开
5个回答
展开全部
粗看是程序问题
注意最后中断中i--;后的结果,和堆栈的配置及中断入口数据保护,
硬件没问题
你用汇编随便写个试试一定可以,硬件不会出这种问题(强调:一定不要怀疑硬件)
最大的问题可能在:1、刚说的堆栈,及栈保护问题;2、很小的可能在编译器上,但很小!
注意最后中断中i--;后的结果,和堆栈的配置及中断入口数据保护,
硬件没问题
你用汇编随便写个试试一定可以,硬件不会出这种问题(强调:一定不要怀疑硬件)
最大的问题可能在:1、刚说的堆栈,及栈保护问题;2、很小的可能在编译器上,但很小!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按下面的试下,不行加我的百度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--;
}
#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--;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你如何排除软件的问题呢?
这是全部的代码吗
这是全部的代码吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void main()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0x3C;
TL0=0xB0;
i=0x14;
TR0=1; 放这试下
while(1);
}
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0x3C;
TL0=0xB0;
i=0x14;
TR0=1; 放这试下
while(1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询