手持机之键盘篇——ZLG7290

 

#define zlg7290 0x70 //ZLG7290的IIC地址

 

#define SubKey  0x01
#define SubCmdBuf 0x07
#define SubDpRam 0x10
/*********************************************************************************************************
** 函数名称:  DelayNS
** 功能描述:  长软件延时
** 输 入: i : 延时参数,值越大时延时越久
**        
** 输 出: 无
** 全局变量: 无
** 调用模块:  无
**

**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void delayMS(uint32 dly)
{  uint32  i;

   for(; dly>0; dly--)
      for(i=0; i<500; i++);
}

/*********************************************************************************************************
** 函数名称:  ZLG7290_SendData
** 功能描述:  发送数据
** 输 入:SubAdd : 输入数据
**       DATA  : 输入值
**        
** 输 出: 0 : Fail
**        1 :  OK
** 全局变量: 无
** 调用模块:  delayMS

**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data)
{
 if(SubAdd>0x17)
  return 0;
 ISendStr(zlg7290,SubAdd,&Data,1);
 delayMS(10);
 return 1;
}
/*********************************************************************************************************
** 函数名称:  ZLG7290_SendCmd
** 功能描述:  发送命令(对子地址7、8)
** 输 入:DATA1  : 命令1
**       DATA2  : 命令2
**        
** 输 出: 0 : Fail
**        1 :  OK
** 全局变量: 无
** 调用模块:  ISendStr、delayMS
**

**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
{
unsigned char Data[2];
 Data[0]=Data1;
 Data[1]=Data2;
 ISendStr(zlg7290,0x07,Data,2);
 delayMS(10);
 return 1;

/*********************************************************************************************************
** 函数名称:  ZLG7290_SendBuf
** 功能描述:  向显示缓冲区发送数据
** 输 入: * disp_buf   : 要发送数据的起始地址
**         num   : 发送个数
**        
** 输 出: 无
** 全局变量: 无
** 调用模块:  ZLG7290_SendCmd
**

**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void ZLG7290_SendBuf(unsigned char * disp_buf,unsigned char num)
{
 unsigned char i;
 for(i=0;i<num;i++)
 { 
  ZLG7290_SendCmd(0x60+i,*disp_buf);
  disp_buf++;
 }
}
/*********************************************************************************************************
** 函数名称:  ZLG7290_GetKey
** 功能描述:  读取键值
** 输 入: 无
**        
** 输 出: >0  键值
**        =0  无键按下
** 全局变量: 无
** 调用模块:  IRcvStr、delayMS

**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

unsigned char ZLG7290_GetKey(void)
{
unsigned char rece;
 rece=0;
 IRcvStr(zlg7290,0x01,&rece,1);
 delayMS(10);
 return rece;
}

 

你可能感兴趣的:(手持机之键盘篇——ZLG7290)