📄 zlg7290.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: ZLG7290.C
** Last modified Date: 2006-01-13
** Last Version: v1.1
** Description: ZLG7290操作软件包。
**------------------------------------------------------------------------------------------------------
** Created By: 叶皓贲
** Created date: 2003-03-04
** Version: v1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:黄绍斌
** Modified date:2006-01-13
** Version:v1.1
** Description:
**
********************************************************************************************************/
#define IN_ZLG7290
#include "config.h"
#define ZLG7290 0x70 /* ZLG7290的IIC地址 */
// ZLG7290寄存器地址(子地址)
#define SubKey 0x01
#define SubCmdBuf 0x07
#define SubDpRam 0x10
/*********************************************************************************************************
** Function name: DelayMS
** Descriptions: 长软件延时
** Input: i 延时参数,值越大时延时越久
** Output: 无
** Created by: 叶皓贲
** Created Date: 2003-03-04
**-------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified Date: 2006-01-13
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DelayMS(uint32 dly)
{
uint8 i;
for(; dly>0; dly--)
for(i=0; i<100; i++);
}
/*********************************************************************************************************
** Function name: ZLG7290_SendData
** Descriptions: 发送数据
** Input: SubAdd 输入数据
** DATA 输入值
** Output: 0 表示Fail
** 1 表示OK
** Created by: 叶皓贲
** Created Date: 2003-03-04
**-------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified Date: 2006-01-13
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data)
{
unsigned char suba[2];
if(SubAdd>0x17) return 0;
suba[0] = 1; // 子地址个数, chg by HSB
suba[1] = SubAdd; // 子地址, chg by HSB
ISendStr(ZLG7290, suba, &Data, 1); // chg by HSB
DelayMS(10);
return 1;
}
/*********************************************************************************************************
** Function name: ZLG7290_SendCmd
** Descriptions: 发送命令(对子地址7、8)
** Input: DATA1 命令1
** DATA2 命令2
** Output: 0 表示Fail
** 1 表示OK
** Created by: 叶皓贲
** Created Date: 2003-03-04
**-------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified Date: 2006-01-13
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
{
unsigned char Data[2];
unsigned char suba[2];
Data[0] = Data1;
Data[1] = Data2;
suba[0] = 1; // chg by HSB
suba[1] = SubCmdBuf; // chg by HSB
ISendStr(ZLG7290, suba, Data, 2); // chg by HSB
DelayMS(10);
return(1);
}
/*********************************************************************************************************
** Function name: ZLG7290_SendBuf
** Descriptions: 向显示缓冲区发送数据
** Input: *disp_buf 要发送数据的起始地址
** num 发送个数
** Output: 无
** Created by: 叶皓贲
** Created Date: 2003-03-04
**-------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified Date: 2006-01-13
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
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++;
}
}
/*********************************************************************************************************
** Function name: ZLG7290_GetKey
** Descriptions: 读取键值
** Input: 无
** Output: >0 表示键值 (低8位为键码,高8位为按键次数)
** =0 表示无键按下
** Created by: 叶皓贲
** Created Date: 2003-03-04
**-------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified Date: 2006-01-13
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned short ZLG7290_GetKey(void)
{
unsigned char rece[2];
unsigned char suba[2];
rece[0] = rece[1] = 0; // chg by HSB
suba[0] = 1; // chg by HSB
suba[1] = SubKey; // chg by HSB
IRcvStr(ZLG7290, suba, rece, 2); // chg by HSB
DelayMS(10);
return (rece[0] | (rece[1]<<8)); // chg by HSB
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -