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

📄 lcd12864.#1

📁 在单片机keil编辑其中如何创建自己的函数库。方便以后自己调用
💻 #1
字号:
//#include <c8051f020.h>
//#define uchar unsigned char	
//#define uint unsigned int
sbit CS1=P3^3;			
sbit CS2=P3^4;
sbit RS=P3^0;		
sbit RW=P3^1;			
sbit EN=P3^2;				
sbit RST=P3^5;			
#define DataPort P2	
//uchar	data	stop;
//uchar	data	chose;
//uchar	data	serial_data[13]={1,2,3,4};
//uchar	data	count;
/************************函数列表**************************/
//--------------------------------------------------
void delay(unsigned long v);
void wcode(uchar c,uchar csl,uchar csr);
void wdata(uchar c,uchar csl,uchar csr);
void set_startline(uchar i);
void set_xy(uchar x,uchar y);
void dison_off(uchar o);
void reset();
void lcd_init(void);
void lw(uchar x, uchar y, uchar dd);
void display_hz(uchar x, uchar y, uchar n, uchar fb);
/*******************************************************/
//*************显示第二行(8个字)**********
/*for(loop=0;loop<8;loop++)
	display_hz(2*loop,2,loop+8);
//**************显示第三行(8个字)*************
for(loop=0;loop<8;loop++)
	display_hz(2*loop,4,loop+16);
//*************显示第四行(8个字)*************
for(loop=0;loop<8;loop++)
	display_hz(2*loop,6,loop+24);
//*************************/					

/*---------------------------------------------------------*/
void delay(unsigned long v) 
{                      
while(v!=0)v--;          
}					
/*----------------------------------------------------------*/
void lcd_busy(void)      
{                     
RS=0;RW=1;DataPort=0xff; 
while(1){			
EN=1;				 
if(DataPort<0x80) break;      
EN=0;			
}                    
EN=0;                
}                    
/*-----------------------------------------------------------*/
void wcode(uchar c,uchar csl,uchar csr) 
{							
CS1=csl;                       
CS2=csr;
lcd_busy();					
RS=0;						
RW=0;						
DataPort=c;						
EN=1;							
EN=0;						
}							
/*------------------------------------------------------*/
void wdata(uchar c,uchar csl,uchar csr) 
{				
CS1=csl;                       
CS2=csr;
lcd_busy();					
RS=1;						
RW=0;				
DataPort=c;                         
EN=1;						
EN=0;						
}							
/*------------------------------------------------------*/
void lw(uchar x, uchar y, uchar dd) 
{						
if(x>=64) 					
{set_xy(x-64,y);				
wdata(dd,0,1);}				
else 						
{set_xy(x,y);					
wdata(dd,1,0);}				
}						
/*---------------------------------------------------*/
void set_startline(uchar i) 
{							
i=0xc0+i;						
wcode(i,1,1);					
}							
/*----------------------------------------------*/
void set_xy(uchar x,uchar y) 
{				
x=x+0x40;                      
y=y+0xb8;                    
wcode(x,1,1);                    
wcode(y,1,1);                    
}                             
/*-------------------------------------------------------------*/
void dison_off(uchar o) 
{                              
o=o+0x3e;                    
wcode(o,1,1);                  
}                              
/*----------------------------------------------------------------------*/
void reset()                     
{                       	
RST=0;                     
delay(20);				
RST=1;				
delay(20);				
}				
/*---------------------------------------------------------------*/
void lcd_init(void) 
{uchar x,y;              
reset();				
set_startline(0);			
dison_off(0);					
for(y=0;y<8;y++)				
	{
	for(x=0;x<128;x++)lw(x,y,0);
	}
dison_off(1);					
}						
/*----------------------------------------------------------------------------*/
void displayhz(uchar xx, uchar yy, uchar n) 
{					
	uchar i,dx;                        
	for(i=0;i<16;i++)
	{				
		dx=hzk[2*i+n*32];								
		lw(xx*8+i,yy,dx);				
		dx=hzk[2*i+1+n*32];							
		lw(xx*8+i,yy+1,dx);	
	}					
}							

⌨️ 快捷键说明

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