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

📄 1602.c

📁 这个是1602液晶的代码
💻 C
字号:
/************************************************************************************/
/*     程序名:LCM1602液晶显示代码                                                  */
/*                                                                                  */
/*     晶振:12.0 M                                        CPU型号:AT89S52         */
/*                                                                                  */
/*                                                                                  */
/*     功能描述: 1602显示,需将J15(1,2)跳线帽插上                                */
/*                    但是要拔去J2跳线帽?                            			    */
/*                                                                                  */
/*     http://www.mculover.net                                                      */
/*     http://www.mculover.net/bbs                                                  */
/*   													 					    	*/
/*                                                                                  */
/*                                                湘灵电子工作室 版权所有           */     
/*                                                         2006-03-20               */
/************************************************************************************/ 

#include <reg51.h>

#define  Lcd_Data  P0    //定义数据端口

sbit  RS = P2 ^ 0;  //定义和LCM的连接端口
sbit  RW = P2 ^ 1;
sbit  E = P2 ^ 2;
sbit  Busy = P0 ^ 7;

unsigned char code welcome[] = {"Welcome to :    "};
unsigned char code website[] = {"www.mculover.net"};
unsigned char code designed[]={"Designed By:"};
unsigned char code whomi[]={"whoami"};

/******************************************************************************/
void Delay(unsigned char t)//延时子程序,延时 1MS*t S
{
	unsigned char a;
	while(--t != 0)
	{
		for(a = 0; a < 125; a++);
	}
}

/******************************************************************************/
void Read_Busy(void)//读忙信号判断
{
	do{
		Lcd_Data = 0xff;
		RS = 0;
		RW = 1;
		E = 0;
		Delay(2);
		E = 1;
	  }while(Busy);
}

/******************************************************************************/ 
void Write_Comm(unsigned char lcdcomm) //写指令函数
{	
	Lcd_Data = lcdcomm;
	RS = 0;
	RW = 0;
	E = 0;
	Read_Busy();
	E = 1;
}

/******************************************************************************/
void Write_Data(unsigned char lcddata)//写数据函数
{	
	Lcd_Data = lcddata;
	RS = 1;
	RW = 0;
	E = 0;
	Read_Busy();
	E = 1;
}

/******************************************************************************/
void Init_LCD(void)//初始化LCD
{
	Delay(400);   //稍微延时,等待LCM进入工作状态
	Write_Comm(0x01);//清显示
//	Write_Comm(0x02);//光标归位
	Write_Comm(0x38);//8位2行5*8
	Write_Comm(0x06);//文字不动,光标右移
	Write_Comm(0x0c);//显示开/关,光标开闪烁开
//	Write_Comm(0x18);//左移
}

/******************************************************************************/
void main(void)//主函数
{
	unsigned char i;

	Init_LCD(); //初始化 LCM

	Write_Comm(0x80);//写入"welcome to"首地址(第一行)

	for(i=0;i<16;i++)
	{
		Write_Data( welcome[i] );//显示welcometo字样
	}

	Write_Comm(0xc0);//写入"web"首地址(第2行)

	for(i=0;i<16;i++)
	{
		Write_Data( website[i] );//显示http;//www.mculover.net
	}

	while(1)
	{
		;
	}
}
 

⌨️ 快捷键说明

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