📄 7290.c
字号:
/****************************************Copyright (c)***************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: 7290.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: 操作7290函数
**
**------------------------------------------------------------------------------------------------------
** Created by: lixiaocheng
** Created date: 2007-11-02
** Version: 1.0
** Descriptions: The original version
**
*********************************************************************************************************/
#include "config.h"
#include "i2c.h"
#include "7290.h"
/*********************************************************************************************************
** 函数名称 :zlg7290GetKey()
** 函数功能 :获取ZLG7290键值
** 入口参数 :无
** 出口参数 :返回的键值
*********************************************************************************************************/
uint8 zlg7290GetKey (void)
{
uint8 temp[2];
temp[0] = 0x00;
temp[1] = 0x00;
// i2cSetMode( 1, "Speed=10000", NULL ); /* 调整I2C通讯速率 */
i2cRead( 1, 0x70, temp, 0x01, 1, 2 );
while( i2cGetFlag(0) == I2C_BUSY ); /* 判断是否读完成,可以使用 */
/* 延时函数来代替 */
return temp[0];
}
/*********************************************************************************************************
** 函数名称 :LedContrl()
** 函数功能 :让zlg7290驱动LED灯
** 入口参数 :data 表示要显示的缓冲区,缓冲区使用控制码
** 显示的数据 0 1 2 3 4 5 6 7 8 9 A b C d E F
** 16进制码 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
** 显示的数据 G H i J L o p q r t U y c h T 无显示
** 16进制码 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
** position 表示要显示的位置
** dot 0表示关闭当前位置小数点,1表示打开当前位置小数点
** flash 0表示当前字符不闪烁,1表示当前字符闪烁
** 出口参数 :无
*********************************************************************************************************/
void zlg7290LedContrl ( uint8 data, uint8 position, uint8 dot, uint8 flash )
{
uint8 cmdbuf[2];
/*
* 参数过滤
*/
if( dot > 1 ) dot = 1;
if( flash > 1 ) flash = 1;
if ( position > 7 ) position = 7;
/*
* 确定位置
*/
cmdbuf[0] = 0x60;
cmdbuf[0] |= position;
/*
* 确定数据
*/
cmdbuf[1] = 0;
cmdbuf[1] |= dot<<7; /* 控制小数点 */
cmdbuf[1] |= flash<<6; /* 控制闪烁 */
cmdbuf[1] |= (data&0x1f); /* 显示数据 */
// i2cSetMode( 1, "Speed=10000", NULL ); /* 修改I2C通讯速率 */
i2cWrite( 1, 0x70, cmdbuf, 0x07, 1, 2 );
while( i2cGetFlag(0) == I2C_BUSY ); /* 判断是否写成功,可替换为 */
/* 短的延时函数 */
}
/*********************************************************************************************************
** 函数名称 :FlashContrl()
** 函数功能 :让zlg7290控制指定的灯闪烁
** 入口参数 :position 表示要显示的位置
** flash 0表示当前字符不闪烁,1表示当前字符闪烁
** 出口参数 :无
*********************************************************************************************************/
void zlg7290FlashContrl ( uint8 position, uint8 flash )
{
uint8 cmdbuf[2];
/*
* 置参数过滤
*/
if( flash > 1 ) flash = 1;
if ( position > 7 ) position = 7;
/*
* 确定命令和数据
*/
cmdbuf[0] = 0x70;
cmdbuf[1] = flash<<position; /* 控制闪烁 */
// i2cSetMode( 1, "Speed=10000", NULL ); /* 修改I2C通讯速率 */
i2cWrite( 1, 0x70, cmdbuf, 0x07, 1, 2 );
while( i2cGetFlag(0) == I2C_BUSY ); /* 必须等待写完 */
}
/*********************************************************************************************************
** 函数名称 :LEDTes()
** 函数功能 :测试ZLG7290显示部分
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************/
void zlg7290LEDTest ( void )
{
uint32 i;
uint8 test[7] = { 0x14, 0x16, 0x0c, 0x02, 0x04, 0x00, 0x00 }; /* LPC2300 */
for( i = 0; i < 7; i++ )
{
zlg7290LedContrl( test[i], 6-i, 0, 0 );
}
}
/*********************************************************************************************************
END FILE
**********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -