📄 zlg7290demo.c
字号:
/*
ZLG7290演示程序
*/
#include "I2C.h"
#include "ZLG7290.h"
sbit p00=P0^0;
void Port_IO_Init()
{
SFRPAGE = CONFIG_PAGE;
XBR1 = 0x04;
XBR2 = 0x40;
}
void Oscillator_Init()
{
SFRPAGE = CONFIG_PAGE;
OSCICN = 0x83;
}
void Init_Device(void)
{
Port_IO_Init();
Oscillator_Init();
}
//定义键盘p00=0表示有键按下
/*
函数:Delay()
功能:延时10ms~655.36s
参数:
t>0时,延时(t*0.01)s
t=0时,延时655.36s
说明:
晶振采用11.0592MHz
*/
void Delay(unsigned int t)
{
while (--t);
}
/*
函数:SystemInit()
功能:系统初始化
*/
void SystemInit()
{
I2C_Init();
Delay(30); //等待ZLG7290复位完毕
}
/*
函数:ClearAll()
功能:清除所有显示
*/
void ClearAll()
{
unsigned char x;
for ( x=0; x<8; x++ )
{
ZLG7290_Download(x,0,0,31);
}
}
void main()
{
unsigned char KeyValue,keyValue,i=0,a=0,b=0,c,d,simbol=0,j;
unsigned char valuedeal[28]={0x0d,17,0,15,0,0,0,0,0x0c,9,8,7,0,0,0,0,0x0b,6,5,4,0,0,0,0,0x0a,3,2,1};
unsigned char store[8];
WDTCN=0xde;
WDTCN=0xad;
Init_Device( );
SystemInit(); //系统初始化
ClearAll();
ZLG7290_Download(0,1,1,0);
for (;;)
{
if ( p00==0) //如果有键按下
{
//清除中断标志
p00= 1;
//读取键值、连击计数器值、功能键值
ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);
keyValue=valuedeal[KeyValue-1]; /*读键值*/
if(keyValue==0x0d) /*清除键*/
{ClearAll();
ZLG7290_Download(0,1,1,0);
break ;
}
if(keyValue==17) /*确定键的处理*/
{ if(i==0) break;
if(d==0)
{ for(j=0;j<=i-1;j++)
if(j!=c)
ZLG7290_Download(j,0,0,store[j]);
else if(simbol!=0) ZLG7290_Download(j,1,0,store[j]) ;
d=1 ;}
keyValue=31;
}
if(i==0&&keyValue==0)
a=1;
if(keyValue==15)
{
if(i==0) {a=1;} /*小数点显示在该位 */
else i--;
keyValue=b; /*原值不变*/
if(simbol==0)
{ c=i;
simbol=1;
a=1;
}
}
if(d==1||i>=8) continue;
if(simbol==1&&i==c) a=1;
ZLG7290_Download(i++,a,0,keyValue);
a=0;
b=keyValue;
store[i-1]=b;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -