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

📄 19264a.h

📁 19264A显示驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
										if((lie+i)<=63)
											{CS1=1;CS2=0;CS3=1;address(lie+i);}
										else if((lie+i)>63&&(lie+i)<=127)
											{CS1=1;CS2=1;CS3=0;address(lie+i-64);}
										else if((lie+i)>127)
											{CS1=0;CS2=1;CS3=1;address(lie+i-128);}
									writelcd(DATA,tab[i*2+1+2]);
					 			}
					//	CS1=0;CS2=0;
						}
					else if(Y>127)
						{
			 				lie=Y-128;
							CS1=1;CS2=1;CS3=0;								
							for(i=0;i<flat1;i++)
								{	
									page(hang);
										if((lie+i)<=63)
											{CS1=1;CS2=1;CS3=0;address(lie+i);}
										else if((lie+i)>63&&(lie+i)<=127)
											{CS1=0;CS2=1;CS3=1;address(lie+i-64);}
										else if((lie+i)>127)
											{CS1=1;CS2=0;CS3=1;address(lie+i-128);}
										writelcd(DATA,tab[i*2+2]);
									page(hang+1);
										if((lie+i)<=63)
											{CS1=1;CS2=1;CS3=0;address(lie+i);}
										else if((lie+i)>63&&(lie+i)<=127)
											{CS1=0;CS2=1;CS3=1;address(lie+i-64);}
										else if((lie+i)>127)
											{CS1=1;CS2=0;CS3=1;address(lie+i-128);}
									writelcd(DATA,tab[i*2+1+2]);
					 			}
					//	CS1=0;CS2=0;
						}
				}
			}						
/**********************************图形显示***********************************/
	
	void display_picture(unsigned char X,unsigned char Y,unsigned char *tab)
		{	
			unsigned char i,j;
			unsigned char flat1,flat2,hang,lie;

			flat1=tab[0];											//列宽
			flat2=tab[1]/8;											
				if(tab[1]%8) flat2++;								//行数
			for(i=Y;i<Y+flat1;i++)									//写列			
				{
					 if(i<=63)										//行显示处理
						{
							lie=i;
							CS1=0;CS2=1;CS3=1;			
							for(j=X;j<flat2+X;j++)
								{	
									hang=j%8;
									page(hang);
									address(lie);
										writelcd(DATA,tab[(i-Y)*flat2+j-X+2]);															
					 			}
						}
					else if(i>63&&i<=127)
						{
			 				lie=i-64;
							CS1=1;CS2=0;CS3=1;			
							for(j=X;j<flat2+X;j++)
								{	
									hang=j%8;
									page(hang);
									address(lie);
										writelcd(DATA,tab[(i-Y)*flat2+j-X+2]);
					 			}
						}
					else if(i>127)
						{
							lie=i-128;
							CS1=1;CS2=1;CS3=0;			
							for(j=X;j<flat2+X;j++)
								{	
									hang=j%8;
									page(hang);
									address(lie);
										writelcd(DATA,tab[(i-Y)*flat2+j-X+2]);
								}						
						}					
				 }
			CS1=0;CS2=0;CS3=0;							 
		}											   

/*********************************汉字显示函数****************************************/
/*****************************屏幕的左右与正面对自己的左右相反************************/
/*****************************调试时程序下载完,要拔下载线,单片机复位,否则可能双屏或重叠显示*/

	void display_hanzi(unsigned char X,unsigned char Y,unsigned char *tab)
		{
			unsigned char i;
			if(Y<63)
				{
					CS1=0;CS2=1;CS3=1;			
					for(i=0;i<16;i++)
						{	
							page(X);
							address(Y+i);
								writelcd(DATA,tab[i*2]);
							page(X+1);
							address(Y+i);
								writelcd(DATA,tab[i*2+1]);						
					 	}
				}
			else if(Y>=63&&Y<127)
				{
			 		Y=Y-64;
					CS1=1;CS2=0;CS3=1;								
					for(i=0;i<16;i++)
						{	
							
							page(X);
							address(Y+i);
								writelcd(DATA,tab[i*2]);
							page(X+1);
							address(Y+i);
								writelcd(DATA,tab[i*2+1]);
					 	}					
				}
			else if(Y>=127)
				{
			 		Y=Y-127;
					CS1=1;CS2=1;CS3=0;								
					for(i=0;i<16;i++)
						{	
							
							page(X);
							address(Y+i);
								writelcd(DATA,tab[i*2]);
							page(X+1);
							address(Y+i);
								writelcd(DATA,tab[i*2+1]);
					 	}					
				}
		}
/***********************************单个字符或数字显示函数*********************************/

	void display_char(unsigned char X,unsigned char Y,unsigned char *tab)
		{
			unsigned char i;
			if(Y<63)
				{
					CS1=0;CS2=1;CS3=1;			
					for(i=0;i<8;i++)
						{	
							page(X);
							address(Y+i);
								writelcd(DATA,tab[i*2]);
							page(X+1);
							address(Y+i);
								writelcd(DATA,tab[i*2+1]);						
					 	}
				}
			else if(Y>=63&&Y<127)
				{
			 		Y=Y-64;
					CS1=1;CS2=0;CS3=1;								
					for(i=0;i<8;i++)
						{	
							
							page(X);
							address(Y+i);
								writelcd(DATA,tab[i*2]);
							page(X+1);
							address(Y+i);
								writelcd(DATA,tab[i*2+1]);
					 	}					
				}
			else if(Y>=127)
				{
			 		Y=Y-127;
					CS1=1;CS2=1;CS3=0;								
					for(i=0;i<8;i++)
						{	
							
							page(X);
							address(Y+i);
								writelcd(DATA,tab[i*2]);
							page(X+1);
							address(Y+i);
								writelcd(DATA,tab[i*2+1]);
					 	}					
				}	
		}

/***********************************显示启示位置固定的整形数据*************************/
  
	void display_longint(unsigned char X,unsigned char Y,unsigned long int input)
		{
			unsigned char j=0,k,flag;
			unsigned long int temp=2,temp1=1;
			lenth1=0;						
			temp=input;
                   if(temp!=0)
                          	{
			      				while(temp!=0)			
									{
										temp=temp/10;										
										lenth1++;																									
									}		
			      				temp=input;								
			      				for(j=lenth1;j>1;j--)
									{ 
                                        for(k=j;k>1;k--)
                                           {temp1=temp1*10;}
					  					flag=temp/temp1;																  
					  					temp=temp%temp1;
                                          	temp1=1;
                                        display_char(X,Y+(lenth1-j)*8,chargroup[flag]);					
									}
                              	display_char(X,Y+(lenth1-j)*8,chargroup[temp]);
                          	}							   
                   else 
							display_char(X,Y,chargroup[temp]);
		}																		  

/*************************变化整型数据显示******显示结束位置固定***************/
        
        void PrintIntUndefine(unsigned char X,unsigned char Y,unsigned long int input)
                {
                        unsigned char j=0,flag;
						unsigned long int temp;
					
						lenth2=0;	
						temp=input;                        
                        if(temp!=0)
                          	{
			      				while(temp!=0)			
									{
										temp=temp/10;										
										lenth2++;				
									}			
			      				temp=input;
			      				for(j=lenth2;j>1;j--)
									{ 
                                        flag=temp%10;					  
					  					temp=temp/10;                                          
                                        display_char(X,Y-(lenth2-j)*8,chargroup[flag]);					
									}
                              	display_char(X,Y-(lenth2-j)*8,chargroup[temp]);
                          	}
                        else 	display_char(X,Y,chargroup[temp]);                        
                }
					
/***********************************初始化函数*****************************************/

	void intital()
		{	
			RST=0;
			delay1ms(1);
			RST=1;
			delay1ms(1);						
			clearscreen();									   //先清屏,再开显示,显示效果更好,
			display_on(D);									   //单片机复位不影响显示
			CS1=1;CS2=0;CS3=0;	
		}
#endif




⌨️ 快捷键说明

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