?? test.c
字號:
/*
ZLG7290 演示程序
*/
#include "I2C.h"
#include "ZLG7290.h"
void Clearall(void);
/*
函數:Test_DispBuf()
功能:測試直接寫顯存
*/
void Test_DispBuf()
{
code char DispDat[16] ={0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0xF6,0x6E,0x20,0x70,0x0E,0x1C,0x3A,0xCE,0xE6,0x0A};//字母AbCdEFgHiJkLoPqr 的字形數據
unsigned char data n;
unsigned char data x;
unsigned char reg;
unsigned char dat;
for( n=0;n<16;n++)
{
for ( x=0; x<8; x++)
{
reg = ZLG7290_DpRam + x;
dat = DispDat[n];
ZLG7290_WriteReg(reg,dat);
}
Delay(10);
}
Delay(100);
}
/*
函數:Test_Download()
功能:測試下載數據功能
*/
void Test_Download()
{
unsigned char data x;
uchar data dat;
uchar data aa[2]={0x60,0x88};
uchar data bb[2]={0x60,0x00};
//點亮所有數碼管
for ( x=0; x<8; x++ )
{
I2C_Data_Write(ZLG7290_CmdBuf,2,&aa);
Delay(10);
aa[0]+=1;
}
Delay(100);
//依次顯示所有字型
for ( dat=0; dat<32; dat++ )
{
bb[0]=0x60;
for ( x=0; x<8; x++ )
{
I2C_Data_Write(ZLG7290_CmdBuf,2,&bb);
bb[0]+=1;Delay(10);
}
bb[1]+=1;
Delay(10);
}
}
/*
函數:Test_ScanNum()
功能:測試不同掃描位數
說明:掃描位數越少,數碼管就越亮
*/
void Test_ScanNum()
{
unsigned char data x;
uchar data aa[2]={0x60,0x88};
//點亮所有數碼管
for ( x=0; x<8; x++ )
{
I2C_Data_Write(ZLG7290_CmdBuf,2,&aa);
Delay(10);
aa[0]+=1;
}
Delay(100);
for ( x=0; x<8; x++ )
{
// x=i;
ZLG7290_WriteReg( ZLG7290_ScanNum,x);
Delay(100);
}
}
/*
函數:Test_Flash()
功能:測試閃爍功能
*/
void Test_Flash()
{
uchar data dat0 = 0x01;
uchar data x;
//顯示01234567
for ( x=0; x<8; x++ )
{
ZLG7290_cmd(x+0x60,x);
Delay(10);
}
//設置閃爍控制寄存器
ZLG7290_WriteReg(ZLG7290_FlashOnOff,0x11);
//閃爍演示
for ( x=0; x<8; x++ )
{
ZLG7290_Flash(dat0);
dat0 <<= 1;
Delay(500);
}
//數碼管的8 個位一起閃爍
ZLG7290_Flash(0xFF);
Delay(500);
//停止閃爍
ZLG7290_Flash(0x00);
Delay(500);
}
/*
函數:Test_SegOnOff()
功能:測試段尋址功能
*/
void Test_SegOnOff()
{
unsigned char data seg;
ClearAll();
Delay(100);
for ( seg=0; seg<64; seg++ )
{
ZLG7290_SegOnOff(seg,1);
Delay(3);
}
Delay(1000);
for ( seg=0; seg<64; seg++ )
{
ZLG7290_SegOnOff(seg,0);
Delay(3);
}
Delay(1000);
}
/*
函數:DispValue()
功能:顯示100 以內的數值
參數:
x:顯示位置,取值0~6
dat:要顯示的數據,取值0~99
*/
void DispValue(uchar num)
{
uchar data d;
d=num/10;
ZLG7290_cmd(0x60,d);
Delay(5);
d=num-d*10;
ZLG7290_cmd(0x61,d);
}
/*
函數:DispHexValue()
功能:以16 進制方式顯示數值
參數:
x:顯示位置,取值0~6
dat:要顯示的數據,取值0~255
*/
/*void DispHexValue( unsigned char dat)
{
unsigned char data d;
d = dat / 16;
ZLG7290_cmd(0x63,d);
Delay(5);
d = dat - d * 16;
ZLG7290_cmd(0x64,d);
}*/
/*
函數:Test_Key()
功能:測試按鍵功能
*/
void Test_Key()
{
EA = 0;
EX1 = 1; //允許外部中斷
EA = 1;
PCON |= 0x01; //使CPU 進入空閑狀態,任一中斷可喚醒
}
void int1() interrupt 2 using 0
{
unsigned char data KeyValue;
// unsigned char data RepeatCnt;
// unsigned char data FnKeyValue;
//讀取鍵值、連擊計數器值、功能鍵值
KeyValue=ZLG7290_ReadReg(ZLG7290_Key);
Delay(10);
// RepeatCnt=ZLG7290_ReadReg(ZLG7290_RepeatCnt);
// Delay(10);
// FnKeyValue=ZLG7290_ReadReg(ZLG7290_FunctionKey);
Delay(10);
//顯示鍵值、連擊計數器值、功能鍵值
DispValue(KeyValue);
Delay(100);
// DispHexValue(RepeatCnt);
// Delay(100);
// DispHexValue(6,FnKeyValue);
}
void main(void)
{
Clearall();
while (1)
{
// Test_DispBuf(); //測試直接寫顯存
// Delay(500);
// Test_Download(); //測試下載數據
// Delay(500);
// Test_ScanNum(); //測試不同掃描位數
// Delay(500);
// Test_Flash(); //測試閃爍功能
// Delay(500);
// Test_SegOnOff(); //測試段尋址功能
Test_Key(); //測試鍵盤功能
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -