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

📄 lcd1602.c

📁 51单片机用c语言实例 包括ad
💻 C
字号:
/********************************************************
 * 文件名称: LCD1602.C
 * 功能描述: 
 ********************************************************/

#include<reg51.h>
#include<intrins.h>
//引脚定义
sbit RSPIN = P1^5;
sbit RWPIN = P1^6;
sbit EPIN = P1^7;

unsigned char XPOS,YPOS;
unsigned char DisTab1[] = "TD-NMC+  Xi'an Tang Du Crop.       ";
unsigned char DisTab2[] = "www.tangdu.com  029-88375025       ";

void delay(unsigned int t)
{  unsigned int i,j;
   for(i=0;i<t;i++)
      for(j=0;j<10;j++);
}

void lcdwaitidle(void)			//忙状态判别
{  P0=0xff;
   RSPIN=0;
   RWPIN=1;
   EPIN=1;
   while((P0&0x80)==0x80);		//读取忙标志BF, 判为1否, 为1等待
   EPIN=0;
}

void lcdwcn(unsigned char c)	//写指令c
{  RSPIN=0;
   RWPIN=0;
   P0=c;
   EPIN=1;
   _nop_();
   EPIN=0;
}

void lcdwc(unsigned char c)		//查询忙标志, 然后写指令c
{  lcdwaitidle();
   lcdwcn(c);
}

void lcdwd(unsigned char d)		//查询忙标志, 然后写数据d
{  lcdwaitidle();
   RSPIN=1;
   RWPIN=0;
   P0=d;
   EPIN=1;
   _nop_();
   EPIN=0;
}

void lcdpos(void)
{
	XPOS&=0x3f;
	YPOS&=0x03;
	if(YPOS==0x00)
    	lcdwc(XPOS|0x80);			//DDRAM地址设置(第1行)
	else if(YPOS==0x01)
		lcdwc((XPOS+0x40)|0x80);	//DDRAM地址设置(第2行)
}

void lcdinit(void)					//LCD初始化
{  delay(150); lcdwcn(0x38);		//总线8位, 两行显示, 5*7点阵字符体
   delay(50); lcdwcn(0x38);
   delay(50); lcdwcn(0x38);
   lcdwc(0x38);
   lcdwc(0x08);						//关闭显示, 光标消失, 闪烁禁止
   lcdwc(0x01);						//清屏
   lcdwc(0x06);						//AC加1计数, 禁止滚动
   lcdwc(0x0e);						//开显示
}

void Display(void)					// 显示子程序
{
	for(XPOS=0; XPOS<16; XPOS++)
	{
		YPOS=0; lcdpos(); lcdwd(DisTab1[XPOS]);
		YPOS=1; lcdpos(); lcdwd(DisTab2[XPOS]);
		delay(2000);
	}
	for(XPOS=16; XPOS<30; XPOS++)
	{
		lcdwc(0x18);				// 滚屏
		YPOS=0; lcdpos(); lcdwd(DisTab1[XPOS]);
		YPOS=1; lcdpos(); lcdwd(DisTab2[XPOS]);
		delay(2000);
	}
}

void main(void)
{  
	EPIN=0;
	lcdinit();
	while(1)
	{
		lcdwc(0x01);
		lcdwc(0x02);
		Display();
    	delay(5000);
	}
}

⌨️ 快捷键说明

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