烧死单片机?

2020-02-02 09:16发布

我在程序中如下写,
烧了一次之后就烧录不了,
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,以前只知道用烧录口的第二功能的话,烧一次下次这个烧录口就不能用了,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
xujianglun1
1楼-- · 2020-02-03 14:08
        if (TF0) TF0 = 0;

        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就烧不了,
是注式掉的那部分加上就不能烧录了,
ZL_electric
2楼-- · 2020-02-03 19:11
STC单片机我受不了·····
降不住·····
资料头大····
运行不能准确预测结果····
我买了好几片都在那里放着····
楼主看你已经好几片不能用了,把我的几片也卖给你吧,便宜点
高鼻子
3楼-- · 2020-02-03 21:39
没有并行编程器编不了的吧? 你用并行的试试
wctmdgcd
4楼-- · 2020-02-04 02:46
 精彩回答 2  元偷偷看……
xujianglun1
5楼-- · 2020-02-04 03:47
谢谢LS的,
烧不了 我指下载不了新程序进去,也不能擦除以前的,
我用的不是STC,若按你的方法命令反过来的话,烧不了,

一周热门 更多>