打印
[范例教程]

MA82G5BXX仿真口P44,P45切换成IO口

[复制链接]
2128|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
happy静小默|  楼主 | 2019-1-16 13:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注意切换时要在P页操作。
#include <REG_MA82G5B32.H>

void delay(unsigned int t)
{
    unsigned int data i;
    while(t--)
    {
        for(i=0;i<500;i++)
        {
            ;
        }
    }
}


/***********************************************************************
  * Function:Page_P_SFR_Write
  *         
  * Description:  写P页寄存器
  *         
  * Input:     SFR,P页SFR的地址,  dat,要写入的数据
  *
  * Output:    None
  *
  * Return:    None
  **********************************************************************/

void Page_P_SFR_Write(unsigned char SFR,unsigned char dat)
{
    bit EA_tmp = EA;
    EA = 0;
    IFADRH=0X00;
    ISPCR |= 0x80;
    IFMT = 4;
    IFADRL = SFR;
    IFD = dat;
    SCMD = 0X46;
    SCMD = 0XB9;
    IFMT = 0;
    ISPCR &= 0x7f;
    IFADRH = 0XFF;
    EA = EA_tmp;
}

/***********************************************************************
  * Function:Page_P_SFR_Read
  *         
  * Description:  读P页寄存器
  *         
  * Input:     SFR,P页SFR的地址
  *
  * Output:    None
  *
  * Return:    读到的P页SFR寄存器的值
  **********************************************************************/

unsigned char Page_P_SFR_Read(unsigned char SFR)
{
    bit EA_tmp = EA;
    EA = 0;
    IFADRH=0X00;
    ISPCR |= 0x80;
    IFMT = 5;
    IFADRL = SFR;
    SCMD = 0X46;
    SCMD = 0XB9;
    IFMT = 0;
    ISPCR &= 0x7f;
    IFADRH = 0XFF;
    EA = EA_tmp;
    return IFD;
}


void main(void)
{
    unsigned char tmp;
   
    tmp=Page_P_SFR_Read(0x4c);      //读DCON0(P页寄存器0X4C)
    Page_P_SFR_Write(0x4c,tmp&0xFC);//切换P44,P45为IO。由于P44,P45默认为仿真口,
                                    //要做为普通IO时写DCON0, 清零bit0  OCDE=0; P44,P45,P47为IO
   
    while(1)
    {
        P44=~P44;
        P45=~P45;
        delay(1000);
    }
}
沙发
happy静小默|  楼主 | 2019-1-23 11:10 | 只看该作者
大家要注意:
因为切换成GPIO之后,就无法进行仿真,如继续仿真,keil就会提示相应的错误。
如果使用者没有用U1 Writer,只有Megawin ICE仿真器,需要照下列步骤,才能恢复:
1、先断电
2、按住Reset不放
3、上电
4、执行ICPProgrammer,不载入任何程序,直接按下“更新目标芯片”
5、放开Reset。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

16

帖子

0

粉丝