[51单片机] c8051f021反复复位,无法下载。

[复制链接]
1869|4
 楼主| calpyso 发表于 2015-8-21 15:17 | 显示全部楼层 |阅读模式
使用的是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);
                }
        }

}
 楼主| calpyso 发表于 2015-8-21 15:19 | 显示全部楼层
这是原理图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| calpyso 发表于 2015-8-21 15:21 | 显示全部楼层
刚才传错了。这是原理图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ningling_21 发表于 2015-8-21 15:45 | 显示全部楼层
calpyso 发表于 2015-8-21 15:21
刚才传错了。这是原理图

复位端上下变化有可能是U17发出的复位信号,先断开U17试试
 楼主| calpyso 发表于 2015-8-21 16:20 | 显示全部楼层
ningling_21 发表于 2015-8-21 15:45
复位端上下变化有可能是U17发出的复位信号,先断开U17试试

断开u17,直接用电容和vcc相连接。还是出现反复复位的情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部