📄 7290test.c
字号:
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** 产品一部
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: PCF8563.C
**创 建 人: 叶皓贲
**最后修改日期: 2003-3-4
**描 述: DP-1581的8563T及7289a键盘LED演示程序
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 叶皓贲
** 版 本: 1.0
** 日 期: 2003-3-4
** 描 述: DP-1581演示程序
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "REG52.h"
#include <intrins.h>
#include <absacc.h>
#include "VIIC_C51.h"
#include "ZLG7290.h"
sbit KEY_INT=P3^2;
sbit key1=P0^0;
sbit key2=P0^1;
sbit key3=P3^5;
/* 全局变量 */
unsigned char disp_buf[8]={0,0,0,0,0,0,0,0};
/*********************************************************************************************************
** 函数名称: display
** 功能描述: 7298A led显示
** 输 入: *sd : 显示缓冲区的头地址
**
** 输 出: 0 : OK;
** 1 : FAIL;
** 全局变量: 无
** 调用模块: ZLG7289_SendBuf
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char display(unsigned char *sd)
{
disp_buf[0] = sd[0]; // 装载" dp-932"
disp_buf[1] = sd[1];
disp_buf[2] = 31;
disp_buf[3] = sd[2];
disp_buf[4] = sd[3];
disp_buf[5] = 31;
disp_buf[6] = sd[4];
disp_buf[7] = sd[5];
ZLG7290_SendBuf(disp_buf,8);
return 0;
}
/*********************************************************************************************************
** 函数名称: DelayNS
** 功能描述: 长软件延时
** 输 入: no : 延时参数,值越大时延时越久
**
** 输 出: 0 : OK;
** 1 : FAIL;
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char DelayNS(unsigned char no)
{
unsigned char i,j; //延时参数
for(; no>0; no--)
{
for(i=0; i<100; i++)
for(j=0; j<100; j++);
}
return 0;
}
/*********************************************************************************************************
** 函数名称: delay
** 功能描述: 短软件延时
** 输 入: j : 延时参数,值越大时延时越久
**
** 输 出: 0 : OK;
** 1 : FAIL;
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char delay(unsigned char j)
{
unsigned char k,l;
for(l=0;l<=j;l++)
for(k=0;k<=250;k++);
return 0;
}
void main()
{
/*定义发送缓冲区*/
unsigned char rd[6]={00,00,00,00,00,00}; /*小时、分钟、秒的变量*/
unsigned char rt[6]={01,00,01,00,00,00}; /*年、月、日的变量*/
unsigned char key;
key3=0;
delay(1000);
delay(1000);
while(1)
{
delay(100);
delay(1000);
delay(1000);
delay(250); /*秒延迟*/
key1=0;
key2=1;
/*小时置数程序*/
while(key1==0)
{ delay(100);
display(rd);/*显示小时、分钟、秒*/
if(KEY_INT==0)
{
key=ZLG7290_GetKey();
switch(key)
{
case 9 : rd[0]++;/*秒个位*/
if(rd[0]==10)
{
rd[0]=00;
} break;
case 10 : rd[1]++;/*秒十位*/
if(rd[1]==6)
{
rd[1]=00;
} break;
case 11 : rd[2]++;/*分个位*/
if(rd[2]==10)
{
rd[2]=00;
}break;
case 12 : rd[3]++;/*分十位*/
if(rd[3]==6)
{
rd[3]=00;
} break;
case 13 : rd[4]++;/*小时个位*/
if(rd[4]==10)
{
rd[4]=00;
} break;
case 14: rd[5]++;/*小时十位*/
if(rd[5]==3)
{
rd[5]=00;
} break;
}
delay(100);
display(rd);/*显示小时、分钟、秒*/
}
}
/*年月日置数*/
while(key2==0)
{
delay(100);
display(rt);/*显示年月日*/
if(KEY_INT==0)
{
key=ZLG7290_GetKey();
switch(key)
{
case 4 : rt[0]++;/*日个位*/
if(rt[0]==10)
{
rt[0]=00;
} break;
case 3 : rt[1]++;/*日十位*/
if(rt[1]==4)
{
rt[1]=00;
} break;
case 2 : rt[2]++;/*月个位*/
if(rt[2]==10)
{
rt[2]=00;
}break;
case 1 : rt[3]++;/*月十位*/
if(rt[3]==2)
{
rt[3]=00;
} break;
case 10 : rt[4]++;/*年个位*/
if(rt[4]==10)
{
rt[4]=00;
} break;
case 9 : rt[5]++;/*年十位*/
if(rt[5]==10)
{
rt[5]=00;
} break;
}
delay(100);
display(rt);/*显示年月日*/
}
}
/*小时、分钟、秒计数程序*/
rd[0]++;
if(rd[0]==10)/*秒个位*/
{
rd[1]++;
rd[0]=00;
}
if(rd[1]==6)/*秒十位*/
{
rd[2]++;
rd[1]=00;
}
if(rd[2]==10)/*分个位*/
{
rd[3]++;
rd[2]=00;
}
if(rd[3]==6)/*分十位*/
{
rd[4]++;
rd[3]=00;
}
if(rd[4]==10)/*小时个位*/
{
rd[5]++;
rd[4]=00;
}
if(rd[5]>=2&&rd[4]>=4)/*小时十位*/
{
rd[0]=00;
rd[1]=00;
rd[2]=00;
rd[3]=00;
rd[4]=00;
rd[5]=00;
rt[0]++;
}
display(rd);/*显示小时、分钟、秒*/
/*年、月、日计数程序*/
if(rt[0]==10)/*日个位*/
{
rt[1]++;
rt[0]=01;
}
if(rt[1]>=3&&rt[0]>=1)/*日十位*/
{
rt[2]++;
rt[1]=00;
}
if(rt[2]==10)/*月个位*/
{
rt[3]++;
rt[2]=01;
}
if(rt[3]>=1&&rt[2]>=3)/*月十位*/
{
rt[4]++;
rt[3]=00;
rt[2]=01;
}
if(rt[4]==10)/*年个位*/
{
rt[5]++;
rt[4]=00;
}
if(rt[5]==10)/*年十位*/
{
rt[0]=01;
rt[1]=00;
rt[2]=01;
rt[3]=00;
rt[4]=00;
rt[5]=00;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -