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

📄 test5.c

📁 这是周立功公司的芯片zlg7290的显示程序
💻 C
字号:
#include	"reg52.h"
#include	"VIiC_C51.H"	//包含VI2C软件包
#include    "zlg7290.h"

#define	PCF8563	0xA2		//定义器件地址
#define	WRADDR	0x00		//定义写单元首地址
#define	RDADDR	0x02		//定义读单元首地址

sbit	KEY_INT=P3^2;
sbit	RST=P1^0;
unsigned char disp_buf[8]={0,0,0,0,0,0,0,0};//显示缓存
unsigned char KEY;							//保存键值
bit	swich_date=0;
unsigned char display_time(unsigned char  *sd)
{ 

	sd[0]=sd[0]&0x7f;//秒屏蔽保留位
	sd[1]=sd[1]&0x7f;//分屏蔽保留位
	sd[2]=sd[2]&0x3f;//时屏蔽保留位
  	disp_buf[0] =(sd[0]%16);			
    disp_buf[1] =(sd[0]/16);		
    disp_buf[2] = 31;
    disp_buf[3] =(sd[1]%16);
    disp_buf[4] =(sd[1]/16);
    disp_buf[5] = 31;
    disp_buf[6] =(sd[2]%16);	
    disp_buf[7] =(sd[2]/16);
    ZLG7290_SendBuf(disp_buf,8);
	return 0;
}
unsigned char display_date(unsigned char  *sd)
{ 
	sd[0]=sd[0]&0x3f;//日屏蔽保留位
	sd[2]=sd[2]&0x1f;//月屏蔽保留位
	disp_buf[0] =(sd[0]%16);			
    disp_buf[1] =(sd[0]/16);		
    disp_buf[2] =(sd[2]%16)+0x80;//后面加小数点
    disp_buf[3] =(sd[2]/16);
    disp_buf[4] =(sd[3]%16)+0x80;//后面加小数点
    disp_buf[5] =(sd[3]/16);
   	disp_buf[6] =0;	
    disp_buf[7] =2;
    ZLG7290_SendBuf(disp_buf,8);
	return 0;
}
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; 
}
void	main()
{
	unsigned char code td[9]={0x00,0x12,0x00,0x40,0x12,0x06,0x05,0x02,0x04};	//定义初始化字
	unsigned char rd[7];	//定义接收缓冲区
	RST=0;
	DelayNS(1);
	RST=1;
	ISendStr(PCF8563,WRADDR,td,0x5);	//初始化PCF8563,如果需要的话可以不去掉
	DelayNS(1);
	ISendStr(PCF8563,WRADDR+5,&td[5],0x4);//初始化PCF8563,如果需要的话可以不去掉
	while(1)
	{
		DelayNS(1);
		IRcvStr(PCF8563,RDADDR,rd,0x7);	//读现在的时、分、秒
		DelayNS(1);
		if(swich_date)
			display_date(rd+3);	//调显示日期子程序
		else
			display_time(rd);	//调显示时间子程序
		if(KEY_INT==0)
		{
			KEY=ZLG7290_GetKey();
			if(KEY==1)
				swich_date=~swich_date;
		}
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -