求助:单片机开发板问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:13:30
本人用的芯片是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--;
}

定时器的设置有问题!!
你的定时中断标志是否清0,在中断子程序中!!!!
其次,你要看你的定时时间是否设为自动加载。自动加载即为你不需要给定时器再次给时间值,它将会自动加载时间。
非自动加载那就需要你在中断开始的时候要给它再次人工赋值,你不给它赋值的话它的时间中断结束后的时间,再次中断的话时间那肯定是不准的!!!

定时器中断中当标志到了1秒时有没有清零
定时器是否是自动重载模式

你的寄存器或累加器没有清零哦!

此需要结合程序,请将程序复制出来看看.

三楼说的不对,定时器在中断模式下是自动清标志位的!还有它明明已经是方式1了,怎么还能说是自动装载呢,要知道方式2是自动装载!