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

📄 p1.c

📁 192*64_stn_ks108_液晶程序
💻 C
字号:
//1302****************************** 


sbit sclk=P1^0;
sbit sio=P1^1;#define lcd_d XBYTE[0xd500]
#define lcd_c XBYTE[0xd501]

void delay(void)
{
	uchar i,j,k;
	for(i=0;i<=10;i++)
	{
		for(j=0;j<=10;j++)
		{
			for(k=0;k<=10;k++)		
			{;}
		}
	}
}
void delay1(uchar i)
{
	while(i)
		{
		delay();
		i--;
		}
}
void wait(uchar i)
{
	while(i)
		{i--;}
}		
void wcom(uchar a)
{
	wait(6);
	lcd_c=a;
}
void wdata(uchar a)
{
	wait(6);
	lcd_d=a;
}

void mps(uint add,uchar code *hzp)
{

uchar i;
uchar j;
uchar k;
add/=2;
wcom(0x4c);	
for(i=0;i<0x10;i++)
	{
	wcom(0x46);wdata(add%256);wdata(add/256);
	wcom(0x42);
	kick_dog();/*t3 dog*/
	for(k=0;k<2;k++)
		{
		j=*hzp;
		gray(j,color);
		hzp++;
		}
	add=add+0x28;
	}
}
void dis_image(int dis_cfg[3],uchar code image[])
{

uchar i;
uchar j;
uchar k;
int xdata add=dis_cfg[0];
int xdata line=dis_cfg[1];
int xdata row=dis_cfg[2];
uchar code *p_disp=image;
add/=2;
wcom(0x4c);	
for(i=0;i<line;i++)
	{
	wcom(0x46);wdata(add%256);wdata(add/256);
	wcom(0x42);
	kick_dog();/*t3 dog*/
	for(k=0;k<row;k++)
		{
		j=*p_disp++;
		gray(j,color);
		}
	add=add+0x28;
	}
}

void gray(uchar a,uchar color)
{
if(color==0x03)
	{wdata(a);}
else if(color==0x0c)
	{wdata(~a);}
}	

void start02(void)
{
        time1302_on();
	sclk=0;sio=0;
/*	wait(2);*/
        time1302_off();
}
void stop02(void)
{
        time1302_off();
}
void wr02(uchar a)
{
	uchar i;
	for(i=0;i<8;i++)
	{	
		sclk=0;
/*		wait(2);*/
		sio=a&0x01;
		a=a>>1;
		sclk=1;
/*		wait(2);*/
	}
}
uchar rd02(void)
{
	uchar i;
	bdata uchar a=0,b=0;
	for(i=0;i<8;i++)
	{
		a=a>>1; 
		sclk=0;
		wait(1);
		sclk=1;
/*		wait(2);*/
		b=sio;
		b=b<<7;
		a=a+b;
	}
	return(a);
}	
		
void set1302(void)
{
	start02();
	wr02(0xbe);
	wr02(sec);
	wr02(min);
	wr02(hr);
	wr02(date);
	wr02(month);
	wr02(day);
	wr02(year);
	wr02(0x00);
	wr02(0xa5);
	stop02();
}
void get1302(void)
{
	start02();
	wr02(0xbf);
	sec=rd02();
	min=rd02();
	hr=rd02();
	date=rd02();
	month=rd02();
	day=rd02();
	if(day>0x06)
		{day=0x00;}
	year=rd02();
	stop02();
}
void disp_time(void)
{
        uchar xdata i;
	uint xdata view;
	if(hr!=hr_old)
	{
	hr_old=hr;	
/*20***/
	mps(160*111+18,tab_n2);
	mps(160*111+20,tab_n0);
	mps(160*111+22,*(p_disp+(year>>4)));
	mps(160*111+24,*(p_disp+(year&0x0f)));
	mps(160*111+26,symbol0);
	mps(160*111+28,*(p_disp+(month>>4)));
	mps(160*111+30,*(p_disp+(month&0x0f)));
	mps(160*111+32,symbol0);
	mps(160*111+34,*(p_disp+(date>>4)));
	mps(160*111+36,*(p_disp+(date&0x0f)));
	mps(160*111+38,text12);
	mps(160*111+42,text12+0x20);
	mps(160*111+46,text13+0x20*(day&0x07));
	mps(160*111+50,*(p_disp+((hr>>4)&0x07)));
	mps(160*111+52,*(p_disp+(hr&0x0f)));
	mps(160*111+54,symbol1);
	}
	if(min_old!=min)
	{
	min_old=min;
	mps(160*111+56,*(p_disp+(min>>4)));
	mps(160*111+58,*(p_disp+(min&0x0f)));
      
    if(++min_record>=5)
		{menu_1=17;
		min_record=0;
		}
	if(++min_recordh>=15)
		{
        for(i=0;i<8;i++)
			{
			if((comm_ok&squre[i])!=0)
				{
				view=iicre[i][0xac];
				view=view*256+iicre[i][0xad];
				history_t[i][history_p]=view;
				view=iicre[i][0xd0];
				view=view*256+iicre[i][0xd1];
				history_rh[i][history_p]=view;
				}
			else
				{
				history_t[i][history_p]=0;
				history_rh[i][history_p]=0;
				}
			}
		min_recordh=0;
		
		get1302();
		settime7();
		history_time=second7;
        if(++history_p>95)
			{
             history_p=0;
             history_r=0x5a;
            }
        history_k=0x6a;
		}	

	}
/*
	mps(160*111+58,symbol1);
	mps(160*111+60,*(p_disp+(sec>>4)));
	mps(160*111+62,*(p_disp+(sec&0x0f)));
*/
}

void dis_string(int address,add1,uchar length)
{
uchar i;
for(i=0;i<length;i++)
	{
	mps(address,add1);
	address=address+4;
	add1=add1+0x20;
	}
}

⌨️ 快捷键说明

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