我在程序中如下写,
烧了一次之后就烧录不了,
int main()
{
Init_MCU();
Send_RS232_PC_Byte(0x01);
Send_RS232_PC_Byte(0xa1);
while(1){
;
}
return 0;
}
void INT0_PRG() interrupt 0
{
if (TH0 > 0x13){ //开始
IRByteCount = 0;
IRBitCount = 0;
Send_RS232_PC_Byte(TH0);
}else if(( TH0 < 0x10)&&(TH0 > 0x03)){
Send_RS232_PC_Byte(TH0);
}
}
TH0 = 0x00; //Clear Counter
TL0 = 0x00;
}
重新换一个mcu(51核)就可以烧了,
现在有点疑惑,1,是不是我这样写上mcu不能再烧了,还是有其他原因,(程序应该还是在跑,因为我开启了外中断,并在外中断中打印数据到串口中,)
2,以前只知道用烧录口的第二功能的话,烧一次下次这个烧录口就不能用了,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
if (TH0 > 0x13){
Send_RS232_PC_Byte(TH0);
IRByteCount = 0;
IRBitCount = 0;
}else if(( TH0 < 0x10)&&(TH0 > 0x03)){
Send_RS232_PC_Byte(TH0);
/*
IRShift = IRShift >> 1; //右移一位,接收低电平在前
if (TH0 > 0x07){
//Send_RS232_PC_Byte(TH0);
IRShift = IRShift | 0x80; //检测电平时间超过0x0d就确定为 1 或运算;只要有一个为1就为1
}else{
//Send_RS232_PC_Byte(TH0);
IRShift = IRShift & 0x7f; //参与运算的两个位都为1则为1
}
IRBitCount++;
if (IRBitCount == 7){
IRBuff[IRByteCount] = IRShift;
IRShift = 0;
IRByteCount++;
#if(_FLAG)
Send_RS232_PC_Byte(IRBuff[0]);
//Send_RS232_PC_Byte(0x01);
#endif
}
if(IRBitCount == 11){
IRBuff[IRByteCount] = IRShift;
IRShift = 0;
IRByteCount++;
#if(_FLAG)
Send_RS232_PC_Byte(IRBuff[1]);
//Send_RS232_PC_Byte(0x02);
#endif
} */
}
TH0 = 0x00;
TL0 = 0x00;
确切地说是加了上面的代码mcu就烧不了,
是注式掉的那部分加上就不能烧录了,
降不住·····
资料头大····
运行不能准确预测结果····
我买了好几片都在那里放着····
楼主看你已经好几片不能用了,把我的几片也卖给你吧,便宜点
烧不了 我指下载不了新程序进去,也不能擦除以前的,
我用的不是STC,若按你的方法命令反过来的话,烧不了,
一周热门 更多>