手持机之键盘篇——ZLG7290

本文详细介绍了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;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值