?? zlg7290.c
字號:
/****************************************Copyright (c)**************************************************
** 廣州周立功單片機(jī)發(fā)展有限公司
** 研 究 所
** 產(chǎn)品一部
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: ZLG7290.C
**創(chuàng) 建 人: 葉皓賁
**最后修改日期: 2003-3-4
**描 述: ZLG7290庫函數(shù)程序
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 創(chuàng)建人: 葉皓賁
** 版 本: 0.01
** 日 期: 2003-3-4
** 描 述: ZLG7290庫函數(shù)程序
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**--------------當(dāng)前版本修訂------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
#include "I2CINT.h"
#define zlg7290 0x70 //ZLG7290的IIC地址
#define SubKey 0x01
#define SubCmdBuf 0x07
#define SubDpRam 0x10
/*********************************************************************************************************
** 函數(shù)名稱: DelayNS
** 功能描述: 長軟件延時
** 輸 入: i : 延時參數(shù),值越大時延時越久
**
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: 無
**
** 作 者: 葉皓賁
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void delayMS(unsigned char i)
{
unsigned char j,k;
for(k=0;k<i;k++)
for(j=0;j<60;j++);
}
/*********************************************************************************************************
** 函數(shù)名稱: ZLG7290_SendData
** 功能描述: 發(fā)送數(shù)據(jù)
** 輸 入:SubAdd : 輸入數(shù)據(jù)
** DATA : 輸入值
**
** 輸 出: 0 : Fail
** 1 : OK
** 全局變量: 無
** 調(diào)用模塊: delayMS
**
** 作 者: 葉皓賁
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data)
{
if(SubAdd>0x17)
return 0;
VICIntEnable = 1<<9;
ISendStr(zlg7290,SubAdd,&Data,1);
VICIntEnClr = 1<<9;
delayMS(10);
return 1;
}
/*********************************************************************************************************
** 函數(shù)名稱: ZLG7290_SendCmd
** 功能描述: 發(fā)送命令(對子地址7、8)
** 輸 入:DATA1 : 命令1
** DATA2 : 命令2
**
** 輸 出: 0 : Fail
** 1 : OK
** 全局變量: 無
** 調(diào)用模塊: ISendStr、delayMS
**
** 作 者: 葉皓賁
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
{
unsigned char Data[2];
Data[0]=Data1;
Data[1]=Data2;
VICIntEnable = 1<<9;
ISendStr(zlg7290,0x07,Data,2);
delayMS(10);
VICIntEnClr = 1<<9;
return 1;
}
/*********************************************************************************************************
** 函數(shù)名稱: ZLG7290_SendBuf
** 功能描述: 向顯示緩沖區(qū)發(fā)送數(shù)據(jù)
** 輸 入: * disp_buf : 要發(fā)送數(shù)據(jù)的起始地址
** num : 發(fā)送個數(shù)
**
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: ZLG7290_SendCmd
**
** 作 者: 葉皓賁
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
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++;
}
}
/*********************************************************************************************************
** 函數(shù)名稱: ZLG7290_GetKey
** 功能描述: 讀取鍵值
** 輸 入: 無
**
** 輸 出: >0 鍵值
** =0 無鍵按下
** 全局變量: 無
** 調(diào)用模塊: IRcvStr、delayMS
**
** 作 者: 葉皓賁
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char ZLG7290_GetKey(void)
{
unsigned char rece;
rece=0;
VICIntEnable = 1<<9;
IRcvStr(zlg7290,1,&rece,1);
delayMS(10);
VICIntEnClr = 1<<9;
return rece;
}
/****************************************Copyright (c)**************************************************
**------------------------------------------------------------------------------------------------------
**
** 創(chuàng)建人: wgejygah
** 日 期: 2007-5-20
** 描 述: ZLG7290驅(qū)動包增強(qiáng)版
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
/*********************************************************************************************************
** 函數(shù)名稱: ZLG7290_Flash
** 功能描述: 閃爍控制
** 輸 入: Fn : 閃爍控制指令(Fn應(yīng)當(dāng)是字節(jié)型)
** Fn的8個位分別控制數(shù)碼管的8個位是否閃爍,0-不閃爍,1-閃爍
**
**
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: ZLG7290_SendCmd
********************************************************************************************************/
void ZLG7290_Flash(unsigned char Fn)
{
ZLG7290_SendCmd(0x70,Fn);
}
/*
函數(shù):ZLG7290_SegOnOff()
功能:段尋址,單獨(dú)點(diǎn)亮或熄滅數(shù)碼管(或LED)中的某一段
參數(shù):
seg:取值0~63,表示數(shù)碼管(或LED)的段號
b:0表示熄滅,1表示點(diǎn)亮
說明:
在每一位數(shù)碼管中,段號順序按照“a,b,c,d,e,f,g,dp”進(jìn)行
*/
void ZLG7290_SegOnOff(signed char seg, unsigned char b)
{
signed char cmd;
cmd = seg & 0x3F;
if ( b == 1 ) cmd |= 0x80;
if ( b == 0 ) cmd &= 0x0F;
ZLG7290_SendCmd(0x01,cmd);
}
/*
函數(shù):ZLG7290_Download()
功能:下載數(shù)據(jù)并譯碼
參數(shù):
addr:取值0~7,顯示緩存DpRam0~DpRam7的編號
dp:是否點(diǎn)亮該位的小數(shù)點(diǎn),0-熄滅,1-點(diǎn)亮
flash:控制該位是否閃爍,0-不閃爍,1-閃爍, 2-不操作
dat:取值0~31,表示要顯示的數(shù)據(jù)
說明:
顯示數(shù)據(jù)具體的譯碼方式請參見ZLG7290的數(shù)據(jù)手冊
*/
void ZLG7290_Download(signed char addr, unsigned char dp, unsigned char flash, signed char dat)
{
char cmd0;
char cmd1;
cmd0 = addr & 0x0F;
cmd0 |= 0x60;
cmd1 = dat & 0x1F;
if ( dp == 1 ) cmd1 |= 0x80;
if ( flash == 1 ) cmd1 |= 0x40;
ZLG7290_SendCmd(cmd0,cmd1);
}
/*
函數(shù):DispHexValue()
功能:以16進(jìn)制方式顯示數(shù)值
參數(shù):
x:顯示位置,取值0~6
dat:要顯示的數(shù)據(jù),取值0~255
*/
void ZLG7290_DispHex(signed char x, unsigned char dat)
{
unsigned char d;
d = dat / 16;
ZLG7290_Download(x,0,0,d);
d = dat - d * 16;
ZLG7290_Download(x+1,0,0,d);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -