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

📄 ym1602c.txt

📁 51单片机控制YM1602C液晶显示模块的子程序
💻 TXT
字号:
51单片机控制YM1602C液晶显示模块的子程序,P2口接1602C数据端口,其控制位如下所示
/*      LCD控制位						       */
sbit    RS=P3^5;							
sbit    RW=P3^6;							
sbit     E=P3^7;							


//			  YM1602C程序			    		//
/*init_lcd()							 	*/
/*功能:lcd初始化						 	*/
void init_lcd(void)           				
 {										
  delay5Ms();								
  delay5Ms();								
  delay5Ms();								
  P2=0x00;								
  P3=0x00;								
  lcdwritecmd(0x38,0);       			/*  2行8位5×7点阵      */
  lcdwritecmd(0x38,0); 	  			/*  设置3次,不查询忙位  */
  lcdwritecmd(0x38,0);						
  lcdwritecmd(0x38,1);						
  lcdwritecmd(0x08,1);		 		/*       关显示		*/
  lcdwritecmd(0x01,1);		 		/*        清屏		*/
  lcdwritecmd(0x06,1);		 		/*   光标自动右移    	*/
  lcdwritecmd(0x0f,1);		 		/* 开显示,有光标且闪烁  */
  }										
/*lcdwritecmd()								*/
/*功能:写LCD控制字							*/
void lcdwritecmd(uchar command,uchar wait_en)
 {										
  if(wait_en)wait_enable();					
  P2=command;							
  RS=0;									
  RW=0;									
  E=0;									
  E=1;									
  P2=command;							
  E=0;									
  }										
/*lcdwritedata()               	 	   	 			*/
/*功能:LCD输出字符            						*/
void lcdwritedata(uchar charater)          	
 {										
  wait_enable();							
  P2=charater;							
  RS=1;									
  RW=0;									
  E=0;									
  E=1;									
  E=0;									
  }										
/*wait_enable()								*/
/*功能:查询LCD是否空闲							*/
void wait_enable(void)        			    
 {										
  P2=0xff;								
  RS=0;									
  RW=1;									
  E=1;									
  while(P2&0x80);						    
  E=0;									
  }										
void delay5Ms(void)           			/*       延时5ms        */
 {										
  uint i=500;								
  while(i--);								
  }										
/*LCD显示字符串								*/
/*参数:行号,列号,字符串首地址		 			*/
void writestr(uchar x,uchar y,uchar str[])       
 {										
  uchar dis;								
  uchar *p;								
  if(x==1)dis=0x80+y-1;					
  else if(x==2)dis=0xc0+y-1;				
  lcdwritecmd(dis,1);						
  for(p=str;(*p!='\n')&&(p<=str+0x0f);p++)lcdwritedata(*p); 
  }
/*dis()									*/
/*LCD显示无符号长整型数							*/
void dis(uchar x,uchar y,unsigned long string)	
{										
 uchar word[9]={0,0,0,0,0,0,0,0,'\n'};			
 char k;									
 for(k=7;k>=0;k--)							
  {										
   word[k]=string%10;						
   string/=10;								
   }										
  word[8]='\n';							
  for(k=7;k>=0;k--)						
  {										
   word[k]+=0x30;						
   }										
  writestr(x,y,word);						
 }  

⌨️ 快捷键说明

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