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

📄 lcd1602.h

📁 利用8255a扩展的lcd1602程序 希望喜欢
💻 H
字号:
#include <at89x51.h>
#include <absacc.h>

#define uchar unsigned char
#define A XBYTE[0x7efc]
#define B XBYTE[0x7efd]
#define C XBYTE[0x7efe]
#define Com XBYTE[0x7eff]
	
void LCD_INIT(  )
{	int i;
	
	Com=0x81;
	C=0xfb;		   //P1口输出信号状态
	C=0xfa;
	for(i=0;i<100;i++);	  //延迟
	//LcdEn=0;
	//P1=DBPort;	
	
	Com=0x80;		 //写入命令 8位数据端口,2行显示,5*10点阵
	C=0xf8;
	B=0x3c;
	C=0xf9;
	for(i=0;i<100;i++);	  //延迟
	C=0xf8;
	//P1=DBPort;	//P1口输出信号状态

	Com=0x80;
	C=0xf8;
	B=0x0f;
    C=0xf9;
	for(i=0;i<100;i++);	  //延迟
	C=0xf8;
	//P1=DBPort;	//P1口输出信号状态
			  //写入命令 光标移动,字符不动
	Com=0x80;
	C=0xf8;
	B=0x06;
	C=0xf9;
	for(i=0;i<100;i++);	  //延迟
	C=0xf8;
	//P1=DBPort;	//P1口输出信号状态
}

void LCD_CLR()		//写入命令 清屏
{	int i;
	Com=0x80;
	C=0xf8;
	B=0x01;
	C=0xf9;
	for(i=0;i<100;i++);	  //延迟
	C=0xf8;
	//P1=DBPort;	//P1口输出信号状态
}


void Gotoxy(int x,int y)
{ 
    int i;
	Com=0x80;
    if(y==0)   	//写入命令 光标移动,字符不动
   	{
	C=0xf8;
	B=0x80|x;		  // 不能改变第一行字符显示位置
	C=0xf9;
	for(i=0;i<100;i++);	  //延迟
	C=0xf8;
	//P1=DBPort;	//P1口输出信号状态
	}
   if(y==1)   //写入命令 光标移动,字符不动
   { 
    C=0xf8;
	B=0x80|(x+0x40);
	//DBPort=0x80|x;
    C=0xf9;
	for(i=0;i<100;i++);	  //延迟
	C=0xf8;
	//P1=DBPort;	//P1口输出信号状态
	}
}

void writedata(uchar dat)
{	

    int i;
    Com=0x80;
	C=0xfc;
	B=dat;
	C=0xfd;
	for(i=0;i<100;i++);	  //延迟
	C=0xfc;
}

void Print(unsigned char *str)
{
  while(*str!='\0')
  {
	int i=0;	
	Com=0x80;
	C=0xfc;
	B=*str;
	C=0xfd;
	for(i=0;i<100;i++);	  //延迟
	C=0xfc;
	str++;
  }
}	 

⌨️ 快捷键说明

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