我写了这个程序以后感觉很简单,但是就是不行,我写程序也能写进去,单片机型号为STC11F01E,用内部晶振,我单片机就接了三根线,VCC,GND,和P1.5, 烧程序的时候,需要用ISP,打开hex文件,显示说超出部分已被去除,其他的没什么情况
#include"reg51.h"
#include"intrins.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define FOSC 6000000L
#define T1MS (65536-FOSC/1000)
sfr AUXR=0x8e;
sfr CLK_DIV=0x97;
sbit TEST_LED = P1^5;
WORD count=1000;
WORD innercount=300;
void T0_isr() interrupt 1 using 1
{
TL0= T1MS;
TH0=T1MS>>8;
if(count--==0)
{
count=1000;
if(innercount--==0)
{
TEST_LED=!TEST_LED;
innercount=300;
}
}
}
void main()
{
AUXR=0x80;
CLK_DIV=0x00;
TMOD=0x01;
TL0=T1MS;
TH0=T1MS>>8;
TR0=1;
ET0=1;
EA=1;
while(1);
}
我的设计思想如下,单片机的P15口通过一个1K的电阻(外部没上拉)连接到一个NPN三极管,通过控制三极管的通断,来控制继电器的吸合与关断,即P15为1继电器线圈吸合,P15为0继电器断开,程序设置P15为推挽输出,每3000次进入定时器中断,即5分钟(300s),改变下P15的状态,如果原来为1变为0,如果为0则为1,但是程序运行后,问题出现了:每隔三百秒,继电器可以瞬间吸合一下,然后又瞬间断开,P15不能维持高电平,麻烦帮忙看看了
追答可以Q我 402619389