⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7290.c

📁 SmartARM2400系列开发板全套资料
💻 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 + -