标题:
单片机串口控制灯,结果加了看门狗后,就烧录不了别的程序了
[打印本页]
作者:
koke
时间:
2020-4-7 14:14
标题:
单片机串口控制灯,结果加了看门狗后,就烧录不了别的程序了
用stc89c52单片机做了一个串口控制灯,结果加了看门狗后,就烧录不了别的程序了,大神帮忙看一下问题出在哪里
#include<reg52.h>
sfr WDT_CONTR=0xe1;
sbit beep=P1^5;
sbit G_led=P1^2;
sbit B_led=P1^3;
sbit R_led=P1^4;
sbit timekey=P3^2;
static unsigned char Rdata;
void delay(unsigned int a) //1ms
{
unsigned int i;
while(--a!=0)
{
for(i=0;i<1000;i++);
}
}
void timer0init()
{
TMOD|=0X09;
TH0=0XFF;
TL0=0X9C;
ET0=1;
EA=1;
TR0=1;
}
void UART_init()
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TH1=0XCC;
TL1=0XCC;
ES=1;
EA=1;
TR1=1;
}
void main()
{
WDT_CONTR=0x35;
timekey=0;
R_led=0;
G_led=1;
B_led=0;
beep=0;
UART_init();
timer0init();
while(1)
{
delay(100);
WDT_CONTR=0x35;
}
}
void Usart() interrupt 4
{
Rdata=SBUF;
switch(Rdata)
{
case'1':B_led=0;G_led=1;R_led=0;beep=0;timekey=0;break;
case'2':B_led=1;G_led=0;R_led=0;beep=0;timekey=0;break;
case'3':B_led=0;G_led=0;R_led=1;timekey=1;break;
}
RI=0;
SBUF=Rdata;
while(!TI);
TI=0;
}
void Timer0() interrupt 1
{
static unsigned int i;
static unsigned int j;
TH0=0XFF; //?????????????????1ms
TL0=0X9C;
i++;
j++;
if(i==5000)
{
i=0;
R_led=~R_led;
}
if(j==5000)
{
j=0;
beep=~beep;
}
}
作者:
man1234567
时间:
2020-4-15 15:08
楼主的语文是数学师傅教的。
加入看门狗是软件设置,狗只在程序运行中才工作,现有的烧录软件没可能识别程序中有没有启动狗。
能不能烧录是硬件问题,只要通过编译的程序(用特殊软件无需通过但不保证使用)都可以烧录,不能烧录的情况出现后一般可能是硬件出问题了要看报错情况查原因。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1