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

📄 lcd12864.h

📁 51写的一个定时时钟
💻 H
📖 第 1 页 / 共 3 页
字号:
void Clr_Scr(void)//清除内存
{
	unsigned char j,k;
	Mcs=1;Scs=1;
 	write_com(Page_Add+0);
 	write_com(Col_Add+0);

 	for(k=0;k<8;k++)
	{
		write_com(Page_Add+k);
        write_com(Col_Add+0);

		for(j=0;j<64;j++)
		{
			write_data(0x00);
		}
 	}
}

/*******************************************************************************/
void Disp_Img(unsigned char code *img)//显示12864图片
{
	unsigned char j,k;
 	for(k=0;k<8;k++)
	{
  		Mcs=1;
		Scs=0;
		Delay(10);
  		write_com(Page_Add+k);
  		write_com(Col_Add+0);
  		for(j=0;j<64;j++) 
		{
			write_data(img[k*128+j]);
		}
  		Mcs=0;
		Scs=1;
	 	Delay(10);
  		write_com(Page_Add+k);
  		write_com(Col_Add+0);
  		for(j=64;j<128;j++)
	    {
			write_data(img[k*128+j]);
		}
 	}
}

/*******************************************************************************/
void Disp_Chinese(unsigned char pag,unsigned char col,  char code *hzk)
{   //指定位置显示汉字16*16
	unsigned char j=0,i=0;

	for(j=0;j<2;j++)//程序说明:pag取值为0~7,col因为是16*16所以0~64间距为16,
	{
		write_com(Page_Add+pag+j);//程序为何要加一,因为是16*16所以一个汉字要占二列
		write_com(Col_Add+col);
		for(i=0;i<16;i++) 
		{
			write_data(hzk[16*j+i]);
		}
	}
}

/*******************************************************************************/
void Disp_Digit(unsigned char pag,unsigned char col, unsigned char code *hzk)
{   //指定位置显示字母或数字8*16
	unsigned char j=0, i=0;

	for(j=0;j<2;j++)//程序注明,簆ag取值为0~7,col因为是8*16所以0~64间距为8,
	{
		write_com(Page_Add+pag+j);//程序为何要加J,是因为每一个字母或数字要占二列
		write_com(Col_Add+col);
		for(i=0;i<8;i++) 
		{
			write_data(hzk[8*j+i]);
		}
	}
}

/********************************************************************************/
void Init_lcd(void)//初始化LCD屏
{
	Lcd_Rst=0;
	Delay12864(100);
	Lcd_Rst=1;
	Delay12864(100);

	Mcs=1;	Scs=1;

	Delay12864(100);
	write_com(Disp_Off);
	write_com(Page_Add+0);
	write_com(Start_Line+0);
	write_com(Col_Add+0);
	write_com(Disp_On);
}
/*显示汉字在指定的位置*/
void Lcd_Mark(void)//在预定的位置上写入汉字)
{
	Clr_Scr();//清屏
  //	frame();//显示边框
	Mcs=1;Scs=0;
	Disp_Digit(0,8,syh);
	Disp_Chinese(0,16,mao);
	Disp_Chinese(0,32,ge);
	Disp_Chinese(0,48,hen);
	Disp_Digit(2,8,syh);
	Disp_Chinese(2,16,hou);
	Disp_Chinese(2,32,guo);
    Disp_Chinese(2,48,hen);
	Disp_Digit(4,8,bfh);
	Disp_Chinese(4,16,huan);
	Disp_Digit(4,32,bfh);
	Disp_Chinese(4,40,ying);
	Disp_Digit(4,56,bfh);
    Disp_Chinese(6,0,dian);
    Disp_Chinese(6,16,hua);
	Disp_Digit(6,32,mh);
    Disp_Digit(6,40,one);
	Disp_Digit(6,48,three);
	Disp_Digit(6,56,six);
	Mcs=0;Scs=1;
	Disp_Chinese(0,0,sheng);
	Disp_Chinese(0,16,qi1);
	Disp_Digit(0,32,syh);
	Disp_Chinese(2,0,yan);
	Disp_Chinese(2,16,zhon);
	Disp_Digit(2,32,syh);
	Disp_Chinese(4,0,guang);
	Disp_Digit(4,16,bfh);
	Disp_Chinese(4,24,lin);
	Disp_Digit(4,40,bfh);
	Disp_Digit(6,0,eight);
    Disp_Digit(6,8,one);
	Disp_Digit(6,16,nine);
	Disp_Digit(6,24,six);
	Disp_Digit(6,32,five);
    Disp_Digit(6,40,seven);
	Disp_Digit(6,48,two);
	Disp_Digit(6,56,nine);
	}
void Disp(void)//显示和闪烁函数
{
	unsigned int i=0;
	unsigned char a=0,b=0,c=0,f=0;
	if(sec1==1)  //秒闪烁标志位
 	{
    	if(flag==1)
       	{    
        //	d=sec;//读秒
		//d=((d&0x70)>>4)*10+(d&0x0f);
	//	e=d;
		d=sec/10;
		e=sec%10;
			Mcs=0;Scs=1;
			Disp_Digit(3,40,zero+d*16);//送显示
			Disp_Digit(3,48,zero+e*16);   
       }
	   else
       {
	   	Mcs=0;Scs=1;
		Disp_Digit(3,40,space); //显示空格
        Disp_Digit(3,48,space);    
       }
    } 
  	else
    {
     	//d=sec;//读秒
	//d=((d&0x70)>>4)*10+(d&0x0f);
		//e=d;
		d=sec/10;
		e=sec%10;
		Mcs=0;Scs=1;
		Disp_Digit(3,40,zero+d*16);
		Disp_Digit(3,48,zero+e*16);          
    }    
   
  	if(min1==1)  //分钟闪烁标志位
    {
    	if(flag==1)
       	{    
       	//	d=min;//读分钟
		//	e=d;
		//	d=d>>4;
		//	e=e&0x0f;
		    d=min/10;
			e=min%10;
			Mcs=0;Scs=1;
			Disp_Digit(3,16,zero+d*16);
			Disp_Digit(3,24,zero+e*16);     
       	}
     	else
       	{	
			Mcs=0;Scs=1;
        	Disp_Digit(3,16,space); //显示空格
	        Disp_Digit(3,24,space);    
       	}
    } 
  	else
    {
    //	d=min;//读分钟
	//	e=d;
	//	d=d>>4;
	//	e=e&0x0f;
	    d=min/10;
		e=min%10;
		Mcs=0;Scs=1;
		Disp_Digit(3,16,zero+d*16);
		Disp_Digit(3,24,zero+e*16);         
    } 

  	if(hour1==1)  //小时闪烁标志位
    {
    	if(flag==1)
       	{    
      	//	d=hour;//读小时
		//	e=d;
		//	d=d>>4;
		//	e=e&0x0f;
		    d=hour/10;
			e=hour%10;
			Mcs=1;Scs=0;
			Disp_Digit(3,56,zero+d*16);
			Mcs=0;Scs=1;
			Disp_Digit(3,0,zero+e*16);
       	}
     	else
       	{
			Mcs=1;Scs=0;
        	Disp_Digit(3,56,space); //显示空格
			Mcs=0;Scs=1;
	        Disp_Digit(3,0,space);    
    	}
    } 
  	else
   	{ 
    //	d=hour;//读小时
	//	e=d;
	//	d=d>>4;
	//	e=e&0x0f;
	    d=hour/10;
		e=hour%10;
		Mcs=1;Scs=0;
		Disp_Digit(3,56,zero+d*16);
		Mcs=0;Scs=1;
		Disp_Digit(3,0,zero+e*16);
   	}
  if(year1==1)  //年闪烁标志位
    {
    	if(flag==1)
       	{    
        //	d=year;//读年
		//	e=d;
		//	d=d>>4;
		//	e=e&0x0f;
		    d=year/10;
			e=year%10;
			Mcs=1;Scs=0;
			Disp_Digit(1,8,two);
			Disp_Digit(1,16,zero);
			Disp_Digit(1,24,zero+d*16);
			Disp_Digit(1,32,zero+e*16);
       	}
     	else
       	{
			Mcs=1;Scs=0;
        	Disp_Digit(1,24,space); //显示空格
        	Disp_Digit(1,32,space);    
       	}
    } 
  	else
    { 
       //	d=read_clock(0x8d);//读年
	//	e=d;
	//	d=d>>4;
	//	e=e&0x0f;
	    d=year/10;
		e=year%10;
		Mcs=1;Scs=0;
		Disp_Digit(1,8,two);
		Disp_Digit(1,16,zero);
		Disp_Digit(1,24,zero+d*16);
		Disp_Digit(1,32,zero+e*16);
    }
     
  	if(month1==1)  //月闪烁标志位
    {
    	if(flag==1)
       	{    
        //	d=read_clock(0x89);//读月
		//	e=d;
		//	d=d>>4;
		//	e=e&0x0f;
		    d=month/10;
			e=month%10;
			Mcs=1;Scs=0;
			Disp_Digit(1,56,zero+d*16);
			Mcs=0;Scs=1;
			Disp_Digit(1,0,zero+e*16);
			Disp_Chinese(1,8,yue);
       	}
     	else
       	{
			Mcs=1;Scs=0;
        	Disp_Digit(1,56,space); //显示空格
			Mcs=0;Scs=1;
        	Disp_Digit(1,0,space);    
       	}
    } 
  	else
    { 
      //	d=read_clock(0x89);//读月
	//	e=d;

⌨️ 快捷键说明

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