資源簡介
VK2C22/VK2C22G 是一款存儲器映射和多功能 LCD 控制 / 驅動芯片。該系列芯片顯示模式有 176 點 (44×4)VK2C22/VK2C22G 軟件配置特性使 得它適用于多種 LCD 應用,包括 LCD 模塊和顯示子系統。VK2C22/VK2C22G 通過雙線雙向 I2C 接口與大多數微處理器 / 微控制器進行通信。
VK2C2X系列為I2C介面、RAM mapping的LCD控制暨驅動IC,此系列以先進設計技術降低IC耗電、提升抗雜訊及ESD防護能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功獲得單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。

代碼片段和文件信息
/**
??******************************************************************************
??*?@file????Vk16xx.c
??*?@author??kevin_guo
??*?@version?V1.0.0
??*?@date????06-30-2014
??*?@brief???This?file?contains?all?the?Vk16xx?functions.
??******************************************************************************
??*?@attention
??******************************************************************************
??*/
/*?Includes?------------------------------------------------------------------*/
#include?“global.h“
extern?uint8_t?selVk16xx_type;?
extern?uint8_t?Vk16xx_addrbit;?
/*?Private?typedef?-----------------------------------------------------------*/
/*?Private?define?------------------------------------------------------------*/
#define?RW_H()?Vk16xx_RD_GPIO_PORT?->ODR?|=??Vk16xx_WR_PIN
#define?RW_L()?Vk16xx_RD_GPIO_PORT?->ODR?&=?~Vk16xx_WR_PIN
#define?CS_H()?Vk16xx_CS_GPIO_PORT?->ODR?|=??Vk16xx_CS_PIN
#define?CS_L()?Vk16xx_CS_GPIO_PORT?->ODR?&=?~Vk16xx_CS_PIN
#define?DATA_H()?Vk16xx_DAT_GPIO_PORT?->ODR?|=??Vk16xx_DAT_PIN
#define?DATA_L()?Vk16xx_DAT_GPIO_PORT?->ODR?&=?~Vk16xx_DAT_PIN
/*?Private?macro?-------------------------------------------------------------*/
/*?Private?variables?---------------------------------------------------------*/
/*?Private?function?prototypes?-----------------------------------------------*/
void?Nop_Delay(unsigned?char?ucDat);
/**
??*?@brief??Vk16xx?clk
??*?@param??None?
??*?@retval?None
??*/
void?WriteClockVk16xx(void)
{
Nop_Delay(10);
RW_L();?
Nop_Delay(10);
Nop_Delay(10);
RW_H();
Nop_Delay(10);
}
/**
??*?@brief??Write?Vk16xx?Command
??*?@param??None?
??*?@retval?None
??*/
void?WriteCommandVk16xx(u8?FunctonCode)
{
u8?Shift?=?0x80;?
u8?i;
Nop_Delay(10);
CS_L();????
Nop_Delay(10);
DATA_H();??
WriteClockVk16xx();
DATA_L();??
WriteClockVk16xx();
DATA_L();??
WriteClockVk16xx();
for(i?=?0;?i?8;?i++)?
{
?if(Shift?&?FunctonCode)?
?DATA_H();?
?else?
?DATA_L(); ??
?WriteClockVk16xx();
?Shift?=?Shift?>>?1;
}
??DATA_L();?
WriteClockVk16xx(); //發送一個?0?16xx中最后一位?X
??CS_H();?
Nop_Delay(10); ????//CS?片選關??
??DATA_H();?
Nop_Delay(10);
}
/**
??*?@brief??Write?Vk16xx?Date
??*?@param??None?
??*?@retval?None
??*/
void?WriteDateVk16xx(u8?Addru8?Dat)
{
u8?i;?
u8?Shift;
if((selvk16xx_type==SEL_VK1621P48)||(selvk16xx_type==SEL_VK1621ABP44)||(selvk16xx_type==SEL_VK1024P16)
||(selvk16xx_type==SEL_VK1056P24)||(selvk16xx_type==SEL_VK1072BP28)||(selvk16xx_type==SEL_VK1072CP28)
||(selvk16xx_type==SEL_VK1088BP32))
Shift?=?0x20;?//屏蔽高3位?只用5位
else
Shift?=?0x40;?//屏蔽高1位?只用7位
CS_L();?
Nop_Delay(10);
DATA_H();??
WriteClockVk16xx();??//101
DATA_L();??
WriteClockVk16xx();
DATA_H();??
WriteClockVk16xx();
for(?i?=?0;?i? {??? ?
if?(Addr?&?Shift)?
DATA_H();?
else??
DATA_L();
Nop_Delay(10);
WriteClockVk16xx();
Shift?=?Shift
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2766??2018-03-19?09:37??vk16xx.h
?????文件????????9540??2018-03-19?09:37??vk16xx.c
?????文件?????????774??2018-03-19?10:16??VK16XX支持型號.txt
評論
共有 條評論