原来红绿灯的问题,有时候能够正常工作,有时候就跑飞,本来怀疑是IC插座的问题,把51直接焊到板子上问题依旧。
把程序弄到一个最简单,发现点灯也不正常(长灭,常亮,有时候又能闪),大家帮忙看看。
另外还有一个问题就是我用EP51烧程序,10次只有1次能够烧写成功,不知道咋回事。
最简单代码如下(实在想不出来还有什么问题):
#include <reg52.h>
unsigned char counter_1s;
#define LED_ON 0
#define LED_OFF 1
sbit led_run = P1^3;
void delay(int ms);
void initT0()
{
TMOD = 0x01;
TH0 = 0xD8;
TL0 = 0xF0;
EA = 1; // Enable Switch
ET0 = 1; // T0 inter
TR0 = 1;
}
void main( void )
{
initT0();
P0 = 0;
P1 = 0;
P2 = 0;
counter_1s = 0;
delay(1000);
while(1)
{
}
}
void delay(int ms)
{
int i,j;
for(i = 0; i<ms; ++i)
for(j = 0; j<110; ++j);
}
void interrupt_t0() interrupt 1
{
// 10ms
TH0 = 0xD8;
TL0 = 0xF0;
counter_1s++;
if(counter_1s == 100)
{
counter_1s = 0;
led_run = ~led_run;
}
}
|