⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7290test.c

📁 51单片机 zlg7290数字钟
💻 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 + -