📄 zlg7290.c
字号:
/********************************************************************************************************
作 者:mcl
修改时间:2008.08.14
*******************************************************************************************************/
/********************************************************************************************************/
#include "reg 061.h"
#include "IIC drive.h"
#define zlg7290 0x70 //ZLG7290的IIC地址
//////////////ZLG7290的子地址/////////////////////////////////
#define SubKey 0x01 //键值寄存器 存放按键值
#define SubCmdBuf 0x07 //命令缓冲区 用于传输指令 07H~08H
#define SubDpRam 0x10 //显示缓存寄存器 10H~17H
#define SubScanNum 0x0D //扫描位数寄存器
/**************************************************************************
**ZLG7290_SendScanNum(int num)
**设置扫描数码管位数
**
***************************************************************************/
void ZLG7290_SendScanNum(int num)
{
ISendStr(zlg7290,0x0d,&num,1);
delayMS(10);
// return 1;
}
/********************************************************************************
**ZLG7290_FlashOnOff(int num)
**控制数码管闪烁
**
***********************************************************************************/
void ZLG7290_FlashOnOff(int num)
{
ISendStr(zlg7290,0x0c,&num,1);
delayMS(10);
}
/*********************************************************************************************************
** 函数名称: DelayNS
** 功能描述: 长软件延时
** 输 入: i : 延时参数,值越大时延时越久
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
********************************************************************************************************/
void delayMS(unsigned char i)
{
unsigned char j,k;
for(k=0;k<i;k++)
for(j=0;j<120;j++);
}
/*********************************************************************************************************
** 函数名称: ZLG7290_SendData
** 功能描述: 发送数据
** 输 入:SubAdd : 器件子地址
** DATA : 输入值
**
** 输 出: 0 : Fail
** 1 : OK
** 全局变量: 无
** 调用模块: delayMS
********************************************************************************************************/
unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data)
{
if(SubAdd>0x17) // 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;
ISendStr(zlg7290,0x10+num,&disp_buf,1);
// disp_buf++;
// for(i=0;i<num;i++)
// {
// ZLG7290_SendCmd(0x60+i,*disp_buf);
// disp_buf++;
// }
}
/*********************************************************************************************************
** 函数名称: ZLG7290_GetKey
** 功能描述: 读取键值
** 输 入: 无
** 输 出: >0 键值
** =0 无键按下
** 全局变量: 无
** 调用模块: IRcvStr、delayMS
********************************************************************************************************/
unsigned char ZLG7290_GetKey()
{
unsigned char rece;
rece=0;
IRcvStr(zlg7290,1,&rece,1);
delayMS(10);
return rece;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -