使用的是c8051f021单片机和u-ec6的仿真器,前面几次可以正常下载。但是后面就不行了。在程序中写了关闭看门狗和使用外部晶振。在下载成功之后使用示波器观察可以看到外部晶振起振。
再次下载会出现擦除flash失败的字样。
另外是示波器观察rst管脚,电平一直在上下变化,这该怎么解决。
代码
uchar code tab[]={0xc0,0xf9,0xa4,0xb0};
void Init()
{
//禁止看门狗
WDTCN = 0xDE;
WDTCN = 0xAD;
//设置并选用外部晶振
OSCXCN = 0x67;
while((OSCXCN & 0x80) ==0);
OSCICN |= 0x08;
//Crossbar配置
XBR0 = 0x04;
XBR1 = 0;
XBR2 = 0x42;
//输出驱动方式配置
P0MDOUT = 0xFF;
P1MDOUT = 0xFF;
P2MDOUT = 0xFF;
//P3MDOUT = 0xFF;
//EMIF配置
EMI0CF = 0x1C;
//EMI0TC = 0xFF;
}
void PORT_Init(void)
{
XBR2=0x40;
P0MDOUT=0xff;
}
void delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<121;y++);
}
void main(void)
{
uchar i;
Init();
PORT_Init();
while(1)
{ for(i=0;i<10;i++)
{
P0=tab[i];
delay(5000);
}
}
}
|