📄 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 + -