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

📄 lcd.c

📁 一个以前开发的实际应用的交通灯控制器程序
💻 C
字号:
#include "iic.h"

#define EN()	{P2=0xa0;}
#define DisEN() {P2=0xf0;}
unsigned char code Line[4]={0x80,0x90,0x88,0x98};

//////////////
void DelayS()
{
   unsigned char xdata i;
	 i = 200;	  //1f
	 while(i--);
}

void WriteCmd(unsigned char ch)
{
     DelayS();
     //EN = 0;
	 DisEN();
     LCD_RS = 0;
     LCD_RW = 0;
     _nop_(); 
	 _nop_();
     //EN = 1;
	 EN();
     P0 = ch;
	 _nop_();
	 _nop_();
	 _nop_();
     //EN = 0;
	 DisEN();
}

void WriteData(unsigned char dat)
{
     DelayS();
     //EN = 0;
	 DisEN();
     LCD_RS = 1;
     LCD_RW = 0;
     _nop_();
	 _nop_();
     //EN = 1;
	 EN();
     P0 = dat;
	 _nop_();
	 _nop_();
	 _nop_();
     //EN = 0;
	 DisEN();
     LCD_RS = 0;
}

void LcdInit()
{     
	if(LcdRE==1)
	{//扩展指令集状态,先退出睡眠状态
		WriteCmd(0x0c);//退出睡眠模式
		WriteCmd(0x30);//基本指令集
		LcdRE=0;
	}
	WriteCmd(0x0C);//显示on,游标、反白oFF
	WriteCmd(0x01);//清除显示
	WriteCmd(0x02);//地址归位
	WriteCmd(0x80);
}

void LcdCN(unsigned char x,unsigned char y,const char datH,const unsigned char datL)
{//汉字显示
	x=Line[x];
	x+=y;
	WriteCmd(x);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
	WriteData(datH);
  	WriteData(datL);
}

void LcdCnString(unsigned char x,unsigned char y,const char Head[])
{//汉字串
//x:0-3,y:0-7
	unsigned char *ptr;
	ptr=Head;
	while(1)
	{
		LcdCN(x,y,*ptr,*(ptr+1));
		y+=1;
		ptr=ptr+2;
		if(*ptr == NULL)
			break;
	}
}

void LcdChar(unsigned char x,unsigned char y,const char dat)
{//英文显示
	//x:0-3,y:0-7
/*	switch(x)
	{
		case 0:
			x=0x80;
			break;
		case 1:
			x=0x90;
			break;
		case 2:
			x=0x88;
			break;
		default:
			x=0x98;
	}*/
	x=Line[x];
	x+=y;
	WriteCmd(x);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
	WriteData(dat);
}

void LcdAddChar(unsigned char dat)
{
//追加英文字母
	WriteData(dat);
}

void LcdCur(unsigned char x,unsigned char y)
{
	//x:0~3,y:0~7
	x=Line[x];
	x=x+y;
	WriteCmd(x);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
	WriteCmd(0x0f);//开下标	
}

void LcdCurOff()
{
	WriteCmd(0x0C);
}

void LcdPowerOn()
{
	LcdPowerFlag=1;
}

void LcdPowerOff()
{
	LcdPowerFlag=0;
}

⌨️ 快捷键说明

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