电子游戏平台接口游戏: [范例教程] MA82G5BXX仿真口P44,P45切换成IO口

海天娱乐注册登入
974|1
楼主
注意切换时要在P页操作。
  1. #include <REG_MA82G5B32.H>

  2. void delay(unsigned int t)
  3. {
  4.     unsigned int data i;
  5.     while(t--)
  6.     {
  7.         for(i=0;i<500;i++)
  8.         {
  9.             ;
  10.         }
  11.     }
  12. }


  13. /***********************************************************************
  14.   * Function:Page_P_SFR_Write
  15.   *         
  16.   * Description:  写P页寄存器
  17.   *         
  18.   * Input:     SFR,P页SFR的地址,  dat,要写入的数据
  19.   *
  20.   * Output:    None
  21.   *
  22.   * Return:    None
  23.   **********************************************************************/

  24. void Page_P_SFR_Write(unsigned char SFR,unsigned char dat)
  25. {
  26.     bit EA_tmp = EA;
  27.     EA = 0;
  28.     IFADRH=0X00;
  29.     ISPCR |= 0x80;
  30.     IFMT = 4;
  31.     IFADRL = SFR;
  32.     IFD = dat;
  33.     SCMD = 0X46;
  34.     SCMD = 0XB9;
  35.     IFMT = 0;
  36.     ISPCR &= 0x7f;
  37.     IFADRH = 0XFF;
  38.     EA = EA_tmp;
  39. }

  40. /***********************************************************************
  41.   * Function:Page_P_SFR_Read
  42.   *         
  43.   * Description:  读P页寄存器
  44.   *         
  45.   * Input:     SFR,P页SFR的地址
  46.   *
  47.   * Output:    None
  48.   *
  49.   * Return:    读到的P页SFR寄存器的值
  50.   **********************************************************************/

  51. unsigned char Page_P_SFR_Read(unsigned char SFR)
  52. {
  53.     bit EA_tmp = EA;
  54.     EA = 0;
  55.     IFADRH=0X00;
  56.     ISPCR |= 0x80;
  57.     IFMT = 5;
  58.     IFADRL = SFR;
  59.     SCMD = 0X46;
  60.     SCMD = 0XB9;
  61.     IFMT = 0;
  62.     ISPCR &= 0x7f;
  63.     IFADRH = 0XFF;
  64.     EA = EA_tmp;
  65.     return IFD;
  66. }


  67. void main(void)
  68. {
  69.     unsigned char tmp;
  70.    
  71.     tmp=Page_P_SFR_Read(0x4c);      //读DCON0(P页寄存器0X4C)
  72.     Page_P_SFR_Write(0x4c,tmp&0xFC);//切换P44,P45为IO。由于P44,P45默认为仿真口,电子游戏平台接口游戏:
  73.                                     //要做为普通IO时写DCON0, 清零bit0  OCDE=0; P44,P45,P47为IO
  74.    
  75.     while(1)
  76.     {
  77.         P44=~P44;
  78.         P45=~P45;
  79.         delay(1000);
  80.     }
  81. }
复制代码
沙发
 楼主 | 2019-1-23 11:10 | 只看该作者
大家要注意:
因为切换成GPIO之后,就无法进行仿真,如继续仿真,keil就会提示相应的错误。
如果使用者没有用U1 Writer,只有Megawin ICE仿真器,需要照下列步骤,才能恢复:
1、先断电
2、按住Reset不放
3、上电
4、执行ICPProgrammer,不载入任何程序,直接按下“更新目标芯片”
5、放开Reset。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

海天娱乐注册登入 快速回复 永利游戏开户直营 返回列表
宾王娱乐城电子游戏 come娱乐城 时时彩投注平台登入 菲律宾申博直属官网注册彩金官网 澳门黄金城广水信息
世博平台注册 青娱乐官网 银泰天津时时彩计划软件 诈金花游戏 pt三个朋友
恐龙快打双人无敌版 辉哥印刷图库 申博现金网客服 hb美国扑克50手 www.678msc.com现金网登入
老k游戏手机版登入 博采网haobc 银河官网登入 聚彩娱乐开户 万利彩官网